.canvas-container{height:calc(100vh - 64px);overflow:hidden;position:relative;width:100%}.canvas{background-image:radial-gradient(circle,hsla(0,0%,100%,.05) 1px,transparent 0);background-size:20px 20px;height:3000px;transform-origin:top left;width:5000px}.canvas,.module{position:absolute}.module{border-radius:8px;cursor:move;-webkit-user-select:none;user-select:none}.module-mini{height:100px;width:150px}.module-mid{height:200px;width:300px}.module-max{height:300px;width:450px}.handle{border:2px solid #fff;box-shadow:0 0 3px rgba(0,0,0,.3);height:14px;opacity:.8;transition:transform .1s,opacity .1s;width:14px;z-index:10}.handle:hover{opacity:1;transform:scale(1.2)}.handle-nw{cursor:nw-resize;left:-7px;top:-7px}.handle-ne{cursor:ne-resize;right:-7px;top:-7px}.handle-sw{bottom:-7px;cursor:sw-resize;left:-7px}.handle-se{bottom:-7px;cursor:se-resize;right:-7px}.handle-n{cursor:n-resize;left:50%;top:-7px;transform:translateX(-50%)}.handle-e{cursor:e-resize;right:-7px;top:50%;transform:translateY(-50%)}.handle-s{bottom:-7px;cursor:s-resize;left:50%;transform:translateX(-50%)}.handle-w{cursor:w-resize;left:-7px;top:50%;transform:translateY(-50%)}.connection-line{stroke:#6200ee;stroke-width:2}.connection-handle{fill:#6200ee;cursor:pointer}.module-library{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));padding:16px}.strategy-card{height:100%}.zoom-controls{display:flex;flex-direction:column;gap:10px;right:20px}.notification,.zoom-controls{bottom:20px;position:fixed;z-index:1000}.notification{left:20px}.snap-guide{animation:snapGuideGlow .6s ease-in-out infinite alternate;background-color:rgba(98,0,238,.5);box-shadow:0 0 8px 3px rgba(98,0,238,.8)}.snap-guide.center-guide{animation:centerGuideGlow .6s ease-in-out infinite alternate;background-color:rgba(255,193,7,.5);box-shadow:0 0 8px 3px rgba(255,193,7,.8)}@keyframes snapGuideGlow{0%{box-shadow:0 0 8px 3px rgba(98,0,238,.8);opacity:.7}to{box-shadow:0 0 15px 5px #6200ee;opacity:1}}@keyframes centerGuideGlow{0%{box-shadow:0 0 8px 3px rgba(255,193,7,.8);opacity:.7}to{box-shadow:0 0 15px 5px #ffc107;opacity:1}}.snap-notification{background-color:rgba(98,0,238,.9);border-radius:4px;color:#fff;font-size:12px;opacity:0;padding:4px 8px;pointer-events:none;position:fixed;transition:opacity .2s ease-out;z-index:10000}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Roboto,Helvetica,Arial,sans-serif;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:4px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5)}.module{transition:box-shadow .2s,border-color .2s,transform .1s}.module:hover{box-shadow:0 4px 20px rgba(0,0,0,.15)}.module-mini{min-height:100px;min-width:180px}.module-mid{min-height:180px;min-width:280px}.module-max{min-height:300px;min-width:400px}.handle{background-color:#6200ee;border:1px solid #fff;border-radius:50%;cursor:nwse-resize;height:10px;position:absolute;width:10px;z-index:100}.handle-nw{cursor:nwse-resize;left:-5px;top:-5px}.handle-ne{cursor:nesw-resize;right:-5px;top:-5px}.handle-sw{bottom:-5px;cursor:nesw-resize;left:-5px}.handle-se{bottom:-5px;cursor:nwse-resize;right:-5px}.connection-point{transition:transform .1s ease}.connection-point:hover{cursor:crosshair;transform:scale(1.5)}.connection-line{fill:none;pointer-events:all;transition:stroke .2s ease}.connection-line:hover{stroke-width:4px!important}.connection-handle{transition:fill .2s ease,r .1s ease}.connection-handle:hover{r:7px}.module-drag-preview{align-items:center;background-color:rgba(98,0,238,.2);border:2px dashed #6200ee;border-radius:8px;box-shadow:0 4px 8px rgba(0,0,0,.1);color:#6200ee;display:flex;font-family:Roboto,sans-serif;font-weight:500;justify-content:center;padding:10px;pointer-events:none}.canvas-background{cursor:grab;transition:background-position .05s linear}.canvas-background:active{cursor:grabbing}
/*# sourceMappingURL=main.055bc99d.css.map*/