.revsec-field { margin: 12px 0; font-family: var(--rev-font, inherit); }
.revsec-field label { display:block; font-weight:600; margin-bottom:6px; }
.revsec-field input[type="text"] { padding:8px 10px; border:1px solid #c3c4c7; border-radius:4px; }
.revsec-image-img { display:block; margin-bottom:6px; border:1px solid #ddd; border-radius:4px; }
.revsec-image-refresh { font-size:12px; }
.revsec-error { color:#a61b00; }

.revsec-slider { user-select:none; }
.revsec-slider-track {
    position:relative; width:100%; max-width:340px; height:42px;
    background:#f1f1f3; border:1px solid #c3c4c7; border-radius:4px; overflow:hidden;
}
.revsec-slider-fill {
    position:absolute; top:0; left:0; bottom:0; width:0;
    background:linear-gradient(90deg,#2271b1,#72aee6); transition:width .05s linear;
}
.revsec-slider-handle {
    position:absolute; top:0; left:0; width:42px; height:42px;
    background:#fff; border:1px solid #c3c4c7; border-radius:4px;
    display:flex; align-items:center; justify-content:center;
    cursor:grab; font-weight:bold; font-size:20px; color:#2271b1;
    z-index:2;
}
.revsec-slider-handle:active { cursor:grabbing; }
.revsec-slider-text {
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    color:#646970; font-size:14px; pointer-events:none; z-index:1;
}
.revsec-slider.is-solved .revsec-slider-handle { background:#e6f4ea; border-color:#156c2e; color:#156c2e; }
.revsec-slider.is-solved .revsec-slider-text { color:#156c2e; }
/* Decorative check prepended in CSS so screen readers announce the word
   "Verified" from the live region, not a bare check glyph. */
.revsec-slider.is-solved .revsec-slider-text::before { content:"\2713\00a0"; }

/* Visible keyboard focus for interactive captcha controls. */
.revsec-slider-handle:focus-visible,
.revsec-image-refresh:focus-visible,
.revsec-field input[type="text"]:focus-visible {
    outline:2px solid #2271b1;
    outline-offset:2px;
}

/* Respect users who ask for reduced motion. */
@media (prefers-reduced-motion: reduce) {
    .revsec-slider-fill { transition:none; }
}
