:root{--bg-color:#fff;--grid-color:#0000001a;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--text-color:#1f2937}*{box-sizing:border-box;margin:0;padding:0}body,html{width:100%;height:100%;font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-color);overflow:hidden}#root{flex-direction:column;width:100%;height:100%;display:flex}.canvas-container{background-color:var(--bg-color);background-image:radial-gradient(var(--grid-color) 1.2px, transparent 1.2px);-webkit-user-select:none;user-select:none;touch-action:none;background-position:0 0;background-size:32px 32px;width:100%;height:100%;position:relative;overflow:hidden}.canvas-node{-webkit-user-select:none;user-select:none;touch-action:none;cursor:grab;z-index:5;background:#fff;border:2px solid #e5e7eb;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100px;height:100px;padding:8px;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex;position:absolute;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.canvas-node:hover{transform:translateY(-4px)scale(1.02);box-shadow:0 10px 15px -3px #00000014,0 4px 6px -2px #0000000a}.canvas-node:active{cursor:grabbing}.canvas-node.is-selected{box-shadow:0 0 0 2px #fff, 0 0 0 4.5px var(--node-theme-color), 0 10px 20px -8px #00000026;transform:translateY(-2px)}.node-icon-row{justify-content:center;align-items:center;height:36px;display:flex}.node-icon-inner{justify-content:center;align-items:center;transition:transform .2s;display:flex}.canvas-node:hover .node-icon-inner{transform:scale(1.1)}.node-label-row{text-align:center;width:100%;overflow:hidden}.node-square-label{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em;width:100%;font-size:.75rem;font-weight:700;display:block;overflow:hidden}.connection-line{stroke:#1f2937;stroke-width:2.2px;transition:stroke .2s,stroke-width .2s}.connection-line.is-selected{stroke:#3b82f6;stroke-width:3px}.temp-connection-line{stroke:#3b82f6;stroke-width:2.2px;stroke-dasharray:6 4}.connection-label-text{letter-spacing:.08em;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:.65rem;font-weight:800}.canvas-connection-group{cursor:pointer;pointer-events:auto}.connection-line-trigger{stroke:#0000;stroke-width:14px;cursor:pointer}.canvas-connection-group:hover .connection-line:not(.is-selected){stroke:#4b5563;stroke-width:2.6px}.connection-label-text.no-binding-key-label{letter-spacing:.05em;font-size:.6rem;font-weight:700;fill:#9ca3af!important}.exchange-type-badge{text-transform:uppercase;letter-spacing:.05em;background-color:#10b9811a;border:1px solid #10b98126;border-radius:9999px;margin-top:-2px;padding:1px 6px;font-size:.6rem;font-weight:800}.queue-message-badge{color:#fff;background-color:#ef4444;border-radius:9999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.7rem;font-weight:800;animation:.3s cubic-bezier(.175,.885,.32,1.275) bounce-badge;display:flex;position:absolute;top:-8px;right:-8px;box-shadow:0 4px 6px -1px #ef44444d,0 2px 4px -1px #ef444433,0 0 0 2.5px #fff}@keyframes bounce-badge{0%{transform:scale(0)}to{transform:scale(1)}}.properties-panel{z-index:10;pointer-events:auto;-webkit-backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid #e5e7eb80;border-radius:16px;flex-direction:column;width:290px;animation:.25s cubic-bezier(.4,0,.2,1) slide-in-panel;display:flex;position:absolute;top:24px;right:24px;box-shadow:0 4px 6px -1px #0000000d,0 10px 15px -3px #00000008,inset 0 0 0 1px #fff9}@keyframes slide-in-panel{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.panel-header{border-bottom:1px solid #e5e7eb80;justify-content:space-between;align-items:center;padding:16px;display:flex}.panel-title-container{flex-direction:column;gap:4px;display:flex}.panel-badge{letter-spacing:.05em;border-radius:4px;align-self:flex-start;padding:2px 6px;font-size:.625rem;font-weight:800}.panel-title{color:#1f2937;margin:0;font-size:.95rem;font-weight:700}.panel-close-btn{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:flex}.panel-close-btn:hover{color:#4b5563;background-color:#f3f4f6}.panel-body{flex-direction:column;gap:16px;padding:16px;display:flex}.property-group{flex-direction:column;gap:6px;display:flex}.property-label{color:#6b7280;text-transform:uppercase;letter-spacing:.025em;font-size:.725rem;font-weight:700}.property-input{color:#1f2937;background-color:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;padding:8px 12px;font-size:.85rem;font-weight:500;transition:all .15s}.property-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.segmented-control{background-color:#f3f4f6;border:1px solid #e5e7ebcc;border-radius:10px;gap:2px;padding:4px;display:flex}.segment-btn{color:#4b5563;cursor:pointer;text-align:center;background:0 0;border:none;border-radius:8px;flex:1;padding:6px 4px;font-size:.725rem;font-weight:700;transition:all .2s}.segment-btn:hover:not(.active){color:#1f2937;background-color:#ffffff80}.segment-btn.active{color:#10b981;background-color:#fff;box-shadow:0 2px 4px #0000000d}.property-placeholder{text-align:center;background-color:#f9fafb80;border:1px dashed #e5e7ebcc;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;margin-top:4px;padding:12px 8px;display:flex}.property-section{border-top:1px dashed #e5e7eb99;flex-direction:column;gap:12px;padding:12px 0 0;display:flex}.property-section-title{color:#374151;margin:0 0 2px;font-size:.8rem;font-weight:700}.property-textarea{resize:vertical;min-height:60px;font-family:inherit}.panel-send-btn{color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px;font-size:.8rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 10px #3b82f633}.panel-send-btn:hover:not(.disabled){filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 6px 14px #3b82f64d}.panel-send-btn:active:not(.disabled){transform:translateY(0)}.panel-send-btn.disabled{color:#9ca3af;cursor:not-allowed;box-shadow:none}.placeholder-icon{margin-bottom:6px;font-size:1.1rem}.placeholder-text{color:#9ca3af;margin:0;font-size:.7rem;font-weight:500;line-height:1.3}.panel-danger-zone{border-top:1px solid #e5e7eb80;margin-top:8px;padding-top:16px}.panel-delete-btn{color:#ef4444;cursor:pointer;background-color:#fef2f2;border:1px solid #fca5a5;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.panel-delete-btn:hover{color:#fff;background-color:#ef4444;border-color:#dc2626;box-shadow:0 4px 12px #ef444426}.panel-delete-btn:active{transform:scale(.98)}.property-input:disabled{color:#9ca3af;cursor:not-allowed;background-color:#f3f4f6;border-color:#e5e7eb}.property-hint{color:#9ca3af;margin-top:2px;font-size:.65rem;font-weight:500;line-height:1.3}.message-particle{background-color:var(--particle-color,#3b82f6);width:12px;height:12px;box-shadow:0 0 8px var(--particle-color,#3b82f6), 0 0 16px var(--particle-color,#3b82f6);z-index:100;pointer-events:none;animation:fly-particle var(--duration,.8s) linear forwards;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}@keyframes fly-particle{0%{left:var(--from-x);top:var(--from-y);opacity:0;transform:translate(-50%,-50%)scale(.6)}10%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}90%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}to{left:var(--to-x);top:var(--to-y);opacity:0;transform:translate(-50%,-50%)scale(.6)}}.hud-left-sidebar{z-index:10;pointer-events:none;flex-direction:column;gap:16px;width:calc(100% - 48px);max-width:420px;display:flex;position:absolute;top:24px;left:24px}.hud-header{pointer-events:auto;-webkit-backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid #e5e7eb80;border-radius:16px;flex-direction:column;justify-content:center;width:100%;min-height:98px;padding:16px 20px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 6px -1px #0000000d,0 10px 15px -3px #00000008,inset 0 0 0 1px #fff9}.hud-logs-panel{pointer-events:auto;-webkit-backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid #e5e7eb80;border-radius:16px;flex-direction:column;gap:8px;width:100%;max-height:220px;padding:14px 18px;display:flex;box-shadow:0 4px 6px -1px #00000008,0 10px 15px -3px #00000003,inset 0 0 0 1px #fff9}.logs-header{border-bottom:1px solid #e5e7eb99;align-items:center;gap:6px;padding-bottom:6px;display:flex}.logs-indicator{font-size:.95rem}.logs-title{color:#374151;text-transform:uppercase;letter-spacing:.05em;flex:1;margin:0;font-size:.775rem;font-weight:700}.logs-clear-btn{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #e5e7ebcc;border-radius:6px;padding:2px 8px;font-size:.65rem;font-weight:700;transition:all .15s}.logs-clear-btn:hover{color:#1f2937;background-color:#f3f4f6;border-color:#d1d5db}.logs-viewport{flex-direction:column;flex:1;gap:6px;padding-right:4px;display:flex;overflow-y:auto}.logs-viewport::-webkit-scrollbar{width:4px}.logs-viewport::-webkit-scrollbar-track{background:0 0}.logs-viewport::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:99px}.logs-empty-text{color:#9ca3af;text-align:center;margin:auto;font-size:.725rem;font-style:italic}.log-line{color:#4b5563;word-break:break-all;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.675rem;line-height:1.4}.flying-message-particle{pointer-events:none}.logo-container{align-items:center;gap:8px;margin-bottom:8px;display:flex}.logo-icon{background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 4px #3b82f626);-webkit-background-clip:text;font-size:1.25rem}.logo-title{letter-spacing:-.025em;color:#1f2937;font-size:1.125rem;font-weight:700}.logo-badge{color:#4b5563;text-transform:uppercase;letter-spacing:.05em;background-color:#f3f4f6;border-radius:9999px;padding:2px 8px;font-size:.7rem;font-weight:600}.description{color:#6b7280;font-size:.825rem;line-height:1.4}.hud-message{align-items:center;gap:8px;margin:0;font-size:.825rem;font-weight:600;line-height:1.4;animation:.2s cubic-bezier(.4,0,.2,1) fade-in-notification;display:flex}.message-icon{justify-content:center;align-items:center;display:flex}.message-text{flex:1}.message-success{color:#10b981}.message-error{color:#ef4444}.message-info{color:#3b82f6}@keyframes fade-in-notification{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.canvas-workspace{z-index:1;cursor:grab;transform-origin:0 0;width:100%;height:100%;position:absolute;top:0;left:0}.canvas-workspace:active{cursor:grabbing}.canvas-workspace.smooth-transition{transition:transform .4s cubic-bezier(.25,1,.5,1)}.canvas-container.smooth-transition{transition:background-position .4s cubic-bezier(.25,1,.5,1)}.connections-svg{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.canvas-container.connect-mode,.canvas-container.connect-mode .canvas-workspace,.canvas-container.connect-mode .canvas-node{cursor:crosshair!important}.hud-actions-group{z-index:10;pointer-events:auto;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:104px;right:24px}.hud-zoom-controls{-webkit-backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid #e5e7eb66;border-radius:22px;align-items:center;gap:2px;padding:2px;display:flex;box-shadow:0 4px 6px -1px #00000008,0 10px 15px -3px #00000003,inset 0 0 0 1px #fff9}.hud-zoom-controls .zoom-btn{color:#4b5563;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.hud-zoom-controls .zoom-btn:hover{color:#1f2937;background:#0000000d}.hud-zoom-indicator{color:#4b5563;cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;background:0 0;border:none;min-width:44px;padding:0 6px;font-family:inherit;font-size:.75rem;font-weight:700;transition:color .2s}.hud-zoom-indicator:hover{color:#1f2937}.hud-action-btn{-webkit-backdrop-filter:blur(12px);color:#9ca3af;cursor:pointer;background:#ffffffd9;border:1px solid #e5e7eb66;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 6px -1px #00000008,0 10px 15px -3px #00000003,inset 0 0 0 1px #fff9}.hud-action-btn:hover{color:#3b82f6;background-color:#fff;transform:scale(1.08)translateY(-2px);box-shadow:0 10px 15px -3px #3b82f61a,0 4px 6px -2px #3b82f60d}.hud-action-btn:active{transform:scale(.95)}.connect-toggle-btn.active{color:#fff;background:#3b82f6;border-color:#2563eb;box-shadow:0 4px 14px #3b82f666,inset 0 0 0 1px #fff3}.connect-toggle-btn.active:hover{color:#fff;background:#2563eb;transform:scale(1.08)translateY(-2px);box-shadow:0 6px 20px #2563eb66}.hud-toolbar-container{z-index:10;pointer-events:auto;align-items:center;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.hud-toolbar{-webkit-backdrop-filter:blur(16px);background:#ffffffd9;border:1px solid #e5e7eb99;border-radius:20px;align-items:center;padding:10px 18px;display:flex;box-shadow:0 10px 25px -5px #0000000d,0 8px 16px -6px #00000008,inset 0 0 0 1px #fff9}.toolbar-info{flex-direction:column;padding-right:8px;display:flex}.toolbar-hint{text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;font-size:.75rem;font-weight:700}.toolbar-divider{background-color:#e5e7eb;width:1px;height:28px;margin:0 16px 0 12px}.toolbar-buttons{align-items:center;gap:12px;display:flex}.toolbar-btn{cursor:pointer;color:#4b5563;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:8px;padding:8px 14px;font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.btn-icon-wrapper{color:#4b5563;background-color:#f3f4f6;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.toolbar-btn:hover{color:var(--btn-theme-color);background-color:#ffffffe6;border-color:#e5e7ebcc;transform:translateY(-2px);box-shadow:0 4px 12px -2px #00000008,0 2px 4px -1px #00000005}.toolbar-btn:hover .btn-icon-wrapper{background-color:var(--btn-theme-color);color:#fff;transform:scale(1.05);box-shadow:0 4px 10px #00000026}.toolbar-btn:active{transform:translateY(0)}.toolbar-trash-zone{-webkit-backdrop-filter:blur(16px);color:#ef4444;background-color:#fef2f2d9;border:2px dashed #fca5a5;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s cubic-bezier(.4,0,.2,1);animation:2s ease-in-out infinite pulse-trash-border;display:flex}.external-trash{z-index:10;position:absolute;bottom:96px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px -5px #ef44441a,0 8px 16px -6px #ef44440d,inset 0 0 0 1px #fff9}.trash-icon-wrapper{color:inherit;justify-content:center;align-items:center;transition:transform .2s;display:flex}.toolbar-trash-zone.over-trash{color:#fff;background-color:#ef4444;border-style:solid;border-color:#dc2626;transform:translate(-50%)scale(1.1)translateY(-2px);box-shadow:0 8px 16px -4px #ef444466}.toolbar-trash-zone.over-trash .trash-icon-wrapper{transform:scale(1.1)}@keyframes pulse-trash-border{0%,to{border-color:#fca5a5;box-shadow:0 0 #ef444400}50%{border-color:#ef4444;box-shadow:0 0 8px #ef44441a}}@media (width<=820px){.hud-toolbar-container{justify-content:center;width:calc(100% - 32px);max-width:480px;bottom:16px}.hud-toolbar{border-radius:16px;justify-content:center;width:100%;padding:8px 12px}.toolbar-info,.toolbar-divider{display:none}.toolbar-buttons{justify-content:space-around;gap:8px;width:100%}.toolbar-btn{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:0;padding:6px}.btn-label{display:none}.btn-icon-wrapper{width:36px;height:36px}.hud-actions-group{gap:8px;bottom:92px;right:16px}.hud-action-btn{width:38px;height:38px}.properties-panel{width:calc(100% - 48px);max-width:320px;top:130px;right:24px}}.hud-top-right-bar{z-index:10;pointer-events:auto;align-items:center;gap:12px;display:flex;position:absolute;top:24px;right:24px}.template-picker{-webkit-backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid #e5e7eb66;border-radius:20px;align-items:center;gap:4px;padding:3px 6px;display:flex;box-shadow:0 4px 6px -1px #00000008,inset 0 0 0 1px #fff9}.picker-label{color:#6b7280;-webkit-user-select:none;user-select:none;padding:0 6px 0 4px;font-size:.7rem;font-weight:700}.template-btn{color:#4b5563;cursor:pointer;background:0 0;border:none;border-radius:14px;padding:4px 10px;font-size:.75rem;font-weight:700;transition:all .2s}.template-btn:hover{color:#1f2937;background:#0000000d}.hud-top-right-bar .clear-btn{color:#ef4444;background:#fef2f2e6;border:1px solid #fca5a566;box-shadow:0 4px 6px -1px #ef444414}.hud-top-right-bar .clear-btn:hover{color:#dc2626;background:#fecaca}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:999;background:#0f172a66;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.2s ease-out modal-fade-in;display:flex;position:fixed;top:0;left:0}.confirm-modal{background:#fff;border:1px solid #e5e7eb99;border-radius:16px;width:90%;max-width:400px;padding:24px;animation:.2s cubic-bezier(.34,1.56,.64,1) modal-scale-in;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-title{color:#1f2937;margin:0 0 8px;font-size:1.15rem;font-weight:800}.modal-message{color:#4b5563;margin:0 0 20px;font-size:.875rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:12px;display:flex}.modal-btn{cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:.85rem;font-weight:700;transition:all .2s}.cancel-btn{color:#4b5563;background:#f3f4f6}.cancel-btn:hover{color:#1f2937;background:#e5e7eb}.confirm-danger-btn{color:#fff;background:#ef4444}.confirm-danger-btn:hover{background:#dc2626}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.hud-more-menu-container{display:none;position:relative}.hud-more-menu-popup{z-index:20;background:#fff;border:1px solid #e5e7ebcc;border-radius:12px;flex-direction:column;gap:4px;width:160px;padding:8px;animation:.15s cubic-bezier(.34,1.56,.64,1) modal-scale-in;display:flex;position:absolute;bottom:56px;right:0;box-shadow:0 10px 15px -3px #00000014,0 4px 6px -2px #0000000a}.menu-header{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none;margin-bottom:2px;padding:4px 8px;font-size:.65rem;font-weight:800}.menu-item-btn{text-align:left;color:#4b5563;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;width:100%;padding:8px 12px;font-size:.8rem;font-weight:700;transition:all .15s;display:flex}.menu-item-btn:hover{color:#1f2937;background:#f3f4f6}.menu-divider{background:#f3f4f6;height:1px;margin:4px 0}.menu-clear-btn{color:#ef4444}.menu-clear-btn:hover{color:#dc2626;background:#fecaca}@media (width<=820px){.hud-top-right-bar{display:none}.hud-more-menu-container{display:block}}
