.stitch-map-root{--map-card:#fff;--map-border:#e2e8f0;--map-primary:#32628c;--map-primary-soft:#6c99c7;--map-text:#191c1e;--map-line:#32628c57;--map-line-strong:#6c99c7eb;--fact-hover-bg:#eef5ff;--fact-hover-border:#7ba3d8;width:100%;overflow:visible}.stitch-map-root .stitch-map,.stitch-map-root .map-stage{width:100%;height:400px;position:relative;overflow:visible}.stitch-map-root .map-canvas{width:100%;height:100%;position:absolute;inset:0}.stitch-map-root .flow-area{position:absolute;inset:26px 8px}.stitch-map-root .flow-lines{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.stitch-map-root .flow-lines path{fill:none;stroke:var(--map-line);stroke-width:2px;stroke-linecap:round;opacity:.78;stroke-dasharray:9 12;animation:9s linear infinite shs-dash-flow}.stitch-map-root .flow-lines path.emphasis{stroke:var(--map-line-strong);opacity:.94}@keyframes shs-dash-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-84px}}.stitch-map-root .particle{filter:drop-shadow(0 0 8px #32628cbf)}.stitch-map-root .pulse-node{transform-origin:50%;animation:4.2s ease-in-out infinite shs-node-pulse}@keyframes shs-node-pulse{0%,to{opacity:.48;transform:scale(1)}50%{opacity:.9;transform:scale(1.12)}}.stitch-map-root .node-card{z-index:2;border-radius:var(--radius-panel);background:var(--map-card);border:1px solid var(--map-border);width:72px;min-height:60px;color:var(--map-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px 3px;font-size:10px;font-weight:700;line-height:1.15;transition:background-color .2s,border-color .2s,box-shadow .2s,color .2s;animation:5.8s ease-in-out infinite shs-float-card;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 6px 14px #0f172a14}.stitch-map-root .node-card:nth-child(2n){animation-duration:6.6s}.stitch-map-root .node-card:nth-child(3n){animation-duration:7.2s}@keyframes shs-float-card{0%,to{transform:translate(-50%,-50%)translateY(0)}50%{transform:translate(-50%,-50%)translateY(-6px)}}.stitch-map-root .node-card svg{width:16px;height:16px;color:var(--map-primary);stroke-width:2px;flex-shrink:0;transition:color .2s,filter .2s;animation:3.6s ease-in-out infinite shs-icon-blink}@keyframes shs-icon-blink{0%,to{opacity:.85}50%{opacity:1}}.stitch-map-root .node-card span{word-break:break-word;max-width:100%;display:block}.stitch-map-root .node-card:hover{background:var(--fact-hover-bg);border-color:var(--fact-hover-border);color:#15395f;z-index:4;box-shadow:0 16px 28px #32628c24,0 0 28px #6c99c747}.stitch-map-root .node-card:hover svg{color:var(--map-primary-soft);filter:drop-shadow(0 0 10px #6c99c7b3)}.stitch-map-root .facturacion-card{width:80px;min-height:66px;font-size:10.5px}.stitch-map-root .ventas{top:28%;left:10%}.stitch-map-root .almacen{top:28%;left:30%}.stitch-map-root .facturacion{top:28%;left:50%}.stitch-map-root .contabilidad{top:28%;left:70%}.stitch-map-root .informes{top:28%;left:90%}.stitch-map-root .compras{top:72%;left:10%}.stitch-map-root .rrhh{top:72%;left:30%}.stitch-map-root .partes{top:72%;left:50%}.stitch-map-root .logistica{top:72%;left:70%}.stitch-map-root .ia{top:72%;left:90%}@media (prefers-reduced-motion:reduce){.stitch-map-root .flow-lines path,.stitch-map-root .pulse-node,.stitch-map-root .node-card,.stitch-map-root .node-card svg{animation:none}}
