form {
  margin-top: 16px;
  display: grid;
  gap: 12px;
}
label {
  font-size: 0.86rem;
  color: color-mix(in srgb, var(--text) 92%, white 8%);
}
.field-hint {
  font-size: 0.78rem;
  color: var(--muted);
  margin-top: 4px;
}
.char-count {
  font-size: 0.78rem;
  color: var(--muted);
  text-align: right;
  margin-top: 4px;
}
.char-count.near { color: #e0ac4a; }
.char-count.over { color: #ff7a7a; }
input,
textarea {
  width: 100%;
  border: 1px solid color-mix(in srgb, var(--primary) 18%, rgba(139, 160, 190, 0.36));
  border-radius: 10px;
  background: color-mix(in srgb, var(--bg) 76%, black 24%);
  color: color-mix(in srgb, var(--text) 94%, white 6%);
  padding: 10px 12px;
  font: inherit;
  outline: none;
}
textarea {
  min-height: 140px;
  resize: vertical;
}
button {
  border: 1px solid color-mix(in srgb, var(--primary) 60%, white 40%);
  border-radius: 10px;
  background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 72%, black 28%));
  color: #fff;
  font-weight: 700;
  padding: 10px 14px;
  cursor: pointer;
  width: fit-content;
}
button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.status {
  min-height: 20px;
  font-size: 0.85rem;
}
.status.ok { color: #95f3a5; }
.status.err { color: #ffb4b4; }
.hidden-trap { display: none; }
altcha-widget {
  display: block;
  margin-top: 4px;
}
#contact-next-steps {
  display: none;
  margin-top: 8px;
  font-size: 0.82rem;
}
#contact-next-steps a {
  color: color-mix(in srgb, var(--primary) 66%, white 34%);
}
