.spark { width: 100%; }
.spark svg { width: 100%; height: 100%; }

#topology canvas { border-radius: 12px; }

.card-flash {
  animation: flash 1.4s ease;
}
@keyframes flash {
  0% { box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.45); }
  100% { box-shadow: none; }
}

.intruder-pulse {
  animation: pulse-red 2s infinite;
}
@keyframes pulse-red {
  0%, 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.6); }
  50% { box-shadow: 0 0 0 8px rgba(239, 68, 68, 0); }
}

.toast {
  min-width: 280px;
  max-width: 360px;
  animation: slide-in 0.25s ease;
}
@keyframes slide-in {
  from { transform: translateX(20px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(100,116,139,0.4); border-radius: 4px; }
