/* ==========================================
   Seneros Residencial - Validation Styles
   ========================================== */

.form-input.is-valid {
    outline: 2px solid #22C55E;
    outline-offset: -2px;
    border-color: #22C55E !important;
}

.form-input.is-invalid {
    outline: 2px solid #EF4444;
    outline-offset: -2px;
    border-color: #EF4444 !important;
}

.form-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none !important;
}

.form-submit:disabled:hover {
    background-color: #CE98D9;
    transform: none !important;
}

/* ==========================================
   OTP Modal Styles
   ========================================== */

.otp-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.otp-form .form-group {
    width: 100%;
    margin-bottom: 0;
}

.otp-input {
    text-align: center;
    font-size: 1.75rem !important;
    letter-spacing: 12px;
    font-weight: 700;
    padding: 0.75rem 0.5rem !important;
}

.otp-input::placeholder {
    letter-spacing: 12px;
    font-size: 1.75rem;
    font-weight: 700;
    opacity: 0.3;
}

.otp-form .form-submit {
    max-width: 280px;
}

.otp-error {
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    color: #EF4444;
    margin: 0;
    min-height: 1.25rem;
    text-align: center;
}

.otp-error.success {
    color: #22C55E;
}

.otp-resend {
    background: none;
    border: none;
    color: #CE98D9;
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
    padding: 0;
}

.otp-resend:hover {
    color: #b87cc6;
}

.otp-resend:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    text-decoration: none;
}
