/* ============================================================================
 * otp.css — OTP-specific component styling
 * ----------------------------------------------------------------------------
 * ========================================================================= */


/* ============================================================================
 * Step dots — small progress indicator above the title
 * ========================================================================= */

.otp-step-dots {
    display: flex;
    gap: 6px;
    margin-bottom: 16px;
}

.otp-step-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #e0e0e0;
}

.otp-step-dot.active {
    background: #C21C1D;
    width: 18px;
    border-radius: 3px;
}


/* ============================================================================
 * Sub-text under the title ("We sent a 6-digit code to:")
 * ========================================================================= */

.otp-modal-sub {
    font-size: 13px;
    color: #666;
    margin: 0 0 12px;
    line-height: 1.5;
}


/* ============================================================================
 * Channel hints box (email / phone)
 * ========================================================================= */

.otp-channels {
    background: #fafafa;
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 20px;
}

.otp-channel-line {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: #444;
    line-height: 1.5;
}

.otp-channel-line + .otp-channel-line {
    margin-top: 6px;
}

.otp-channel-line svg {
    flex-shrink: 0;
    color: #888;
}


/* ============================================================================
 * Six-digit input boxes
 * ========================================================================= */

.otp-boxes {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin: 0 0 18px;
}

.otp-box-input {
    width: 44px;
    height: 52px;
    text-align: center;
    font-size: 22px;
    font-weight: 500;
    border: 1px solid #d0d0d0;
    border-radius: 8px;
    background: #fff;
    color: #1a1a1a;
    outline: none;
    padding: 0;
    -moz-appearance: textfield;
    transition: border-color 120ms, box-shadow 120ms;
}

.otp-box-input::-webkit-outer-spin-button,
.otp-box-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.otp-box-input:focus,
.otp-box-input:focus-visible {
    border-color: #C21C1D;
    box-shadow: 0 0 0 3px rgba(194, 28, 29, 0.12);
}

.otp-box-input.otp-box-disabled {
    background: #f5f5f5;
    color: #aaa;
    cursor: not-allowed;
}

/* Tiny screens — shrink boxes so all six fit at 320px viewport */
@media (max-width: 380px) {
    .otp-boxes {
        gap: 6px;
    }
    .otp-box-input {
        width: 38px;
        height: 46px;
        font-size: 19px;
    }
}


/* ============================================================================
 * Expiry countdown timer
 * ========================================================================= */

.otp-timer {
    text-align: center;
    font-size: 12px;
    color: #666;
    margin-bottom: 6px;
}

.otp-timer.otp-timer-expired {
    color: #C21C1D;
    font-weight: 500;
}