.flash-toast-host {
  position: fixed;
  z-index: 1090;
  display: flex;
  flex-direction: column;
  pointer-events: none;
  width: min(100vw - 24px, 360px);
  --flash-safe-top: 12px;
  --flash-safe-bottom: 12px;
  max-height: calc(100vh - var(--flash-safe-top) - var(--flash-safe-bottom));
}

.flash-pos-top-right { top: var(--flash-safe-top); right: 12px; }
.flash-pos-top-center { top: var(--flash-safe-top); left: 50%; transform: translateX(-50%); }
.flash-pos-top-left { top: var(--flash-safe-top); left: 12px; }
.flash-pos-absolute-center {
  top: calc(var(--flash-safe-top) + ((100vh - var(--flash-safe-top) - var(--flash-safe-bottom)) / 2));
  left: 50%;
  transform: translate(-50%, -50%);
}
.flash-pos-bottom-right { bottom: var(--flash-safe-bottom); right: 12px; }
.flash-pos-bottom-center { bottom: var(--flash-safe-bottom); left: 50%; transform: translateX(-50%); }
.flash-pos-bottom-left { bottom: var(--flash-safe-bottom); left: 12px; }

.flash-toast-item {
  pointer-events: auto;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity var(--flash-fade-ms, 250ms) ease, transform var(--flash-fade-ms, 250ms) ease;
}

.flash-pos-bottom-right .flash-toast-item,
.flash-pos-bottom-center .flash-toast-item,
.flash-pos-bottom-left .flash-toast-item {
  transform: translateY(8px);
}

.flash-pos-absolute-center .flash-toast-item {
  transform: translateY(8px);
}

.flash-toast-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.flash-toast-item.is-hiding {
  opacity: 0;
}

.flash-toast-title {
  font-weight: 600;
  margin-bottom: 0.15rem;
}

.flash-toast-message {
  line-height: 1.35;
}

.flash-toast-details {
  margin-top: 0.2rem;
  font-size: 0.875rem;
  opacity: 0.9;
}
