.flash-stack {
  position: fixed; top: calc(var(--header-h) + 12px); right: 16px; z-index: 1200;
  display: grid; gap: 10px; width: min(360px, calc(100vw - 32px));
}
.flash {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 16px; border-radius: 12px; border: 1px solid var(--color-border);
  background: var(--color-card); color: var(--color-text);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .4);
  animation: flashIn .3s ease both;
}
@keyframes flashIn { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
.flash.is-leaving { animation: flashOut .3s ease both; }
@keyframes flashOut { to { opacity: 0; transform: translateX(20px); } }
.flash--success { border-left: 4px solid var(--color-green); }
.flash--error { border-left: 4px solid #e5533c; }
.flash--warning { border-left: 4px solid var(--color-accent); }
.flash--info { border-left: 4px solid var(--color-teal); }
.flash__msg { flex: 1; font-size: .92rem; }
.flash__close { background: transparent; border: 0; color: var(--color-muted); font-size: 1.2rem; line-height: 1; }
