.toast {
  width: 100%;
  padding: .75rem;
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
  gap: .75rem;
  border: solid 1px;
  position: relative;

  h4 {
    font-size: var(--rem-14);
    line-height: var(--rem-17);
    font-variation-settings: 'wght' var(--text-medium);
    letter-spacing: 0;
  }

  p {
    font-size: var(--rem-13);
    line-height: var(--rem-16);
    letter-spacing: 0;
  }

  &[data-type="success"] {
    background-color: var(--surface-success);
    h4, p {
      color: var(--text-success);
    }
    border-color: var(--border-success);
    box-shadow: var(--shadow-success-sm);
  }

  &[data-type="warning"] {
    background-color: var(--surface-warning);
    h4, p {
      color: var(--text-warning);
    }
    border-color: var(--border-warning);
    box-shadow: var(--shadow-warning-sm);
  }

  &[data-type="error"] {
    background-color: var(--surface-error);
    h4, p {
      color: var(--text-error);
    }
    border-color: var(--border-error);
    box-shadow: var(--shadow-error-sm);
  }

  &[data-type="info"],
  &[data-type="loading"] {
    background-color: var(--surface-primary);
    h4, p {
      color: var(--text-information);
    }
    border-color: var(--border-secondary);
    box-shadow: var(--shadow-neutral-sm);
  }

  a {
    font-size: inherit;
    color: inherit;
  }
}

.toast[data-type="loading"] > span.icon {
  animation: spin 1s infinite linear;
}

@keyframes spin {
  from { rotate: 0deg; }
  to { rotate: 360deg; }
}

.toast.hiding {
  animation: slide-left 300ms ease-in;
}

@keyframes slide-left {
  from { left: 0; opacity: 1; }
  to { left: -5%; opacity: 0; }
}

.toast--text-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: .25rem;
}

.toast > .buttons--button {
  position: absolute;
  top: .25rem;
  right: .25rem;
}