.default-captcha-container {
    border: 1px solid #dae1e7;
    padding: 0;
    position: relative;
    border-radius: .5rem;
    overflow: hidden;
    height: 50px;
    width: 100%;
    max-width: 600px;
    margin: 10px 0;
}

@media (min-width: 1200px) {
    .default-captcha-container {
        max-width: 500px;
    }
}

.default-captcha-container input {
    height: 50px;
    width: 100%;
    border-radius: 0;
    outline: 0;
    border: 0;
    padding: .5rem 1rem;
}

.default-captcha-container .captcha-image-container {
    position: absolute;
    top: 5px;
    inset-inline-end: 5px;
    height: 40px;
    background: rgb(220, 210, 230);
    display: flex;
    align-items: center;
    border-radius: .25rem;
    overflow: hidden;
    cursor: pointer;
}

.default-captcha-container .captcha-image-container img {
    min-width: 100px;
    border-inline-end: 1px solid #4444441a;
}

.default-captcha-container .captcha-image-container .refresh-icon {
    min-width: 40px;
    min-height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: rotate(0deg);
    transition: .25s ease-in-out transform;
}

.default-captcha-container .captcha-image-container .refresh-icon.rotate-active {
    transform: rotate(360deg);
}

.dynamic-default-and-recaptcha-section {
    display: block;
    max-height: 0;
    margin: .5rem 0;
    overflow: hidden;
    transition: max-height .75s ease-in-out;
}

.dynamic-default-and-recaptcha-section.active {
    max-height: 260px;
}

/* Slider puzzle captcha */
.slider-captcha-widget {
    width: 100%;
    max-width: 320px;
    user-select: none;
}

.slider-captcha-widget .slider-captcha-image-wrap {
    position: relative;
    width: 100%;
    border-radius: .5rem;
    overflow: hidden;
    line-height: 0;
    background: #eee;
}

.slider-captcha-widget .slider-captcha-image-wrap img.slider-captcha-bg {
    display: block;
    width: 100%;
    height: auto;
}

.slider-captcha-widget .slider-captcha-piece {
    position: absolute;
    top: 0;
    cursor: grab;
    touch-action: none;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .35));
}

.slider-captcha-widget .slider-captcha-piece:active {
    cursor: grabbing;
}

.slider-captcha-widget .slider-captcha-refresh {
    position: absolute;
    top: 6px;
    inset-inline-end: 6px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .85);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 14px;
    transition: transform .25s ease-in-out;
}

.slider-captcha-widget .slider-captcha-refresh.rotate-active {
    transform: rotate(360deg);
}

.slider-captcha-widget .slider-captcha-track {
    position: relative;
    margin-top: 10px;
    height: 42px;
    border: 1px solid #dae1e7;
    border-radius: .5rem;
    background: #f4f5f7;
    overflow: hidden;
}

.slider-captcha-widget .slider-captcha-track-label {
    position: absolute;
    inset: 0;
    padding-inline-start: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8a94a6;
    font-size: 13px;
    pointer-events: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.slider-captcha-widget .slider-captcha-track-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: #dce7ff;
    width: 40px;
}

.slider-captcha-widget .slider-captcha-handle {
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;
    height: 40px;
    border: 1px solid #dae1e7;
    border-radius: .45rem;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    touch-action: none;
}

.slider-captcha-widget .slider-captcha-handle:active {
    cursor: grabbing;
}

.slider-captcha-widget.solved .slider-captcha-track-label {
    color: #2fb344;
}

.slider-captcha-track.shake {
    animation: slider-captcha-shake .4s;
    border-color: #d9534f;
}

@keyframes slider-captcha-shake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-6px); }
    40%, 80% { transform: translateX(6px); }
}
