.sankey-container {
  width: 100%;
  max-width: 950px;
  margin: 0 auto 3.5rem auto;
  padding: 2.5rem;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  box-shadow: var(--shadow-subtle);
  overflow: visible;
}
.sankey-svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}
.sankey-node rect {
  transition: all 0.3s ease;
  cursor: pointer;
}
.sankey-node:hover rect {
  filter: drop-shadow(0 0 10px #fff);
  border-color: var(--text-primary);
}
@keyframes pulsePath {
  0% {
    stroke-opacity: 0.4;
    stroke-width: 2px;
  }
  50% {
    stroke-opacity: 1;
    stroke-width: 3px;
    filter: drop-shadow(0 0 6px var(--warn-text));
  }
  100% {
    stroke-opacity: 0.4;
    stroke-width: 2px;
  }
}
.pulsing-path {
  animation: pulsePath 2s infinite ease-in-out;
  stroke: var(--warn-text);
}

@media (max-width: 720px) {
  .sankey-container {
    padding: 0;
  }
}
