/* Тосты (#toasts, toast() в core.js) и плашка «Интерфейс обновился» (.update-bar, boot.js) */
.toasts { position: fixed; right: var(--s4); bottom: var(--s4); display: flex; flex-direction: column;
  gap: var(--s2); z-index: var(--z-toast); max-width: min(420px, calc(100vw - 32px)); }
.toast, .update-bar {
  --toast-bg: var(--surface-raised); --toast-fg: var(--fg); --toast-border: var(--border-raised);
  --toast-accent: var(--accent); --toast-shadow: var(--shadow-md);
  background: var(--toast-bg); color: var(--toast-fg); border: var(--border-w) solid var(--toast-border);
  border-radius: var(--r); box-shadow: var(--toast-shadow); font-size: var(--fs-md);
}
.toast { border-left: calc(var(--border-w) + 2px) solid var(--toast-accent); padding: var(--s3) var(--s4); }
.toast.error { --toast-accent: var(--danger); }
.update-bar { position: fixed; left: 50%; bottom: var(--s4); transform: translateX(-50%); z-index: var(--z-drag);
  display: flex; align-items: center; gap: var(--s3); padding: var(--s2) var(--s2) var(--s2) var(--s4);
  max-width: calc(100vw - 32px); }
.update-bar span { display: inline-flex; align-items: center; gap: var(--s2); }
.update-bar .icon { width: 16px; height: 16px; color: var(--accent); }
@media (prefers-reduced-motion: no-preference) {
  .toast { animation: toast-in var(--dur-slow) var(--ease); }
}
@keyframes toast-in { from { opacity: 0; transform: translateY(6px); } }
