.app-toast-host {
  position: fixed;
  inset: 16px 16px auto auto;
  margin: 0;
  padding: 0;
  border: 0;
  width: min(380px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  background: transparent;
  z-index: 20000;
  pointer-events: none;
}
.app-toast-host::backdrop {
  background: transparent;
}
.app-toast {
  display: flex;
  align-items: flex-start;
  width: 100%;
  margin-bottom: 12px;
  border: 1px solid var(--bs-gray-300, #dce2e8);
  border-left: 4px solid var(--bs-success, #17a673);
  border-radius: 8px;
  background: var(--bs-body-bg, #fff);
  color: var(--bs-body-color, #202534);
  box-shadow: 0 4px 20px #0002;
  /* A toast must not intercept nearby form buttons during its 5s visibility. */
  pointer-events: none;
  font:
    14px/1.5 system-ui,
    sans-serif;
}
.app-toast-error {
  border-left-color: var(--bs-danger, #d32f2f);
}
.app-toast .toast-body {
  flex: 1;
  padding: 14px 16px;
  white-space: pre-line;
  overflow-wrap: anywhere;
}
.app-toast-close {
  /* Dismiss stays interactive while the message body allows click-through. */
  pointer-events: auto;
  border: 0;
  background: transparent;
  color: inherit;
  font:
    24px/1 system-ui,
    sans-serif;
  padding: 12px;
  cursor: pointer;
}
.app-toast-close:focus-visible {
  outline: 2px solid var(--bs-primary, #0d6efd);
  outline-offset: -3px;
}
.swal2-html-container {
  white-space: pre-line;
}
