.flash-toast {
  min-width: 280px;
  max-width: 400px;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  border-left: 4px solid transparent;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
  overflow: hidden;
}

.flash-toast--success { border-left-color: hsl(var(--shadcn-success)); }
.flash-toast--danger  { border-left-color: hsl(var(--shadcn-destructive)); }
.flash-toast--warning { border-left-color: hsl(var(--shadcn-warning)); }
.flash-toast--info    { border-left-color: hsl(var(--shadcn-info)); }

.flash-icon {
  font-size: .9rem;
  font-weight: 700;
  flex-shrink: 0;
}

.flash-toast--success .flash-icon { color: hsl(var(--shadcn-success)); }
.flash-toast--danger  .flash-icon { color: hsl(var(--shadcn-destructive)); }
.flash-toast--warning .flash-icon { color: hsl(var(--shadcn-warning)); }
.flash-toast--info    .flash-icon { color: hsl(var(--shadcn-info)); }

/* Barre de progression — keyframe déclenchée par .toast.show */
@keyframes flash-shrink {
  from { width: 100%; }
  to   { width: 0%; }
}

.flash-progress {
  height: 3px;
  width: 100%;
}

.toast.show .flash-progress {
  animation: flash-shrink 5s linear forwards;
}

.flash-progress--success { background: hsl(var(--shadcn-success)); }
.flash-progress--danger  { background: hsl(var(--shadcn-destructive)); }
.flash-progress--warning { background: hsl(var(--shadcn-warning)); }
.flash-progress--info    { background: hsl(var(--shadcn-info)); }
