.builder-dashboard{max-width:1200px;margin:0 auto;padding:40px 48px}.dashboard-header{justify-content:space-between;align-items:flex-start;margin-bottom:40px;display:flex}.title-icon{color:var(--accent)}.header-actions{gap:12px;display:flex}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;display:grid}.project-card{flex-direction:column;padding:0;transition:transform .2s,border-color .2s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--border-default);transform:translateY(-2px)}.project-thumb{background:var(--surface-0);border-bottom:1px solid var(--border-subtle);justify-content:center;align-items:center;height:180px;display:flex;overflow:hidden}.project-thumb svg{opacity:.8;width:100%;height:100%}.thumb-placeholder{color:var(--text-muted);opacity:.2}.project-info{flex:1;padding:20px}.project-info h3{color:var(--text-primary);align-items:center;gap:8px;margin:0 0 6px;font-size:18px;display:flex}.project-info p{color:var(--text-secondary);margin:0;font-size:12px}.project-actions{gap:8px;padding:0 20px 20px;display:flex}.flex-1{flex:1}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;padding:60px 20px;display:flex}.empty-state svg{color:var(--text-secondary);margin-bottom:16px}.empty-state h3{color:var(--text-primary);margin:0 0 8px}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-light)}.btn-success{color:#22c55e;background:#22c55e26;border-color:#22c55e4d}.btn-success:hover{background:#22c55e40}.btn-outline{color:var(--text-primary);border-color:var(--border-default);background:0 0}.btn-outline:hover{background:var(--surface-1)}.btn-danger{color:#ef4444;background:#ef44441a}.btn-danger:hover{background:#ef444433}.btn-icon{padding:10px}.workspace-container{background:var(--surface-0);height:calc(100vh - 64px);display:flex;position:relative;overflow:hidden}.workspace-sidebar{background:var(--surface-1);border-right:1px solid var(--border-subtle);z-index:10;flex-direction:column;width:260px;display:flex}.workspace-canvas{cursor:grab;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:40px 40px;flex:1;position:relative;overflow:hidden}.workspace-canvas:active{cursor:grabbing}.node-svg{cursor:pointer;transition:filter .2s}.node-svg:hover{filter:brightness(1.2)}.node-port{fill:var(--surface-0);stroke:var(--text-secondary);stroke-width:2px;cursor:crosshair;transition:all .2s}.node-port:hover{fill:var(--accent);stroke:var(--accent);transform:scale(1.5)}.node-wire{fill:none;stroke:var(--border-default);stroke-width:3px;transition:stroke .3s}.node-wire.active{stroke:var(--accent);filter:drop-shadow(0 0 8px var(--accent-glow))}.context-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);z-index:20;background:#0a101ad9;border-radius:12px;width:300px;padding:20px;position:absolute;top:20px;right:20px}.panel-input{border:1px solid var(--border-default);width:100%;color:var(--text-primary);background:#0a101a66;border-radius:6px;outline:none;padding:6px 10px;font-size:12px;transition:all .2s;box-shadow:inset 0 2px 4px #0003}.panel-input:focus{border-color:var(--accent);box-shadow:inset 0 2px 4px #0003, 0 0 0 2px var(--accent-subtle)}.panel-input:disabled{color:var(--text-tertiary);cursor:not-allowed;background:#ffffff05}.panel-select{appearance:none;border:1px solid var(--border-default);width:100%;color:var(--text-primary);cursor:pointer;background:#0a101a66 url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%239ca3af\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"6 9 12 15 18 9\"></polyline></svg>") right 8px center no-repeat;border-radius:6px;outline:none;padding:6px 28px 6px 10px;font-size:12px;transition:all .2s;box-shadow:inset 0 2px 4px #0003}.panel-select:hover{border-color:#ffffff4d}.panel-select:focus{border-color:var(--accent)}.panel-select option,.panel-select optgroup{color:#fff;background:#111827}.panel-label{text-transform:uppercase;color:var(--text-secondary);letter-spacing:1px;margin-bottom:6px;font-size:10px;font-weight:700;display:block}.panel-btn-group{border:1px solid var(--border-subtle);background:#04080f80;border-radius:6px;padding:2px;display:flex}.panel-toggle-btn{text-transform:uppercase;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex:1;padding:6px;font-size:10px;font-weight:700;transition:all .2s}.panel-toggle-btn:hover:not([class*=active]){color:var(--text-primary);background:#ffffff0d}.panel-toggle-btn.active-red{color:#f87171;background:#ef444426;border-color:#ef44444d}.panel-toggle-btn.active-green{color:#4ade80;background:#22c55e26;border-color:#22c55e4d}.dock-slot{border:1px dashed var(--border-default);background:#ffffff05;border-radius:8px;flex-direction:column;gap:8px;margin-bottom:8px;padding:12px;transition:all .2s;display:flex;position:relative}.dock-slot.occupied{background:linear-gradient(90deg,#22c55e1a 0%,#0000 100%);border:1px solid #22c55e4d;box-shadow:0 0 15px #22c55e0d}.dock-icon-pulsing{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:2s infinite statusPulse;display:inline-block}.floating-remove-btn{color:#f87171;cursor:pointer;background:#ef44441a;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex}.floating-remove-btn:hover{color:#fff;background:#ef4444}.panel-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;display:flex}.panel-close-btn{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.panel-close-btn:hover{color:var(--text-primary);border-color:var(--border-subtle);background:#ffffff0d}.toolbar-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.toolbar-btn:hover{color:#fff;background:#ffffff0d}.toolbar-btn.active-green{color:#4ade80;background:#22c55e26;border-color:#22c55e4d}.toolbar-btn.active-red{color:#f87171;background:#ef444426;border-color:#ef44444d}.custom-modal-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.custom-modal-content{background-color:#0f172a;border:1px solid #ffffff1a;border-radius:12px;width:400px;padding:24px;box-shadow:0 25px 50px -12px #00000040}.modal-title{color:#fff;margin:0 0 8px;font-size:20px;font-weight:700}.modal-subtitle{color:#9ca3af;margin:0 0 24px;font-size:14px}.custom-modal-input{color:#fff;box-sizing:border-box;background-color:#0006;border:1px solid #ffffff1a;border-radius:8px;outline:none;width:100%;margin:0 0 24px;padding:12px 16px;transition:border-color .2s}.custom-modal-input:focus{border-color:var(--accent)}.modal-actions{justify-content:flex-end;gap:12px;display:flex}.n8n-node{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);-webkit-user-select:none;user-select:none;background:#0a101ad9;border:1px solid #ffffff26;border-radius:14px;flex-direction:column;width:100%;height:100%;font-family:inherit;transition:border-color .2s,box-shadow .2s,transform .1s;display:flex;box-shadow:0 10px 40px -10px #000000b3}.n8n-node.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 10px 40px #22c55e33}.n8n-header{text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #ffffff0d;border-radius:14px 14px 0 0;align-items:center;gap:8px;padding:10px 14px;font-size:11px;font-weight:800;display:flex}.n8n-body{flex-direction:column;flex:1;justify-content:center;padding:12px 14px;display:flex}.n8n-title{color:#fff;margin-bottom:2px;font-size:13px;font-weight:600}.n8n-subtitle{color:#9ca3af;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.n8n-port-in,.n8n-port-out{fill:#0f172a;stroke:#64748b;stroke-width:2px;cursor:crosshair;transition:all .2s cubic-bezier(.34,1.56,.64,1)}.n8n-port-in:hover,.n8n-port-out:hover{fill:var(--accent);stroke:var(--accent);transform:scale(1.5)}.n8n-canvas{background-color:var(--surface-0);background-image:radial-gradient(#ffffff14 1.5px,#0000 1.5px);background-size:32px 32px}.n8n-wire{fill:none;stroke:#fff3;stroke-width:4px;stroke-linecap:round;transition:stroke .3s}.n8n-wire.active{stroke:var(--accent);filter:drop-shadow(0 0 8px var(--accent-glow));animation:.8s linear infinite pipeFlow}@keyframes pipeFlow{to{stroke-dashoffset:-28px}}@keyframes sensorPulse{0%,to{r:16;opacity:1}50%{r:18;opacity:.8}}.n8n-wire.active+.interception-slot{opacity:0}.n8n-library-node{cursor:grab;-webkit-user-select:none;user-select:none;background:#0a101a66;border:1px solid #ffffff0d;border-radius:8px;align-items:center;gap:12px;padding:10px 14px;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex}.n8n-library-node:hover{background:#0a101acc;border-color:#ffffff26;transform:translate(4px);box-shadow:0 4px 12px #0000004d}.n8n-library-node:active{cursor:grabbing}.n8n-lib-text{flex-direction:column;display:flex}.n8n-lib-text strong{color:#fff;letter-spacing:.2px;font-size:13px;font-weight:600}.n8n-lib-text span{color:#9ca3af;font-size:10px}.slot-empty:hover rect,.slot-empty:hover circle{filter:drop-shadow(0 0 8px #22c55e33);transition:all .2s;stroke:#22c55e4d!important;stroke-dasharray:none!important}.slot-empty{cursor:default;transition:all .2s}.vision-modal-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.vision-modal{background:var(--surface-1);border:1px solid var(--border-emphasis);border-radius:var(--radius-lg);width:700px;padding:32px;position:relative;box-shadow:0 20px 40px #00000080}.vision-modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:8px;position:absolute;top:16px;right:16px}.vision-modal-close:hover{color:var(--text-primary);background:#ffffff0d}.vision-upload-zone{cursor:pointer;border:2px dashed #ffffff1a;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;height:300px;margin:24px 0;transition:all .3s;display:flex;position:relative;overflow:hidden}.vision-upload-zone:hover{border-color:var(--cyan);background:#22d3ee05}.vision-preview{object-fit:cover;opacity:.6;width:100%;height:100%}.scan-line{background:var(--cyan);width:100%;height:4px;box-shadow:0 0 15px 2px var(--cyan);z-index:10;animation:2s linear infinite vision-scan;position:absolute;top:0;left:0}@keyframes vision-scan{0%{opacity:0;top:0}10%{opacity:1}90%{opacity:1}to{opacity:0;top:100%}}.vision-status-text{letter-spacing:1px;color:#fff;border:1px solid var(--cyan);z-index:11;background:#0009;border-radius:20px;padding:8px 16px;font-family:Orbitron,monospace;font-size:13px;font-weight:700;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.btn-vision{text-transform:uppercase;letter-spacing:.5px;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:10px 24px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.btn-vision-secondary{color:var(--text-secondary);background:#ffffff0d;border:1px solid #ffffff1a}.btn-vision-secondary:hover:not(:disabled){color:#fff;background:#ffffff1a;border-color:#fff3}.btn-vision-primary{background:var(--violet);color:#fff;border:none;box-shadow:0 0 15px #8b5cf666}.btn-vision-primary:hover:not(:disabled){background:#a78bfa;transform:translateY(-1px);box-shadow:0 0 25px #8b5cf6cc}.btn-vision:disabled{opacity:.5;cursor:not-allowed}
