.node-wrapper{--node-accent:#0d9488;--node-accent-soft:#0d94880a;--node-accent-bg:#0d94881a;--node-card-bg:#fff;--node-title-color:#1a2744;--node-subtitle-color:#8b95a5;--node-shadow:0 4px 12px #00000014, inset 0 1px 0 #ffffffd9;--node-shadow-selected:0 0 0 2px var(--node-accent), 0 4px 14px #0000001a;--node-toolbar-bg:#fff;--node-toolbar-border:#e5e7eb;--node-toolbar-shadow:0 4px 16px #0000001a;--node-toolbar-btn-hover:#f3f4f6;--node-toolbar-divider:#d1d5db;z-index:2;position:relative}.node-card{background:var(--node-card-bg);cursor:pointer;z-index:5;width:220px;min-width:220px;min-height:72px;box-shadow:var(--node-shadow);border:1px solid #0000000f;border-radius:16px;flex-direction:column;padding:20px 24px;transition:box-shadow .15s,border-color .15s;display:flex;position:relative;overflow:visible}@media (max-width:640px){.node-card{border-radius:12px;width:160px;min-width:160px;min-height:56px;padding:12px 14px}.node-title{font-size:11px}.node-subtitle{font-size:10px}.node-icon-box{width:22px;height:22px}.node-icon{width:10px;height:10px}}.node-wrapper.selected .node-card,.node-card.selected{box-shadow:0 0 0 2px var(--accent), 0 4px 14px #0000001a;border-color:var(--accent)}.node-shine{pointer-events:none;z-index:1;background:linear-gradient(135deg, var(--node-accent-soft) 0%, transparent 60%);border-radius:16px;position:absolute;inset:0}.node-header{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.node-icon-box{background:var(--node-accent-bg);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.node-icon{background:var(--node-accent);border-radius:3px;width:12px;height:12px}.node-title{color:var(--node-title-color);word-break:break-word;flex:1;min-width:0;margin:0;font-size:13px;font-weight:700;line-height:1.3}.node-subtitle{color:var(--node-subtitle-color);margin:0;font-size:11px;font-weight:500;line-height:1.3}.node-footer{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.node-status-dot{background:var(--node-status-color,#10b981);border-radius:50%;flex-shrink:0;width:7px;height:7px}.node-toolbar{z-index:50;background:var(--node-toolbar-bg);border:1px solid var(--node-toolbar-border);box-shadow:var(--node-toolbar-shadow);border-radius:9999px;align-items:center;gap:2px;padding:4px 6px;display:flex;position:absolute;top:-56px;left:50%;transform:translate(-50%)}.node-toolbar-btn{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:background .12s,color .12s;display:flex}.node-toolbar-btn:hover{background:var(--node-toolbar-btn-hover)}.node-toolbar-btn--danger:hover{color:#ef4444}.node-toolbar-divider{background:var(--node-toolbar-divider);width:1px;height:16px;margin:0 4px}.dark .node-wrapper{--node-card-bg:#1e2235;--node-title-color:#fff;--node-subtitle-color:#94a3b8;--node-shadow:5px 5px 0 #0d0f1b, 10px 10px 0 #151828, 0 1px 3px #0000004d;--node-shadow-selected:0 0 0 2px var(--node-glow-border,#34d399), 5px 5px 0 #0d0f1b, 10px 10px 0 #151828, 0 2px 6px #0006;--node-backplate-1:#0d0f1b;--node-backplate-2:#151828;--node-backplate-1-selected:#0d0f1b;--node-backplate-2-selected:#151828;--node-toolbar-bg:#1f2937;--node-toolbar-border:#374151;--node-toolbar-btn-hover:#374151;--node-toolbar-divider:#4b5563}.dark .node-card{box-shadow:var(--node-shadow), inset 0 0 12px var(--node-glow,#34d39926);border-color:#ffffff1f}.dark .node-wrapper.selected .node-card{box-shadow:0 0 0 2px var(--accent), 5px 5px 0 #0d0f1b, 10px 10px 0 #151828, 0 2px 6px #0006, inset 0 0 12px var(--node-glow,#34d39926);border-color:var(--accent)}.node-card-db{border-top:3px solid var(--node-accent);overflow:hidden;border-radius:12px!important}.node-card-db:before{content:"";background:var(--node-accent);opacity:.15;z-index:0;border-radius:12px 12px 0 0;height:8px;position:absolute;top:0;left:0;right:0}.node-card-db:after{content:"";background:var(--node-accent);opacity:.12;z-index:0;border-radius:1px;height:2px;position:absolute;bottom:6px;left:10%;right:10%}.shape-node:hover .react-flow__handle{opacity:1!important}.node-queue .node-card{border-left:3px solid var(--node-accent)}.node-queue .node-icon-box{border-radius:50%}
