*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base: #0f1117;--bg-surface: #13192b;--bg-card: #1e2535;--bg-input: #0a0d14;--border: #1e2a40;--border-card:#2d3748;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #475569;--text-faint: #64748b;--color-error: #f87171}[data-theme=light]{--bg-base: #f1f5f9;--bg-surface: #ffffff;--bg-card: #f8fafc;--bg-input: #f1f5f9;--border: #e2e8f0;--border-card:#cbd5e1;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--text-faint: #94a3b8;--color-error: #dc2626}.brand-logo{display:inline-flex;align-items:center}.brand-logo-img{height:48px;width:auto;display:block}.brand-logo--compact .brand-logo-img{height:15px}.brand-logo-img--light,[data-theme=light] .brand-logo-img--dark{display:none}[data-theme=light] .brand-logo-img--light{display:block}html,body{height:100%;width:100%;font-family:Inter,system-ui,sans-serif;background:var(--bg-base);color:var(--text-primary)}#root:has(.app){height:100%;overflow:hidden}#root{min-height:100%}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.app-header{display:flex;align-items:center;gap:16px;padding:0 16px;height:44px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0}.app-title{font-weight:700;font-size:1rem;color:var(--node-transform-accent);letter-spacing:.04em}.workflow-name{font-size:.8rem;font-weight:500;color:var(--text-secondary);padding:3px 8px;border-radius:4px;background:var(--bg-card);border:1px solid var(--border-card);max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-name--unsaved{color:var(--text-muted);font-style:italic;border-style:dashed}.engine-toggle{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none}.engine-toggle input[type=checkbox]{accent-color:#f97316;width:14px;height:14px;cursor:pointer}.engine-toggle:has(input:checked){color:#f97316}.header-btn{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-card);border-radius:6px;padding:5px 12px;font-size:.8rem;font-weight:500;cursor:pointer;transition:background .1s,color .1s}.theme-toggle{font-size:1rem;padding:3px 10px}.header-btn:hover:not(:disabled){background:var(--bg-card);color:var(--text-primary);filter:brightness(1.15)}.header-btn:disabled{opacity:.4;cursor:not-allowed}.run-btn{background:#2563eb;color:#fff;border:none;border-radius:6px;padding:6px 18px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.run-btn:hover:not(:disabled){background:#3b82f6}.run-btn:disabled{opacity:.5;cursor:not-allowed}.run-btn--stop{background:#dc2626}.run-btn--stop:hover{background:#ef4444}.header-spacer{flex:1}.menu-wrap{position:relative}.menu-trigger{min-width:56px}.menu-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:200;background:var(--bg-surface);border:1px solid var(--border-card);border-radius:7px;box-shadow:0 6px 24px #00000073;min-width:160px;padding:4px;display:flex;flex-direction:column}.menu-item{background:none;border:none;border-radius:5px;color:var(--text-secondary);cursor:pointer;font-size:.82rem;padding:7px 12px;text-align:left;transition:background .1s,color .1s;width:100%}.menu-item:hover:not(:disabled){background:var(--bg-card);color:var(--text-primary)}.menu-item:disabled{opacity:.38;cursor:not-allowed}.menu-sep{border:none;border-top:1px solid var(--border);margin:3px 6px}.workflow-name--editable{cursor:pointer}.workflow-name--editable:hover{color:var(--text-primary);border-color:var(--border-card);filter:brightness(1.15)}.workflow-name-input{font-size:.8rem;font-weight:500;color:var(--text-primary);background:var(--bg-base);border:1px solid #3b82f6;border-radius:4px;padding:3px 8px;max-width:220px;outline:none}.saved-check{color:#4ade80;font-size:.75rem}.app-body{display:flex;flex:1;overflow:hidden}.app-body--report>.sidebar,.app-body--report>.sidebar--collapsed,.app-body--report>.canvas-wrapper{display:none!important}.tab-bar{display:flex;align-items:stretch;background:var(--bg-base);border-bottom:1px solid var(--border);overflow-x:auto;flex-shrink:0;height:32px;padding:4px 4px 0;gap:2px;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab-item{display:flex;align-items:center;gap:5px;padding:0 8px 0 11px;border-radius:6px 6px 0 0;cursor:pointer;font-size:.76rem;color:var(--text-muted);white-space:nowrap;border:1px solid transparent;border-bottom:none;max-width:200px;min-width:80px;flex-shrink:0;transition:background .1s,color .1s;-webkit-user-select:none;user-select:none;position:relative;margin-bottom:-1px}.tab-item:hover{background:var(--bg-card);color:var(--text-secondary)}.tab-item--active{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-card);border-bottom-color:var(--bg-surface)}.tab-name{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.tab-item--active .tab-name{cursor:text}.tab-item--active .tab-name:hover{color:#93c5fd}.tab-name-input{flex:1;min-width:0;background:var(--bg-base);border:1px solid #3b82f6;border-radius:3px;color:var(--text-primary);font-size:.75rem;padding:1px 5px;outline:none;width:120px}.tab-dirty{color:#f59e0b;font-size:.55rem;flex-shrink:0;line-height:1}.tab-saved{color:#4ade80;font-size:.65rem;flex-shrink:0}.tab-close{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:0 1px;border-radius:3px;line-height:1;opacity:0;transition:opacity .1s,color .1s,background .1s}.tab-item:hover .tab-close,.tab-item--active .tab-close{opacity:1}.tab-close:hover{color:#f87171;background:#f871711f}.tab-item--report .tab-name{color:#6ee7b7}.tab-item--report.tab-item--active{border-bottom-color:#6ee7b7}.tab-new{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:0 10px;border-radius:5px 5px 0 0;align-self:stretch;flex-shrink:0;line-height:1;transition:color .1s,background .1s;margin-bottom:-1px}.tab-new:hover{color:var(--text-secondary);background:var(--bg-card)}.sidebar{flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border);padding:10px 8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;position:relative;min-width:0}.sidebar--collapsed{width:40px!important;padding:6px 0;align-items:center;gap:8px;overflow:visible}.sidebar-title{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:0 4px 4px;border-bottom:1px solid var(--border);margin-bottom:4px;display:flex;align-items:center;justify-content:space-between}.sidebar-collapse-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:0 2px;border-radius:3px;display:flex;align-items:center;justify-content:center}.sidebar-collapse-btn:hover{color:var(--text-primary);background:var(--bg-card)}.sidebar--collapsed .sidebar-collapse-btn{font-size:1.1rem;padding:4px 0;width:32px;height:28px}.sidebar-collapsed-icons{display:flex;flex-direction:column;align-items:center;gap:12px;padding:4px 0}.sidebar-cat-icon{background:none;border:none;cursor:pointer;font-size:1rem;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;opacity:.75;transition:opacity .1s,background .1s}.sidebar-cat-icon:hover{opacity:1;background:var(--bg-card)}.sidebar-resize-handle{position:absolute;top:0;right:0;width:4px;height:100%;cursor:ew-resize;background:transparent;z-index:10}.sidebar-resize-handle:hover{background:#3b82f6}.sidebar-search{background:var(--bg-base);border:1px solid var(--border-card);border-radius:5px;padding:5px 8px;font-size:.78rem;color:var(--text-primary);outline:none;width:100%;box-sizing:border-box}.sidebar-search::placeholder{color:var(--text-muted)}.sidebar-search:focus{border-color:#3b82f6}.node-btn-wrap{display:flex;align-items:stretch;gap:2px}.node-btn-wrap .node-btn{flex:1;min-width:0}.node-btn-help{background:none;border:1px solid transparent;border-radius:5px;color:#334155;font-size:.72rem;font-weight:700;width:22px;flex-shrink:0;cursor:pointer;padding:0;line-height:1}.node-btn-help:hover{background:#1e2a40;color:#94a3b8;border-color:#334155}.node-btn{background:var(--bg-card);border:1px solid var(--border-card);border-radius:6px;padding:7px 10px;cursor:grab;display:flex;align-items:center;gap:8px;text-align:left;color:var(--text-primary);transition:background .1s}.node-btn:hover{filter:brightness(1.15)}.node-btn-label{font-size:.8rem;font-weight:500}.node-btn-icon-wrap{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:color-mix(in srgb,currentColor 8%,transparent);border:1px solid color-mix(in srgb,currentColor 15%,transparent);flex-shrink:0}.node-btn-icon{width:14px;height:14px}.sidebar-group{display:flex;flex-direction:column}.sidebar-group-header{display:flex;align-items:center;gap:6px;background:none;border:none;padding:5px 4px;cursor:pointer;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;width:100%;text-align:left}.sidebar-group-header:hover{opacity:.8}.sidebar-group-arrow{font-size:.6rem;color:#475569}.sidebar-group-count{margin-left:auto;font-size:.6rem;color:#475569;font-weight:400}.sidebar-group-items{display:flex;flex-direction:column;gap:4px;padding-bottom:6px}.options-panel{flex-shrink:0;background:var(--bg-surface);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;font-size:.8rem;position:relative;min-width:0}.options-panel--collapsed{width:40px!important;overflow:visible;align-items:center;padding:6px 0;gap:12px}.options-resize-handle{position:absolute;top:0;left:0;width:4px;height:100%;cursor:ew-resize;background:transparent;z-index:10;flex-shrink:0}.options-resize-handle:hover{background:#3b82f6}.options-collapse-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:0 4px;border-radius:3px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.options-collapse-btn:hover{color:var(--text-primary);background:#ffffff14}.options-panel--collapsed .options-collapse-btn{width:32px;height:28px;padding:0;font-size:1.1rem}.options-collapsed-icon{font-size:1.1rem;opacity:.7;cursor:default}.options-header{padding:10px 12px 8px;flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.options-header-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.options-help-btn{background:none;border:none;color:#ffffff59;cursor:pointer;font-size:.78rem;font-weight:700;line-height:1;padding:2px 5px;border-radius:3px}.options-help-btn:hover{color:#fffc;background:#ffffff14}.options-header-type{font-weight:700;font-size:.82rem;letter-spacing:.02em}.options-category-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;opacity:.75;margin-top:2px;display:block}.options-description{padding:8px 12px;font-size:.75rem;color:var(--text-secondary);border-bottom:1px solid var(--border);line-height:1.45}.options-body{display:flex;flex-direction:column;gap:10px;padding:10px 12px}.options-field{display:flex;flex-direction:column;gap:4px}.options-field-label{font-size:.7rem;font-weight:500;color:var(--text-secondary);letter-spacing:.02em;display:flex;align-items:center;gap:6px}.options-pandas-help-btn{width:15px;height:15px;line-height:15px;text-align:center;padding:0;border-radius:50%;border:1px solid var(--text-muted, #64748b);background:none;color:var(--text-muted, #64748b);font-size:.62rem;font-weight:700;cursor:pointer}.options-pandas-help-btn:hover{border-color:#3b82f6;color:#3b82f6}.options-field-hint{font-size:.65rem;color:var(--text-muted, #64748b);margin-top:2px;font-style:italic}.options-field input,.options-field textarea{background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-family:inherit;font-size:.78rem;padding:5px 7px;outline:none;resize:vertical;transition:border-color .1s;width:100%;box-sizing:border-box}.options-field textarea{font-family:JetBrains Mono,monospace;font-size:.72rem}.options-field input:focus,.options-field textarea:focus{border-color:#60a5fa}.options-ports{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);padding-top:10px}.options-ports-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:4px}.options-port-row{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-secondary)}.options-port-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.options-port-dot--in{background:#60a5fa}.options-port-dot--out{background:#34d399}.options-port-type{margin-left:auto;font-size:.65rem;color:var(--text-muted)}.options-results-summary{font-size:.72rem;color:#34d399;border-top:1px solid var(--border);padding-top:8px}.canvas-wrapper{flex:1;position:relative;overflow:hidden}.results-panel{flex-shrink:0;background:var(--bg-input);border-top:1px solid var(--border);display:flex;flex-direction:column;min-height:60px;max-height:520px}.results-resize-handle{height:4px;cursor:ns-resize;background:transparent;flex-shrink:0}.results-resize-handle:hover{background:#3b82f6}.results-header{padding:4px 12px;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);flex-shrink:0}.results-log{flex:1;overflow-y:auto;padding:4px 12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.72rem;display:flex;flex-direction:column;gap:1px}.log-line{display:flex;gap:10px;align-items:baseline}.log-ts{color:var(--text-muted);white-space:nowrap;min-width:60px}.log-level{font-weight:600;min-width:50px;white-space:nowrap}.log-msg{color:var(--text-primary)}.log-line-timing{opacity:.85;font-style:italic;border-top:1px solid var(--border);padding-top:2px;margin-top:2px}.log-line-timing .log-msg{color:#34d399}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;width:420px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-size:.85rem;font-weight:600;color:var(--text-primary)}.modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:2px 6px;border-radius:4px}.modal-close:hover{color:var(--text-primary);background:var(--bg-card)}.modal-body{flex:1;overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:4px}.modal-empty{color:var(--text-muted);font-size:.8rem;padding:12px 4px}.modal-error{color:#f87171;font-size:.8rem;padding:4px}.modal-wf-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:6px;background:var(--bg-card);border:1px solid var(--border-card);gap:8px}.modal-wf-info{display:flex;flex-direction:column;gap:2px;min-width:0}.modal-wf-name{font-size:.82rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-wf-date{font-size:.7rem;color:var(--text-muted)}.modal-wf-actions{display:flex;gap:6px;flex-shrink:0}.modal-wf-delete{background:none;border:1px solid var(--border-card);border-radius:4px;color:var(--text-faint);cursor:pointer;font-size:.75rem;padding:3px 7px}.modal-wf-delete:hover{border-color:#f87171;color:#f87171}.modal--sm{width:340px}.modal--bugreport{width:min(860px,92vw);max-height:80vh;display:flex;flex-direction:column}.modal--shortcuts{width:min(480px,92vw)}.modal--examples{width:min(820px,94vw);max-height:82vh;display:flex;flex-direction:column}.examples-search-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}.examples-search{flex:1;background:var(--bg-card);border:1px solid var(--border-card);border-radius:6px;color:var(--text-primary);font-size:.82rem;padding:6px 10px;outline:none}.examples-search:focus{border-color:var(--accent)}.examples-count{font-size:.75rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.examples-body{gap:16px;padding:14px}.examples-group{display:flex;flex-direction:column;gap:8px}.examples-group-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:0 2px}.examples-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.example-card{display:flex;flex-direction:column;gap:6px;background:var(--bg-card);border:1px solid var(--border-card);border-radius:8px;padding:12px 12px 10px}.example-card:hover{border-color:var(--accent)}.example-card-name{font-size:.8rem;font-weight:600;color:var(--text-primary);line-height:1.3}.example-card-desc{font-size:.73rem;color:var(--text-muted);line-height:1.45;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.example-card-open-label{align-self:flex-start;margin-top:4px;font-size:.73rem;font-weight:600;color:var(--accent)}.example-card--opening{opacity:.6}.example-card-tags{display:flex;flex-wrap:wrap;gap:4px}.example-card-tag{font-size:.62rem;background:#1e2a40;color:#64748b;border-radius:6px;padding:1px 5px}.examples-chips{display:flex;gap:4px;flex-shrink:0}.examples-chip{font-size:.72rem;background:#1e2a40;border:1px solid #334155;border-radius:10px;color:#94a3b8;padding:2px 8px;cursor:pointer;white-space:nowrap}.examples-chip:hover{background:#334155;color:#e2e8f0}.examples-chip--active{background:#1d3a5f;border-color:#3b82f6;color:#93c5fd}.examples-node-filter{font-size:.78rem;color:#64748b;font-weight:400}.shortcuts-body{display:flex;flex-direction:column;gap:16px}.shortcuts-group-title{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.shortcuts-table{width:100%;border-collapse:collapse}.shortcuts-table tr+tr td{border-top:1px solid var(--border)}.shortcuts-keys{padding:5px 14px 5px 0;white-space:nowrap;width:1%}.shortcuts-kbd{display:inline-block;background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--text-primary);box-shadow:0 1px 0 var(--border-card)}.shortcuts-plus{color:var(--text-muted);font-size:.7rem;margin:0 3px}.shortcuts-label{font-size:.8rem;color:var(--text-secondary);padding:5px 0}.modal-body--scroll{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:8px}.bugreport-hint{font-size:.8rem;color:var(--text-muted);margin:0}.bugreport-pre{flex:1;background:var(--bg-base);border:1px solid var(--border-card);border-radius:6px;padding:12px;font-size:.75rem;line-height:1.5;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;font-family:Consolas,Menlo,monospace;margin:0;min-height:200px}.header-btn--shortcuts{font-weight:700;font-size:.9rem;opacity:.7;min-width:28px}.header-btn--shortcuts:hover{opacity:1}.header-btn--bug{opacity:.75}.header-btn--bug:hover:not(:disabled){opacity:1}.modal-input{width:100%;box-sizing:border-box;background:var(--bg-base);border:1px solid var(--border-card);border-radius:6px;padding:8px 10px;font-size:.85rem;color:var(--text-primary);outline:none}.modal-input:focus{border-color:#3b82f6}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--border)}.col-select{display:flex;flex-direction:column;gap:2px}.col-select-header,.col-select-row{display:grid;grid-template-columns:18px 1fr 1fr 62px;align-items:center;gap:4px}.col-select-header{padding:0 0 3px;border-bottom:1px solid var(--border);margin-bottom:1px}.col-select-hd{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);overflow:hidden;white-space:nowrap}.col-select-hd--chk{justify-self:center}.col-select-row{padding:2px 0}.col-select-row--off .col-select-name,.col-select-row--off .col-select-input,.col-select-row--off .col-select-type{opacity:.35}.col-select-check{accent-color:#60a5fa;width:12px;height:12px;cursor:pointer;justify-self:center}.col-select-input{background:var(--bg-base);border:1px solid var(--border-card);border-radius:3px;color:var(--text-primary);font-family:inherit;font-size:.72rem;padding:3px 5px;outline:none;width:100%;box-sizing:border-box;min-width:0}.col-select-input:focus{border-color:#60a5fa}.col-select-type{background:var(--bg-base);border:1px solid var(--border-card);border-radius:3px;color:var(--text-primary);font-size:.7rem;padding:3px 2px;outline:none;width:100%;cursor:pointer}.col-select-type:focus{border-color:#60a5fa}.col-select-name{font-size:.72rem;color:var(--text-primary);font-family:JetBrains Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;cursor:pointer;-webkit-user-select:none;user-select:none}.col-select-no-input{font-size:.72rem;color:#f87171;background:#f871711a;border:1px solid rgba(248,113,113,.25);border-radius:4px;padding:6px 8px;text-align:center}.col-select-no-input--warn{color:#fbbf24;background:#fbbf2414;border-color:#fbbf2440}.sort-keys{display:flex;flex-direction:column;gap:5px}.sort-key-card{background:var(--bg-base);border:1px solid var(--border-card);border-radius:5px;padding:6px 7px;display:flex;flex-direction:column;gap:5px}.sort-key-card-field{width:100%}.sort-key-field-select,.sort-key-field-input{width:100%;box-sizing:border-box;background:var(--bg-card);border:1px solid rgba(196,181,253,.45);border-radius:4px;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:500;padding:5px 8px;outline:none;cursor:pointer;transition:border-color .1s,background .1s}.sort-key-field-select:hover,.sort-key-field-input:hover{border-color:#c4b5fdb3}.sort-key-field-select:focus,.sort-key-field-input:focus{border-color:#c4b5fd;background:#2a1f4a}.sort-key-field-input::placeholder{color:var(--text-muted);font-style:italic}.sort-key-card-controls{display:flex;align-items:center;gap:4px}.sort-keys-select{background:var(--bg-base);border:1px solid var(--border-card);border-radius:3px;color:var(--text-secondary);font-family:inherit;font-size:.72rem;padding:3px 5px;outline:none;min-width:0;cursor:pointer;box-sizing:border-box}.sort-keys-select:focus{border-color:#c4b5fd}.sort-key-type-sel{flex:1}.sort-key-order-sel{width:68px;flex-shrink:0}.sort-keys-actions{display:flex;gap:2px;align-items:center;margin-left:auto;flex-shrink:0}.sort-keys-btn{background:var(--bg-card);border:1px solid var(--border-card);border-radius:3px;color:var(--text-secondary);font-size:.65rem;padding:2px 5px;cursor:pointer;line-height:1.4;flex-shrink:0}.sort-keys-btn:hover:not(:disabled){background:var(--bg-surface);color:var(--text-primary)}.sort-keys-btn:disabled{opacity:.3;cursor:not-allowed}.sort-keys-btn--remove{color:#f87171;border-color:#f871714d}.sort-keys-btn--remove:hover{background:#f871711f;color:#fca5a5}.sort-keys-add{margin-top:2px;background:transparent;border:1px dashed var(--border-card);border-radius:4px;color:var(--text-muted);font-size:.72rem;padding:5px 8px;cursor:pointer;width:100%;text-align:left;transition:border-color .1s,color .1s}.sort-keys-add:hover{border-color:#c4b5fd;color:#c4b5fd}.react-flow__background{background:var(--bg-base)}.react-flow__edge-path{stroke:#4b5563;stroke-width:2}.react-flow__edge.selected .react-flow__edge-path{stroke:#60a5fa}.react-flow__handle{background:#4b5563;border:2px solid var(--bg-base);width:10px;height:10px}.react-flow__handle:hover{background:#60a5fa}.react-flow__controls{background:var(--bg-card);border:1px solid var(--border-card);border-radius:8px;overflow:hidden}.react-flow__controls-button{background:var(--bg-card);border-color:var(--border-card);color:var(--text-muted)}.react-flow__controls-button:hover{background:var(--bg-input)}.react-flow__minimap{background:var(--bg-base);border:1px solid var(--border-card);border-radius:8px;box-shadow:0 4px 16px #0003;cursor:grab}.react-flow__minimap:active{cursor:grabbing}.react-flow__minimap-mask{fill:#0000008c}.react-flow__minimap-node{rx:3;ry:3}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 40px #00000073}.filebrowser-modal{width:540px;max-width:95vw;max-height:80vh}.modal-title{font-size:.85rem;font-weight:600;color:var(--text-primary)}.modal-close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:2px 6px;border-radius:4px;line-height:1}.modal-close-btn:hover{color:var(--text-primary);background:var(--bg-card)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--border);flex-shrink:0}.modal-btn{border-radius:6px;padding:6px 16px;font-size:.82rem;font-weight:500;cursor:pointer;border:1px solid var(--border-card);transition:background .1s,color .1s}.modal-btn--secondary{background:var(--bg-card);color:var(--text-secondary)}.modal-btn--secondary:hover{filter:brightness(1.15)}.modal-btn--primary{background:#2563eb;color:#fff;border-color:#2563eb}.modal-btn--primary:hover:not(:disabled){background:#3b82f6}.modal-btn:disabled{opacity:.4;cursor:not-allowed}.filebrowser-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:6px 12px;background:var(--bg-base);border-bottom:1px solid var(--border);font-size:.75rem;flex-shrink:0}.filebrowser-bc-btn{background:none;border:none;color:#60a5fa;cursor:pointer;padding:1px 3px;border-radius:3px;font-size:.75rem}.filebrowser-bc-btn:hover{background:var(--bg-card);color:var(--text-primary)}.filebrowser-bc-sep{color:var(--text-muted)}.filebrowser-filter{padding:6px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.filebrowser-filter-input{width:100%;box-sizing:border-box;background:var(--bg-base);border:1px solid var(--border-card);border-radius:5px;padding:5px 8px;font-size:.78rem;color:var(--text-primary);outline:none}.filebrowser-filter-input:focus{border-color:#3b82f6}.filebrowser-filter-input::placeholder{color:var(--text-muted)}.filebrowser-list{flex:1;overflow-y:auto;padding:4px 0;min-height:200px}.filebrowser-entry{display:flex;align-items:center;gap:6px;padding:5px 12px;cursor:pointer;font-size:.8rem;color:var(--text-primary);transition:background .08s}.filebrowser-entry:hover{background:var(--bg-card)}.filebrowser-entry--selected{background:#2563eb2e;color:#93c5fd}.filebrowser-entry--dir{color:var(--text-secondary)}.filebrowser-entry--disabled{opacity:.4;cursor:default}.filebrowser-entry-icon{font-size:.85rem;flex-shrink:0}.filebrowser-entry-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filebrowser-entry-size{font-size:.7rem;color:var(--text-muted);flex-shrink:0}.filebrowser-status{padding:12px 16px;font-size:.8rem;color:var(--text-muted);font-style:italic}.filebrowser-status--error{color:#f87171;font-style:normal}.filebrowser-selected-path{padding:7px 12px;border-top:1px solid var(--border);font-size:.75rem;flex-shrink:0}.filebrowser-path-value{color:#93c5fd;word-break:break-all;font-family:JetBrains Mono,monospace}.filebrowser-path-placeholder{color:var(--text-muted);font-style:italic}.filepath-param{display:flex;flex-direction:column;gap:6px}.filepath-row{display:flex;gap:6px;align-items:center}.filepath-input{flex:1;min-width:0;background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.72rem;padding:5px 7px;outline:none;transition:border-color .1s}.filepath-input:focus{border-color:#60a5fa}.filepath-input::placeholder{color:var(--text-muted);font-style:italic}.filepath-browse-btn{flex-shrink:0;background:var(--bg-card);border:1px solid var(--border-card);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:.75rem;padding:5px 9px;white-space:nowrap;transition:background .1s,color .1s}.filepath-browse-btn:hover{background:#1e3a5f;color:#93c5fd;border-color:#3b82f6}.filepath-format-opts{background:var(--bg-base);border:1px solid var(--border);border-radius:5px;padding:7px 9px;display:flex;flex-direction:column;gap:6px}.filepath-opt-row{display:flex;align-items:center;gap:8px;font-size:.75rem}.filepath-opt-label{color:var(--text-secondary);flex-shrink:0;min-width:64px;display:flex;align-items:center;gap:4px;cursor:default}.filepath-opt-select,.filepath-opt-input{flex:1;background:var(--bg-card);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-size:.75rem;padding:3px 6px;outline:none}.filepath-opt-select:focus,.filepath-opt-input:focus{border-color:#60a5fa}.filepath-preview{margin-top:2px}.filepath-preview-label{font-size:.7rem;color:var(--text-muted);margin-bottom:4px}.filepath-preview-status{font-size:.72rem;color:var(--text-muted);font-style:italic;padding:4px 0}.filepath-preview-status--error{color:#f87171;font-style:normal}.filepath-preview-table{overflow-x:auto;border-radius:4px;border:1px solid var(--border-card);max-height:140px;overflow-y:auto}.filepath-preview-table table{border-collapse:collapse;width:100%;font-size:.68rem}.filepath-preview-table th{background:var(--bg-base);color:var(--text-secondary);padding:3px 6px;text-align:left;border-bottom:1px solid var(--border-card);white-space:nowrap;font-weight:600;position:sticky;top:0}.filepath-preview-table td{padding:2px 6px;border-bottom:1px solid var(--border);color:var(--text-primary);white-space:nowrap}.filepath-mode-tabs{display:flex;gap:0;border:1px solid var(--border-card);border-radius:5px;overflow:hidden}.filepath-mode-tab{flex:1;background:var(--bg-base);border:none;border-right:1px solid var(--border-card);color:var(--text-muted);cursor:pointer;font-size:.72rem;padding:5px 8px;text-align:center;transition:background .1s,color .1s}.filepath-mode-tab:last-child{border-right:none}.filepath-mode-tab:hover{background:var(--bg-card);color:var(--text-secondary)}.filepath-mode-tab--active{background:#1e3a5f;color:#93c5fd;font-weight:600}.cloud-upload-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cloud-upload-btn{flex-shrink:0;background:#1e3a5f;border:1px solid #3b82f6;border-radius:4px;color:#93c5fd;cursor:pointer;font-size:.75rem;padding:5px 10px;transition:background .1s;white-space:nowrap}.cloud-upload-btn:hover:not(:disabled){background:#1d4ed8;color:#fff}.cloud-upload-btn:disabled{opacity:.6;cursor:default}.cloud-upload-hint{font-size:.68rem;color:var(--text-muted);font-style:italic;min-width:0}.cloud-file-list{display:flex;flex-direction:column;gap:3px;max-height:160px;overflow-y:auto;border:1px solid var(--border-card);border-radius:5px;padding:3px}.cloud-file-empty{font-size:.72rem;color:var(--text-muted);font-style:italic;padding:8px 6px;text-align:center}.cloud-file-item{display:flex;align-items:center;gap:7px;padding:5px 7px;border-radius:4px;cursor:pointer;border:1px solid transparent;transition:background .1s}.cloud-file-item:hover{background:var(--bg-card)}.cloud-file-item--selected{background:#2563eb26;border-color:#3b82f666}.cloud-file-icon{font-size:.85rem;flex-shrink:0;-webkit-user-select:none;user-select:none}.cloud-file-info{flex:1;min-width:0}.cloud-file-name{font-size:.73rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cloud-file-meta{font-size:.65rem;color:var(--text-muted);margin-top:1px}.cloud-file-del{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.8rem;line-height:1;padding:2px 4px;border-radius:3px}.cloud-file-del:hover{background:#ef444426;color:#f87171}.filter-param{display:flex;flex-direction:column;gap:6px}.filter-mode-toggle{display:flex;border:1px solid var(--border-card);border-radius:5px;overflow:hidden}.filter-mode-btn{flex:1;background:var(--bg-base);border:none;color:var(--text-muted);cursor:pointer;font-size:.73rem;padding:4px 0;transition:background .1s,color .1s}.filter-mode-btn:hover:not(.filter-mode-btn--active){color:var(--text-primary);background:var(--bg-card)}.filter-mode-btn--active{background:var(--bg-card);color:var(--text-primary);font-weight:600}.filter-builder{display:flex;flex-direction:column;gap:5px}.filter-builder-empty{font-size:.72rem;color:var(--text-muted);font-style:italic;padding:6px 0}.filter-builder-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.filter-builder-combo{font-size:.68rem;font-weight:700;color:#a78bfa;background:#1e1535;border:1px solid #4c1d95;border-radius:4px;padding:3px 4px;cursor:pointer;width:52px;flex-shrink:0}.filter-builder-field{flex:2;min-width:0;background:var(--bg-card);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-size:.73rem;padding:3px 5px}.filter-builder-condition{flex:2;min-width:0;background:var(--bg-card);border:1px solid var(--border-card);border-radius:4px;color:var(--text-secondary);font-size:.73rem;padding:3px 5px}.filter-builder-value{flex:2;min-width:0;background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-size:.73rem;padding:3px 5px;outline:none}.filter-builder-value:focus{border-color:#60a5fa}.filter-builder-value::placeholder{color:var(--text-muted);font-style:italic}.filter-builder-remove{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:0 2px;transition:color .1s}.filter-builder-remove:hover{color:#f87171}.filter-builder-add{align-self:flex-start;background:none;border:1px dashed var(--border-card);border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:.72rem;padding:3px 8px;transition:color .1s,border-color .1s}.filter-builder-add:hover{color:#93c5fd;border-color:#3b82f6}.filter-builder-str-opts{display:flex;align-items:center;gap:4px;flex-shrink:0}.filter-builder-opt{display:flex;align-items:center;gap:2px;font-size:.68rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.filter-builder-opt input[type=checkbox]{width:11px;height:11px;margin:0;accent-color:#3b82f6;cursor:pointer}.filter-builder-opt:has(input:checked){color:#93c5fd}.filter-builder-preview{font-size:.68rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;background:var(--bg-base);border:1px solid var(--border);border-radius:4px;padding:4px 7px;word-break:break-all;line-height:1.5}.db-conn-param{display:flex;flex-direction:column;gap:6px;background:var(--bg-base);border:1px solid var(--border);border-radius:5px;padding:8px 9px}.db-conn-row-pair{display:flex;gap:6px}.db-conn-row-pair .filepath-opt-row{flex:1;min-width:0}.db-conn-actions{display:flex;gap:6px;margin-top:2px}.db-conn-btn{flex:1;background:var(--bg-card);border:1px solid var(--border-card);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:.73rem;padding:5px 8px;transition:background .1s,color .1s,border-color .1s;white-space:nowrap}.db-conn-btn:hover:not(:disabled){background:#1e3a5f;color:#93c5fd;border-color:#3b82f6}.db-conn-btn:disabled{opacity:.45;cursor:not-allowed}.db-conn-btn--preview:hover:not(:disabled){background:#1a3a2a;color:#6ee7b7;border-color:#34d399}.db-conn-result{font-size:.72rem;padding:4px 6px;border-radius:4px}.db-conn-result--ok{color:#6ee7b7;background:#0f2a1e}.db-conn-result--err{color:#f87171;background:#2a0f0f}.options-field-select{width:100%;background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-size:.78rem;padding:5px 7px;outline:none}.options-field-select:focus{border-color:#60a5fa}.options-field-desc{font-size:.7rem;color:var(--text-muted);margin-top:3px}.options-field-required{color:#f87171}.gagg-wrap{display:flex;flex-direction:column;gap:5px}.gagg-row{display:flex;gap:5px;align-items:center}.gagg-select{background:var(--bg-input);border:1px solid var(--border);border-radius:5px;color:var(--text-primary);font-size:.78rem;padding:4px 6px;cursor:pointer}.gagg-select:focus{outline:none;border-color:#3b82f6}.gagg-select--col{flex:1;min-width:0}.gagg-select--fn{flex:1.4;min-width:0}.gagg-del{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.75rem;padding:2px 4px;border-radius:4px;flex-shrink:0;line-height:1}.gagg-del:hover{color:#f87171;background:#f871711a}.gagg-add{background:none;border:1px dashed var(--border-card);border-radius:5px;color:var(--text-muted);font-size:.75rem;padding:4px 8px;cursor:pointer;text-align:left;margin-top:2px;transition:border-color .15s,color .15s}.gagg-add:hover{border-color:#3b82f6;color:#60a5fa}.gagg-agg-block{display:flex;flex-direction:column;gap:3px}.gagg-output-row{display:flex;align-items:center;gap:5px;padding-left:4px}.gagg-output-arrow{color:#475569;font-size:.72rem;flex-shrink:0}.gagg-output-input{flex:1;min-width:0;background:var(--bg-input);border:1px dashed var(--border);border-radius:4px;color:var(--text-muted);font-size:.72rem;padding:2px 6px;font-family:monospace}.gagg-output-input:focus{outline:none;border-color:#3b82f6;border-style:solid;color:var(--text-primary)}.gagg-sep-row{display:flex;align-items:center;gap:6px;margin-top:2px;padding-top:4px;border-top:1px solid var(--border)}.gagg-sep-label{font-size:.72rem;color:var(--text-muted);flex-shrink:0}.gagg-sep-input{flex:1;min-width:0;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:.75rem;padding:3px 6px;max-width:80px}.gagg-sep-input:focus{outline:none;border-color:#3b82f6}.msd-wrap{position:relative;width:100%}.msd-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.78rem;padding:5px 8px;cursor:pointer;text-align:left;gap:6px;transition:border-color .15s}.msd-trigger:hover{border-color:#475569}.msd-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msd-placeholder{color:var(--text-muted)}.msd-arrow{color:var(--text-muted);font-size:.6rem;flex-shrink:0}.msd-dropdown{position:absolute;top:calc(100% + 3px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border-card);border-radius:6px;box-shadow:0 8px 24px #0006;z-index:200;max-height:200px;overflow-y:auto;padding:4px 0}.msd-item{display:flex;align-items:center;gap:8px;padding:5px 10px;font-size:.8rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.msd-item:hover{background:var(--bg-surface);color:var(--text-primary)}.msd-item--on{color:var(--text-primary)}.msd-item input[type=checkbox]{cursor:pointer;accent-color:#3b82f6;flex-shrink:0;margin:0}.options-field-checkbox{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.field-picker{width:100%;background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-size:.78rem;padding:5px 7px;outline:none}.field-picker:focus{border-color:#60a5fa}.filter-expr-param{display:flex;flex-direction:column;gap:6px}.filter-expr-textarea{width:100%;box-sizing:border-box;background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.76rem;padding:6px 8px;resize:vertical;outline:none;transition:border-color .1s;min-height:56px}.filter-expr-textarea:focus{border-color:#60a5fa}.filter-expr-textarea::placeholder{color:var(--text-muted);font-style:italic}.filter-expr-fields{display:flex;flex-direction:column;gap:5px}.filter-expr-fields-toggle{background:none;border:none;color:var(--text-muted);font-size:.72rem;cursor:pointer;text-align:left;padding:0;transition:color .1s}.filter-expr-fields-toggle:hover{color:var(--text-secondary)}.filter-expr-chips{display:flex;flex-wrap:wrap;gap:4px}.filter-expr-chip{display:inline-flex;align-items:center;gap:4px;border:none;border-radius:4px;font-size:.72rem;font-family:JetBrains Mono,monospace;padding:3px 7px;cursor:pointer;transition:filter .1s;white-space:nowrap}.filter-expr-chip:hover{filter:brightness(1.25)}.filter-expr-chip-type{font-size:.62rem;opacity:.7;font-family:inherit}.options-port-schema-badge{margin-left:auto;font-size:.65rem;color:#60a5fa;background:#60a5fa1a;border-radius:3px;padding:1px 5px;cursor:default;white-space:nowrap}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-canvas)}.auth-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:2.5rem 2rem;width:360px;max-width:95vw;display:flex;flex-direction:column;align-items:center;gap:.5rem}.auth-logo{font-size:2rem;font-weight:700;letter-spacing:-.5px;margin-bottom:.1rem}.auth-logo-mez{color:var(--text-primary)}.auth-logo-lytics{color:#6366f1}.auth-tagline{font-size:.85rem;color:var(--text-muted);margin:0}.auth-tabs{display:flex;gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden;width:100%;margin-top:1.2rem}.auth-tab{flex:1;padding:.45rem 0;font-size:.85rem;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.auth-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.auth-tab--active{background:#6366f1;color:#fff;font-weight:600}.auth-form{display:flex;flex-direction:column;gap:.85rem;width:100%;margin-top:.8rem}.auth-label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--text-secondary);font-weight:500}.auth-input{padding:.5rem .65rem;background:var(--bg-input);border:1px solid var(--border);border-radius:5px;color:var(--text-primary);font-size:.9rem;outline:none;transition:border-color .15s}.auth-input:focus{border-color:#6366f1}.auth-error{background:#ef44441f;border:1px solid rgba(239,68,68,.35);border-radius:5px;color:#f87171;font-size:.82rem;padding:.5rem .7rem}.auth-submit{padding:.6rem;background:#6366f1;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;margin-top:.3rem;transition:background .15s}.auth-submit:hover:not(:disabled){background:#4f46e5}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:1.2rem 0 .1rem}.auth-subtext{font-size:.82rem;color:var(--text-muted);margin:0 0 .25rem;text-align:center}.auth-field-hint{font-size:.75rem;margin-top:.2rem}.auth-field-hint--error{color:#f87171}.auth-field-hint--ok{color:#6ee7b7}.auth-input--error{border-color:#ef444499}.auth-info-msg{font-size:.83rem;color:#93c5fd;padding:8px 10px;background:#2563eb1a;border-radius:5px;border:1px solid rgba(59,130,246,.25)}.auth-info-box{background:#2563eb14;border:1px solid rgba(59,130,246,.2);border-radius:6px;padding:14px 16px;font-size:.85rem;color:var(--text-secondary);margin:1rem 0}.auth-success-box{display:flex;align-items:center;gap:10px;background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:6px;padding:14px 16px;color:#6ee7b7;font-size:.88rem;margin:1rem 0}.auth-success-icon{font-size:1.2rem;font-weight:700}.auth-footer-links{display:flex;justify-content:space-between;gap:8px;margin-top:.5rem;flex-wrap:wrap}.auth-link-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.78rem;padding:4px 0;text-decoration:underline;text-underline-offset:2px}.auth-link-btn:hover{color:#93c5fd}.auth-link-btn:disabled{opacity:.5;cursor:default}.verify-notice{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#eab3081f;border-bottom:1px solid rgba(234,179,8,.3);font-size:.8rem;color:#fcd34d;flex-shrink:0;flex-wrap:wrap}.verify-notice-btn{background:#eab30833;border:1px solid rgba(234,179,8,.4);border-radius:4px;color:#fcd34d;cursor:pointer;font-size:.75rem;padding:3px 10px;white-space:nowrap}.verify-notice-btn:hover:not(:disabled){background:#eab30859}.verify-notice-btn:disabled{opacity:.55;cursor:default}.verify-notice-dismiss{margin-left:auto;background:none;border:none;color:#eab308b3;cursor:pointer;font-size:.85rem;padding:2px 4px;line-height:1}.verify-notice-dismiss:hover{color:#eab308}.verify-toast{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:10px;background:#064e3b;border:1px solid #059669;border-radius:6px;color:#6ee7b7;font-size:.85rem;padding:10px 14px;box-shadow:0 4px 16px #0006;max-width:420px}.verify-toast--err{background:#450a0a;border-color:#dc2626;color:#fca5a5}.verify-toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:.9rem;opacity:.7;padding:0 2px}.verify-toast-close:hover{opacity:1}.header-btn--account{font-size:.78rem;color:var(--text-muted);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;background:none;border:1px solid transparent;border-radius:5px;padding:3px 8px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.header-btn--account:hover{color:var(--text-primary);border-color:var(--border);background:var(--bg-card)}.header-btn--logout{margin-left:0;color:#f87171;border-color:#f871714d}.header-btn--logout:hover{background:#f871711a;border-color:#f87171}.modal--connections{width:min(560px,92vw);max-height:80vh;display:flex;flex-direction:column}.conn-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}.conn-row:last-of-type{border-bottom:none}.conn-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.conn-row-name{font-size:.82rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conn-row-sub{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conn-row-type{background:var(--bg-base);border:1px solid var(--border-card);border-radius:3px;padding:0 4px;font-size:.65rem;font-family:JetBrains Mono,monospace;color:var(--text-secondary)}.conn-row-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.conn-row-btn{background:var(--bg-card);border:1px solid var(--border-card);border-radius:4px;color:var(--text-secondary);font-size:.72rem;padding:2px 8px;cursor:pointer;transition:border-color .1s,color .1s}.conn-row-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.conn-row-btn--delete:hover{color:#f87171;border-color:#f87171}.conn-row-btn:disabled{opacity:.4;cursor:not-allowed}.conn-row-test-badge{font-size:.75rem;font-weight:600;padding:0 4px}.conn-row-test-badge--ok{color:#34d399}.conn-row-test-badge--err{color:#f87171}.conn-new-btn{margin-top:12px;background:var(--bg-card);border:1px dashed var(--border-card);border-radius:6px;color:var(--text-secondary);font-size:.8rem;padding:8px 14px;cursor:pointer;width:100%;transition:border-color .1s,color .1s}.conn-new-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.conn-form{display:flex;flex-direction:column;gap:10px}.conn-form-field{display:flex;flex-direction:column;gap:4px}.conn-form-row{display:flex;gap:10px}.conn-form-label{font-size:.72rem;color:var(--text-muted);font-weight:500}.conn-form-input,.conn-form-select{background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-size:.8rem;padding:5px 8px;width:100%;box-sizing:border-box}.conn-form-input:focus,.conn-form-select:focus{border-color:#3b82f6;outline:none}.conn-form-actions{display:flex;align-items:center;gap:6px;margin-top:4px}.conn-btn{background:var(--bg-card);border:1px solid var(--border-card);border-radius:5px;color:var(--text-secondary);font-size:.78rem;padding:5px 12px;cursor:pointer;transition:background .1s,color .1s}.conn-btn:hover:not(:disabled){color:var(--text-primary)}.conn-btn:disabled{opacity:.4;cursor:not-allowed}.conn-btn--primary{background:#2563eb;border-color:#2563eb;color:#fff}.conn-btn--primary:hover:not(:disabled){background:#3b82f6}.conn-btn--test{font-size:.72rem;padding:4px 10px}.conn-test-result{font-size:.75rem;padding:4px 8px;border-radius:4px}.conn-test-result--ok{color:#34d399;background:#34d3991a}.conn-test-result--err{color:#f87171;background:#f871711a}.conn-form-error{font-size:.75rem;color:#f87171}.db-conn-saved-row{display:flex;align-items:center;gap:4px;margin-bottom:6px}.db-conn-saved-select{flex:1;background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-size:.75rem;padding:4px 6px}.db-conn-manage-btn{background:none;border:1px solid var(--border-card);border-radius:4px;color:var(--text-muted);font-size:.85rem;padding:3px 7px;cursor:pointer;line-height:1;flex-shrink:0}.db-conn-manage-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.db-conn-saved-summary{font-size:.72rem;color:var(--text-secondary);background:var(--bg-base);border:1px solid var(--border-card);border-radius:4px;padding:5px 8px;display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.db-conn-saved-summary--missing{color:#f87171;border-color:#f871714d}.db-conn-saved-type{font-family:JetBrains Mono,monospace;font-size:.65rem;background:var(--bg-surface);border:1px solid var(--border-card);border-radius:3px;padding:0 4px;color:var(--text-muted);width:fit-content;margin-bottom:2px}.db-conn-saved-user{color:var(--text-muted);font-size:.68rem}.sched-row{background:var(--bg-card);border:1px solid var(--border-card);border-radius:8px;padding:14px 16px;margin-bottom:10px}.sched-row-main{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sched-cron{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:4px;padding:2px 8px;flex-shrink:0}.sched-status{font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:100px;flex-shrink:0}.sched-status--on{background:#34d3991f;color:#34d399}.sched-status--off{background:#64748b1f;color:var(--text-muted)}.sched-meta{font-size:.78rem;color:var(--text-muted);flex-shrink:0}.sched-actions{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}.sched-btn{background:var(--bg-surface);border:1px solid var(--border-card);color:var(--text-secondary);border-radius:5px;padding:3px 10px;font-size:.78rem;cursor:pointer;transition:background .15s,color .15s}.sched-btn:hover:not(:disabled){background:var(--bg-input);color:var(--text-primary)}.sched-btn:disabled{opacity:.4;cursor:not-allowed}.sched-btn--delete{color:#f87171;border-color:#f8717140}.sched-btn--delete:hover:not(:disabled){background:#f871711a}.sched-btn--history{min-width:80px}.sched-runs{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}.sched-runs-empty{color:var(--text-muted);font-size:.82rem;text-align:center;padding:12px 0}.sched-runs-table{width:100%;border-collapse:collapse;font-size:.78rem}.sched-runs-table th{text-align:left;color:var(--text-muted);font-weight:600;padding:4px 8px 6px;border-bottom:1px solid var(--border)}.sched-runs-table td{padding:5px 8px;color:var(--text-secondary);border-bottom:1px solid var(--border)}.sched-run-error{color:#f87171;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sched-edit-form{padding:4px 0}.sched-label{display:block;font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:6px}.sched-input{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.9rem;padding:6px 10px;margin-bottom:10px}.sched-input:focus{outline:none;border-color:#3b82f6}.sched-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.sched-preset{background:var(--bg-surface);border:1px solid var(--border-card);border-radius:5px;color:var(--text-secondary);font-size:.75rem;padding:3px 10px;cursor:pointer;transition:background .15s,color .15s}.sched-preset:hover{background:var(--bg-input);color:var(--text-primary)}.sched-cron-help{font-size:.75rem;color:var(--text-muted);margin-bottom:10px}.sched-cron-help code{color:var(--text-secondary)}.sched-error{color:#f87171;font-size:.82rem;margin-bottom:8px}.sched-form-btns{display:flex;gap:8px;margin-top:4px}.header-btn--schedule{background:#a78bfa1f;color:#a78bfa;border:1px solid rgba(167,139,250,.25)}.header-btn--schedule:hover{background:#a78bfa33}.modal--account-settings{width:min(480px,92vw);max-height:80vh;display:flex;flex-direction:column}.account-settings-user{font-size:.85rem;color:var(--text-muted);margin-bottom:16px}.account-settings-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:0}.account-settings-tab{background:none;border:none;border-bottom:2px solid transparent;padding:6px 14px;font-size:.88rem;color:var(--text-muted);cursor:pointer;margin-bottom:-1px;transition:color .15s,border-color .15s}.account-settings-tab:hover{color:var(--text-primary)}.account-settings-tab--active{color:var(--text-primary);border-bottom-color:#3b82f6;font-weight:600}.account-settings-form{display:flex;flex-direction:column;gap:14px}.account-settings-form label{display:flex;flex-direction:column;gap:5px;font-size:.84rem;color:var(--text-secondary)}.account-settings-form input{padding:7px 10px;border-radius:5px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-size:.9rem}.account-settings-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171;border-radius:5px;padding:8px 12px;font-size:.84rem}.account-settings-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#4ade80;border-radius:5px;padding:8px 12px;font-size:.84rem}.join-suggest-wrap{margin-top:6px;padding:8px 10px;background:#3b82f60f;border:1px solid rgba(59,130,246,.2);border-radius:6px;display:flex;flex-direction:column;gap:5px}.join-suggest-title{font-size:.65rem;font-weight:600;color:#60a5fa;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.join-suggest-empty{font-size:.7rem;color:var(--text-muted);font-style:italic}.join-suggest-row{display:flex;align-items:center;gap:6px}.join-suggest-pair{flex:1;display:flex;align-items:center;gap:4px;font-size:.7rem;min-width:0}.join-suggest-col{background:#ffffff0f;border-radius:3px;padding:1px 5px;font-family:monospace;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.join-suggest-arrow{color:var(--text-muted);flex-shrink:0}.join-suggest-use{flex-shrink:0;font-size:.65rem;padding:2px 7px;border-radius:4px;border:1px solid rgba(59,130,246,.4);background:transparent;color:#60a5fa;cursor:pointer}.join-suggest-use:hover{background:#3b82f626;border-color:#3b82f6}.dv-overlay{align-items:center;justify-content:center}.dv-box{width:min(1200px,94vw);height:min(78vh,760px);display:flex;flex-direction:column;max-height:78vh}.dv-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.dv-title{font-size:.85rem;font-weight:600;color:var(--text-primary)}.dv-table-wrap{flex:1;overflow:auto}.dv-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:.78rem}.dv-th{position:sticky;top:0;background:var(--bg-base);color:var(--text-secondary);padding:5px 10px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600}.dv-th:hover,.dv-th--sorted{background:var(--bg-card)}.dv-col-name{margin-right:4px}.dv-type-badge{font-size:.65rem;font-weight:400;margin-right:4px;opacity:.85}.dv-sort-icon{font-size:.65rem;color:var(--text-muted)}.dv-td{padding:3px 10px;border-bottom:1px solid var(--border);color:var(--text-primary);white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.dv-table tr:hover .dv-td{background:var(--bg-card)}.dv-footer{display:flex;align-items:center;gap:10px;padding:8px 14px;border-top:1px solid var(--border);flex-shrink:0}.dv-load-more{background:#2563eb;color:#fff;border:none;border-radius:6px;padding:5px 14px;font-size:.8rem;cursor:pointer}.dv-load-more:hover:not(:disabled){background:#3b82f6}.dv-load-more:disabled{opacity:.5;cursor:not-allowed}.dv-load-error{font-size:.75rem;color:#f87171}.dv-empty{padding:20px;color:var(--text-muted);font-size:.8rem;text-align:center}.mez-node-view-all{display:block;margin-top:4px;font-size:.68rem;color:#60a5fa;cursor:pointer;background:none;border:none;padding:0;text-align:left}.mez-node-view-all:hover{text-decoration:underline}.ei-panel{position:fixed;z-index:1000;background:#1e2535;border:1px solid #334155;border-radius:8px;box-shadow:0 8px 32px #00000080;width:380px;max-height:420px;display:flex;flex-direction:column;overflow:hidden;font-size:.8rem}.ei-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid #334155;background:#151c2c;gap:8px;flex-shrink:0}.ei-title{display:flex;align-items:center;gap:2px;font-size:.75rem;color:#94a3b8;overflow:hidden}.ei-node-name{color:#e2e8f0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.ei-arrow{color:#475569;flex-shrink:0}.ei-close{background:none;border:none;color:#64748b;cursor:pointer;font-size:.8rem;padding:2px 4px;flex-shrink:0;border-radius:3px}.ei-close:hover{color:#e2e8f0;background:#334155}.ei-state-msg{padding:16px 12px;color:#64748b;font-style:italic}.ei-state-error{color:#f87171;font-style:normal}.ei-schema{display:flex;flex-wrap:wrap;gap:4px;padding:8px 10px;border-bottom:1px solid #1e2535;background:#0f172a;flex-shrink:0}.ei-field{display:inline-flex;align-items:center;gap:4px;background:#1e2535;border:1px solid #334155;border-radius:4px;padding:2px 6px}.ei-field-name{color:#cbd5e1;font-size:.72rem}.ei-field-type{font-size:.65rem;opacity:.85}.ei-table-wrap{overflow:auto;flex:1}.ei-table{width:100%;border-collapse:collapse;font-size:.72rem}.ei-th{padding:5px 8px;text-align:left;color:#94a3b8;font-weight:500;border-bottom:1px solid #334155;background:#151c2c;position:sticky;top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.ei-td{padding:4px 8px;color:#cbd5e1;border-bottom:1px solid #1e2535;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.ei-table tbody tr:hover .ei-td{background:#1e2535}.ei-more-rows{padding:5px 10px;color:#475569;font-style:italic;font-size:.7rem;border-top:1px solid #1e2535}.sql-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:1200;display:flex;align-items:center;justify-content:center}.sql-modal-box{width:min(1280px,96vw);height:min(82vh,820px);background:#0f172a;border:1px solid #334155;border-radius:10px;box-shadow:0 12px 48px #0009;display:flex;flex-direction:column;overflow:hidden}.sql-modal-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#151c2c;border-bottom:1px solid #1e2535;gap:12px;flex-shrink:0;flex-wrap:wrap}.sql-modal-title-row{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.sql-modal-title{font-size:.85rem;font-weight:600;color:#e2e8f0;white-space:nowrap}.sql-modal-conn-badge{font-size:.72rem;background:#1e2535;border:1px solid #334155;border-radius:4px;padding:1px 7px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.sql-schema-status{font-size:.7rem;color:#64748b;font-style:italic}.sql-schema-ok{color:#34d399;font-style:normal}.sql-schema-err{color:#f87171;font-style:normal}.sql-modal-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.sql-btn{padding:4px 12px;font-size:.76rem;border-radius:5px;border:1px solid transparent;cursor:pointer;font-weight:500;white-space:nowrap}.sql-btn-ghost{background:none;border-color:#334155;color:#94a3b8}.sql-btn-ghost:hover:not(:disabled){background:#1e2535;color:#e2e8f0}.sql-btn-ghost:disabled{opacity:.4;cursor:default}.sql-btn-active{background:#1e2535;color:#e2e8f0}.sql-btn-primary{background:#1d4ed8;border-color:#2563eb;color:#fff}.sql-btn-primary:hover:not(:disabled){background:#2563eb}.sql-btn-primary:disabled{opacity:.5;cursor:default}.sql-btn-save{background:#065f46;border-color:#059669;color:#6ee7b7}.sql-btn-save:hover{background:#047857}.sql-modal-close{background:none;border:none;color:#64748b;cursor:pointer;font-size:.85rem;padding:3px 6px;border-radius:4px}.sql-modal-close:hover{background:#334155;color:#e2e8f0}.sql-format-error{padding:5px 12px;background:#450a0a;color:#fca5a5;font-size:.75rem;border-bottom:1px solid #7f1d1d;flex-shrink:0}.sql-history-wrap{position:relative}.sql-history-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:1300;background:#1e2535;border:1px solid #334155;border-radius:6px;box-shadow:0 6px 24px #00000080;min-width:320px;max-height:280px;overflow-y:auto}.sql-history-item{display:block;width:100%;padding:7px 12px;background:none;border:none;border-bottom:1px solid #1e2535;text-align:left;cursor:pointer;color:#94a3b8}.sql-history-item:hover{background:#334155;color:#e2e8f0}.sql-history-item:last-child{border-bottom:none}.sql-history-text{font-family:monospace;font-size:.72rem;white-space:nowrap}.sql-modal-body{display:flex;flex:1;overflow:hidden}.sql-editor-pane{flex:1;overflow:hidden;display:flex;flex-direction:column}.sql-editor-pane .cm-editor{height:100%!important}.sql-editor-pane .cm-scroller{overflow:auto!important}.sql-schema-sidebar{width:200px;flex-shrink:0;background:#0a1020;border-left:1px solid #1e2535;overflow-y:auto;font-size:.72rem}.sql-schema-header{padding:6px 10px;color:#64748b;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #1e2535;position:sticky;top:0;background:#0a1020}.sql-schema-table{border-bottom:1px solid #0f172a}.sql-schema-table-name{display:flex;align-items:center;gap:4px;width:100%;padding:5px 8px;background:none;border:none;cursor:pointer;text-align:left;color:#94a3b8}.sql-schema-table-name:hover{background:#1e2535;color:#e2e8f0}.sql-schema-chevron{color:#475569;font-size:.65rem;flex-shrink:0}.sql-schema-insert-name{flex:1;color:#c7d2fe;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sql-schema-insert-name:hover{text-decoration:underline;color:#a5b4fc}.sql-schema-col-count{font-size:.65rem;color:#475569;flex-shrink:0}.sql-schema-cols{padding:0 0 4px 12px}.sql-schema-col{display:flex;align-items:center;justify-content:space-between;width:100%;padding:3px 8px;background:none;border:none;cursor:pointer;text-align:left;color:#64748b;font-size:.7rem;gap:6px}.sql-schema-col:hover{background:#1e2535;color:#cbd5e1}.sql-schema-col-name{color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sql-schema-col-type{color:#475569;font-size:.65rem;flex-shrink:0}.sql-preview-pane{flex-shrink:0;max-height:220px;border-top:1px solid #1e2535;background:#0a1020;overflow:hidden;display:flex;flex-direction:column}.sql-preview-header{padding:5px 12px;font-size:.72rem;color:#64748b;border-bottom:1px solid #1e2535;flex-shrink:0}.sql-preview-table-wrap{overflow:auto;flex:1}.sql-preview-table{width:100%;border-collapse:collapse;font-size:.72rem}.sql-preview-th{padding:4px 10px;text-align:left;color:#94a3b8;font-weight:500;border-bottom:1px solid #1e2535;background:#0a1020;position:sticky;top:0;white-space:nowrap}.sql-preview-td{padding:3px 10px;color:#cbd5e1;border-bottom:1px solid #0f172a;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.sql-preview-error{padding:12px;color:#f87171;font-size:.78rem}.sql-param-wrap{display:flex;flex-direction:column;gap:4px}.sql-param-textarea{font-family:JetBrains Mono,Fira Code,monospace;font-size:.72rem;resize:vertical}.sql-open-editor-btn{align-self:flex-start;background:none;border:1px solid #334155;border-radius:4px;color:#60a5fa;font-size:.72rem;padding:3px 8px;cursor:pointer}.sql-open-editor-btn:hover{background:#1e2535;color:#93c5fd}.options-open-report-btn{width:100%;background:#0f3a2a;border:1px solid #6ee7b7;border-radius:6px;color:#6ee7b7;font-size:.8rem;font-weight:600;padding:8px 12px;cursor:pointer;text-align:center;letter-spacing:.02em}.options-open-report-btn:hover{background:#134d36;color:#a7f3d0}.multi-select-panel{position:fixed;right:0;top:50%;transform:translateY(-50%);width:200px;background:#131825;border:1px solid #1e2a40;border-right:none;border-radius:10px 0 0 10px;padding:16px 14px;display:flex;flex-direction:column;gap:12px;z-index:10;box-shadow:-4px 0 20px #0000004d}.multi-select-header{display:flex;align-items:center}.multi-select-count{font-size:.85rem;font-weight:700;color:#e2e8f0}.multi-select-breakdown{display:flex;flex-wrap:wrap;gap:5px}.multi-select-chip{font-size:.7rem;border-radius:8px;padding:2px 8px;font-weight:600}.multi-select-chip--input{background:#0c2a1a;color:var(--node-input-accent);border:1px solid var(--node-input-accent)}.multi-select-chip--transform{background:#0c1a2e;color:var(--node-transform-accent);border:1px solid var(--node-transform-accent)}.multi-select-chip--output{background:#2a1a0c;color:var(--node-output-accent);border:1px solid var(--node-output-accent)}.multi-select-actions{display:flex;flex-direction:column;gap:6px}.multi-select-btn{background:#1e2a40;border:1px solid #334155;border-radius:6px;color:#cbd5e1;font-size:.78rem;font-weight:500;padding:7px 10px;cursor:pointer;text-align:left}.multi-select-btn:hover{background:#334155;color:#e2e8f0}.multi-select-btn--danger:hover{background:#3b1212;border-color:#ef4444;color:#f87171}.nhm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;display:flex;align-items:center;justify-content:center}.nhm-modal{display:flex;width:min(900px,94vw);height:min(640px,88vh);background:#0d1117;border:1px solid #1e2a40;border-radius:12px;overflow:hidden;box-shadow:0 24px 64px #0009}.nhm-left{width:220px;flex-shrink:0;background:#131825;border-right:1px solid #1e2a40;display:flex;flex-direction:column}.nhm-search-wrap{padding:12px 10px 8px;border-bottom:1px solid #1e2a40;flex-shrink:0}.nhm-search{width:100%;background:#0d1117;border:1px solid #1e2a40;border-radius:5px;color:#e2e8f0;font-size:.8rem;padding:5px 8px;outline:none;box-sizing:border-box}.nhm-search:focus{border-color:#3b82f6}.nhm-node-list{flex:1;overflow-y:auto;padding:8px 6px}.nhm-group{margin-bottom:8px}.nhm-group-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:4px 6px 3px}.nhm-node-btn{display:block;width:100%;text-align:left;background:none;border:none;border-left:3px solid transparent;border-radius:0 5px 5px 0;color:#94a3b8;font-size:.8rem;padding:5px 8px;cursor:pointer;margin-bottom:1px}.nhm-node-btn:hover,.nhm-node-btn--active{background:#1e2a40;color:#e2e8f0}.nhm-empty{font-size:.78rem;color:#475569;padding:12px 8px}.nhm-right{flex:1;overflow-y:auto;position:relative;padding:0}.nhm-close{position:absolute;top:12px;right:14px;background:none;border:none;color:#475569;font-size:1rem;cursor:pointer;z-index:1;padding:2px 4px}.nhm-close:hover{color:#e2e8f0}.nhm-right-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#334155;font-size:.85rem}.nhm-detail{padding:20px 24px 32px}.nhm-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;padding-right:28px}.nhm-detail-title{font-size:1.15rem;font-weight:700;color:#e2e8f0;margin-right:8px}.nhm-detail-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;border:1px solid;border-radius:8px;padding:2px 7px;vertical-align:middle}.nhm-detail-desc{font-size:.85rem;color:#94a3b8;line-height:1.55;margin:0 0 18px}.nhm-examples-btn{flex-shrink:0;background:#1d4ed8;border:none;border-radius:6px;color:#fff;font-size:.78rem;font-weight:600;padding:6px 12px;cursor:pointer;white-space:nowrap}.nhm-examples-btn:hover{background:#2563eb}.nhm-section{margin-bottom:20px}.nhm-section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#64748b;margin-bottom:8px}.nhm-table{width:100%;border-collapse:collapse;font-size:.8rem}.nhm-table th{text-align:left;padding:5px 8px;color:#475569;font-size:.7rem;font-weight:600;border-bottom:1px solid #1e2a40}.nhm-table td{padding:6px 8px;color:#cbd5e1;border-bottom:1px solid #0f172a;vertical-align:top}.nhm-table tr:last-child td{border-bottom:none}.nhm-table tr:hover td{background:#131825}.nhm-code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.75rem;background:#1e2a40;border-radius:3px;padding:1px 5px;color:#93c5fd}.nhm-muted{color:#64748b}.nhm-default{font-family:monospace;font-size:.75rem}.nhm-required{color:#f59e0b;font-weight:700}.nhm-required-note{font-size:.68rem;color:#475569;margin-top:4px}.prm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:220;display:flex;align-items:center;justify-content:center}.prm-modal{display:flex;width:min(880px,94vw);height:min(620px,88vh);background:#0d1117;border:1px solid #1e2a40;border-radius:12px;overflow:hidden;box-shadow:0 24px 64px #0009}.prm-left{width:200px;flex-shrink:0;background:#131825;border-right:1px solid #1e2a40;display:flex;flex-direction:column}.prm-search-wrap{padding:12px 10px 8px;border-bottom:1px solid #1e2a40;flex-shrink:0}.prm-search{width:100%;background:#0d1117;border:1px solid #1e2a40;border-radius:5px;color:#e2e8f0;font-size:.8rem;padding:5px 8px;outline:none;box-sizing:border-box}.prm-search:focus{border-color:#3b82f6}.prm-cat-list{flex:1;overflow-y:auto;padding:8px 6px}.prm-cat-btn{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;background:none;border:none;border-left:3px solid transparent;border-radius:0 5px 5px 0;color:#94a3b8;font-size:.82rem;padding:6px 8px;cursor:pointer;margin-bottom:1px;box-sizing:border-box}.prm-cat-btn:hover,.prm-cat-btn--active{background:#1e2a40;color:#e2e8f0}.prm-cat-count{font-size:.68rem;color:#475569}.prm-empty{font-size:.78rem;color:#475569;padding:12px 8px}.prm-right{flex:1;overflow-y:auto;position:relative;padding:0}.prm-close{position:absolute;top:12px;right:14px;background:none;border:none;color:#475569;font-size:1rem;cursor:pointer;z-index:1;padding:2px 4px}.prm-close:hover{color:#e2e8f0}.prm-right-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#334155;font-size:.85rem}.prm-detail{padding:20px 24px 32px}.prm-detail-header{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-right:28px}.prm-detail-title{font-size:1.1rem;font-weight:700;color:#e2e8f0}.prm-detail-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;border:1px solid;border-radius:8px;padding:2px 7px}.prm-entry{padding:10px 0;border-bottom:1px solid #1e2a40}.prm-entry:last-child{border-bottom:none}.prm-entry-name{font-size:.85rem;font-weight:600;color:#e2e8f0;margin-bottom:2px}.prm-entry-desc{font-size:.78rem;color:#94a3b8;margin-bottom:6px;line-height:1.45}.prm-entry-code-row{display:flex;align-items:center;gap:6px}.prm-entry-code{flex:1;font-family:JetBrains Mono,Fira Code,monospace;font-size:.76rem;background:#131825;border:1px solid #1e2a40;border-radius:5px;padding:6px 9px;color:#93c5fd;overflow-x:auto;white-space:pre}.prm-copy-btn{flex-shrink:0;background:#1e2a40;border:none;border-radius:5px;color:#94a3b8;font-size:.85rem;padding:5px 8px;cursor:pointer}.prm-copy-btn:hover{background:#2563eb;color:#fff}:root{--node-input-accent: #34d399;--node-transform-accent: #60a5fa;--node-output-accent: #f59e0b}[data-theme=light]{--node-input-accent: #059669;--node-transform-accent: #2563eb;--node-output-accent: #d97706}.mez-node{background:var(--bg-surface);border:1.5px solid var(--border-card);border-radius:8px;min-width:160px;max-width:240px;font-size:.8rem;box-shadow:0 4px 16px #0003;border-left-width:4px}.mez-node.input{border-left-color:var(--node-input-accent)}.mez-node.transform{border-left-color:var(--node-transform-accent)}.mez-node.output{border-left-color:var(--node-output-accent)}.mez-node.selected{border-color:#e2e8f0;border-left-color:#e2e8f0;box-shadow:0 0 0 2px #e2e8f033}.mez-node-header{padding:7px 10px 5px;border-radius:6px 6px 0 0;display:flex;flex-direction:column;gap:2px;cursor:default}.mez-node-header-meta{display:flex;align-items:center;gap:4px}.mez-node-category{font-size:.62rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.mez-node-header.input .mez-node-category{color:var(--node-input-accent)}.mez-node-header.transform .mez-node-category{color:var(--node-transform-accent)}.mez-node-header.output .mez-node-category{color:var(--node-output-accent)}.mez-node-header.input .mez-node-icon{color:var(--node-input-accent)}.mez-node-header.transform .mez-node-icon{color:var(--node-transform-accent)}.mez-node-header.output .mez-node-icon{color:var(--node-output-accent)}.mez-node-header-name{display:flex;align-items:center;gap:6px;font-weight:600;font-size:.8rem;color:var(--text-primary)}.mez-node-icon{width:14px;height:14px;display:inline-block}.mez-node-body{padding:5px 8px 7px;display:flex;flex-direction:column;gap:3px}.mez-label{color:var(--text-secondary);font-size:.7rem;margin-bottom:2px;font-weight:500;letter-spacing:.02em}.mez-node textarea,.mez-node input[type=text],.mez-node input[type=number]{width:100%;background:var(--bg-input);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.75rem;padding:5px 7px;resize:vertical;outline:none;transition:border-color .1s}.mez-node textarea::placeholder,.mez-node input::placeholder{color:var(--text-muted);font-style:italic}.mez-node textarea:focus,.mez-node input[type=text]:focus,.mez-node input[type=number]:focus{border-color:var(--node-transform-accent)}.mez-node-label-input{background:transparent;border:1px solid rgba(96,165,250,.5);border-radius:3px;color:inherit;font-size:inherit;font-weight:inherit;font-family:inherit;padding:1px 4px;outline:none;min-width:0;flex:1}.mez-node-sublabel{font-size:.65rem;color:var(--text-faint);font-weight:400;margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.mez-node-rowcount{font-size:.65rem;color:var(--text-faint);font-weight:400;margin-left:auto;white-space:nowrap}.mez-node-table{overflow-x:auto;max-height:160px;overflow-y:auto;border-radius:4px;border:1px solid var(--border-card)}.mez-node-table table{border-collapse:collapse;width:100%;font-size:.7rem}.mez-node-table th{background:var(--bg-base);color:var(--text-secondary);padding:3px 6px;text-align:left;border-bottom:1px solid var(--border-card);white-space:nowrap;font-weight:600;letter-spacing:.02em}.mez-node-table td{padding:2px 6px;border-bottom:1px solid var(--border);color:var(--text-primary);white-space:nowrap}.mez-node-table tr:hover td{background:var(--bg-card)}.mez-empty{color:var(--text-muted);font-style:italic;font-size:.72rem}@keyframes mez-node-pulse{0%{box-shadow:0 0 #60a5fa8c}50%{box-shadow:0 0 0 4px #60a5fa00}to{box-shadow:0 0 #60a5fa00}}@keyframes mez-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mez-node--running{border-color:var(--node-transform-accent);border-left-color:var(--node-transform-accent);animation:mez-node-pulse 1s ease-in-out infinite}.mez-node-icon--spinning{display:inline-block;animation:mez-spin .8s linear infinite;color:var(--node-transform-accent)}.mez-node--error{border-color:#f87171;border-left-color:#f87171}.mez-node--error.selected{border-color:#f87171;border-left-color:#f87171;box-shadow:0 0 0 2px #f871714d}.mez-node-error{font-size:.7rem;color:#f87171;background:#f871711a;border-radius:4px;padding:4px 6px;text-align:center}.mez-node--runtime-error{border-color:#ef4444;border-left-color:#ef4444}.mez-node--runtime-error.selected{border-color:#ef4444;border-left-color:#ef4444;box-shadow:0 0 0 2px #ef444459}.mez-node-error-badge{margin-left:auto;font-size:.8rem;color:#ef4444;flex-shrink:0}.mez-node-runtime-error{font-size:.7rem;color:#fca5a5;background:#ef44441f;border-bottom:1px solid rgba(239,68,68,.2);padding:4px 10px;word-break:break-word;line-height:1.4}.mez-node--proximity-target{border-color:#22d3ee;border-left-color:#22d3ee;box-shadow:0 0 0 2px #22d3ee59,0 0 12px #22d3ee40;transition:box-shadow .1s ease,border-color .1s ease}.mez-node--param-error{border-color:#f59e0b;border-left-color:#f59e0b}.mez-node--param-error.selected{border-color:#f59e0b;border-left-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b4d}.mez-node-param-badge{margin-left:auto;font-size:.8rem;color:#f59e0b;flex-shrink:0;cursor:help}.mez-col-summary{font-size:.7rem;color:var(--text-muted);font-style:italic;padding:2px 0}.mez-select{width:100%;background:var(--bg-input);border:1px solid var(--border-card);border-radius:4px;color:var(--text-primary);font-size:.72rem;padding:3px 5px;cursor:pointer}.mez-port-label{position:absolute;font-size:.6rem;color:var(--text-muted);white-space:nowrap;pointer-events:none;transform:translateY(-50%);line-height:1}.mez-port-label--left{left:36px}.mez-port-label--right{right:12px;text-align:right}.mez-port-label--inactive{opacity:.25}.mez-handle--inactive{opacity:.2;pointer-events:none}.mez-handle--disconnected{border-color:#f59e0b!important;background:#451a03!important}.mez-port-label--warn{color:#f59e0b;display:flex;align-items:center;gap:3px}.mez-port-warn-dot{font-size:.65rem;font-weight:700;color:#f59e0b;line-height:1}.mez-db-connection-summary{display:flex;align-items:center;gap:5px;padding:2px 0}.mez-db-type{font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:1px 5px;border-radius:3px;flex-shrink:0;background:#34d39926;color:var(--node-input-accent);border:1px solid rgba(52,211,153,.3)}[data-theme=light] .mez-db-type{background:#0596691a;color:var(--node-input-accent);border-color:#05966940}.mez-db-type--sqlite{background:#60a5fa26;color:var(--node-transform-accent);border-color:#60a5fa4d}.mez-db-conn{font-size:.7rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mez-compact-row{display:flex;align-items:baseline;gap:5px;min-width:0}.mez-compact-key{font-size:.62rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0;max-width:56px;overflow:hidden;text-overflow:ellipsis}.mez-compact-val{font-size:.7rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.mez-compact-mono{font-family:JetBrains Mono,monospace}.mez-compact-dim{color:var(--text-muted);font-style:italic}.rb-root{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;background:#0d1117;color:#e2e8f0;font-family:Inter,system-ui,sans-serif;overflow:hidden}.rb-toolbar{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 12px;background:#131825;border-bottom:1px solid #1e2a40;flex-shrink:0;gap:10px}.rb-toolbar-left{display:flex;align-items:center;gap:8px;min-width:0}.rb-toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.rb-title-input{font-size:.85rem;font-weight:600;background:transparent;border:1px solid transparent;border-radius:4px;color:#e2e8f0;padding:3px 7px;outline:none;width:240px}.rb-title-input:hover{border-color:#334155;background:#0d1117}.rb-title-input:focus{border-color:#3b82f6;background:#0d1117}.rb-data-badge{font-size:.72rem;color:#6ee7b7;background:#0f3a2a;border:1px solid #065f46;border-radius:10px;padding:2px 8px}.rb-save-msg{font-size:.78rem;color:#94a3b8}.rb-save-btn{background:#1d4ed8;border:none;border-radius:6px;color:#fff;font-size:.8rem;font-weight:600;padding:6px 14px;cursor:pointer}.rb-save-btn:hover:not(:disabled){background:#2563eb}.rb-save-btn:disabled{opacity:.5;cursor:not-allowed}.rb-body{display:flex;flex:1;overflow:hidden}.rb-sidebar{width:220px;flex-shrink:0;background:#131825;border-right:1px solid #1e2a40;display:flex;flex-direction:column;overflow-y:auto}.rb-palette{padding:12px 10px 8px}.rb-palette-title{font-size:.7rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;padding:0 4px}.rb-palette-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;cursor:grab;-webkit-user-select:none;user-select:none;font-size:.82rem;color:#cbd5e1;margin-bottom:2px}.rb-palette-item:hover{background:#1e2a40;color:#e2e8f0}.rb-palette-item:active{cursor:grabbing}.rb-palette-item--soon{opacity:.55;cursor:default}.rb-palette-item--soon:hover{background:transparent}.rb-palette-icon{font-size:1rem;width:20px;text-align:center;flex-shrink:0}.rb-palette-label{flex:1}.rb-palette-soon-badge{font-size:.62rem;background:#1e3a5f;color:#93c5fd;border-radius:8px;padding:1px 5px}.rb-sidebar-divider{height:1px;background:#1e2a40;margin:6px 0}.rb-settings{padding:10px;flex:1}.rb-settings-empty{padding:20px 12px;color:#475569;font-size:.8rem;text-align:center}.rb-settings-section{margin-bottom:12px}.rb-settings-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rb-settings-label{font-size:.7rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.rb-settings-input,.rb-settings-select,.rb-settings-textarea{width:100%;background:#0d1117;border:1px solid #1e2a40;border-radius:5px;color:#e2e8f0;font-size:.8rem;padding:5px 8px;outline:none;box-sizing:border-box}.rb-settings-input:focus,.rb-settings-select:focus,.rb-settings-textarea:focus{border-color:#3b82f6}.rb-settings-select{padding-right:24px}.rb-settings-select--full{width:100%}.rb-settings-textarea{resize:vertical;min-height:80px;font-family:inherit}.rb-color-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.rb-color-swatch{width:20px;height:20px;border-radius:4px;border:2px solid transparent;cursor:pointer;padding:0}.rb-color-swatch--active{border-color:#fff;transform:scale(1.15)}.rb-color-swatch:hover{transform:scale(1.1)}.rb-main{flex:1;overflow:auto;padding:16px;background:#0a0d14}.rb-canvas{display:grid;grid-template-columns:repeat(8,1fr);grid-auto-rows:220px;gap:10px;min-height:440px;position:relative}.rb-canvas--dragging{background:#3b82f608;border-radius:8px}.rb-drop-preview{background:#3b82f61a;border:2px dashed #3b82f6;border-radius:8px;pointer-events:none;z-index:0}.rb-canvas-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#334155;font-size:.85rem;padding:60px 0}.rb-canvas-empty-icon{font-size:2.5rem;opacity:.5}.rb-grid-element{background:#131825;border:1px solid #1e2a40;border-radius:8px;display:flex;flex-direction:column;overflow:hidden;cursor:pointer;transition:border-color .15s;position:relative}.rb-grid-element:hover{border-color:#334155}.rb-grid-element--selected{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.rb-element-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid #1e2a40;flex-shrink:0;background:#0d1117;min-height:32px}.rb-element-title{font-size:.76rem;font-weight:600;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rb-element-delete{background:none;border:none;color:#475569;cursor:pointer;font-size:.8rem;padding:0 2px;line-height:1;flex-shrink:0}.rb-element-delete:hover{color:#f87171}.rb-element-body{flex:1;overflow:hidden;padding:4px 6px;display:flex;align-items:stretch}.rb-chart-wrap{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.rb-table-wrap{flex:1;overflow:auto}.rb-table{border-collapse:collapse;font-size:.75rem;width:100%}.rb-table th{background:#0d1117;color:#64748b;font-weight:600;padding:5px 8px;text-align:left;border-bottom:1px solid #1e2a40;white-space:nowrap;position:sticky;top:0}.rb-table td{padding:4px 8px;color:#cbd5e1;border-bottom:1px solid #0f172a;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.rb-table tr:hover td{background:#1e2a40}.rb-table-more{text-align:center;font-size:.72rem;color:#475569;padding:6px}.rb-text-content{flex:1;padding:8px 6px;font-size:.85rem;line-height:1.5;color:#cbd5e1;white-space:pre-wrap;overflow:auto}.rb-coming-soon{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;text-align:center}.rb-coming-soon-icon{font-size:1.8rem;color:#a78bfa;opacity:.7}.rb-coming-soon-title{font-size:.85rem;font-weight:600;color:#c4b5fd}.rb-coming-soon-badge{font-size:.68rem;background:#2e1d5f;color:#c4b5fd;border:1px solid #6d28d9;border-radius:10px;padding:2px 8px}.rb-coming-soon-desc{font-size:.75rem;color:#475569;max-width:220px;line-height:1.4}.rb-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#334155;font-size:.78rem;text-align:center;padding:12px}.rb-empty-icon{font-size:1.4rem}.rb-placeholder{color:#334155;font-style:italic}.rb-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px;color:#64748b;background:#0a0d14;font-size:.9rem}.rb-loading-spinner{width:32px;height:32px;border:3px solid #1e2a40;border-top-color:#3b82f6;border-radius:50%;animation:rb-spin .8s linear infinite}@keyframes rb-spin{to{transform:rotate(360deg)}}.rb-error-page{display:flex;align-items:center;justify-content:center;height:100vh;background:#0a0d14}.rb-error-box{background:#131825;border:1px solid #1e2a40;border-radius:12px;padding:32px 40px;text-align:center;max-width:420px;display:flex;flex-direction:column;gap:12px}.rb-error-title{font-size:1.1rem;font-weight:700;color:#f87171}.rb-error-msg{font-size:.85rem;color:#94a3b8;line-height:1.5}.rb-error-back{background:#1e2a40;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:.82rem;padding:7px 16px;cursor:pointer;align-self:center}.rb-error-back:hover{background:#334155}.rb-chart-wrap text{fill:#94a3b8}.rb-chart-wrap .domain,.rb-chart-wrap .tick line{stroke:#1e2a40}.rb-chart-wrap--col{flex:1;display:flex;flex-direction:column;align-items:center;overflow:hidden}.rb-legend{display:flex;flex-wrap:wrap;gap:8px;padding:4px 8px 2px;justify-content:center;flex-shrink:0}.rb-legend-item{display:flex;align-items:center;gap:4px;font-size:.72rem;color:#94a3b8}.rb-legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.rb-legend-label{white-space:nowrap}.rb-kpi-card{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px;text-align:center}.rb-kpi-value{font-size:2.6rem;font-weight:700;line-height:1;letter-spacing:-.02em}.rb-kpi-label{font-size:.78rem;color:#94a3b8;font-weight:500}.rb-kpi-count{font-size:.68rem;color:#475569;margin-top:4px}.rb-settings-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.rb-add-measure-btn{font-size:.72rem;background:#1e2a40;border:1px solid #334155;border-radius:4px;color:#94a3b8;padding:1px 6px;cursor:pointer}.rb-add-measure-btn:hover{background:#334155;color:#e2e8f0}.rb-no-measures{font-size:.75rem;color:#475569;padding:6px 2px}.rb-measure-row{display:flex;align-items:center;gap:4px;margin-bottom:5px}.rb-measure-field{flex:2;min-width:0;background:#0d1117;border:1px solid #1e2a40;border-radius:4px;color:#e2e8f0;font-size:.72rem;padding:3px 4px;outline:none}.rb-measure-fn{flex:1;min-width:0;background:#0d1117;border:1px solid #1e2a40;border-radius:4px;color:#e2e8f0;font-size:.72rem;padding:3px 2px;outline:none}.rb-measure-label{flex:2;min-width:0;background:#0d1117;border:1px solid #1e2a40;border-radius:4px;color:#e2e8f0;font-size:.72rem;padding:3px 4px;outline:none}.rb-measure-label:focus,.rb-measure-field:focus,.rb-measure-fn:focus{border-color:#3b82f6}.rb-measure-color input[type=color]{width:22px;height:22px;padding:0;border:none;border-radius:3px;cursor:pointer;background:none}.rb-measure-remove{background:none;border:none;color:#475569;font-size:.9rem;cursor:pointer;padding:0 2px;line-height:1;flex-shrink:0}.rb-measure-remove:hover{color:#f87171}.rb-lib-measures{margin-top:4px}.rb-lib-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.rb-lib-chip{display:flex;align-items:center;gap:4px;background:#1e2a40;border:1px solid #334155;border-radius:10px;color:#94a3b8;font-size:.68rem;padding:2px 7px;cursor:pointer}.rb-lib-chip:hover{background:#334155;color:#e2e8f0}.rb-lib-chip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.rb-range{width:100%;accent-color:#3b82f6;cursor:pointer}.rb-toggle{display:flex;align-items:center;cursor:pointer;gap:6px}.rb-toggle input{display:none}.rb-toggle-track{width:32px;height:16px;border-radius:8px;background:#1e2a40;border:1px solid #334155;position:relative;transition:background .2s;display:block}.rb-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#475569;transition:transform .2s,background .2s}.rb-toggle input:checked+.rb-toggle-track{background:#1d4ed8;border-color:#3b82f6}.rb-toggle input:checked+.rb-toggle-track:after{transform:translate(16px);background:#fff}.rb-hex-row{display:flex;gap:4px;margin-top:6px}.rb-hex-input{flex:1;background:#0d1117;border:1px solid #1e2a40;border-radius:4px;color:#e2e8f0;font-size:.78rem;padding:4px 6px;outline:none;font-family:monospace}.rb-hex-input:focus{border-color:#3b82f6}.rb-hex-apply{background:#1e2a40;border:1px solid #334155;border-radius:4px;color:#94a3b8;font-size:.75rem;padding:4px 8px;cursor:pointer}.rb-hex-apply:hover{background:#334155;color:#e2e8f0}.rb-stub-box{background:#0a0d14;border:1px dashed #1e2a40;border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.rb-stub-badge{font-size:.62rem;background:#2e1d5f;color:#c4b5fd;border:1px solid #6d28d9;border-radius:8px;padding:1px 6px;align-self:flex-start}.rb-stub-title{font-size:.78rem;color:#64748b;font-weight:600}.rb-stub-desc{font-size:.72rem;color:#334155;line-height:1.4}.rb-lib-panel{padding:10px 10px 8px;border-bottom:1px solid #1e2a40}.rb-lib-panel .rb-palette-title{display:flex;align-items:center;justify-content:space-between}.rb-lib-add-btn{background:#1e2a40;border:1px solid #334155;border-radius:4px;color:#94a3b8;font-size:.85rem;width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1}.rb-lib-add-btn:hover{background:#334155;color:#e2e8f0}.rb-lib-empty{font-size:.72rem;color:#334155;padding:4px 2px 6px}.rb-lib-row{display:flex;align-items:center;gap:4px;margin-bottom:5px}.rb-lib-color{width:20px;height:20px;padding:0;border:none;border-radius:3px;background:none;cursor:pointer;flex-shrink:0}.rb-lib-name{flex:2;min-width:0;background:#0d1117;border:1px solid #1e2a40;border-radius:4px;color:#e2e8f0;font-size:.72rem;padding:3px 4px;outline:none}.rb-lib-name:focus{border-color:#3b82f6}.rb-lib-field{flex:2;min-width:0;background:#0d1117;border:1px solid #1e2a40;border-radius:4px;color:#e2e8f0;font-size:.72rem;padding:3px 2px;outline:none}.rb-lib-fn{flex:1;min-width:0;background:#0d1117;border:1px solid #1e2a40;border-radius:4px;color:#e2e8f0;font-size:.72rem;padding:3px 2px;outline:none}.rb-lib-del{background:none;border:none;color:#475569;font-size:.9rem;cursor:pointer;padding:0 2px;line-height:1;flex-shrink:0}.rb-lib-del:hover{color:#f87171}.adm-page{display:flex;flex-direction:column;height:100vh;background:var(--bg-base);color:var(--text-primary);font-family:Inter,system-ui,sans-serif;overflow:hidden}.adm-header{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 20px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;gap:16px}.adm-header-left,.adm-header-right{display:flex;align-items:center;gap:10px}.adm-logo{font-size:1.1rem;font-weight:800}.adm-logo-mez{color:var(--text-primary)}.adm-logo-lytics{color:#6366f1}.adm-header-sep{color:var(--border-card);font-size:1rem}.adm-header-title{font-size:.92rem;font-weight:600;color:var(--text-secondary)}.adm-header-user{font-size:.8rem;color:var(--text-muted)}.adm-header-link{font-size:.8rem;color:#60a5fa;text-decoration:none;padding:4px 10px;border-radius:5px;border:1px solid rgba(96,165,250,.25);transition:background .15s}.adm-header-link:hover{background:#60a5fa1a}.adm-header-btn{background:none;border:1px solid var(--border-card);color:var(--text-secondary);border-radius:5px;padding:4px 10px;font-size:.8rem;cursor:pointer;transition:background .15s}.adm-header-btn:hover{background:var(--bg-hover)}.adm-tab-bar{display:flex;gap:0;border-bottom:1px solid var(--border);background:var(--bg-surface);padding:0 20px;flex-shrink:0}.adm-tab{padding:10px 18px;font-size:.85rem;font-weight:500;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;margin-bottom:-1px;transition:color .15s,border-color .15s}.adm-tab:hover{color:var(--text-primary)}.adm-tab--active{color:#6366f1;border-bottom-color:#6366f1;font-weight:600}.adm-body{flex:1;overflow-y:auto;padding:24px}.adm-section{max-width:1200px}.adm-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.adm-section-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.adm-count{display:inline-flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border-card);color:var(--text-muted);font-size:.72rem;font-weight:500;padding:1px 7px;border-radius:10px;margin-left:6px}.adm-btn{background:var(--bg-card);border:1px solid var(--border-card);color:var(--text-secondary);border-radius:5px;padding:5px 12px;font-size:.82rem;cursor:pointer;transition:background .15s,color .15s}.adm-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.adm-btn:disabled{opacity:.45;cursor:not-allowed}.adm-btn--sm{padding:3px 8px;font-size:.76rem}.adm-btn--primary{background:#6366f1;border-color:#6366f1;color:#fff}.adm-btn--primary:hover:not(:disabled){background:#4f46e5;border-color:#4f46e5}.adm-btn--danger{background:#ef44441a;border-color:#ef44444d;color:#f87171}.adm-btn--danger:hover:not(:disabled){background:#ef444433;color:#ef4444}.adm-table-wrap{overflow-x:auto;border:1px solid var(--border-card);border-radius:6px}.adm-table{width:100%;border-collapse:collapse;font-size:.82rem}.adm-table th{background:var(--bg-surface);color:var(--text-secondary);padding:8px 12px;text-align:left;border-bottom:1px solid var(--border-card);font-weight:600;font-size:.75rem;letter-spacing:.04em;white-space:nowrap}.adm-table td{padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle}.adm-table tr:last-child td{border-bottom:none}.adm-table tr:hover td{background:var(--bg-card)}.adm-row--disabled td{opacity:.5}.adm-email{font-size:.82rem;color:var(--text-primary)}.adm-mono{font-family:JetBrains Mono,monospace;font-size:.76rem;color:var(--text-muted);white-space:nowrap}.adm-detail{font-size:.78rem;color:var(--text-muted)}.adm-actions{display:flex;gap:4px;flex-wrap:wrap}.adm-badge{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;border-radius:3px}.adm-badge--admin{background:#6366f126;color:#818cf8;border:1px solid rgba(99,102,241,.3)}.adm-badge--unverified{background:#f59e0b1f;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.adm-badge--active{background:#10b9811a;color:#34d399;border:1px solid rgba(16,185,129,.25)}.adm-badge--disabled{background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.25)}.adm-badge--event{text-transform:none;font-weight:600;font-size:.76rem}.adm-event--login{background:#60a5fa1a;color:#60a5fa;border:1px solid rgba(96,165,250,.2)}.adm-event--register{background:#34d3991a;color:#34d399;border:1px solid rgba(52,211,153,.2)}.adm-event--admin_delete_user{background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.2)}.adm-event--admin_set_password{background:#f59e0b1a;color:#fbbf24;border:1px solid rgba(245,158,11,.2)}.adm-event--admin_delete_file{background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.2)}.adm-event--admin_config_change{background:#a78bfa1a;color:#c4b5fd;border:1px solid rgba(167,139,250,.2)}.adm-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.adm-stat-card{background:var(--bg-surface);border:1px solid var(--border-card);border-radius:8px;padding:20px 16px;text-align:center}.adm-stat-value{font-size:1.8rem;font-weight:700;color:var(--text-primary)}.adm-stat-label{font-size:.78rem;color:var(--text-muted);margin-top:4px}.adm-config-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--border-card);border-radius:8px;overflow:hidden}.adm-config-row{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);gap:24px}.adm-config-row:last-child{border-bottom:none}.adm-config-info{flex:1}.adm-config-label{font-size:.88rem;font-weight:600;color:var(--text-primary);margin-bottom:3px}.adm-config-desc{font-size:.78rem;color:var(--text-muted)}.adm-config-control{display:flex;align-items:center;gap:10px;flex-shrink:0}.adm-config-feedback{font-size:.75rem;color:#34d399}.adm-number-saver{display:flex;align-items:center;gap:6px}.adm-input{background:var(--bg-input);border:1px solid var(--border-card);border-radius:5px;color:var(--text-primary);font-size:.85rem;padding:5px 9px;outline:none;transition:border-color .15s}.adm-input:focus{border-color:#6366f1}.adm-input--number{width:90px}.adm-toggle{position:relative;display:inline-flex;align-items:center;cursor:pointer}.adm-toggle input{opacity:0;width:0;height:0;position:absolute}.adm-toggle-track{width:36px;height:20px;background:var(--border-card);border-radius:10px;transition:background .2s;position:relative}.adm-toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .2s}.adm-toggle input:checked+.adm-toggle-track{background:#6366f1}.adm-toggle input:checked+.adm-toggle-track:after{left:19px}.adm-toggle input:disabled+.adm-toggle-track{opacity:.5;cursor:not-allowed}.adm-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.adm-modal{background:var(--bg-surface);border:1px solid var(--border-card);border-radius:10px;width:400px;max-width:95vw;box-shadow:0 20px 60px #0006}.adm-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);font-weight:600;font-size:.9rem}.adm-modal-close{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;line-height:1}.adm-modal-close:hover{color:var(--text-primary)}.adm-modal-body{padding:18px;display:flex;flex-direction:column;gap:12px}.adm-modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.adm-inline-error{font-size:.8rem;color:#f87171}.adm-loading{color:var(--text-muted);font-size:.88rem;padding:32px 0}.adm-error{color:#f87171;font-size:.88rem;padding:16px 0}.adm-empty{color:var(--text-muted);font-style:italic;font-size:.82rem;padding:16px;text-align:center}.adm-forbidden{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:10px;color:var(--text-muted)}.adm-forbidden h2{color:var(--text-primary);font-size:1.2rem}.adm-forbidden a{color:#60a5fa}.lp{min-height:100vh;background:#0a0d14;color:#e2e8f0;font-family:Inter,system-ui,sans-serif;overflow-x:hidden}.lp{--lp-blue: #3b82f6;--lp-green: #34d399;--lp-purple: #a78bfa;--lp-amber: #f59e0b;--lp-border: #1e2a40;--lp-card: #13192b;--lp-surface: #111827;--lp-muted: #475569;--lp-sub: #94a3b8}.lp-nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .2s,border-color .2s,backdrop-filter .2s;border-bottom:1px solid transparent}.lp-nav--scrolled{background:#0a0d14d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:var(--lp-border)}.lp-nav-inner{max-width:1100px;margin:0 auto;padding:0 24px;height:96px;display:flex;align-items:center;gap:32px}.lp-logo .brand-logo-img,.lp-footer-logo .brand-logo-img{height:73px}.lp-logo{font-size:1.25rem;font-weight:800;letter-spacing:.02em;flex-shrink:0;text-decoration:none;color:inherit;display:inline-flex;align-items:center}.lp-logo:hover{opacity:.9}.lp-logo-mez{color:#93c5fd}.lp-logo-lytics{color:#60a5fa}.lp-nav-links{display:flex;align-items:center;gap:28px;flex:1}.lp-nav-link{color:var(--lp-sub);font-size:.875rem;text-decoration:none;transition:color .15s}.lp-nav-link:hover{color:#e2e8f0}.lp-nav-actions{display:flex;align-items:center;gap:10px}.lp-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:.875rem;font-weight:600;padding:8px 18px;cursor:pointer;border:none;transition:background .15s,color .15s,box-shadow .15s,transform .1s;text-decoration:none;white-space:nowrap}.lp-btn--primary{background:var(--lp-blue);color:#fff;box-shadow:0 0 #3b82f666}.lp-btn--primary:hover{background:#2563eb;box-shadow:0 4px 20px #3b82f666;transform:translateY(-1px)}.lp-btn--ghost{background:transparent;color:var(--lp-sub);border:1px solid var(--lp-border)}.lp-btn--ghost:hover{color:#e2e8f0;border-color:#475569}.lp-btn--lg{padding:12px 26px;font-size:.95rem;border-radius:10px}.lp-coming-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#3b82f61f;color:#93c5fd;border:1px solid rgba(59,130,246,.2);font-size:.8rem;font-weight:600;letter-spacing:.02em}.lp-coming-modal{background:var(--lp-card);border:1px solid var(--lp-border);border-radius:14px;padding:22px 26px;box-shadow:0 20px 50px #00000073;max-width:360px;text-align:center}.lp-coming-title{font-size:1rem;font-weight:700;color:#f1f5f9;margin-bottom:6px}.lp-coming-sub{font-size:.9rem;color:var(--lp-sub);margin:0}.lp-hero{padding:160px 24px 80px;text-align:center}.lp-hero-inner{max-width:900px;margin:0 auto}.lp-badge{display:inline-block;background:#3b82f61f;color:#93c5fd;border:1px solid rgba(59,130,246,.3);border-radius:100px;font-size:.78rem;font-weight:600;padding:4px 14px;margin-bottom:28px;letter-spacing:.03em}.lp-hero-title{font-size:clamp(2.4rem,6vw,4rem);font-weight:800;line-height:1.1;color:#f1f5f9;margin-bottom:24px;letter-spacing:-.02em}.lp-hero-title-accent{background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.lp-hero-sub{font-size:1.1rem;color:var(--lp-sub);line-height:1.7;max-width:620px;margin:0 auto 36px}.lp-hero-ctas{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:60px}.lp-diagram-wrap{background:var(--lp-card);border:1px solid var(--lp-border);border-radius:16px;padding:20px;box-shadow:0 20px 60px #00000080,0 0 0 1px #3b82f614;overflow:hidden}.lp-diagram{width:100%;max-width:760px;display:block;margin:0 auto}.lp-section{padding:96px 24px}.lp-section--alt{background:var(--lp-surface)}.lp-section-inner{max-width:1100px;margin:0 auto}.lp-section-label{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--lp-blue);margin-bottom:14px}.lp-section-title{font-size:clamp(1.6rem,3.5vw,2.5rem);font-weight:800;color:#f1f5f9;letter-spacing:-.01em;margin-bottom:16px}.lp-section-sub{font-size:1rem;color:var(--lp-sub);line-height:1.7;max-width:560px;margin-bottom:56px}.lp-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.lp-feature-card{background:var(--lp-card);border:1px solid var(--lp-border);border-radius:12px;padding:28px 24px;transition:border-color .2s,transform .2s}.lp-feature-card:hover{border-color:#2d3748;transform:translateY(-2px)}.lp-feature-icon{font-size:1.8rem;margin-bottom:16px;display:block}.lp-feature-title{font-size:1.05rem;font-weight:700;color:#f1f5f9;margin-bottom:10px}.lp-feature-desc{font-size:.875rem;color:var(--lp-sub);line-height:1.65}.lp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;margin-top:48px}.lp-step{position:relative}.lp-step-num{font-size:2.5rem;font-weight:900;color:#3b82f633;letter-spacing:-.04em;line-height:1;margin-bottom:16px;font-family:JetBrains Mono,monospace}.lp-step-title{font-size:1.1rem;font-weight:700;color:#f1f5f9;margin-bottom:10px}.lp-step-desc{font-size:.875rem;color:var(--lp-sub);line-height:1.65}.lp-node-groups{display:flex;flex-direction:column;gap:28px;margin-top:12px}.lp-node-group-label{display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}.lp-node-group-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lp-node-badges{display:flex;flex-wrap:wrap;gap:8px}.lp-node-badge{background:var(--lp-card);border:1px solid var(--lp-border);border-radius:6px;padding:4px 12px;font-size:.82rem;color:var(--lp-sub);transition:border-color .15s,color .15s}.lp-node-badge:hover{color:#e2e8f0;border-color:#475569}.lp-nodes-footer{margin-top:28px;font-size:.875rem;color:var(--lp-muted);font-style:italic}.lp-cta-banner{padding:96px 24px;background:linear-gradient(135deg,#3b82f614,#a78bfa0f);border-top:1px solid rgba(59,130,246,.15);border-bottom:1px solid rgba(59,130,246,.15);text-align:center}.lp-cta-inner{text-align:center}.lp-cta-title{font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:800;color:#f1f5f9;letter-spacing:-.01em;margin-bottom:14px}.lp-cta-sub{font-size:1rem;color:var(--lp-sub);margin-bottom:36px}.lp-footer{background:#080b11;border-top:1px solid var(--lp-border);padding:40px 24px}.lp-footer-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:32px;flex-wrap:wrap}.lp-footer-logo{font-size:1rem;font-weight:800;flex-shrink:0}.lp-footer-links{display:flex;align-items:center;gap:20px;flex:1;flex-wrap:wrap}.lp-footer-link{color:var(--lp-muted);font-size:.82rem;text-decoration:none;transition:color .15s}.lp-footer-link:hover{color:var(--lp-sub)}.lp-footer-link--btn{background:none;border:none;cursor:pointer;padding:0;font-size:.82rem;font-family:inherit}.lp-footer-copy{font-size:.78rem;color:var(--lp-muted);margin-left:auto}@media (max-width: 640px){.lp-nav-links{display:none}.lp-hero{padding:110px 20px 60px}.lp-hero-ctas{flex-direction:column;align-items:stretch}.lp-footer-inner{flex-direction:column;align-items:flex-start;gap:16px}.lp-footer-copy{margin-left:0}}.orch-page{display:flex;flex-direction:column;height:100vh;background:var(--bg-base);color:var(--text-primary);font-family:Inter,system-ui,sans-serif;overflow:hidden}.orch-header{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 20px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;gap:16px}.orch-header-left,.orch-header-right{display:flex;align-items:center;gap:12px}.orch-logo{font-size:1.1rem;font-weight:800;letter-spacing:.02em}.orch-logo-mez,.orch-logo-lytics{color:var(--node-transform-accent)}.orch-header-sep{color:var(--border-card);font-size:1.1rem}.orch-header-title{font-size:.92rem;font-weight:600;color:var(--text-secondary)}.orch-header-user{font-size:.8rem;color:var(--text-muted)}.orch-header-link{font-size:.8rem;color:var(--node-transform-accent);text-decoration:none;padding:4px 10px;border-radius:5px;border:1px solid color-mix(in srgb,var(--node-transform-accent) 25%,transparent);transition:background .15s}.orch-header-link:hover{background:color-mix(in srgb,var(--node-transform-accent) 10%,transparent)}.orch-header-btn{background:none;border:1px solid var(--border-card);color:var(--text-secondary);border-radius:5px;padding:4px 10px;font-size:.8rem;cursor:pointer;transition:background .15s,color .15s}.orch-header-btn:hover{background:var(--bg-card);color:var(--text-primary)}.orch-body{display:flex;flex:1;overflow:hidden}.orch-sidebar{width:280px;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.orch-sidebar-top{padding:12px;border-bottom:1px solid var(--border)}.orch-search{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.82rem;padding:6px 10px}.orch-search:focus{outline:none;border-color:var(--node-transform-accent)}.orch-search::placeholder{color:var(--text-muted)}.orch-wf-list{flex:1;overflow-y:auto;padding:6px 0}.orch-wf-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:9px 16px;background:none;border:none;text-align:left;cursor:pointer;transition:background .12s;border-left:2px solid transparent}.orch-wf-item:hover{background:var(--bg-card)}.orch-wf-item--active{background:color-mix(in srgb,var(--node-transform-accent) 8%,transparent);border-left-color:var(--node-transform-accent)}.orch-wf-name{font-size:.85rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.orch-wf-date{font-size:.7rem;color:var(--text-muted)}.orch-main{flex:1;overflow-y:auto;padding:0}.orch-detail{padding:28px 32px;max-width:900px}.orch-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.orch-detail-title{font-size:1.3rem;font-weight:700;color:var(--text-primary)}.orch-detail-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.orch-btn{background:var(--bg-card);border:1px solid var(--border-card);color:var(--text-secondary);border-radius:6px;padding:5px 12px;font-size:.82rem;font-family:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:background .15s,color .15s}.orch-btn:hover:not(:disabled){background:var(--bg-surface);color:var(--text-primary)}.orch-btn:disabled{opacity:.4;cursor:not-allowed}.orch-btn--sm{padding:3px 9px;font-size:.75rem}.orch-btn--primary{background:color-mix(in srgb,var(--node-transform-accent) 15%,transparent);color:var(--node-transform-accent);border-color:color-mix(in srgb,var(--node-transform-accent) 30%,transparent)}.orch-btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--node-transform-accent) 25%,transparent)}.orch-btn--run{background:color-mix(in srgb,var(--node-input-accent) 10%,transparent);color:var(--node-input-accent);border-color:color-mix(in srgb,var(--node-input-accent) 25%,transparent)}.orch-btn--run:hover:not(:disabled){background:color-mix(in srgb,var(--node-input-accent) 20%,transparent)}.orch-btn--del{color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 20%,transparent)}.orch-btn--del:hover:not(:disabled){background:color-mix(in srgb,var(--color-error) 10%,transparent)}.orch-btn--canvas{background:none;color:var(--node-transform-accent);border-color:color-mix(in srgb,var(--node-transform-accent) 25%,transparent)}.orch-btn--canvas:hover{background:color-mix(in srgb,var(--node-transform-accent) 10%,transparent);color:var(--node-transform-accent)}.orch-schedule-list{display:flex;flex-direction:column;gap:12px}.orch-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:10px;overflow:hidden;transition:border-color .15s}.orch-card--off{opacity:.65}.orch-card:hover{border-color:var(--node-transform-accent)}.orch-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:12px;flex-wrap:wrap}.orch-card-left{display:flex;align-items:center;gap:10px}.orch-card-actions{display:flex;gap:6px;flex-wrap:wrap}.orch-card-meta{display:flex;gap:20px;padding:0 16px 12px;font-size:.78rem;color:var(--text-muted);flex-wrap:wrap}.orch-card-meta strong{color:var(--text-secondary)}.orch-card-body{border-top:1px solid var(--border);padding:16px}.orch-cron{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:4px;padding:2px 8px}.orch-pill{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:100px;text-transform:uppercase;letter-spacing:.04em}.orch-pill--sm{font-size:.65rem;padding:1px 6px}.orch-pill--on{background:color-mix(in srgb,var(--node-input-accent) 12%,transparent);color:var(--node-input-accent)}.orch-pill--off{background:#64748b1a;color:var(--text-muted)}.orch-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.orch-runs-table{width:100%;border-collapse:collapse;font-size:.78rem}.orch-runs-table th{text-align:left;color:var(--text-muted);font-weight:600;padding:4px 8px 8px;border-bottom:1px solid var(--border)}.orch-runs-table td{padding:6px 8px;color:var(--text-secondary);border-bottom:1px solid var(--border);vertical-align:middle}.orch-run-error{color:var(--color-error);max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.orch-overview-table{width:100%;border-collapse:collapse;font-size:.82rem}.orch-overview-table th{text-align:left;font-weight:600;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:6px 12px 10px;border-bottom:1px solid var(--border)}.orch-overview-table td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text-secondary)}.orch-overview-table tr:hover td{background:var(--bg-card)}.orch-overview-row--off td{opacity:.5}.orch-overview-wf{font-weight:500;color:var(--text-primary)}.orch-add-form{background:var(--bg-card);border:1px solid var(--border-card);border-radius:10px;padding:20px;margin-bottom:20px}.orch-form{display:flex;flex-direction:column}.orch-form-label{font-size:.75rem;font-weight:600;color:var(--text-muted);margin-bottom:6px}.orch-input{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.9rem;padding:7px 10px;margin-bottom:10px}.orch-input:focus{outline:none;border-color:var(--node-transform-accent)}.orch-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.orch-preset{background:var(--bg-surface);border:1px solid var(--border-card);border-radius:5px;color:var(--text-muted);font-size:.73rem;padding:3px 9px;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.orch-preset:hover{background:var(--bg-input);color:var(--text-primary)}.orch-form-help{font-size:.73rem;color:var(--text-muted);margin-bottom:12px}.orch-form-help code{color:var(--text-secondary)}.orch-form-btns{display:flex;gap:8px}.orch-empty{text-align:center;padding:48px 24px}.orch-empty-title{font-size:1.1rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.orch-muted{color:var(--text-muted)}.orch-error{color:var(--color-error);font-size:.82rem;margin-bottom:8px}.orch-splash{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-base)}.legal-page{min-height:100vh;background:var(--bg-canvas);display:flex;justify-content:center;padding:48px 20px 64px}.legal-card{width:100%;max-width:680px;background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem 2.5rem 2rem}.legal-logo{display:inline-block;font-size:1.4rem;font-weight:700;letter-spacing:-.5px;text-decoration:none;margin-bottom:1.5rem}.legal-logo-mez{color:var(--text-primary)}.legal-logo-lytics{color:#6366f1}.legal-title{font-size:1.6rem;font-weight:700;color:var(--text-primary);margin:0 0 .3rem}.legal-updated{font-size:.8rem;color:var(--text-muted);margin:0 0 1.8rem}.legal-section{margin-bottom:1.3rem}.legal-section-title{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0 0 .35rem}.legal-section-text{font-size:.88rem;color:var(--text-secondary);line-height:1.6;margin:0}.legal-footer-links{margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--border);font-size:.82rem}.legal-footer-link{color:var(--text-muted);text-decoration:none}.legal-footer-link:hover{color:var(--text-primary)}.legal-footer-sep{color:var(--border);margin:0 8px}
