#sonnerToaster {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 110000;
  display: flex;
  width: min(24rem, calc(100vw - 2rem));
  flex-direction: column;
  gap: 0.65rem;
  pointer-events: none;
}

.sonner-toast {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.75rem;
  align-items: start;
  padding: 0.9rem 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.8rem;
  color: #0f172a;
  background: #fff;
  box-shadow: 0 12px 35px rgba(15, 23, 42, 0.18);
  pointer-events: auto;
  animation: sonner-in 180ms ease-out;
  font: 500 0.9rem/1.45 system-ui, sans-serif;
}

.sonner-toast--success { border-left: 4px solid #16a34a; }
.sonner-toast--error { border-left: 4px solid #dc2626; }
.sonner-toast--warning { border-left: 4px solid #d97706; }
.sonner-toast--info { border-left: 4px solid #0284c7; }
.sonner-toast__icon { font-weight: 800; }
.sonner-toast--success .sonner-toast__icon { color: #16a34a; }
.sonner-toast--error .sonner-toast__icon { color: #dc2626; }
.sonner-toast--warning .sonner-toast__icon { color: #d97706; }
.sonner-toast--info .sonner-toast__icon { color: #0284c7; }
.sonner-toast__close { border: 0; color: #64748b; background: transparent; cursor: pointer; font-size: 1rem; }
.sonner-toast.is-leaving { opacity: 0; transform: translateX(1rem); transition: 150ms ease; }

.action-is-busy {
  cursor: wait !important;
  opacity: 0.65 !important;
  pointer-events: none !important;
}

.action-is-busy svg,
.action-is-busy .icon {
  animation: sonner-action-pulse 800ms ease-in-out infinite alternate;
}

@keyframes sonner-in {
  from { opacity: 0; transform: translateY(-0.5rem) scale(0.98); }
}

@keyframes sonner-action-pulse {
  to { opacity: 0.35; transform: scale(0.92); }
}

@media (max-width: 640px) {
  #sonnerToaster { top: 0.75rem; right: 0.75rem; width: calc(100vw - 1.5rem); }
}
