.zoa-flash-root {
  position: fixed; z-index: 9999; right: 1rem; top: 1rem;
  display: grid; gap: .5rem; width: min(420px, calc(100vw - 2rem));
}
.zoa-flash { display: grid; grid-template-columns: auto 1fr auto;
  align-items: start; gap: .75rem; padding: .75rem .9rem; border-radius: .75rem;
  box-shadow: 0 8px 24px rgba(0,0,0,.12), 0 2px 6px rgba(0,0,0,.08);
  background: #fff; color:#222; border:1px solid rgba(0,0,0,.08);
  animation: zoaFlashIn .18s ease-out;
}
.zoa-flash .icon {font-size: 1.2rem; line-height: 1; margin-top:.1rem}
.zoa-flash .body {font-size:.95rem}
.zoa-flash .title {font-weight:600; margin-bottom:.2rem}
.zoa-flash .close {appearance:none; border:0; background:transparent; cursor:pointer;
  font-size:1.1rem; line-height:1; opacity:.6}
.zoa-flash .close:hover{opacity:1}
.zoa-flash.success { border-color:#d1f2d6; background:#f2fff4 }
.zoa-flash.success .icon { color:#1a7f37 }
.zoa-flash.error   { border-color:#ffd7d7; background:#fff6f6 }
.zoa-flash.error .icon { color:#c42525 }
.zoa-flash.warning { border-color:#ffe3b3; background:#fffaf0 }
.zoa-flash.warning .icon { color:#a86c00 }
.zoa-flash.info    { border-color:#cfe5ff; background:#f6fbff }
.zoa-flash.info .icon { color:#0b62b8 }

@keyframes zoaFlashIn { from {transform: translateY(-6px); opacity:0} to {transform:none; opacity:1} }
.zoa-flash.out { animation: zoaFlashOut .15s ease-in forwards }
@keyframes zoaFlashOut { to {transform: translateY(-6px); opacity:0} }

/* Variante “bannière” (en bas, largeur pleine) — optionnelle */
.zoa-flash-banner-root {
  position: fixed; left:0; right:0; bottom:0; z-index: 9998; display:flex; justify-content:center; pointer-events:none;
}
.zoa-flash-banner {
  pointer-events:auto; margin:.75rem; max-width: 920px; width: calc(100vw - 1.5rem);
}

.zoa-flash-root.inline {
  position: static;
  inset: auto;
  z-index: auto;
  display: grid;
  gap: .5rem;
}

.zoa-flash-banner-root.inline {
  position: static;
  inset: auto;
  z-index: auto;
}

.zoa-flash-root.inline .zoa-flash {
  width: 100%;
  max-width: none;
}