@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Jua&family=Quicksand:wght@500;600;700&display=swap";.chat-sidebar-container{width:68px;overflow:hidden;background-color:var(--sidebar-bg);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);height:100vh;cursor:pointer}.chat-sidebar-container.open{width:320px;cursor:default}.chat-sidebar-container:not(.open) .chat-sidebar-header h2,.chat-sidebar-container:not(.open) .btn-refresh,.chat-sidebar-container:not(.open) .chat-sidebar-content{opacity:0;width:0;height:0;overflow:hidden;padding:0;margin:0;pointer-events:none}.chat-sidebar-container:not(.open) .chat-sidebar-header{justify-content:center;padding:1.5rem 0}.chat-sidebar-header h2,.btn-refresh,.chat-sidebar-content{transition:opacity .2s,width .2s;opacity:1}.chat-sidebar-header{padding:1.5rem 1rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.btn-refresh{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-refresh:hover{background:var(--bg-hover);color:var(--text-color)}.btn-refresh .spin{animation:spin 1s linear infinite}.chat-sidebar-content{flex:1;overflow-y:auto;padding:1rem}.chat-session-list{display:flex;flex-direction:column;gap:.5rem}.chat-session-item{background:transparent;border-radius:6px;padding:.6rem .75rem;transition:all .2s;display:flex;align-items:center;position:relative;border:1px solid transparent}.chat-session-item:hover{background:var(--btn-active-bg)}.session-header{display:flex;align-items:center;gap:8px;width:100%}.session-title{font-weight:400;font-size:.9rem;color:var(--text-color);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s;position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:linear-gradient(90deg,transparent,var(--btn-active-bg) 20%,var(--btn-active-bg) 100%);padding-left:1rem}.chat-session-item:hover .session-actions{opacity:1}.btn-delete-session,.btn-go-project{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.btn-delete-session:hover{color:#ef4444;background:#ef44441a}.btn-go-project:hover{color:#10b981;background:#10b9811a}.main-sidebar{width:260px;background-color:var(--card-bg);border-right:1px solid var(--border-color);display:flex;flex-direction:column;height:100vh;position:sticky;top:0;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.main-sidebar.collapsed{width:68px;cursor:pointer}.main-sidebar-header{padding:1.5rem;display:flex;align-items:center;gap:.8rem;border-bottom:1px solid var(--border-color);white-space:nowrap;overflow:hidden;transition:padding .3s}.main-sidebar.collapsed .main-sidebar-header{padding:1.5rem 0;justify-content:center;gap:0}.brand-logo{width:45px;height:45px;object-fit:contain;transition:width .3s,height .3s;flex-shrink:0}.main-sidebar.collapsed .brand-logo{width:36px;height:36px}.brand-name{font-size:1.4rem;font-weight:800;letter-spacing:-.5px;transition:opacity .2s,width .2s;opacity:1}.logo-container{font-family:Poppins,Helvetica Neue,sans-serif;font-size:1.5rem;font-weight:700;color:#fff;display:flex;align-items:center}.text-workflow{color:#fff}.main-sidebar.collapsed .brand-name,.main-sidebar.collapsed .nav-item span,.main-sidebar.collapsed .user-info,.main-sidebar.collapsed .btn-logout{opacity:0;width:0;overflow:hidden}.main-sidebar.collapsed *{pointer-events:none}.main-sidebar.collapsed .nav-item{padding:.8rem 0;justify-content:center}.main-sidebar.collapsed .profile-pic-large{width:36px;height:36px}.main-nav{display:flex;flex-direction:column;padding:1.5rem 1rem;gap:.3rem;flex:1;overflow:hidden}.nav-item{display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;border-radius:8px;background:transparent;border:none;color:var(--text-muted);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;text-align:left;white-space:nowrap;overflow:hidden}.nav-item:hover{background:var(--btn-active-bg);color:var(--text-color)}.nav-item.active{background:#60a5fa1a;color:#60a5fa}.nav-divider{height:1px;background:var(--border-color);margin:1rem 0}.main-sidebar-footer{padding:1.5rem;border-top:1px solid var(--border-color);background:var(--btn-active-bg)}.user-profile-vertical{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.8rem}.profile-pic-large{width:60px;height:60px;border-radius:50%;object-fit:cover;border:2px solid #334155}.user-info{display:flex;flex-direction:column;gap:.2rem}.user-name{color:var(--text-color);font-weight:600;font-size:1rem}.user-email{color:var(--text-muted);font-size:.8rem}.btn-logout{width:100%;padding:.6rem;border-radius:6px;background:var(--btn-active-bg);border:1px solid var(--border-color);color:var(--text-color);font-size:.85rem;cursor:pointer;transition:all .2s;margin-top:.5rem}.btn-logout:hover{background:#ef44441a;color:#ef4444;border-color:#ef44444d}.login-container{display:flex;flex-direction:column;gap:1rem;text-align:center}.login-hint{font-size:.85rem;color:var(--text-muted);margin:0}.login-collapsed-icon,.main-sidebar.collapsed .login-container{display:none}.main-sidebar.collapsed .login-collapsed-icon{display:flex;justify-content:center;align-items:center}.main-page-layout{display:flex;min-height:100vh;background-color:var(--bg-color);color:var(--text-color)}.main-page-content{flex:1;padding:2rem 4rem;overflow-y:auto;display:flex;flex-direction:column;justify-content:space-between;align-items:center;height:100vh}.chat-hero-header{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;animation:fadeIn .8s ease-out;padding-bottom:2rem}.chat-history{width:100%;max-width:100%;display:flex;flex-direction:column;gap:2.5rem;padding-bottom:2rem;padding-top:1rem}.chat-message{display:flex;gap:1.25rem;align-items:flex-start;width:100%;animation:fadeIn .3s ease-out}.chat-message.user{align-self:flex-end;flex-direction:row-reverse;max-width:85%}.chat-message.user .chat-avatar{display:none}.chat-message.ai{align-self:flex-start;max-width:90%}.chat-avatar{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-avatar{background:transparent;color:#f59e0b}.chat-bubble{font-size:1.05rem;line-height:1.6;color:var(--text-color);width:100%;word-break:break-word}.chat-bubble p{margin-top:0;margin-bottom:.75rem}.chat-bubble p:last-child{margin-bottom:0}.chat-bubble ul,.chat-bubble ol{margin-top:.5rem;margin-bottom:.75rem;padding-left:1.5rem}.chat-bubble li{margin-bottom:.25rem}.chat-bubble strong{font-weight:700;color:#e2e8f0}.chat-bubble a{color:#60a5fa;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.chat-bubble a:hover{color:#3b82f6}.chat-message.user .chat-bubble{background:#ffffff14!important;padding:.75rem 1.25rem;border-radius:18px;display:inline-block;width:auto}.chat-message.ai .chat-bubble{background:transparent!important;padding:.1rem 0}.chat-input-wrapper{width:100%;display:flex;justify-content:center;padding-bottom:2rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chat-hero-header h2{font-size:3rem;line-height:1.2;margin-bottom:1rem;background:linear-gradient(135deg,var(--text-color),var(--text-muted));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.chat-hero-header p{font-size:1.1rem;color:var(--text-muted);max-width:600px;margin-bottom:2.5rem}.auto-gen-container-minimal{width:100%;background:var(--card-bg);border:1px solid var(--border-color);border-radius:20px;padding:1.25rem 1.5rem;box-shadow:0 8px 24px #0000000a;transition:all .3s ease}.auto-gen-container-minimal:focus-within{box-shadow:0 12px 32px #00000014;border-color:#a78bfa4d}.auto-gen-input-wrapper-minimal{display:flex;align-items:flex-end;gap:1rem}.auto-gen-input-minimal{flex:1;background:transparent;border:none;color:var(--text-color);font-size:1.2rem;line-height:1.5;outline:none;font-family:inherit;padding:0;margin:0}.auto-gen-input-minimal::placeholder{color:var(--text-muted)}.btn-generate-minimal{background:var(--text-color);color:var(--bg-color);border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s}.btn-generate-minimal:hover:not(:disabled){opacity:.8;transform:translateY(-2px)}.btn-generate-minimal:disabled{opacity:.3;cursor:not-allowed;background:var(--text-muted)}.gen-hints-minimal{display:flex;gap:.75rem;flex-wrap:wrap}.hint-chip-minimal{font-size:.85rem;color:var(--text-muted);background:transparent;border:3px solid var(--border-color);padding:.3rem .5rem;border-radius:100px;cursor:pointer;transition:all .2s}.hint-chip-minimal:hover{background:var(--card-bg);color:var(--text-color);border-color:var(--text-color)}.qa-icon-minimal{display:flex;align-items:center;justify-content:center}.qa-title-minimal{font-weight:500;color:var(--text-color);font-size:.95rem}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:3rem;width:100%;max-width:1200px;margin:0 auto}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:1rem}.section-header h3{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.25rem;font-weight:600}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.project-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;transition:all .2s ease-in-out;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000026;border-color:var(--primary-color)}.project-card h4{margin:0 0 .5rem;color:var(--text-color);font-size:1.1rem}.project-card p{color:var(--text-muted);font-size:.9rem;margin:0 0 1.5rem;line-height:1.5;flex:1}.project-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:.8rem;color:var(--text-muted)}.status-badge{padding:.2rem .6rem;border-radius:4px;font-weight:600;font-size:.75rem}.status-badge.private{background:#64748b1a;color:var(--text-muted)}.card-actions{display:flex;gap:.5rem;border-top:1px solid var(--border-color);padding-top:1rem}.card-actions button{flex:1;justify-content:center}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;font-family:Quicksand,Jua,sans-serif}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;font-size:1.25rem;display:flex;align-items:center;gap:.5rem;color:var(--text-color)}.modal-body{padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.5rem}.template-section h3{margin-top:0;margin-bottom:.75rem;font-size:1.1rem;color:var(--text-muted);border-bottom:1px solid var(--border-color);padding-bottom:.25rem}.save-flow-row{display:flex;gap:.5rem}.save-flow-row input{flex:1;background:var(--btn-active-bg);border:1px solid var(--border-color);color:var(--text-color);padding:.5rem .75rem;border-radius:.5rem;outline:none;font-family:inherit}.save-flow-row input:focus{border-color:#3b82f6}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.template-card{background:var(--btn-active-bg);border:1px solid var(--border-color);border-radius:.75rem;padding:1rem;display:flex;flex-direction:column;gap:.5rem;transition:all .2s ease}.template-card:hover{background:var(--card-bg);border-color:var(--primary-color);transform:translateY(-2px)}.template-card h4{margin:0;font-size:1.05rem;color:var(--text-color)}.template-card p{margin:0;font-size:.85rem;color:var(--text-muted);flex:1}.btn-primary{display:flex;align-items:center;gap:.35rem;padding:.5rem 1rem;background-color:#3b82f6;color:#fff;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:background-color .2s;font-family:inherit}.btn-primary:hover{background-color:#2563eb}.btn-load{display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.4rem;background-color:#10b981;color:#fff;border:none;border-radius:.4rem;font-weight:600;cursor:pointer;margin-top:.5rem;transition:background-color .2s}.btn-load:hover{background-color:#059669}.btn-icon{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:color .2s,background-color .2s}.btn-icon:hover{color:var(--text-color);background-color:var(--btn-active-bg)}.btn-icon.delete:hover{color:#ef4444;background-color:#ef44441a}.empty-text{color:#64748b;font-style:italic;font-size:.9rem;margin:0}.info-popup-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:2000;border-radius:12px}.info-popup-content{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;width:80%;max-width:400px;box-shadow:0 10px 15px -3px #00000080;display:flex;flex-direction:column}.info-popup-header{padding:1rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.info-popup-header h3{margin:0;font-size:1.1rem;color:var(--text-color)}.info-popup-body{padding:1rem;color:var(--text-color);font-size:.95rem}.info-popup-url{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border-color)}.info-popup-url a{color:#3b82f6;text-decoration:none}.info-popup-url a:hover{text-decoration:underline}.template-tabs{display:flex;gap:1rem;width:100%;border-bottom:1px solid var(--border-color)}.template-tab{background:transparent;border:none;color:var(--text-muted);font-size:1rem;padding:.75rem 1rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;font-family:inherit;font-weight:500}.template-tab:hover{color:var(--text-color)}.template-tab.active{color:#8b5cf6;border-bottom:2px solid #8b5cf6;font-weight:600}.save-template-bar{display:flex;gap:.75rem;background:var(--bg-color);padding:1rem;border-radius:8px;border:1px solid var(--border-color);margin-bottom:.5rem}.save-template-bar input{flex:1;background:var(--btn-active-bg);border:1px solid var(--border-color);color:var(--text-color);padding:.6rem 1rem;border-radius:6px;outline:none;font-family:inherit;font-size:.95rem;transition:border-color .2s}.save-template-bar input:focus{border-color:#8b5cf6}.template-scroll-area{flex:1;overflow-y:auto;display:flex;flex-direction:column}.template-card{background:var(--btn-active-bg);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;transition:transform .2s ease,box-shadow .2s ease,border-color .2s;position:relative;overflow:hidden}.template-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:#3b82f6;opacity:0;transition:opacity .2s}.template-card.user-template:before{background:#10b981}.template-card:hover{transform:translateY(-4px);box-shadow:0 10px 20px #0003;border-color:#8b5cf680}.template-card:hover:before{opacity:1}.template-card-header{display:flex;justify-content:space-between;align-items:flex-start}.template-card-header h4{margin:0;font-size:1.1rem;color:var(--text-color);font-weight:600}.template-desc{margin:0;font-size:.9rem;color:var(--text-muted);line-height:1.5;flex:1}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:var(--text-muted);background:var(--btn-active-bg);border-radius:12px;border:1px dashed var(--border-color)}.empty-state p{margin:1rem 0 .5rem;font-size:1.1rem;font-weight:500;color:var(--text-color)}.app-runner-wrapper{background-color:var(--bg-color);min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:4rem 1rem}.app-runner-container{background-color:var(--card-bg);width:100%;max-width:800px;border-radius:12px;box-shadow:var(--card-shadow);border:1px solid var(--border-color);overflow:hidden;display:flex;flex-direction:column}.app-runner-container.loading-state,.app-runner-container.error-state{align-items:center;justify-content:center;padding:4rem;text-align:center;gap:1.5rem}.app-header{padding:2rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.app-header-left h1{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;color:var(--text-color)}.app-meta{display:flex;align-items:center;gap:1rem;font-size:.85rem}.owner-badge{color:var(--text-muted)}.status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-weight:500}.status-badge.public{background:#10b9811a;color:#10b981}.status-badge.private{background:#f59e0b1a;color:#f59e0b}.app-description{padding:2rem;color:var(--text-muted);font-size:1.05rem;line-height:1.6}.app-inputs-area{padding:0 2rem 2rem}.app-inputs-area h3{font-size:1.2rem;margin-top:0;margin-bottom:1rem;color:var(--text-color);font-weight:600}.inputs-wrapper{display:flex;flex-direction:column;gap:1.5rem;background:var(--btn-active-bg);padding:1.5rem;border-radius:8px;border:1px solid var(--border-color)}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group label{font-size:.95rem;font-weight:500;color:var(--text-color)}.input-group textarea{width:100%;padding:.75rem;background:var(--bg-color);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-size:1rem;resize:vertical;min-height:80px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.input-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.app-execution-area{padding:0 2rem 2rem}.btn-execute-app{width:100%;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;border:none;border-radius:8px;padding:1rem;font-size:1.1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:opacity .2s,transform .1s}.btn-execute-app:hover:not(:disabled){opacity:.9;transform:translateY(-2px)}.btn-execute-app:disabled{opacity:.7;cursor:not-allowed}.app-result-area{padding:2rem;border-top:1px solid var(--border-color);background:var(--btn-active-bg)}.app-result-area h3{margin:0 0 1rem;font-size:1.25rem;color:var(--text-color)}.app-error-box{margin:0 2rem 2rem;padding:1rem;background:#ef44441a;border:1px solid #ef4444;border-radius:8px;color:#ef4444;display:flex;align-items:center;gap:.5rem;font-weight:500}.spinner{width:40px;height:40px;border:4px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.spinner-small{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-clear-input{background:none;border:none;color:#94a3b8;cursor:pointer;display:flex;align-items:center;gap:.25rem;font-size:.75rem;padding:0;transition:color .2s}.btn-clear-input:hover{color:#ef4444}.execution-wait-msg{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;color:#fbbf24;font-size:.85rem;animation:fadeIn .5s ease-in-out}.execution-wait-msg p{margin:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.result-header h3{margin:0}.result-actions{display:flex;gap:.5rem}.btn-action{background:var(--bg-color);color:var(--text-color);border:1px solid var(--border-color);border-radius:6px;padding:.4rem .75rem;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .2s}.btn-action:hover{background:var(--btn-active-bg);border-color:#3b82f6;color:#3b82f6}.bot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:1.5rem}.bot-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;transition:all .2s ease;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.bot-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0003,0 4px 6px -2px #0000001a}.bot-card.online{border-top:3px solid #10b981}.bot-card.offline{border-top:3px solid #ef4444}.bot-card.connecting{border-top:3px solid #f59e0b}.bot-card-header{padding:1rem 1.25rem .5rem;display:flex;justify-content:flex-end}.bot-status-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;background:var(--btn-active-bg);border-radius:999px;font-size:.8rem;font-weight:600}.status-dot.online{background-color:#10b981;box-shadow:0 0 8px #10b981}.status-dot.offline{background-color:#ef4444}.status-dot.connecting{background-color:#f59e0b;animation:pulse 1.5s infinite}.bot-card-body{padding:.5rem 1.25rem 1.25rem;flex:1}.bot-name{margin:0 0 1rem;font-size:.95rem;color:var(--text-muted);display:flex;align-items:center;gap:.5rem}.bot-name:before{content:"🤖"}.update-time{margin:0;font-size:.8rem;color:#64748b}.bot-card-actions{display:flex;border-top:1px solid var(--border-color);background:var(--btn-active-bg);border-bottom-left-radius:12px;border-bottom-right-radius:12px}.btn-primary-action{flex:1;padding:.875rem;border:none;background:transparent;color:var(--text-muted);font-size:.95rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s;border-right:1px solid var(--border-color);border-bottom-left-radius:12px}.btn-icon{width:100%;height:100%;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;border-bottom-right-radius:12px}.token-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.token-modal-content{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:500px;padding:1.5rem;box-shadow:0 20px 25px -5px #00000080;animation:modal-fade-in .2s ease-out}@keyframes modal-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.token-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.token-modal-header h3{margin:0;color:var(--text-color)}.auth-step,.token-edit-step{display:flex;flex-direction:column;gap:1rem}.auth-step p,.token-edit-step p{color:var(--text-muted);margin:0 0 .5rem}.google-login-wrapper{display:flex;justify-content:center;margin-top:.5rem}.token-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--btn-active-bg);color:var(--text-color);font-family:monospace;font-size:1rem}.token-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.token-modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.btn-cancel,.btn-save{padding:.5rem 1.5rem;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel{background:transparent;border:1px solid var(--border-color);color:var(--text-color)}.btn-cancel:hover{background:var(--btn-active-bg);color:var(--text-color)}.btn-save{background:#3b82f6;border:1px solid #2563eb;color:#fff}.btn-save:hover{background:#2563eb}.logs-modal{max-width:600px;width:95%;max-height:80vh;display:flex;flex-direction:column}.logs-container{overflow-y:auto;max-height:50vh;padding-right:.5rem;display:flex;flex-direction:column;gap:1rem}.logs-container::-webkit-scrollbar{width:6px}.logs-container::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.log-header{display:flex;justify-content:space-between;margin-bottom:.75rem;font-size:.85rem;color:#94a3b8}.log-user{font-weight:600;color:#3b82f6}.log-message{color:var(--text-color);margin-bottom:.5rem;white-space:pre-wrap}.log-response{color:var(--text-muted);background:var(--btn-active-bg);padding:.75rem;border-radius:6px;white-space:pre-wrap;font-size:.95rem}.runs-page-container{display:flex;flex-direction:column;height:100vh;background-color:var(--bg-color);color:var(--text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.runs-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:var(--card-bg);border-bottom:1px solid var(--border-color)}.runs-header-left{display:flex;align-items:center;gap:1.5rem}.runs-header-left h1{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-color)}.back-btn{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:.5rem;border-radius:4px;transition:all .2s}.back-btn:hover{background-color:#ffffff0d;color:var(--text-color)}.runs-content{display:flex;flex:1;overflow:hidden}.runs-sidebar{width:320px;border-right:1px solid var(--border-color);display:flex;flex-direction:column;background-color:var(--card-bg)}.sidebar-header{padding:1rem;border-bottom:1px solid var(--border-color)}.sidebar-header h3{margin:0;font-size:.95rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.runs-list{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}.run-list-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s}.run-list-item:hover{background-color:var(--btn-active-bg)}.run-list-item.active{background-color:#3b82f61a;border-left:3px solid #3b82f6}.run-status-icon{display:flex;align-items:center;justify-content:center;margin-top:.1rem}.text-success{color:#10b981}.text-error{color:#ef4444}.run-info{display:flex;flex-direction:column;gap:.25rem}.run-date{font-weight:500;font-size:.95rem}.run-meta{font-size:.8rem;color:var(--text-muted);display:flex;gap:.5rem}.runs-detail-panel{flex:1;overflow-y:auto;padding:2rem;background-color:var(--bg-color)}.run-detail-content{max-width:800px;margin:0 auto}.run-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.run-detail-header h2{margin:0;font-size:1.5rem;font-weight:600}.status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.85rem;font-weight:600;text-transform:uppercase}.status-badge.success{background-color:#10b9811a;color:#10b981;border:1px solid rgba(16,185,129,.2)}.status-badge.error{background-color:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.run-summary-card{display:flex;gap:2rem;background-color:var(--card-bg);padding:1.5rem;border-radius:8px;border:1px solid var(--border-color);margin-bottom:2.5rem}.summary-item{display:flex;flex-direction:column;gap:.5rem}.summary-item .label{display:flex;align-items:center;gap:.35rem;color:var(--text-muted);font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.summary-item .value{font-size:1.1rem;font-weight:600}.timeline-title{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:1.2rem;color:var(--text-color);padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.steps-timeline{display:flex;flex-direction:column;gap:1rem;position:relative}.steps-timeline:before{content:"";position:absolute;top:1rem;bottom:1rem;left:24px;width:2px;background-color:var(--border-color);z-index:0}.step-card{position:relative;z-index:1;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;margin-left:14px}.step-card-header{display:flex;align-items:center;padding:1rem 1.25rem;cursor:pointer;background-color:var(--btn-active-bg);transition:background-color .2s}.step-card-header:hover{background-color:var(--border-color)}.step-status{display:flex;align-items:center;justify-content:center;width:24px;margin-right:1rem}.step-title-group{display:flex;align-items:baseline;gap:.5rem;flex:1}.step-type{font-weight:600;font-size:1.05rem;color:var(--text-color)}.step-id{color:var(--text-muted);font-size:.85rem;font-family:monospace}.step-duration{color:var(--text-muted);font-size:.85rem;margin-right:1rem}.step-expand-icon{color:var(--text-muted);display:flex;align-items:center}.step-card-body{padding:1.25rem;border-top:1px solid var(--border-color);background-color:var(--btn-active-bg)}.error-box{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:1rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem;line-height:1.5;white-space:pre-wrap}.data-box{display:flex;flex-direction:column;gap:.5rem}.data-box-title{font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.data-content{margin:0;padding:1rem;background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-family:monospace;font-size:.85rem;line-height:1.5;white-space:pre-wrap;word-break:break-all;max-height:400px;overflow-y:auto}.empty-state,.loading-state,.empty-selection{padding:3rem;text-align:center;color:var(--text-muted);font-size:.95rem}.scheduler-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:1.5rem}.scheduler-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:all .2s ease;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.scheduler-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0003,0 4px 6px -2px #0000001a}.scheduler-card.active{border-top:3px solid #10b981}.scheduler-card.stopped{border-top:3px solid #ef4444}.scheduler-card.paused{border-top:3px solid #f59e0b}.scheduler-card-header{padding:1rem 1.25rem .5rem;display:flex;justify-content:flex-end}.scheduler-status-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;background:var(--btn-active-bg);border-radius:999px;font-size:.8rem;font-weight:600}.status-dot.active{background-color:#10b981;box-shadow:0 0 8px #10b981}.status-dot.paused{background-color:#f59e0b;animation:pulse 1.5s infinite}.scheduler-card-body{padding:.5rem 1.25rem 1.25rem;flex:1}.project-title{margin:0 0 .5rem;font-size:1.25rem;color:var(--text-color)}.schedule-cron{margin:0 0 1rem;font-size:.95rem;color:var(--text-muted);display:flex;align-items:center;gap:.5rem}.schedule-cron code{background:var(--btn-active-bg);padding:.1rem .3rem;border-radius:4px}.schedule-cron:before{content:"⏰"}.next-run-time{margin:0;font-size:.8rem;color:#64748b}.scheduler-card-actions{display:flex;border-top:1px solid var(--border-color);background:var(--btn-active-bg)}.btn-primary-action{flex:1;padding:.875rem;border:none;background:transparent;color:var(--text-muted);font-size:.95rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s;border-right:1px solid var(--border-color)}.btn-primary-action:hover{background:var(--btn-active-bg);color:var(--text-color)}.btn-primary-action.start:hover{color:#10b981}.btn-primary-action.stop:hover{color:#ef4444}.dropdown-container{position:relative;display:flex;align-items:center;justify-content:center;width:48px}.btn-icon{width:100%;height:100%;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon:hover{background:var(--btn-active-bg);color:var(--text-color)}.dropdown-menu{position:absolute;bottom:100%;right:0;margin-bottom:.5rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 10px 15px -3px #0000004d;width:160px;display:flex;flex-direction:column;padding:.5rem 0;z-index:100;animation:dropdown-fade-in .15s ease-out}@keyframes dropdown-fade-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:transparent;border:none;color:var(--text-color);font-size:.9rem;text-align:left;cursor:pointer;transition:all .2s}.dropdown-item:hover{background:var(--btn-active-bg);color:var(--text-color)}.dropdown-item.danger{color:#ef4444}.dropdown-item.danger:hover{background:#ef44441a}.dropdown-divider{height:1px;background:var(--border-color);margin:.25rem 0}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.page-title{display:flex;align-items:center;gap:.75rem;margin:0 0 .5rem;font-size:1.75rem}.page-subtitle{margin:0;color:var(--text-muted)}.btn-refresh{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--card-bg);border:1px solid var(--border-color);color:var(--text-color);border-radius:6px;cursor:pointer;transition:all .2s}.btn-refresh:hover:not(:disabled){background:var(--btn-active-bg);border-color:var(--primary-color)}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;text-align:center;color:var(--text-muted);background:var(--card-bg);border:1px dashed var(--border-color);border-radius:12px}.empty-state h3{color:var(--text-color);margin:1rem 0 .5rem}.empty-state p{margin:0}.empty-icon{color:#475569;margin-bottom:1rem}.logs-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.logs-modal-content{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:600px;padding:1.5rem;box-shadow:0 20px 25px -5px #00000080;animation:modal-fade-in .2s ease-out;display:flex;flex-direction:column;max-height:80vh}.logs-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.logs-modal-header h3{margin:0;color:var(--text-color)}.close-btn{background:transparent;border:none;color:#94a3b8;font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.close-btn:hover{color:#f8fafc}.logs-modal-body{overflow-y:auto;padding-right:.5rem;display:flex;flex-direction:column;gap:1rem}.logs-modal-body::-webkit-scrollbar{width:6px}.logs-modal-body::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.no-logs{text-align:center;color:#94a3b8;padding:2rem}.logs-list{display:flex;flex-direction:column;gap:1rem}.log-item{background:#0003;border:1px solid var(--border-color);border-radius:8px;padding:1rem}.log-time{font-size:.85rem;color:#94a3b8;margin-bottom:.25rem}.log-tokens{font-size:.8rem;color:#8b5cf6;margin-bottom:.5rem}.log-result{color:var(--text-color);background:var(--btn-active-bg);padding:.75rem;border-radius:6px;font-size:.95rem}.log-result pre{margin:0;white-space:pre-wrap;font-family:inherit}.webhook-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:1.5rem}.webhook-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:all .2s ease;box-shadow:var(--card-shadow, 0 4px 6px -1px rgba(0, 0, 0, .1))}.webhook-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0003,0 4px 6px -2px #0000001a}.webhook-card.active{border-top:3px solid #10b981}.webhook-card.stopped{border-top:3px solid #ef4444}.webhook-card-header{padding:1rem 1.25rem .5rem;display:flex;justify-content:flex-end}.webhook-status-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;background:var(--btn-active-bg);border-radius:999px;font-size:.8rem;font-weight:600}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.active{background-color:#10b981;box-shadow:0 0 8px #10b98180}.status-dot.stopped{background-color:#ef4444}.status-text{color:var(--text-muted)}.webhook-card-body{padding:.5rem 1.25rem 1.25rem;flex:1}.webhook-title{margin:0 0 1rem;font-size:1.25rem;color:var(--text-color)}.webhook-url-box{display:flex;align-items:center;background:var(--btn-active-bg);border:1px solid var(--border-color);border-radius:6px;padding:.5rem;margin-bottom:1rem}.webhook-url-box input{flex:1;background:transparent;border:none;font-size:.85rem;color:var(--text-muted);outline:none}.webhook-url-box button{background:none;border:none;cursor:pointer;color:var(--primary-color);padding:.2rem;margin-left:.5rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.webhook-url-box button:hover{background:var(--btn-active-bg)}.last-triggered{margin:0;font-size:.85rem;color:var(--text-muted);display:flex;align-items:center;gap:.3rem}.webhook-card-footer{padding:1rem 1.25rem;border-top:1px solid var(--border-color);display:flex;gap:.75rem;background:#0000001a}.btn-webhook-action{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem;border-radius:8px;font-size:.9rem;font-weight:500;border:none;cursor:pointer;transition:all .2s}.btn-webhook-action.toggle{background:transparent;border:1px solid var(--border-color);color:var(--text-color)}.btn-webhook-action.toggle:hover{background:var(--btn-active-bg)}.btn-webhook-action.logs{background:var(--primary-color);color:#fff}.btn-webhook-action.logs:hover{background:var(--primary-hover)}.api-providers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:2rem}.api-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;transition:all .2s ease;display:flex;flex-direction:column}.api-card.has-key{border-color:var(--accent-color);box-shadow:0 0 0 1px var(--accent-color) inset}.api-card-header{padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);background:#ffffff05}.api-card-title{display:flex;align-items:center;gap:.75rem}.api-card-title h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.api-icon{font-size:1.5rem}.guide-btn{background:none;border:1px solid var(--border-color);color:var(--text-secondary);display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s}.guide-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--text-secondary)}.api-card-body{padding:1.5rem 1.25rem;flex:1;display:flex;flex-direction:column;justify-content:center}.key-input-area{display:flex;flex-direction:column;gap:1rem}.key-input-area input{width:100%;padding:.75rem 1rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);font-family:monospace}.key-input-area input:focus{outline:none;border-color:var(--accent-color)}.save-key-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem;border-radius:8px;border:none;background:var(--accent-color);color:#fff;font-weight:600;cursor:pointer;transition:opacity .2s}.save-key-btn:disabled{opacity:.5;cursor:not-allowed}.save-key-btn:hover:not(:disabled){opacity:.9}.key-display{display:flex;align-items:center;justify-content:space-between;background:var(--bg-primary);padding:1rem;border-radius:8px;border:1px solid var(--border-color)}.masked-key{font-family:monospace;color:var(--success-color);font-size:1.1rem;letter-spacing:2px}.delete-key-btn{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--error-color);cursor:pointer;padding:.5rem;border-radius:6px}.delete-key-btn:hover{background:#ef44441a}.sudo-auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:var(--bg-secondary);border-radius:16px;border:1px solid var(--border-color);text-align:center;margin-top:2rem}.shield-icon{color:var(--accent-color);margin-bottom:1.5rem}.sudo-auth-container h2{margin:0 0 1rem;font-size:1.5rem;color:var(--text-primary)}.sudo-auth-container p{color:var(--text-secondary);margin-bottom:2rem;max-width:400px}.google-auth-btn{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:#fff;color:#333;border:1px solid #ddd;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;box-shadow:0 2px 4px #0000000d;transition:all .2s}.google-auth-btn:hover{background:#f8f9fa;box-shadow:0 4px 6px #0000001a}.guide-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.guide-modal-content{background:var(--bg-primary);border-radius:12px;border:1px solid var(--border-color);width:90%;max-width:500px;box-shadow:0 20px 25px -5px #0003;overflow:hidden}.guide-modal-header{padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.guide-modal-header h3{margin:0;display:flex;align-items:center;gap:.5rem}.close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer}.close-btn:hover{color:var(--text-primary)}.guide-modal-body{padding:1.5rem}.guide-modal-body p{margin:0 0 1rem;line-height:1.6;color:var(--text-primary)}.guide-link{color:var(--accent-color);text-decoration:none;font-weight:500}.guide-link:hover{text-decoration:underline}.custom-alert-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:99999;animation:fadeIn .2s ease-out forwards}.custom-alert-modal{background:var(--bg-color, #1e1e2e);border:1px solid var(--border-color, #374151);border-radius:20px;padding:2rem;width:90%;max-width:400px;box-shadow:0 20px 40px #00000080;display:flex;flex-direction:column;align-items:center;text-align:center;animation:scaleUp .3s cubic-bezier(.175,.885,.32,1.275) forwards;position:absolute}.custom-alert-icon{background:#ffffff0d;padding:1rem;border-radius:50%;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:center}.custom-alert-content{width:100%}.custom-alert-message{color:var(--text-color, #f3f4f6);font-size:1.1rem;line-height:1.5;margin:0 0 2rem;word-break:keep-all}.custom-alert-button{width:100%;background:var(--primary-color, #6366f1);color:#fff;border:none;border-radius:12px;padding:.8rem 1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #6366f14d}.custom-alert-button:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 16px #6366f166}.custom-alert-button:active{transform:translateY(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}:root{--bg-color: #0f172a;--text-color: #f8fafc;--text-muted: #94a3b8;--primary-color: #3b82f6;--primary-hover: #2563eb;--card-bg: #1e293b;--border-color: #334155;--card-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--btn-active-bg: rgba(255, 255, 255, .05);--node-start-bg: #10b981;--node-task-bg: #8b5cf6}[data-theme=light]{--bg-color: #f1f5f9;--text-color: #0f172a;--text-muted: #64748b;--primary-color: #3b82f6;--primary-hover: #2563eb;--card-bg: rgba(255, 255, 255, .85);--border-color: #cbd5e1;--card-shadow: 0 10px 15px -3px rgba(0, 0, 0, .05), 0 4px 6px -2px rgba(0, 0, 0, .025);--btn-active-bg: rgba(0, 0, 0, .05);--node-start-bg: #10b981;--node-task-bg: #8b5cf6}body,html{margin:0;padding:0;width:100%;height:100%;font-family:Inter,Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg-color);color:var(--text-color);transition:background-color .3s ease,color .3s ease}button,input,textarea{font-family:inherit}#root{width:100%;height:100%;display:flex;flex-direction:column}.app-container{display:flex;flex-direction:column;height:100vh;width:100vw}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:var(--card-bg);border-bottom:1px solid var(--border-color);box-shadow:0 4px 6px -1px #0000001a;z-index:10}.header h1{margin:0;font-size:1.5rem;font-weight:600;background:linear-gradient(to right,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.btn-run{background-color:var(--primary-color);color:var(--text-color);border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.75rem;height:36px;box-sizing:border-box}.btn-run:hover:not(:disabled){background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-run:active:not(:disabled){transform:translateY(0)}.btn-run:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background-color:transparent;color:var(--text-color);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.75rem;height:36px;box-sizing:border-box}.btn-secondary:hover:not(:disabled){background-color:var(--btn-active-bg);border-color:var(--primary-color)}.btn-secondary:active:not(:disabled){background-color:var(--btn-active-bg)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.main-content{display:flex;flex:1;position:relative}.flow-wrapper{flex:1;height:100%}.response-panel{width:350px;background-color:var(--card-bg);border-left:1px solid var(--border-color);padding:1.5rem;display:flex;flex-direction:column;overflow-y:auto;transition:transform .3s ease}.response-panel h2{margin-top:0;font-size:1.2rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem;margin-bottom:1rem}.response-content{background-color:var(--btn-active-bg);border-radius:.5rem;padding:.5rem 1.25rem 1.25rem;font-size:.95rem;line-height:1.5;white-space:pre-wrap;flex:1}.sidebar{width:260px;background-color:var(--card-bg);border-right:1px solid var(--border-color);display:flex;flex-direction:column}.sidebar-header{padding:1.5rem 1.5rem .5rem}.sidebar-title{font-size:1.1rem;font-weight:600;margin:0;color:var(--text-color)}.sidebar-search{padding:0 1.5rem;margin-bottom:1rem;position:relative;display:flex;align-items:center}.sidebar-search svg{position:absolute;left:2rem}.sidebar-search input{width:100%;padding:.5rem .5rem .5rem 2rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;color:var(--text-color);outline:none}.sidebar-search input:focus{border-color:var(--primary-color)}.node-list{display:flex;flex-direction:column;padding:0 1rem;gap:.2rem;overflow-y:auto}.dnd-node{display:flex;align-items:center;gap:.8rem;padding:.6rem .8rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:grab;background:transparent;color:var(--text-color);transition:all .2s;border:1px solid transparent}.dnd-node:hover{background:var(--card-bg);border-color:var(--border-color)}.dnd-node:active{cursor:grabbing}.dnd-node-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center}.dnd-node-label{flex:1}.custom-node{border-radius:16px;color:var(--text-color);min-width:280px;max-width:350px;box-shadow:0 4px 12px #00000014;border:1px solid var(--border-color);overflow:visible;background-color:var(--card-bg);transition:box-shadow .2s,transform .2s}.custom-node:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.custom-node.selected{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6,0 12px 24px #0006}.custom-node.node-executing{border-color:#3b82f6;box-shadow:0 0 15px #3b82f699;animation:pulse-border 1.5s infinite}.custom-node.node-success{border-color:#10b981;box-shadow:0 0 10px #10b98166}.custom-node.node-error{border-color:#ef4444;box-shadow:0 0 10px #ef444466}@keyframes pulse-border{0%{box-shadow:0 0 #3b82f6b3}70%{box-shadow:0 0 0 10px #3b82f600}to{box-shadow:0 0 #3b82f600}}.node-header{padding:1rem 1.25rem;font-weight:600;font-size:.95rem;color:var(--text-color);display:flex;justify-content:space-between;align-items:center;border-radius:16px 16px 0 0;background:var(--card-bg);border-bottom:1px solid var(--border-color);gap:.75rem}.btn-delete{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:0;line-height:1;transition:color .2s}.btn-delete:hover{color:var(--text-color)}.react-flow__edge-path{stroke:#94a3b8!important;stroke-width:2.5!important;opacity:.8}.react-flow__edge.selected .react-flow__edge-path{stroke:#f59e0b!important;stroke-width:3.5!important;opacity:1}.react-flow__edge:hover .react-flow__edge-path{stroke:#e2e8f0!important;stroke-width:3.5!important;opacity:1}.custom-node.prompt{border-left:4px solid #3b82f6}.custom-node.llm{border-left:4px solid #8b5cf6}.custom-node.output{border-left:4px solid #f97316}.custom-node.condition{border-left:4px solid #0ea5e9}.custom-node.value{border-left:4px solid #ec4899}.custom-node.python{border-left:4px solid #eab308}.custom-node.tokenizer{border-left:4px solid #14b8a6}.custom-node.distributor{border-left:4px solid #6366f1}.custom-node.start{border-left:4px solid #10b981}.custom-node.schedule{border-left:4px solid #8b5cf6}.custom-node.discord{border-left:4px solid #5865F2}.custom-node.kakao{border-left:4px solid #facc15}.custom-node.toss{border-left:4px solid #3b82f6}.node-body{padding:.5rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.node-body label{font-size:.75rem;color:var(--text-muted);text-align:left}.node-body textarea,.node-body select,.node-body input[type=text],.node-body input[type=password]{width:100%;padding:.5rem;border-radius:.25rem;background-color:var(--bg-color);color:var(--text-color);border:1px solid var(--border-color);font-size:.8rem;resize:none;font-size:13px;line-height:1.5;min-height:60px;max-height:300px;overflow-y:hidden;box-sizing:border-box}.node-body textarea:focus,.node-body select:focus,.node-body input[type=text]:focus,.node-body input[type=password]:focus{outline:none;border-color:var(--primary-color)}.react-flow__bg{background-color:var(--bg-color)}.react-flow__controls{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:.5rem;overflow:hidden}.react-flow__controls-button{background-color:transparent;border-bottom:1px solid var(--border-color);fill:var(--text-color)}.react-flow__controls-button:hover{background-color:var(--btn-active-bg)}.project-title-btn:hover{background:var(--btn-active-bg)!important}@keyframes pulse-opacity{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.claude-loader-container{display:flex;flex-direction:column;gap:16px;padding:20px}.claude-loader-header{display:flex;align-items:center;gap:12px;color:#a855f7;font-weight:500;animation:pulse-opacity 2s cubic-bezier(.4,0,.6,1) infinite}.claude-loader-header svg{animation:pulse-opacity 1.5s ease-in-out infinite alternate}.claude-skeleton{height:12px;border-radius:4px;background:linear-gradient(90deg,var(--border-color) 25%,var(--btn-active-bg) 50%,var(--border-color) 75%);background-size:200% 100%;animation:shimmer 2s infinite linear}.claude-skeleton.short{width:60%}.claude-skeleton.medium{width:85%}.claude-skeleton.full{width:100%}.custom-node.ai-highlight{box-shadow:0 0 0 2px #10b981,0 0 15px #10b98166!important;border-color:#10b981!important;transition:box-shadow .3s ease,border-color .3s ease}.node-collapsed-badge{padding:8px 12px;background-color:var(--btn-active-bg);border-radius:4px;font-size:12px;color:var(--text-color);opacity:.8;margin-top:4px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-node.prompt textarea,.custom-node.value textarea{min-height:120px!important;resize:none;line-height:1.5;font-size:13px;line-height:1.4;padding:8px}.custom-node.expanded{min-width:300px;max-width:380px}.custom-node{transition:box-shadow .2s,transform .2s,min-width .2s,max-width .2s}.custom-node.collapsed{min-width:140px;max-width:140px;height:140px;display:flex;flex-direction:column}.custom-node.collapsed .node-header{height:100%;border-radius:16px;border-bottom:none;flex-direction:column;justify-content:center;position:relative;padding:1rem}.custom-node.collapsed .node-header>svg:first-child{position:absolute;bottom:12px;left:50%;transform:translate(-50%) rotate(90deg);opacity:.5;transition:opacity .2s}.custom-node.collapsed .node-header:hover>svg:first-child{opacity:1}.custom-node.collapsed .node-header .btn-delete{position:absolute;top:12px;right:12px}.custom-node.collapsed .node-header>div{flex-direction:column!important;gap:12px!important;text-align:center;white-space:pre-wrap;word-break:keep-all;line-height:1.3;font-size:.9rem}.custom-node.collapsed .node-header>div>svg{width:32px!important;height:32px!important}.custom-node:not(.condition) .react-flow__handle-left:not(.popout-handle),.custom-node:not(.condition) .react-flow__handle-right:not(.popout-handle){top:70px!important;transform:translateY(-50%)!important;z-index:20!important}.custom-node.condition .react-flow__handle{z-index:20!important}.custom-node .react-flow__handle.popout-handle{transform:translateY(-50%)!important;z-index:20!important}.react-flow__handle{z-index:10}.custom-node.expanded:not(.condition) .react-flow__handle-left:not(.popout-handle),.custom-node.expanded:not(.condition) .react-flow__handle-right:not(.popout-handle){top:50%!important;transform:translateY(-50%)!important}.typing-indicator{display:flex;align-items:center;gap:4px;padding:12px 16px;background:var(--bg-color);border-radius:12px;width:fit-content;border:1px solid var(--border-color);box-shadow:0 2px 8px #0000001a;margin-top:8px}.typing-dot{width:6px;height:6px;border-radius:50%;background-color:var(--text-muted);animation:typing-bounce 1.4s infinite ease-in-out both}.typing-dot:nth-child(1){animation-delay:-.32s}.typing-dot:nth-child(2){animation-delay:-.16s}.typing-dot:nth-child(3){animation-delay:0s}@keyframes typing-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes pulse-glow{0%{box-shadow:0 0 #8b5cf666}70%{box-shadow:0 0 0 10px #8b5cf600}to{box-shadow:0 0 #8b5cf600}}.chat-bubble-generating{animation:pulse-glow 2s infinite ease-in-out}@keyframes blink{0%{opacity:0}50%{opacity:1}to{opacity:0}}
