.alert,
alert-message {
  --border-radius: 4px;

  align-items: center;
  background: var(--blue-50);
  border: 1px solid var(--blue-100);
  border-radius: var(--border-radius);
  display: flex;
  gap: 0.5rem;
  margin: 1rem 0;
  padding: 1rem;
  position: relative;

  &.no-margin,
  &[no-margin] {
    margin: 0;
  }

  & p {
    margin: 0;
  }

  & p + p {
    margin-top: 1rem;
  }

  &:has(.footnote) {
    padding-bottom: 2rem;
  }

  & .footnote {
    color: black;
    font-size: 0.875rem;
    opacity: 0.75;
    position: absolute;
    bottom: 1px;
    right: 1px;
  }

  & .hint {
    margin-top: 0;

    & .liquid-variable {
      background-color: var(--blue-100);
    }
  }

  &.alert--under-section-header {
    margin: -0.5rem 0 1rem;
  }
}

.alert--small {
  padding: 0.25rem 0.5rem;
}

.alert--danger,
alert-message[danger] {
  background-color: var(--red-50);
  border: none;
  color: var(--red-700);
}

.alert--success,
alert-message[success] {
  background-color: var(--green-50);
  border: none;
  color: var(--green-700);
}

.alert--test-mode,
.alert--warning,
alert-message[test-mode],
alert-message[warning] {
  background-color: var(--orange-200);
  border: none;
  color: var(--orange-800);
}

.alert--cta {
  align-items: flex-start;
  background-color: var(--gray-100);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0;

  & .btn {
    background-color: white;
    align-self: flex-end;
  }

  & svg {
    opacity: 1;
  }
}

html.dark-mode {
  & .alert,
  alert-message {
    background: var(--gray-700);
    border: 1px solid var(--gray-800);
    border: none;
    color: inherit;
  }

  & .alert--cta {
    background-color: var(--gray-700);
    border: 1px solid var(--gray-900);

    & .btn {
      background-color: var(--gray-800);
      color: var(--gray-200);
    }
  }
}
