@layer components {
  .toast-container {
    position: fixed;
    top: calc(var(--header-height) + var(--space-4));
    right: var(--space-4);
    z-index: 300;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    max-width: 24rem;
  }

  .toast {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-default);
    background-color: var(--surface-primary);
    box-shadow: var(--shadow-md);
    animation: toast-slide-in var(--transition-base) ease;
  }

  .toast--success {
    border-left: 3px solid var(--color-success-500);
  }

  .toast--error {
    border-left: 3px solid var(--color-danger-500);
  }

  .toast--warning {
    border-left: 3px solid var(--color-warning-500);
  }

  .toast--info {
    border-left: 3px solid var(--color-info-500);
  }

  .toast__icon {
    flex-shrink: 0;
    font-size: var(--font-size-lg);
  }

  .toast--success .toast__icon { color: var(--color-success-500); }
  .toast--error .toast__icon { color: var(--color-danger-500); }
  .toast--warning .toast__icon { color: var(--color-warning-500); }
  .toast--info .toast__icon { color: var(--color-info-500); }

  .toast__content {
    flex: 1;
    font-size: var(--font-size-sm);
    color: var(--text-primary);
    line-height: var(--line-height-base);
  }

  .toast__close {
    flex-shrink: 0;
    background: none;
    border: none;
    color: var(--text-tertiary);
    cursor: pointer;
    padding: var(--space-1);
    font-size: var(--font-size-sm);
    transition: color var(--transition-fast);
  }

  .toast__close:hover {
    color: var(--text-primary);
  }

  .toast--leaving {
    animation: toast-slide-out var(--transition-base) ease forwards;
  }

  @keyframes toast-slide-in {
    from {
      opacity: 0;
      transform: translateX(100%);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }

  @keyframes toast-slide-out {
    from {
      opacity: 1;
      transform: translateX(0);
    }
    to {
      opacity: 0;
      transform: translateX(100%);
    }
  }
}
