/* Self-hosted captcha block. */
.cb-captcha { margin: 14px 0; padding: 12px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; max-width: 420px; }
.cb-captcha-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.cb-captcha-img { max-width: 100%; height: auto; border-radius: 6px; border: 1px solid #e2e8f0; background: #fff; }
.cb-captcha-q { font-size: 22px; font-weight: 700; letter-spacing: 1px; color: #0f172a; padding: 8px 14px; background: #fff; border: 1px solid #e2e8f0; border-radius: 6px; }
.cb-captcha-refresh { border: 1px solid #cbd5e1; background: #fff; border-radius: 999px; width: 36px; height: 36px; font-size: 20px; line-height: 1; cursor: pointer; color: #475569; transition: transform .4s; flex: none; }
.cb-captcha-refresh:hover { color: var(--cb-primary, #1d4ed8); transform: rotate(180deg); }
.cb-captcha-label { display: block; font-size: 14px; color: #334155; }
.cb-captcha-label input { display: block; width: 100%; box-sizing: border-box; margin-top: 4px; padding: 9px 12px; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 16px; letter-spacing: 2px; text-transform: uppercase; background: #fff; }
.cb-captcha[data-mode="math"] .cb-captcha-label input { text-transform: none; letter-spacing: 0; }
.cb-captcha-switch { background: none; border: 0; padding: 0; margin-top: 8px; font-size: 13px; color: var(--cb-primary, #1d4ed8); text-decoration: underline; cursor: pointer; }
.cb-captcha-error { color: #b91c1c; font-size: 14px; }
.cb-captcha.is-loading .cb-captcha-row { opacity: .5; }
/* honeypot: off-screen, never display:none (some bots skip those) */
.cb-hp { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
