/* ============================================================================
 * ZIVOX — shared async-form styles
 *
 * Only the pieces the shared form engine (assets/js/forms.js) needs that are
 * not already provided by base.css (.inp/.sel/.ta/.err/.label/.spinner) or
 * site.css. Loaded by pages that contain a form[data-zx-async] outside the
 * Challenge page, so /challenge/ keeps using challenge.css alone.
 * ==========================================================================*/

/* Inline success / error panel under a form */
.zx-form-msg {
  display: none;
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: var(--r-sm);
  font-size: 13.5px;
  line-height: 1.55;
}
.zx-form-msg.show { display: block; }
.zx-form-msg.ok { background: var(--ok-bg); border: 1px solid rgba(19, 122, 62, .22); color: #0d5730; }
.zx-form-msg.bad { background: var(--bad-bg); border: 1px solid rgba(192, 38, 45, .22); color: #861b20; }

/* Honeypot: present in the DOM for bots, never visible or focusable */
.zx-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

/* Heading + supporting copy block above a standalone form section */
.zx-form-intro { max-width: 640px; margin-bottom: 22px; }
.zx-form-intro p { color: var(--muted); font-size: 14.5px; line-height: 1.65; margin: 10px 0 0; }
