.email-otp-row {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
}

.email-otp-row .select-wrapper {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.email-otp-row #getOtpBtn {
    flex: 0 0 auto;
    box-sizing: border-box;
}

@media (min-width: 640px) {
    .email-otp-row {
        flex-direction: row;
        align-items: flex-end;
    }
    .email-otp-row .select-wrapper {
        flex: 1 1 0%;
    }
    .email-otp-row #getOtpBtn {
        flex: 0 0 120px;
        width: 120px;
    }
}

/* ===== Select / Input wrapper ===== */
.select-wrapper {
    position: relative;
    width: 100%;
}

.select-container {
    position: relative;
    box-sizing: border-box;
}

.custom-select {
    width: 100%;
    padding: 0.8rem 2.5rem 0.5rem 3rem; /* constant padding — no shift on focus */
    border-radius: 0.5rem;
    background-color: #D9E2EC66;
    font-size: 12px;
    color: transparent;
    appearance: none;
    box-sizing: border-box;
    border: 1px solid #e2e8f0;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.custom-select:focus,
.select-container.has-value .custom-select {
    background-color: #ffffff !important;
    border-color: #3563B9 !important;
    color: #4b5563 !important;
    outline: none;
    box-shadow: none;
}

.required { color: #ef4444; }

/* ===== Label ===== */
.custom-label {
    position: absolute;
    left: 2.5rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    color: #374151;
    pointer-events: none;
    transition: all 0.2s ease;
    background-color: transparent;
    padding: 0 0.25rem;
}

/* Label floats up on focus */
.custom-select:focus + .custom-label {
    top: 0rem;
    left: 1rem;
    font-size: 10px;
    background-color: white;
    color: #475569;
}

/* Label floats up when there's a value (icon hidden, so left: 1rem) */
.select-container.has-value .custom-select + .custom-label {
    top: 0rem;
    left: 1rem;
    font-size: 10px;
    background-color: white;
    color: #475569;
}

/* ===== Left icon ===== */
.select-icon-left {
    position: absolute;
    top: 50%;
    left: 1rem;
    transform: translateY(-50%);
    width: 1.25rem;
    height: 1.25rem;
    z-index: 2;
    pointer-events: none;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.15s ease;
}

/* Icon hides ONLY once there's an actual value — stays visible on plain focus */
.select-container.has-value .select-icon-left {
    opacity: 0;
    visibility: hidden;
}

/* ===== Right icon (dropdowns etc.) ===== */
.select-icon {
    position: absolute;
    top: 55%;
    right: 1rem;
    transform: translateY(-50%);
    pointer-events: none;
    color: #6b7280;
}
.icon { width: 1rem; height: 1rem; }

/* ===== Placeholder / native UI cleanup ===== */
.custom-select::placeholder { color: transparent; }
.custom-select::-webkit-calendar-picker-indicator { opacity: 0; pointer-events: none; }
.custom-select:focus::-webkit-calendar-picker-indicator,
.select-container.has-value .custom-select::-webkit-calendar-picker-indicator { opacity: 1; pointer-events: auto; }

/* ===== OTP boxes ===== */
.otp-box {
    width: 44px;
    height: 48px;
    border-radius: 8px;
    border: 1px solid #d1d5db;
    text-align: center;
    font-size: 14px;
    font-weight: 500;
    background: #f9fafb;
    transition: all 0.2s ease;
    box-sizing: border-box;
}
.otp-box:focus {
    background-color: #ffffff !important;
    border-color: #3563B9 !important;
    outline: none;
    box-shadow: none;
    color: #4b5563;
}
.otp-wrapper { display: flex; gap: 6px; }

@media (max-width: 400px) {
    .otp-box { width: 36px; height: 42px; font-size: 13px; }
    .otp-wrapper { gap: 4px; }
}

/* ===== Modal mobile spacing ===== */
@media (max-width: 768px) {
    #demoModal {
        padding-top: 100px !important;
        padding-bottom: 20px;
        overflow-y: auto;
    }
    #closeBtn { top: -10px !important; right: -7px !important; }
}