.flash {
  position: fixed;
  bottom: calc(4rem + 2rem + env(safe-area-inset-bottom)); /* Mobile: Navigation (4rem) + Spacing (2rem) + Safe Area */
  left: 50%;
  transform: translateX(-50%);

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  z-index: 9999;
  max-width: 100%;
  width: max-content;
  padding: 0 12px;
}

@media (min-width: 768px) {
  .flash {
    bottom: 2rem; /* Desktop: Original spacing without mobile navigation */
  }
}

@keyframes appear-then-fade {
  0%,
  100% {
    opacity: 0;
  }
  5%,
  90% {
    opacity: 1;
  }
}

/* Client-side flashes (app/javascript/helpers/flash.js), same look as the
   server-rendered notice/alert variants in layouts/_action_flash. */
.client-flash {
  color: var(--text-color);
}

.client-flash--notice {
  background-color: color-mix(in srgb, #10b981 12%, var(--background-color));
  border-color: color-mix(in srgb, #10b981 30%, transparent);
}

.client-flash--alert {
  background-color: color-mix(in srgb, var(--btn-delete-bg) 12%, var(--background-color));
  border-color: color-mix(in srgb, var(--btn-delete-bg) 35%, transparent);
}
