/* Toasts — global success/error message overlay, fixed at the top of the page.
   Fed by TempData (post-redirect flash) and ViewData["ToastErrors"] (same-request
   validation). Success toasts auto-dismiss; errors stay until closed. */
.toast-stack {
  position: fixed; top: 18px; left: 50%; transform: translateX(-50%);
  z-index: 3000; width: min(560px, calc(100vw - 32px));
  display: flex; flex-direction: column; gap: 10px; pointer-events: none;
}
.toast {
  pointer-events: auto; display: flex; align-items: flex-start; gap: 12px;
  background: var(--surface); border: 1px solid var(--border);
  border-left: 4px solid var(--orange); border-radius: var(--r-media);
  padding: 14px 14px 14px 16px; box-shadow: 0 10px 30px rgba(22, 19, 14, 0.14);
  font: 500 0.95rem 'Instrument Sans', sans-serif; color: var(--ink);
  animation: toast-in 240ms ease-out;
}
.toast--success { border-left-color: var(--live); }
.toast--error { border-left-color: var(--orange-deep); }
.toast-icon {
  flex: none; width: 22px; height: 22px; border-radius: 50%; margin-top: 1px;
  display: flex; align-items: center; justify-content: center;
  font: 700 0.8rem 'Instrument Sans', sans-serif; color: #fff;
}
.toast--success .toast-icon { background: var(--live); }
.toast--error .toast-icon { background: var(--orange-deep); }
.toast-msg { flex: 1; line-height: 1.45; }
.toast-close {
  flex: none; border: 0; background: none; cursor: pointer;
  font-size: 1.4rem; line-height: 1; color: var(--text-muted); padding: 0 2px; margin-top: -2px;
}
.toast-close:hover { color: var(--ink); }
.toast--leaving { animation: toast-out 200ms ease-in forwards; }
@keyframes toast-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
@keyframes toast-out { from { opacity: 1; } to { opacity: 0; transform: translateY(-10px); } }
@media (prefers-reduced-motion: reduce) { .toast, .toast--leaving { animation: none; } }
