.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%}.pipeline-wizard{background:#fff;border-radius:8px;padding:2rem;max-width:900px;margin:0 auto;box-shadow:0 2px 8px #0000001a}.wizard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.wizard-header h2{margin:0;font-size:1.5rem;color:#111827}.btn-close{background:none;border:none;font-size:2rem;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;line-height:1}.btn-close:hover{color:#111827}.wizard-progress{display:flex;justify-content:space-between;margin-bottom:3rem;position:relative}.wizard-progress:before{content:"";position:absolute;top:20px;left:10%;right:10%;height:2px;background:#e5e7eb;z-index:0}.progress-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;z-index:1}.progress-circle{width:40px;height:40px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-weight:600;margin-bottom:.5rem;transition:all .3s ease}.progress-step.active .progress-circle{background:#3b82f6;color:#fff;box-shadow:0 0 0 4px #3b82f633}.progress-step.completed .progress-circle{background:#10b981;color:#fff}.progress-label{font-size:.875rem;color:#6b7280;text-align:center}.progress-step.active .progress-label{color:#111827;font-weight:600}.wizard-error{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:1rem;margin-bottom:1.5rem;color:#dc2626}.wizard-content{min-height:400px;margin-bottom:2rem}.wizard-footer{border-top:2px solid #e5e7eb;padding-top:1.5rem}.wizard-actions{display:flex;gap:1rem}.wizard-actions .spacer{flex:1}.wizard-step{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.wizard-step h3{font-size:1.25rem;margin-bottom:.5rem;color:#111827}.wizard-step p{color:#6b7280;margin-bottom:2rem}.wizard-field{margin-bottom:1.5rem}.wizard-field label{display:block;font-weight:500;margin-bottom:.5rem;color:#374151}.wizard-field input,.wizard-field select,.wizard-field textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem}.wizard-field input:focus,.wizard-field select:focus,.wizard-field textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.wizard-field textarea{resize:vertical;min-height:80px}.wizard-field .field-help{font-size:.75rem;color:#6b7280;margin-top:.25rem}.storage-type-selector{display:flex;gap:1rem;margin-bottom:1.5rem}.storage-type-option{flex:1;padding:1rem;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s;text-align:center}.storage-type-option:hover{border-color:#3b82f6}.storage-type-option.active{border-color:#3b82f6;background:#eff6ff}.storage-type-option h4{margin:0 0 .25rem;color:#111827}.storage-type-option p{margin:0;font-size:.75rem;color:#6b7280}.test-storage-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-top:1.5rem}.test-result{padding:1rem;border-radius:6px;margin-top:1rem}.test-result.success{background:#f0fdf4;border:1px solid #86efac;color:#166534}.test-result.error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.test-result h4{margin:0 0 .5rem}.test-result ul{margin:.5rem 0 0;padding-left:1.5rem}.test-result li{margin:.25rem 0}.flush-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.flush-preset{padding:1rem;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s;text-align:center}.flush-preset:hover{border-color:#3b82f6}.flush-preset.active{border-color:#3b82f6;background:#eff6ff}.flush-preset h4{margin:0 0 .25rem;color:#111827;font-size:1rem}.flush-preset p{margin:0;font-size:.875rem;color:#6b7280}.review-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.review-section h4{margin:0 0 1rem;color:#111827;font-size:1.125rem}.review-item{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #e5e7eb}.review-item:last-child{border-bottom:none}.review-item-label{font-weight:500;color:#6b7280}.review-item-value{color:#111827}.review-actions{display:flex;gap:1rem}.required-mark{color:#dc2626}.wizard-mono-textarea{font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:.8rem}.wizard-security-note{background:#f0fdf4;border:1px solid #86efac;border-radius:6px;padding:.75rem 1rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.wizard-security-icon{font-size:1.25rem}.wizard-security-text{font-size:.875rem;color:#166534}.wizard-select-with-icon{position:relative}.wizard-select-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:1.25rem;pointer-events:none}.wizard-provider-select{padding-left:3rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.25rem}.test-section-title,.wizard-card-title{margin:0 0 1rem}.test-section-copy,.wizard-card-copy{margin:0 0 1rem;font-size:.875rem;color:#6b7280}.test-result-message{margin:.5rem 0 0}.test-result-detail{margin:.5rem 0 0;font-size:.875rem}.flush-custom-note{color:#3b82f6;margin-left:.5rem}.wizard-tip{background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;padding:1rem;margin-top:1.5rem}.wizard-tip-title{margin:0 0 .5rem;color:#1e40af;font-size:.875rem}.wizard-tip-copy{margin:0;font-size:.875rem;color:#1e3a8a}.wizard-card{border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.wizard-card-destination{background:#f8fafc;border:1px solid #e2e8f0}.wizard-card-neutral{background:#f9fafb;border:1px solid #e5e7eb}.wizard-status-text{margin-top:.75rem;font-size:.875rem;color:#475569}.wizard-progress-block{margin-top:2rem}.wizard-progress-list{display:flex;flex-direction:column;gap:1rem}.wizard-progress-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.wizard-progress-item.completed{background:#f0fdf4;border-color:#86efac}.wizard-progress-dot{width:24px;height:24px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-size:.875rem}.wizard-progress-dot.completed{background:#10b981;color:#fff;font-weight:700}.wizard-progress-content{flex:1}.wizard-progress-title{margin:0;font-size:1rem}.wizard-progress-copy{margin:.25rem 0 0;font-size:.875rem;color:#6b7280}.review-item-value.status-ok{color:#10b981}.review-item-value.status-fail{color:#dc2626}.review-node-list-wrap{margin-top:.5rem}.review-node-list{font-size:.875rem;color:#6b7280}.review-node-list-item{padding:.25rem 0}.app-shell{display:flex;min-height:100vh;background:var(--app-shell-bg);position:relative}.app-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 15% 20%,var(--app-shell-glow-1),transparent 45%),radial-gradient(circle at 85% 10%,var(--app-shell-glow-2),transparent 45%);pointer-events:none;z-index:0}.app-shell>*{position:relative;z-index:1}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-24);background:var(--auth-shell-bg)}.auth-shell-inner{width:min(520px,92vw);display:flex;flex-direction:column;gap:var(--space-16)}.auth-header{text-align:center}.auth-title{font-size:1.35rem}.auth-submit{width:100%;justify-content:center}.auth-meta{text-align:center;font-size:.85rem;color:var(--text-muted)}.auth-link{color:var(--accent-primary);font-weight:600}.loading-shell{width:min(340px,92vw);text-align:center}.loading-shell-app{min-height:100vh;display:flex;background:var(--app-shell-bg)}.loading-shell-sidebar{width:232px;border-right:1px solid var(--border);padding:var(--space-16);display:flex;flex-direction:column;gap:var(--space-16)}.loading-shell-nav{display:flex;flex-direction:column;gap:var(--space-8)}.loading-shell-main{flex:1;display:flex;flex-direction:column}.loading-shell-topbar{height:58px;border-bottom:1px solid var(--border);padding:0 var(--space-20);display:flex;align-items:center;justify-content:space-between}.loading-shell-content{padding:var(--space-20);display:flex;flex-direction:column;gap:var(--space-12)}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-elevated) 45%,var(--bg-card) 65%);background-size:280% 100%;animation:skeleton-shimmer 1.2s linear infinite}.skeleton-logo{width:120px;height:20px}.skeleton-nav-item{width:100%;height:34px}.skeleton-user{margin-top:auto;width:100%;height:44px}.skeleton-title{width:200px;height:18px}.skeleton-pill{width:108px;height:30px;border-radius:999px}.skeleton-header{width:38%;min-width:220px;height:22px}.skeleton-row{width:100%;height:42px}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.sidebar{width:232px;background:var(--bg-panel);padding:var(--space-16);display:flex;flex-direction:column;gap:var(--space-12);border-right:1px solid var(--border);transition:width var(--motion-base)}.sidebar.collapsed{width:68px;padding:var(--space-12) var(--space-8);align-items:center}.sidebar.collapsed .brand{justify-content:center}.sidebar.collapsed .brand-name,.sidebar.collapsed .brand-subtitle{display:none}.sidebar.collapsed .sidebar-nav{width:100%;align-items:center}.sidebar.collapsed .nav-item{justify-content:center;padding:.6rem .4rem}.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed .sidebar-footer{align-items:center}.sidebar.collapsed .status-text,.sidebar.collapsed .sidebar-link-label,.sidebar.collapsed .toggle-label,.sidebar.collapsed .user-meta{display:none}.brand{display:flex;align-items:center;gap:var(--space-8)}.brand-mark{width:36px;height:36px;border-radius:var(--radius-sm);display:grid;place-items:center;background:transparent;border:0}.brand-logo{width:36px;height:36px;display:block}.brand-name{font-weight:600;letter-spacing:.06em;font-size:.72rem}.brand-subtitle{font-size:.76rem;color:var(--text-dim)}.sidebar-nav{display:flex;flex-direction:column;gap:6px}.nav-item{position:relative;background:transparent;border:1px solid transparent;padding:.45rem .75rem .45rem .9rem;color:var(--text-muted);text-align:left;border-radius:var(--radius-sm);font-size:.82rem;cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast);display:flex;align-items:center;gap:var(--space-8)}.nav-item:before{content:"";position:absolute;left:.35rem;top:50%;transform:translateY(-50%);width:4px;height:60%;border-radius:999px;background:transparent}.nav-item:hover{color:var(--text-primary);background:#2d6bff14}.nav-item.active{color:var(--text-primary);background:#2d6bff1f;border-color:#2d6bff40}.nav-item.active:before{background:var(--accent-primary);box-shadow:0 0 0 2px #2d6bff2e}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-8);font-size:.8rem;color:var(--text-muted);border-top:1px solid var(--border);padding-top:var(--space-12)}.sidebar-toggle{justify-content:center;text-transform:none;letter-spacing:.02em}.toggle-icon{font-size:.8rem;font-weight:600}.status-indicator{display:flex;align-items:center;gap:var(--space-8)}.status-text{font-size:.8rem}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim)}.status-dot.online{background:var(--success);box-shadow:0 0 0 3px #2cb67d33}.status-dot.pending{background:var(--warning);box-shadow:0 0 0 3px #f2b95033}.sidebar-section{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-10);border:1px solid var(--border)}.sidebar-label{text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;color:var(--text-dim)}.btn-compact{min-height:32px;padding:.4rem .7rem;font-size:.72rem}.sidebar-link{color:var(--text-muted);padding:.45rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8)}.sidebar-link-icon{width:24px;height:24px;border-radius:10px;display:grid;place-items:center;font-weight:600;font-size:.72rem;background:var(--bg-card);border:1px solid var(--border)}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;padding:var(--space-12);gap:var(--space-8)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-12) var(--space-16);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--topbar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:var(--space-12);z-index:10}.breadcrumb{color:var(--text-dim);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem}.topbar-title{font-size:.98rem;font-weight:600}.topbar-actions{display:flex;align-items:center;gap:var(--space-8)}.theme-toggle{border-radius:999px;padding:.4rem .7rem;background:var(--bg-panel);border:1px solid var(--border);color:var(--text-muted)}.theme-toggle:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-card)}.search-field input{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-primary);padding:.45rem .75rem;border-radius:999px;min-width:200px}.user-menu{display:flex;align-items:center;gap:var(--space-8);background:var(--bg-panel);border:1px solid var(--border);border-radius:999px;padding:.3rem .6rem;cursor:pointer;transition:border-color var(--motion-fast),background var(--motion-fast)}.sidebar .user-menu{width:100%;justify-content:flex-start}.sidebar.collapsed .user-menu{width:auto;justify-content:center;padding:.4rem}.user-menu:hover{border-color:var(--border-strong);background:var(--bg-card)}.user-menu-wrap{position:relative}.sidebar .user-menu-popover{left:calc(100% + 12px);right:auto;bottom:0;top:auto}.sidebar.collapsed .user-menu-popover{left:calc(100% + 12px)}.user-meta{display:flex;flex-direction:column;gap:2px;text-align:left}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:600;background:var(--bg-card);border:1px solid var(--border)}.user-name{font-weight:600;font-size:.78rem}.user-role{font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.user-menu-popover{position:absolute;top:auto;right:0;bottom:calc(100% + 8px);width:260px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-strong);padding:var(--space-10);display:flex;flex-direction:column;gap:var(--space-10);z-index:20}.user-menu-card{display:flex;flex-direction:column}.user-menu-block{padding:var(--space-12)}.user-menu-block-bordered{border-bottom:1px solid var(--border)}.user-menu-name{margin:0;font-size:.84rem;font-weight:600;color:var(--text-primary)}.user-menu-email{margin:4px 0 0;font-size:.76rem;color:var(--text-muted)}.user-menu-select{margin-top:var(--space-8);width:100%}.user-menu-actions-row{padding:var(--space-8)}.user-menu-action-link{width:100%;text-align:left;border:0;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);padding:var(--space-8) var(--space-12);cursor:pointer}.user-menu-action-link:hover{background:var(--bg-card);color:var(--text-primary)}.user-menu-section{display:flex;flex-direction:column;gap:var(--space-4)}.user-menu-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim)}.user-menu-strong{font-weight:600;font-size:.8rem}.user-menu-form,.user-menu-actions{display:flex;flex-direction:column;gap:var(--space-8)}.user-menu-action{width:100%;justify-content:space-between;border-radius:var(--radius-sm);text-transform:none;letter-spacing:.02em;padding:.4rem .65rem;background:var(--bg-card)}.content{padding:var(--space-16);display:flex;flex-direction:column;gap:var(--space-12);width:100%;flex:1;min-height:0}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-12)}.page-subtitle{color:var(--text-muted);margin-top:6px;max-width:520px;line-height:1.5}.page-actions{display:flex;gap:6px}.surface{background:var(--bg-panel);border-radius:var(--radius-lg);border:1px solid var(--border);padding:var(--space-14);box-shadow:var(--shadow);width:100%}.loading-card{display:flex;align-items:center;gap:var(--space-16)}.panel-body{display:flex;flex-direction:column;gap:var(--space-10)}.panel-title{font-weight:600;font-size:.9rem}.panel-subtitle{color:var(--text-muted);line-height:1.5}.field{display:flex;flex-direction:column;gap:var(--space-8)}label{font-size:.68rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.07em}input,select,textarea{border-radius:var(--radius-sm);padding:.5rem .7rem;border:1px solid var(--border);background:var(--bg-panel);color:var(--text-primary);font-size:.84rem;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--glow)}textarea{resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);border:none;border-radius:var(--radius-sm);padding:.45rem .85rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:transform var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast);letter-spacing:.02em;min-height:36px}.btn-primary{background:var(--accent-primary);color:#fff;box-shadow:0 10px 20px #2d6bff2e}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-primary:hover:not(:disabled){background:#245bdb}.notice{border-radius:var(--radius-md);padding:var(--space-10) var(--space-12);font-size:.82rem;line-height:1.4}.notice.error{background:#e5484d14;color:var(--danger);border:1px solid rgba(229,72,77,.2)}.notice.success{background:#2cb67d1f;color:var(--success);border:1px solid rgba(44,182,125,.2)}.notice.warning{background:#f2b9501f;color:var(--warning);border:1px solid rgba(242,185,80,.25)}.notice span{display:block;margin-top:var(--space-8);font-size:.8rem;color:var(--text-dim)}.error{color:var(--danger);font-size:.8rem}.hint{color:var(--text-dim);font-size:.8rem}.dashboard-empty{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16)}.status-badges{display:flex;gap:var(--space-8);flex-wrap:wrap}.status-badge{display:inline-flex;align-items:center;padding:.16rem .48rem;border-radius:999px;font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;border:1px solid transparent;margin-left:var(--space-8)}.status-badge.status-active,.status-badge.status-info{background:#2d6bff1f;color:var(--signal-blue);border-color:#2d6bff40}.status-badge.status-warning,.status-badge.status-deprecated{background:#f2b95024;color:var(--signal-amber);border-color:#f2b9504d}.status-badge.status-success{background:#2cb67d24;color:var(--signal-green);border-color:#2cb67d4d}.status-badge.status-danger{background:#e5484d24;color:var(--signal-red);border-color:#e5484d4d}.schema-panel,.wizard-panel{display:flex;flex-direction:column;gap:var(--space-12)}.pipeline-panel{display:flex;flex-direction:column;gap:var(--space-10);min-height:calc(100vh - 220px)}.pipeline-actions{display:inline-flex;gap:var(--space-8)}.pipeline-meta{display:grid;grid-template-columns:minmax(220px,1fr) minmax(160px,.6fr);gap:var(--space-10);align-items:end}.pipeline-create{display:flex;flex-direction:column;gap:var(--space-8)}.pipeline-status{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-10)}.pipeline-builder{display:grid;grid-template-columns:minmax(360px,2fr) minmax(240px,.9fr);gap:var(--space-10);min-height:0}.pipeline-settings-row{display:flex;gap:var(--space-10);align-items:flex-start;margin-bottom:var(--space-10)}.settings-mini-panel{flex:1;padding:var(--space-10);background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border)}.settings-mini-panel .field{gap:4px}.settings-mini-panel .panel-header-compact{margin-bottom:var(--space-8)}.settings-save-row{display:flex;align-items:center;align-self:flex-end;height:100%;padding-bottom:4px}.graph-canvas{height:100%;min-height:0;background:var(--graph-canvas-bg);border-radius:var(--radius-md);border:1px solid var(--border);overflow:hidden}.react-flow__node-default{background:var(--bg-panel);color:var(--text-primary);border:1px solid rgba(45,107,255,.25);border-radius:10px;padding:8px 10px;min-width:150px;box-shadow:var(--shadow)}.react-flow__node-default.node-ingest{background:#2d6bff14;border-color:#2d6bff59}.react-flow__node-default.node-filter{background:#12b5e514;border-color:#12b5e54d}.react-flow__node-default.node-aggregate{background:#2cb67d14;border-color:#2cb67d4d}.react-flow__node-default.node-convert{background:#7c3aed14;border-color:#7c3aed4d}.react-flow__node-default.node-buffer{background:#f59e0b14;border-color:#f59e0b4d}.react-flow__node-default.node-destination{background:#f2b9501f;border-color:#f2b95059}.react-flow__node-default.selected{border-color:#2d6bffb3;box-shadow:0 0 0 2px #2d6bff40,var(--shadow-strong)}.react-flow__node-default:hover{border-color:#2d6bff66}.react-flow__node-default .node-title{color:var(--text-primary)}.react-flow__node-default .node-badge{color:var(--text-muted);border-color:#2d6bff33}.react-flow__node-default .node-preview{color:var(--text-dim)}.node-settings{display:flex;flex-direction:column;gap:var(--space-10);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-10)}.node-label{display:flex;flex-direction:column;gap:4px}.node-title-row{display:inline-flex;align-items:center;gap:6px}.node-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-primary)}.node-meta{display:flex;flex-wrap:wrap;gap:4px}.node-badge{border:1px solid var(--border);border-radius:999px;padding:.08rem .4rem;font-size:.56rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.node-badge-workers{background:#2d6bff1a;border-color:#2d6bff66;color:#2d6bff}.node-metric-badge{background:#2cb67d26;border:1px solid rgba(44,182,125,.4);color:#2cb67d;border-radius:999px;padding:.08rem .36rem;font-size:.56rem;font-weight:600;margin-left:4px}.node-metric-badge-pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.node-icon-img{width:18px;height:18px}.node-preview{font-size:.7rem;color:var(--text-dim)}.node-actions{display:flex;flex-wrap:wrap;gap:var(--space-8)}.settings-block,.settings-list{display:flex;flex-direction:column;gap:var(--space-8)}.settings-row{display:grid;grid-template-columns:.7fr 1.3fr auto;gap:var(--space-8);align-items:center}.endpoint-list{display:flex;flex-direction:column;gap:6px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px}.endpoint-example{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px}.endpoint-example pre{margin:0;font-size:.75rem;line-height:1.4;white-space:pre-wrap;word-break:break-word}.endpoint-item{display:flex;justify-content:space-between;gap:6px;font-size:.76rem;color:var(--text-muted)}.endpoint-label{text-transform:uppercase;letter-spacing:.08em;font-size:.65rem}.wizard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-10)}.wizard-card{display:flex;flex-direction:column;gap:var(--space-10);background:var(--bg-card);padding:var(--space-10);border-radius:var(--radius-md);border:1px solid var(--border)}.wizard-actions{display:flex;gap:var(--space-8)}.wizard-sample{background:var(--bg-panel);border-radius:var(--radius-sm);border:1px solid var(--border-strong);padding:6px}.wizard-sample pre{margin:var(--space-8) 0 0;font-size:.75rem;line-height:1.4;white-space:pre-wrap;word-break:break-word}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-12)}.schema-grid{display:grid;grid-template-columns:minmax(140px,.45fr) minmax(360px,2.55fr);gap:var(--space-12)}.schema-list{display:flex;flex-direction:column;gap:var(--space-10);max-width:220px}.schema-list-items{display:flex;flex-direction:column;gap:var(--space-10)}.schema-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);text-align:left;width:100%;padding:var(--space-10);border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)}.schema-item.selected{border-color:#3aa0ff66;box-shadow:var(--glow)}.schema-name{font-weight:600;margin-bottom:var(--space-4)}.schema-meta{display:flex;align-items:center;gap:var(--space-8);font-size:.74rem;color:var(--text-muted)}.schema-tag{background:#2d6bff1f;color:var(--signal-blue);padding:.12rem .45rem;border-radius:999px;font-size:.56rem;text-transform:uppercase;letter-spacing:.12em;border:1px solid rgba(45,107,255,.3)}.schema-tag.ghost{background:transparent;border:1px dashed var(--border-strong);color:var(--text-dim)}.schema-detail{display:flex;flex-direction:column;gap:var(--space-12)}.schema-detail-body{display:flex;flex-direction:column;gap:var(--space-12);padding-top:var(--space-10);border-top:1px solid var(--border)}.schema-detail-header{display:flex;justify-content:space-between;gap:var(--space-10);align-items:flex-start}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-8)}.schema-form,.schema-versions{display:flex;flex-direction:column;gap:6px;background:var(--bg-card);padding:var(--space-10);border-radius:var(--radius-md);border:1px solid var(--border)}.schema-versions{background:var(--bg-elevated)}.schema-editor{display:flex;flex-direction:column;gap:var(--space-10)}.schema-import,.schema-export{display:flex;flex-direction:column;gap:var(--space-8)}.columns-editor{display:flex;flex-direction:column;gap:6px}.columns-header{display:flex;justify-content:space-between;align-items:center;gap:6px}.columns-actions{display:inline-flex;gap:6px}.columns-grid{display:flex;flex-direction:column;gap:6px}.column-row{display:grid;grid-template-columns:1.2fr .8fr 1.6fr auto auto auto;gap:6px;align-items:center;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px}.version-preview{background:var(--bg-panel);color:var(--text-primary);padding:var(--space-10);border-radius:var(--radius-md);border:1px solid var(--border-strong)}.version-preview pre{margin:var(--space-8) 0 0;font-size:.76rem;line-height:1.4;white-space:pre-wrap;word-break:break-word}.checkbox-row{display:flex;align-items:center}.checkbox-label{display:inline-flex;align-items:center;gap:var(--space-8);font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.checkbox-label.compact{font-size:.72rem;letter-spacing:.08em}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);display:grid;place-items:center;z-index:50}.modal-card{width:min(720px,92vw);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-12);box-shadow:var(--shadow-strong)}.drawer-card{width:min(420px,92vw);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-12);box-shadow:var(--shadow-strong)}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-10);margin-bottom:var(--space-10)}.modal-body{display:flex;flex-direction:column;gap:6px}.modal-actions{display:flex;justify-content:flex-end;margin-top:var(--space-10)}.checkbox-label input{width:1rem;height:1rem;accent-color:var(--accent-primary)}.node-label-wrapper{position:relative}.live-node-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:12px;background:#0f172ae6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);box-shadow:0 10px 25px -5px #00000080,0 8px 10px -6px #0000001a;width:380px;z-index:1000;overflow:hidden;animation:tooltip-enter .2s cubic-bezier(.16,1,.3,1) forwards;pointer-events:none}@keyframes tooltip-enter{0%{opacity:0;transform:translate(-50%) translateY(-4px) scale(.98)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.live-tooltip-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff08}.live-tooltip-title{font-size:.75rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.05em}.live-tooltip-loading{font-size:.7rem;color:#94a3b8;display:flex;align-items:center;gap:6px}.live-tooltip-loading:before{content:"";width:8px;height:8px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--native-blue);border-radius:50%;animation:spin 1s linear infinite}.live-tooltip-content{padding:0}.live-tooltip-error{padding:12px;color:#f87171;font-size:.8rem;background:#dc26261a}.live-tooltip-table-wrapper{display:flex;flex-direction:column}.live-tooltip-table{width:100%;border-collapse:collapse;font-size:.75rem;font-family:var(--font-mono)}.live-tooltip-table th{text-align:left;padding:6px 12px;color:#94a3b8;font-weight:500;border-bottom:1px solid rgba(255,255,255,.1);white-space:nowrap}.live-tooltip-table td{padding:6px 12px;color:#e2e8f0;border-bottom:1px solid rgba(255,255,255,.05);white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.live-tooltip-table tr:last-child td{border-bottom:none}.live-tooltip-footer{padding:6px 12px;text-align:right;font-size:.7rem;color:#64748b;background:#0003;border-top:1px solid rgba(255,255,255,.05)}.live-tooltip-empty{padding:20px;text-align:center;color:#64748b;font-size:.8rem}.node-metric-badge-pulse{animation:pulse-glow 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.7}}.table{width:100%;border-collapse:collapse;background:var(--bg-panel);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.table th,.table td{padding:var(--space-10) var(--space-12);text-align:left;font-size:.78rem}.table thead{background:var(--bg-card);color:var(--text-dim);text-transform:uppercase;letter-spacing:.12em;font-size:.58rem}.table tbody tr{border-top:1px solid var(--border)}.table tbody tr:hover{background:#2d6bff0f}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-10)}.card{background:var(--bg-panel);border-radius:var(--radius-md);border:1px solid var(--border);padding:var(--space-10);box-shadow:var(--shadow)}.tabs{display:inline-flex;gap:6px;padding:6px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border)}.tab{border:none;background:transparent;color:var(--text-muted);padding:6px 12px;border-radius:999px;cursor:pointer;letter-spacing:.02em;font-size:.74rem}.tab.active{background:#2d6bff24;color:var(--text-primary)}.pulse{width:2.4rem;height:2.4rem;border-radius:50%;background:radial-gradient(circle,var(--accent-primary) 0%,rgba(58,160,255,.2) 55%,transparent 100%);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%{transform:scale(.95);opacity:.7}50%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:.7}}@media (max-width: 1100px){.schema-grid{grid-template-columns:1fr}.dashboard-empty{flex-direction:column;align-items:flex-start}.pipeline-builder,.pipeline-meta{grid-template-columns:1fr}}@media (max-width: 960px){.app-shell,.loading-shell-app{flex-direction:column}.loading-shell-sidebar{width:100%;border-right:0;border-bottom:1px solid var(--border)}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-12)}.sidebar-nav{flex-direction:row;flex-wrap:wrap}.sidebar-footer{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}.topbar{flex-direction:column;align-items:flex-start;gap:var(--space-12)}.topbar-actions{width:100%;justify-content:space-between}}@media (max-width: 720px){.app-main{padding:var(--space-8)}.content{padding:var(--space-16)}.page-header{flex-direction:column;align-items:flex-start}.topbar-actions{flex-direction:column;align-items:stretch}.search-field input{width:100%}.user-menu{width:100%;justify-content:space-between}.column-row,.onboarding-steps{grid-template-columns:1fr}.onboarding-actions{flex-direction:column}}.pipeline-list-panel{display:flex;flex-direction:column;gap:.75rem}.pipeline-list-actions{display:flex;gap:.6rem;align-items:center}.pipeline-table{width:100%;border-collapse:collapse;margin-top:1rem}.pipeline-table th{background:var(--surface-2);padding:.6rem .8rem;text-align:left;font-weight:600;border-bottom:2px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none}.table-sort-button{border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer}.table-sort-button:focus-visible{outline:none;box-shadow:var(--glow);border-radius:var(--radius-sm)}.pipeline-table th:hover{background:var(--surface-3)}.pipeline-table td{padding:.6rem .8rem;border-bottom:1px solid var(--border)}.pipeline-table tbody tr{transition:background .15s}.pipeline-table tbody tr.clickable-row{cursor:pointer}.pipeline-table tbody tr.clickable-row:hover{background:var(--surface-2)}.pipeline-table .pipeline-name{font-weight:500;color:var(--text-primary)}.pipeline-table .empty-state{text-align:center;padding:3rem 1rem}.empty-state-content{display:flex;flex-direction:column;gap:.5rem}.action-buttons{display:flex;gap:.5rem}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.search-input{position:relative}.search-input input{padding:.5rem .75rem;border:1px solid var(--border);border-radius:.375rem;background:var(--surface-1);color:var(--text-primary);min-width:200px}.search-input input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2d6bff29}.onboarding-shell{width:min(720px,95vw)}.onboarding-card{padding:var(--space-20);display:flex;flex-direction:column;gap:var(--space-16)}.onboarding-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8)}.onboarding-step{display:flex;align-items:center;gap:var(--space-8);color:var(--text-dim);font-size:.8rem;font-weight:600}.onboarding-step-circle{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-strong);display:grid;place-items:center;color:var(--text-dim)}.onboarding-step.active{color:var(--accent-primary)}.onboarding-step.active .onboarding-step-circle{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.onboarding-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-12)}.onboarding-copy{max-width:56ch}.onboarding-actions{display:flex;justify-content:space-between;gap:var(--space-12)}.onboarding-check{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:1.6rem;color:#fff;background:var(--success)}.settings-panel{max-width:760px}.settings-drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999}.settings-drawer{position:fixed;top:0;right:-500px;bottom:0;width:500px;max-width:90vw;background:var(--surface-1);box-shadow:-12px 0 24px #0b0d121f;z-index:1000;display:flex;flex-direction:column;transition:right .3s ease}.settings-drawer.open{right:0}.drawer-header{padding:1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start}.drawer-body{flex:1;overflow-y:auto;padding:1.5rem}.drawer-footer{padding:1.5rem;border-top:1px solid var(--border);display:flex;gap:.75rem;justify-content:flex-end}.settings-section{margin-bottom:2rem}.settings-section h3{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text-primary)}.settings-section .field{margin-bottom:1rem}.info-box{background:var(--surface-2);padding:1rem;border-radius:.375rem;border-left:3px solid var(--primary);margin:.75rem 0}.info-box p{margin:.25rem 0;font-size:.875rem}.info-box p strong{color:var(--primary);font-weight:600}.pipeline-detail-panel{display:flex;flex-direction:column;gap:1rem}.pipeline-workspace{position:relative;display:flex;flex-direction:column;gap:var(--space-12);flex:1;min-height:0}.pipeline-screen-skeleton{display:flex;flex-direction:column;gap:var(--space-12);flex:1;min-height:0}.pipeline-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);padding:var(--space-12) var(--space-16);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md)}.pipeline-toolbar-skeleton{pointer-events:none}.pipeline-skeleton-title-group{display:flex;flex-direction:column;gap:var(--space-8)}.pipeline-skeleton-back{width:72px;height:30px}.pipeline-skeleton-title{width:220px;height:20px}.pipeline-skeleton-subtitle{width:180px;height:14px}.pipeline-skeleton-button{width:98px;height:34px}.pipeline-toolbar-left{display:flex;align-items:center;gap:var(--space-12)}.pipeline-toolbar-actions{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.pipeline-stage{position:relative;display:grid;grid-template-columns:1fr;gap:var(--space-12);flex:1;min-height:0}.pipeline-canvas{position:relative;min-height:0;height:100%}.pipeline-canvas-skeleton{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--graph-canvas-bg);overflow:hidden}.pipeline-skeleton-graph{width:100%;height:100%;min-height:420px}.pipeline-skeleton-palette{position:absolute;left:var(--space-16);bottom:var(--space-16);display:flex;flex-direction:column;gap:var(--space-8);width:136px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-12)}.pipeline-skeleton-palette-title{width:64px;height:10px}.pipeline-skeleton-palette-item{width:100%;height:28px}.pipeline-inspector{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-12);overflow:auto;position:relative}.inspector-resize-handle{position:absolute;left:0;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent;z-index:10;transition:background .2s}.inspector-resize-handle:hover,.inspector-resize-handle:active{background:var(--accent)}.pipeline-workspace.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.pipeline-workspace.is-resizing *{cursor:col-resize!important}.inspector-close-btn{position:absolute;top:12px;right:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);transition:all .15s ease;z-index:10}.inspector-close-btn:hover{background:var(--bg);color:var(--text-primary);border-color:var(--border-strong)}.pipeline-selector{position:absolute;top:0;left:0;height:100%;width:360px;transform:translate(calc(-100% + 52px));transition:transform var(--motion-base),opacity var(--motion-fast);opacity:.88;z-index:5}.pipeline-selector:hover,.pipeline-selector:focus-within{transform:translate(0);opacity:1}.pipeline-selector-panel{height:100%;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-strong);padding:var(--space-12);display:flex;flex-direction:column;gap:var(--space-12);overflow:auto}.pipeline-selector-header{display:flex;flex-direction:column;gap:var(--space-8)}.pipeline-selector h3{margin:0;font-size:.95rem}.node-palette{position:absolute;left:var(--space-16);bottom:var(--space-16);display:flex;flex-direction:column;gap:var(--space-8);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-12);box-shadow:var(--shadow);z-index:4}.node-palette-title{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim)}.node-delete{margin-top:var(--space-8)}.pipeline-header-row{display:flex;align-items:center;gap:1rem}.pipeline-header-row h2{margin:0}.pipeline-draft-callout{margin-top:.75rem;padding:.75rem 1rem;border-radius:.5rem;border:1px solid rgba(242,185,80,.35);background:#f2b9501f}.pipeline-draft-actions{margin-top:var(--space-8);display:flex;gap:var(--space-8);flex-wrap:wrap}.pipeline-create-section{background:var(--surface-2);padding:1.5rem;border-radius:.5rem;border:2px dashed var(--border)}.pipeline-create-form{display:flex;gap:1rem;align-items:flex-end}.pipeline-create-form .field{flex:1;margin-bottom:0}.modal-card{background:var(--surface-1);border-radius:.5rem;min-width:400px;max-width:600px;box-shadow:0 20px 25px -5px #0000004d}.modal-header{padding:1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start}.modal-body{padding:1.5rem}.modal-actions{padding:1.5rem;border-top:1px solid var(--border);display:flex;gap:.75rem;justify-content:flex-end}.status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.status-success{background:#2cb67d1f;color:var(--signal-green);border:1px solid rgba(44,182,125,.3)}.status-warning{background:#f2b9501f;color:var(--signal-amber);border:1px solid rgba(242,185,80,.3)}.status-error{background:#e5484d1f;color:var(--signal-red);border:1px solid rgba(229,72,77,.3)}.status-info{background:#2d6bff1f;color:var(--signal-blue);border:1px solid rgba(45,107,255,.3)}.node-badge-sm{font-size:.625rem;padding:.125rem .375rem;background:var(--surface-3);border-radius:.25rem;text-transform:uppercase;font-weight:600}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.loading-state .pulse{width:48px;height:48px}@media (max-width: 768px){.pipeline-list-actions{flex-direction:column;align-items:stretch}.search-input input{min-width:100%}.settings-drawer{width:100vw}.pipeline-table{font-size:.875rem}.pipeline-table th,.pipeline-table td{padding:.5rem .75rem}}.context-menu{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:4px;position:absolute;z-index:1000;box-shadow:var(--shadow)}.context-menu button{width:100%;padding:8px 12px;border:none;background:none;color:var(--text-primary);text-align:left;cursor:pointer;font-size:.85rem;border-radius:4px}.context-menu button:hover{background:#ff6b8a1a;color:var(--danger)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:450px;box-shadow:var(--shadow);overflow:hidden}.modal-header{padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:1.1rem;font-weight:600}.btn-close{background:none;border:none;color:var(--text-dim);font-size:1.5rem;cursor:pointer;line-height:1}.modal-body{padding:var(--space-24) var(--space-20);color:var(--text-muted);line-height:1.6}.modal-footer{padding:var(--space-16) var(--space-20);background:#0003;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:var(--space-12)}.btn-danger{background:linear-gradient(135deg,#991b1b,var(--danger));color:#fff}.nav-icon{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;font-size:.7rem;font-weight:600;background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted)}.nav-item.active .nav-icon{color:var(--accent-primary);border-color:#2d6bff4d;background:#2d6bff14}.nav-label{flex:1}.preview-table-container{max-height:400px;overflow:auto;margin-top:8px;border:1px solid var(--border);border-radius:4px;background:var(--bg)}.preview-table{width:100%;border-collapse:collapse;font-size:.8rem}.preview-table th,.preview-table td{padding:8px;text-align:left;border-bottom:1px solid var(--border)}.preview-table th{background:var(--bg-elevated);font-weight:600;position:sticky;top:0;z-index:1}.preview-table td{color:var(--text-primary);font-family:monospace;font-size:.75rem}.preview-info{padding:8px;font-size:.75rem;color:var(--text-dim);text-align:center;background:var(--bg-elevated);border-top:1px solid var(--border);margin:0}.result-success{background:#2cb67d1a;border:1px solid rgba(44,182,125,.3);border-radius:4px;padding:12px;margin-top:8px}.result-success pre{color:var(--text-primary);overflow-x:auto}.result-error{background:#ff6b8a1a;border:1px solid rgba(255,107,138,.3);border-radius:4px;padding:12px;margin-top:8px;color:var(--danger)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.sidebar-logo{display:flex;align-items:center;gap:.75rem}.sidebar-logo-text{font-weight:600;font-size:1.125rem}.sidebar-toggle{background:transparent;border:1px solid var(--border);padding:.25rem .5rem;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);transition:all var(--motion-fast)}.sidebar-toggle:hover{background:var(--bg-subtle);color:var(--text)}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:.5rem}.sidebar-nav-item{background:transparent;border:1px solid transparent;padding:.625rem 1rem;color:var(--text-muted);text-align:left;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--motion-fast);font-size:.875rem}.sidebar-nav-item:hover{background:var(--bg-subtle);color:var(--text)}.sidebar-nav-item.active{background:var(--bg-accent);color:var(--text-accent);border-color:var(--border-accent)}.sidebar-footer{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border)}.sidebar-user-button{width:100%;display:flex;align-items:center;gap:.75rem;padding:.625rem;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--motion-fast);text-align:left}.sidebar-user-button:hover{background:var(--bg-subtle);border-color:var(--border)}.sidebar-user-avatar{width:2rem;height:2rem;border-radius:50%;background:var(--bg-accent);color:var(--text-accent);display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:.875rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-org{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-popover{min-width:16rem}.sidebar.collapsed .sidebar-user-info{display:none}:root{color-scheme:light;--font-sans: "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, monospace;--type-h1-size: 26px;--type-h1-line: 34px;--type-h2-size: 20px;--type-h2-line: 28px;--type-h3-size: 17px;--type-h3-line: 24px;--type-body-size: 14px;--type-body-line: 20px;--type-small-size: 12px;--type-small-line: 18px;--ink-950: #0b0d12;--ink-800: #1a1d24;--ink-600: #3a3f4b;--ink-400: #6b7280;--ink-200: #c9ced6;--ink-100: #e2e6ee;--ink-50: #f6f7fa;--paper: #ffffff;--signal-blue: #2d6bff;--signal-cyan: #12b5e5;--signal-green: #2cb67d;--signal-amber: #f2b950;--signal-red: #e5484d;--bg-app: var(--paper);--bg-panel: var(--paper);--bg-card: #f7f8fb;--bg-elevated: #eff2f7;--app-shell-bg: linear-gradient(160deg, rgba(246, 247, 250, .75), rgba(255, 255, 255, .85));--app-shell-glow-1: rgba(45, 107, 255, .05);--app-shell-glow-2: rgba(18, 181, 229, .05);--auth-shell-bg: radial-gradient(circle at top left, rgba(45, 107, 255, .1), transparent 48%);--topbar-bg: rgba(255, 255, 255, .95);--graph-canvas-bg: #f8fafc;--overlay-bg: rgba(11, 13, 18, .45);--surface-1: var(--bg-panel);--surface-2: var(--bg-card);--surface-3: var(--bg-elevated);--bg: var(--bg-panel);--bg-subtle: var(--bg-card);--bg-accent: rgba(45, 107, 255, .12);--text-primary: var(--ink-950);--text-muted: var(--ink-600);--text-dim: var(--ink-400);--text: var(--text-primary);--text-accent: var(--signal-blue);--accent-primary: var(--signal-blue);--accent-secondary: var(--signal-cyan);--accent-cyan: var(--signal-cyan);--primary: var(--signal-blue);--border: var(--ink-100);--border-strong: var(--ink-200);--border-accent: rgba(45, 107, 255, .3);--shadow: 0 6px 14px rgba(11, 13, 18, .08);--shadow-strong: 0 12px 24px rgba(11, 13, 18, .12);--glow: 0 0 0 2px rgba(45, 107, 255, .16);--success: var(--signal-green);--warning: var(--signal-amber);--danger: var(--signal-red);--info: var(--signal-cyan);--space-4: 4px;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--space-32: 32px;--space-40: 40px;--space-48: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 10px;--motion-fast: .14s cubic-bezier(.2, .8, .2, 1);--motion-base: .2s cubic-bezier(.2, .8, .2, 1)}[data-theme=dark]{color-scheme:dark;--bg-app: #0b0d12;--bg-panel: #0f1218;--bg-card: #141922;--bg-elevated: #1b2230;--bg-subtle: #151b24;--bg-accent: rgba(45, 107, 255, .2);--text-primary: #f4f6f9;--text-muted: #c0c6d2;--text-dim: #8c95a7;--text: var(--text-primary);--text-accent: #d9e5ff;--border: #262d3b;--border-strong: #3a4355;--border-accent: rgba(123, 168, 255, .5);--app-shell-bg: linear-gradient(160deg, rgba(10, 12, 18, .95), rgba(14, 18, 26, .95));--app-shell-glow-1: rgba(45, 107, 255, .12);--app-shell-glow-2: rgba(18, 181, 229, .08);--auth-shell-bg: radial-gradient(circle at top left, rgba(45, 107, 255, .2), transparent 48%);--topbar-bg: rgba(13, 17, 25, .96);--graph-canvas-bg: #0f141c;--overlay-bg: rgba(5, 7, 11, .6);--shadow: 0 6px 16px rgba(4, 6, 10, .48);--shadow-strong: 0 12px 28px rgba(2, 4, 8, .65);--glow: 0 0 0 2px rgba(45, 107, 255, .28)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:var(--type-body-size);line-height:var(--type-body-line);background:linear-gradient(180deg,#f6f8fce6,#fffffff2),var(--bg-app);color:var(--text-primary);min-height:100vh}h1{font-size:var(--type-h1-size);line-height:var(--type-h1-line);font-weight:600;margin:0}h2{font-size:var(--type-h2-size);line-height:var(--type-h2-line);font-weight:600;margin:0}h3{font-size:var(--type-h3-size);line-height:var(--type-h3-line);font-weight:600;margin:0}p{margin:0}a{color:inherit;text-decoration:none}code,pre{font-family:var(--font-mono)}button,input,select,textarea{font-family:inherit}::selection{background:#2d6bff24}
