/* Notification viewport */
.notification-viewport {
  position: fixed;
  bottom: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  gap: 0.5rem;
  width: 390px;
  max-width: 100vw;
  margin: 0;
  list-style: none;
  z-index: 9999;
  outline: none;
}

/* Base toast styles */
.notification-toast {
  background-color: white;
  border-radius: 0.5rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  padding: 0.75rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  border-left: 4px solid;
  animation: slideIn 150ms cubic-bezier(0.16, 1, 0.3, 1);
}

/* Notification types */
.notification-success {
  border-left-color: #10B981;
  background-color: #F0FDF4;
}

.notification-error {
  border-left-color: #EF4444;
  background-color: #FEF2F2;
}

.notification-warning {
  border-left-color: #F59E0B;
  background-color: #FFFBEB;
}

.notification-info {
  border-left-color: #3B82F6;
  background-color: #EFF6FF;
}

/* Toast title */
.notification-title {
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #1F2937;
}

/* Toast description */
.notification-description {
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #4B5563;
}

/* Animation */
@keyframes slideIn {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}

.notification-toast[data-state='closed'] {
  animation: slideOut 150ms ease-out;
}

@keyframes slideOut {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(100%);
  }
}
