.otp-captcha-field {
    margin-bottom: 22px;
}

.otp-captcha-control {
    display: grid;
    grid-template-columns:
        190px
        54px
        minmax(160px, 1fr);
    align-items: center;
    gap: 0;
    direction: ltr;
}

.otp-captcha-control img.captcha {
    grid-column: 1;
    grid-row: 1;
    display: block;
    width: 190px;
    height: 58px;
    object-fit: fill;
    border: 1px solid #d3d8e3;
    border-right: 0;
    border-radius: 11px 0 0 11px;
    background-color: #ffffff;
}

.otp-captcha-control input[type="hidden"] {
    display: none;
}

.auth-form .otp-captcha-control input[type="text"] {
    grid-column: 3;
    grid-row: 1;
    width: calc(100% - 14px);
    height: 58px;
    margin-left: 14px;
    padding: 0 14px;
    border: 1px solid #cfd4df;
    border-radius: 11px;
    outline: none;
    color: var(--navy);
    background-color: #ffffff;
    font: inherit;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 3px;
    direction: ltr;
    text-align: center;
}

.auth-form .otp-captcha-control input[type="text"]:focus {
    border-color: var(--purple);
    box-shadow: 0 0 0 4px rgba(105, 54, 223, 0.13);
}

.otp-captcha-refresh {
    grid-column: 2;
    grid-row: 1;
    display: inline-flex;
    width: 54px;
    height: 58px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 0 11px 11px 0;
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            #7c3aed,
            #5b21d1
        );
    cursor: pointer;
}

.otp-captcha-refresh svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.otp-captcha-refresh:hover {
    background:
        linear-gradient(
            135deg,
            #6d32df,
            #4f1db8
        );
}

.otp-captcha-refresh:disabled {
    cursor: wait;
    opacity: 0.7;
}

.otp-captcha-refresh.is-loading svg {
    animation: otp-captcha-spin 0.7s linear infinite;
}

.otp-captcha-field .errorlist {
    margin-top: 8px;
    text-align: right;
}

@keyframes otp-captcha-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 640px) {
    .otp-captcha-control {
        grid-template-columns:
            minmax(0, 1fr)
            52px;
    }

    .otp-captcha-control img.captcha {
        grid-column: 1;
        grid-row: 1;
        width: 100%;
        height: 52px;
    }

    .otp-captcha-refresh {
        grid-column: 2;
        grid-row: 1;
        width: 52px;
        height: 52px;
    }

    .auth-form .otp-captcha-control input[type="text"] {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        height: 52px;
        margin-top: 10px;
        margin-left: 0;
    }
}