/* =========================================================================
   Nexus · toasts.css — slide-in notifications, top-right.
   ========================================================================= */

#nx-toast-root {
  position: fixed;
  top: 70px;
  right: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  z-index: 300;
  pointer-events: none;
  max-width: 360px;
}

.nx-toast {
  pointer-events: auto;
  background: var(--nx-surface);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  padding: 10px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: var(--nx-text);
  box-shadow: var(--nx-shadow-soft), var(--nx-shadow-inset);
  animation: nxToastIn var(--nx-dur-base) var(--nx-ease);
  position: relative;
  overflow: hidden;
}
.nx-toast::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--nx-accent);
  box-shadow: 0 0 10px var(--nx-glow);
}
.nx-toast[data-tone="ok"]::before { background: var(--nx-ok); box-shadow: 0 0 10px var(--nx-ok); }
.nx-toast[data-tone="warn"]::before { background: var(--nx-warn); box-shadow: 0 0 10px var(--nx-warn); }
.nx-toast[data-tone="err"]::before { background: var(--nx-err); box-shadow: 0 0 10px var(--nx-err); }

.nx-toast.is-leaving { animation: nxToastOut var(--nx-dur-base) var(--nx-ease) forwards; }

.nx-toast-icon {
  font-family: var(--nx-font-arcade);
  font-size: 9px;
  color: var(--nx-accent);
  margin-top: 2px;
}
.nx-toast-body { flex: 1; line-height: 1.4; }
.nx-toast-title { font-family: var(--nx-font-display); font-weight: 600; margin-bottom: 2px; }
.nx-toast-msg { color: var(--nx-text-2); font-size: 12px; }
.nx-toast-close {
  color: var(--nx-muted);
  font-size: 16px;
  line-height: 1;
  padding: 0 4px;
  cursor: pointer;
  transition: color var(--nx-dur-fast) var(--nx-ease);
}
.nx-toast-close:hover { color: var(--nx-text); }

@keyframes nxToastIn {
  from { transform: translateX(40px) scale(.98); opacity: 0; }
  to   { transform: translateX(0) scale(1); opacity: 1; }
}
@keyframes nxToastOut {
  to { transform: translateX(40px); opacity: 0; }
}
