/* ── Shake animation ─────────────────────────────────────────────────────── */
@keyframes nwa-shake {
  0%, 100% { transform: translateX(0); }
  20%       { transform: translateX(-6px); }
  40%       { transform: translateX(6px); }
  60%       { transform: translateX(-4px); }
  80%       { transform: translateX(4px); }
}

.nwa-shake {
  animation: nwa-shake 0.35s ease;
}

/* ── Error inline para campos sin .field-wrap ────────────────────────────── */
.nwa-error {
  display: none;
  margin: 5px 0 0;
  color: #ff5c5c;
  font-size: .8rem;
  font-weight: 600;
}

.nwa-has-error .nwa-error {
  display: block;
}

.nwa-has-error > input,
.nwa-has-error > select,
.nwa-has-error > textarea {
  border-color: rgba(255,92,92,.7) !important;
  background: rgba(255,92,92,.05) !important;
  box-shadow: 0 0 0 3px rgba(255,92,92,.10) !important;
}

.nwa-is-valid > input,
.nwa-is-valid > select,
.nwa-is-valid > textarea {
  border-color: rgba(60,255,137,.5) !important;
}

/* ── Error para grupos de checkboxes ─────────────────────────────────────── */
.nwa-group-error {
  display: none;
  margin: 8px 0 0;
  color: #ff5c5c;
  font-size: .8rem;
  font-weight: 600;
}

.nwa-group-invalid .nwa-group-error {
  display: block;
}

.nwa-group-invalid .check-group-2 .choice,
.nwa-group-invalid .check-group-3 .choice {
  border-color: rgba(255,92,92,.35);
}

/* ── Legal checkboxes inválidos ──────────────────────────────────────────── */
.nwa-legal-invalid {
  border-color: rgba(255,92,92,.6) !important;
  background: rgba(255,92,92,.05) !important;
}

/* ── Toast de notificación ───────────────────────────────────────────────── */
.nwa-toast {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 9999;
  padding: 14px 22px;
  border-radius: 14px;
  font-family: Inter, system-ui, sans-serif;
  font-size: .93rem;
  font-weight: 700;
  max-width: 380px;
  box-shadow: 0 12px 40px rgba(0,0,0,.55);
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .28s, transform .28s;
  pointer-events: none;
}

.nwa-toast.visible {
  opacity: 1;
  transform: translateY(0);
}

.nwa-toast.success {
  background: #0a2018;
  border: 1px solid rgba(60,255,137,.4);
  color: #3cff89;
}

.nwa-toast.error {
  background: #200a0a;
  border: 1px solid rgba(255,92,92,.4);
  color: #ff5c5c;
}
