/* in_captcha – Widget im Stil "Spamschutz aktiv ✓". Farben über CSS-Variablen anpassbar. */

/* EXT:form: Feldspalte so breit wie bei normalen Eingabefeldern */
.in-captcha-field { flex: 1 1 auto; width: 100%; }

.in-captcha {
  --in-captcha-color: #3c4a55;
  --in-captcha-muted: #6b7a86;
  --in-captcha-border: #d5dbe0;
  --in-captcha-background: #f6f8f9;
  --in-captcha-success: #1f9d55;
  --in-captcha-error: #c0392b;
  position: relative;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
  box-sizing: border-box;
  max-width: 100%;
  min-height: 3rem;
  padding: .5rem .9rem .5rem .7rem;
  border: 1px solid var(--in-captcha-border);
  border-radius: .375rem;
  background: var(--in-captcha-background);
  color: var(--in-captcha-color);
  font-size: .875rem;
  line-height: 1.3;
}
.in-captcha__icon { position: relative; flex: 0 0 22px; width: 22px; height: 22px; color: var(--in-captcha-muted); }
.in-captcha__icon svg { position: absolute; inset: 0; opacity: 0; transition: opacity .2s ease; }
.in-captcha__label { display: flex; flex-direction: column; }
.in-captcha__title { font-weight: 600; }
.in-captcha__status { color: var(--in-captcha-muted); }

.in-captcha[data-state="idle"] .in-captcha__shield { opacity: 1; }
.in-captcha[data-state="working"] .in-captcha__spinner,
.in-captcha[data-state="waiting"] .in-captcha__spinner { opacity: 1; animation: in-captcha-spin 1s linear infinite; }
.in-captcha[data-state="done"] .in-captcha__icon { color: var(--in-captcha-success); }
.in-captcha[data-state="done"] .in-captcha__check { opacity: 1; }
.in-captcha[data-state="done"] .in-captcha__status { color: var(--in-captcha-success); }
.in-captcha[data-state="error"] .in-captcha__icon,
.in-captcha[data-state="error"] .in-captcha__status { color: var(--in-captcha-error); }
.in-captcha[data-state="error"] .in-captcha__shield { opacity: 1; }

@keyframes in-captcha-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .in-captcha[data-state] .in-captcha__spinner { animation-duration: 3s; }
}

/* Honeypot: für Menschen und Screenreader unsichtbar, für Bots ein normales Feld */
.in-captcha__hp { position: absolute !important; left: -10000px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Ersatzfrage ohne JavaScript: eigene Zeile unter "Spamschutz aktiv" */
.in-captcha noscript { display: block; flex-basis: 100%; }
.in-captcha__fallback { display: flex; flex-direction: column; gap: .35rem; margin: .25rem 0 .15rem calc(22px + .6rem); }
.in-captcha__fallback input { max-width: 6rem; padding: .4rem .6rem; border: 1px solid var(--in-captcha-border); border-radius: .25rem; }
