.form-captcha {
    grid-column: 1 / -1;
    min-width: 0;
    margin: 1rem 0;
    padding: 0.85rem 1rem;
    border: 1px solid #cbd5e1;
    border-radius: 0.65rem;
    background: #f8fafc;
    color: #0f172a;
    text-align: left;
}
.form-captcha legend { padding: 0 0.3rem; font-size: 0.875rem; font-weight: 600; }
.form-captcha-help, .form-captcha-status { font-size: 0.8125rem; line-height: 1.5; }
.form-captcha-help { margin: 0 0 0.5rem; color: #475569; }
.form-captcha-code img { display: block; width: 260px; max-width: 100%; height: auto; border-radius: 0.25rem; }
.form-captcha audio { width: 100%; max-width: 300px; margin-top: 0.5rem; }
.form-captcha-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.5rem 0; }
.form-captcha-actions button {
    min-height: 44px;
    padding: 0.4rem 0.75rem;
    border: 1px solid #cbd5e1;
    border-radius: 0.4rem;
    background: #fff;
    color: #1e40af;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
}
.form-captcha-actions button:disabled { opacity: 0.6; cursor: wait; }
.form-captcha-answer { display: block; font-size: 0.8125rem; font-weight: 600; }
.form-captcha-answer input {
    display: block;
    width: 10rem;
    max-width: 100%;
    min-height: 44px;
    margin-top: 0.25rem;
    padding: 0.4rem 0.65rem;
    border: 1px solid #64748b;
    border-radius: 0.4rem;
    background: #fff;
    color: #0f172a;
    font-size: 1.125rem;
    letter-spacing: 0.18em;
}
.form-captcha :focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.form-captcha-status { margin-top: 0.5rem; }
.form-captcha-status[data-error="true"] { color: #b91c1c; }
.form-captcha-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.form-captcha-noscript { margin: 1rem; padding: 1rem; background: #fff7ed; color: #9a3412; }
.form-captcha [hidden] { display: none !important; }
