/* ============================================================
   AGUA CIRCULAR — toast.css
   Notificaciones toast globales — usadas con window.acToast()
   ============================================================ */

.ac-toast-container {
  position: fixed;
  bottom: var(--space-6);
  right: var(--space-6);
  z-index: 9990;
  display: flex;
  flex-direction: column-reverse;
  gap: var(--space-2);
  pointer-events: none;
  max-width: 360px;
  width: calc(100vw - 3rem);
}

.ac-toast {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-left: 3px solid hsl(var(--border));
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  font-size: var(--text-sm);
  color: hsl(var(--foreground));
  pointer-events: all;
  animation: ac-toast-in 200ms var(--ease-out, ease-out) forwards;
  position: relative;
  overflow: hidden;
}

.ac-toast.is-leaving {
  animation: ac-toast-out 200ms var(--ease-in, ease-in) forwards;
}

.ac-toast.success { border-left-color: hsl(var(--success-soft-foreground)); }
.ac-toast.success .ac-toast-icon { color: hsl(var(--success-soft-foreground)); }
.ac-toast.error   { border-left-color: hsl(var(--destructive)); }
.ac-toast.error   .ac-toast-icon { color: hsl(var(--destructive)); }
.ac-toast.warning { border-left-color: hsl(var(--warning-soft-foreground)); }
.ac-toast.warning .ac-toast-icon { color: hsl(var(--warning-soft-foreground)); }
.ac-toast.info    { border-left-color: hsl(var(--primary)); }
.ac-toast.info    .ac-toast-icon { color: hsl(var(--primary)); }

.ac-toast-icon { flex-shrink: 0; margin-top: 1px; color: hsl(var(--muted-foreground)); }
.ac-toast-body { flex: 1; min-width: 0; }
.ac-toast-title { font-weight: 600; line-height: 1.3; }
.ac-toast-desc  { font-size: var(--text-xs); color: hsl(var(--muted-foreground)); margin-top: 2px; }

.ac-toast-close {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-sm);
  border: none;
  background: transparent;
  color: hsl(var(--muted-foreground));
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  padding: 0;
  transition: background 150ms;
}
.ac-toast-close:hover { background: hsl(var(--muted)); }

/* Progress bar */
.ac-toast::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  height: 2px;
  width: 100%;
  background: currentColor;
  opacity: 0.25;
  transform-origin: left;
  animation: ac-toast-progress var(--toast-dur, 4s) linear forwards;
}

@keyframes ac-toast-in {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes ac-toast-out {
  from { opacity: 1; transform: translateX(0); }
  to   { opacity: 0; transform: translateX(20px); }
}
@keyframes ac-toast-progress {
  from { transform: scaleX(1); }
  to   { transform: scaleX(0); }
}
