#flash-container {
  position: fixed;
  top: 1.25rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10500;
  width: 90%;
  max-width: 31.25rem;
  pointer-events: none;
}
.flash-message {
  padding: 0.75rem 1.25rem;
  border-radius: 0.5rem;
  background: #333;
  color: #fff;
  margin: 0 0 0.625rem 0;
  box-shadow: 0 0.25rem 0.75rem rgba(0,0,0,0.2);
  font-size: 0.875rem;
  text-align: center;
  animation: flash-fade-in 0.3s ease-out forwards;
  pointer-events: auto;
}
.flash-message.success { background: #2ecc71; }
.flash-message.error { background: #e74c3c; }
@keyframes flash-fade-in {
  from { opacity: 0; transform: translateY(-1.25rem); }
  to { opacity: 1; transform: translateY(0); }
}
.flash-message.fade-out {
  animation: flash-fade-out 0.3s ease-in forwards;
}
@keyframes flash-fade-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-1.25rem); }
}
