.toast-container {
  position: fixed;
  top: 88px;
  right: 24px;
  width: min(360px, calc(100vw - 32px));
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 120;
  pointer-events: none;
}

.admin-toast {
  --toast-accent: #557892;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) 24px;
  gap: 11px;
  align-items: start;
  background: #fffdf9;
  color: var(--ink);
  border: 1px solid #e4ddd5;
  border-left: 4px solid var(--toast-accent);
  border-radius: 7px;
  padding: 12px 10px 12px 13px;
  box-shadow: 0 10px 30px #3c2d2224;
  pointer-events: auto;
  animation: toast-in .22s ease-out both;
}

.toast-success { --toast-accent: #5d8564; }
.toast-info { --toast-accent: #557892; }
.toast-warning { --toast-accent: #b78332; }
.toast-error { --toast-accent: #a9554b; }
.toast-icon { color: var(--toast-accent); padding-top: 1px; }
.toast-icon svg { display: block; width: 18px; height: 18px; }
.toast-copy { display: grid; gap: 2px; min-width: 0; }
.toast-copy strong { font-size: 12px; line-height: 1.3; }
.toast-copy > span { font-size: 11px; line-height: 1.45; color: var(--muted); overflow-wrap: anywhere; }
.toast-close { border: 0; background: transparent; color: #8c8178; font-size: 18px; line-height: 18px; padding: 0; width: 24px; height: 24px; border-radius: 4px; }
.toast-close:hover, .toast-close:focus-visible { background: #f1ece6; color: var(--ink); }
.admin-toast.toast-out { animation: toast-out .2s ease-in both; }
.admin-toast.toast-repeat { animation: toast-repeat .2s ease-out; }
.admin-toast.toast-repeat.toast-out { animation: toast-out .2s ease-in both; }

@keyframes toast-in { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: translateX(0); } }
@keyframes toast-out { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(24px); } }
@keyframes toast-repeat { 50% { transform: translateX(-3px); } }

@media (max-width: 700px) {
  .toast-container { top: 84px; right: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-toast, .admin-toast.toast-out, .admin-toast.toast-repeat { animation-duration: .01ms; }
}
