/* Flash Messages Component - Design Guidelines Compliant */

.flash-message {
  padding: var(--spacing-md);
  margin: 0;
  text-align: center;
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: clamp(0.9rem, 2vw + 0.5rem, 1rem);
  position: relative;
  z-index: 1000;
  transform: translateY(-100%);
  opacity: 0;
  animation: slideInFade 0.3s ease-out forwards;
  border-radius: var(--border-radius-md);
  border: 1.35px solid;
  margin-bottom: var(--spacing-sm);
}

.flash-notice {
  background: rgba(148, 239, 213, 0.2);
  color: var(--brand-3);
  border-image-source: linear-gradient(155deg, var(--brand-3) 2%, rgba(148, 239, 213, 0.0001) 40%, rgba(148, 239, 213, 0.0001) 55%, rgba(148, 239, 213, 0.4) 95%);
}

.flash-alert {
  background: rgba(254, 195, 199, 0.2);
  color: var(--brand-1);
  border-image-source: linear-gradient(155deg, var(--brand-1) 2%, rgba(254, 195, 199, 0.0001) 40%, rgba(254, 195, 199, 0.0001) 55%, rgba(254, 195, 199, 0.4) 95%);
}

.flash-message.fade-out {
  animation: slideOutFade 0.3s ease-in forwards;
}

@keyframes slideInFade {
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes slideOutFade {
  to {
    transform: translateY(-100%);
    opacity: 0;
  }
}

/* Mobile responsiveness */
@media (max-width: 768px) {
  .flash-message {
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: 0.9rem;
    margin-left: var(--spacing-sm);
    margin-right: var(--spacing-sm);
  }
}