/* Toast di flash: notifiche non intrusive, auto-dismiss. Vedi
   toast_controller.js. */

@layer components {
  .toasts {
    position: fixed;
    inset-block-start: var(--space-4);
    inset-inline-end: var(--space-4);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    max-inline-size: min(90vw, 24rem);
  }

  .toast {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius);
    border: 1px solid transparent;
    box-shadow: var(--shadow-md);
    font-size: var(--text-sm);
  }

  .toast--notice {
    background-color: var(--color-positive-bg);
    border-color: var(--color-positive-border);
    color: var(--color-positive);
  }

  .toast--alert {
    background-color: var(--color-negative-bg);
    border-color: var(--color-negative-border);
    color: var(--color-negative);
  }

  .toast__message {
    flex: 1;
  }

  .toast__close {
    background: none;
    border: none;
    cursor: pointer;
    font-size: var(--text-lg);
    line-height: 1;
    padding: 0 var(--space-1);
    color: inherit;
    opacity: 0.7;
  }

  .toast__close:hover {
    opacity: 1;
  }

  @media (prefers-reduced-motion: no-preference) {
    .toast {
      animation: toast-in 0.2s ease-out;
    }
  }

  @keyframes toast-in {
    from {
      opacity: 0;
      transform: translateY(-0.5rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
