636c7b8d05
compute_levels asigna columnas via BFS, los nodos se apilan verticalmente proporcional a max(in_total, out_total). Los links se renderizan como bandas con bezier cubico, color del nodo origen + alpha bajo. Asume DAG (sin ciclos). Si hay ciclos, los nodos del ciclo quedan en su nivel parcial — no rompe pero puede solapar visualmente.