body{
    background:#F5F5F5 !important;
}

.otp-wrap{
    min-height:72vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:48px 16px;
}

.otp-card{
    position:relative;
    width:100%;
    max-width:430px;
    background:#ffffff;
    border:1px solid rgba(15,23,42,.08);
    border-radius:28px;
    padding:34px 30px;
    box-shadow:0 24px 70px rgba(15,23,42,.10);
    overflow:hidden;
    text-align:right;
}

.otp-glow{
    display:none;
}

.otp-brand{
    position:relative;
    text-align:center;
    margin-bottom:26px;
}

.otp-logo{
    width:54px;
    height:54px;
    margin:0 auto 14px;
    border-radius:18px;
    background:#111111 !important;
    color:#ffffff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:25px;
    font-weight:800;
    box-shadow:0 12px 30px rgba(0,0,0,.18);
}

.otp-brand h1{
    font-size:24px;
    line-height:1.6;
    margin:0;
    color:#0f172a;
    font-weight:800;
}

.otp-brand p{
    font-size:14px;
    line-height:1.9;
    color:#64748b;
    margin:8px 0 0;
}

.otp-step{
    display:none;
}

.otp-step.is-active{
    display:block;
}

.otp-step label{
    display:block;
    margin-bottom:8px;
    color:#334155;
    font-weight:700;
}

.otp-input{
    width:100%;
    height:52px;
    border-radius:16px;
    border:1px solid #dbe5ee;
    background:#f8fafc;
    padding:0 16px;
    font-size:16px;
    outline:none;
    transition:.2s;
}

.otp-input:focus{
    border-color:#111111;
    background:#ffffff;
    box-shadow:0 0 0 4px rgba(0,0,0,.08);
}

.otp-code-input{
    text-align:center;
    letter-spacing:8px;
    font-size:22px;
    font-weight:800;
}

.otp-btn{
    width:100%;
    height:52px;
    border:none;
    border-radius:16px;
    margin-top:14px;
    background:#111111 !important;
    color:#ffffff !important;
    font-size:15px;
    font-weight:800;
    cursor:pointer;
    transition:.2s;
    -webkit-appearance:none;
    appearance:none;
}

.otp-btn:hover{
    transform:translateY(-1px);
    background:#000000 !important;
    box-shadow:0 12px 28px rgba(0,0,0,.18);
}

.otp-btn:disabled{
    opacity:.65;
    cursor:not-allowed;
    transform:none;
    box-shadow:none;
}

.otp-link{
    display:block;
    width:100%;
    border:0;
    background:transparent;
    color:#111111;
    margin-top:12px;
    font-weight:700;
}

.otp-message{
    display:none;
    margin-top:16px;
    padding:12px 14px;
    border-radius:14px;
    font-size:13px;
    line-height:1.8;
}

.otp-message.is-error{
    display:block;
    background:#fff1f2;
    color:#be123c;
    border:1px solid #fecdd3;
}

.otp-message.is-success{
    display:block;
    background:#ecfdf5;
    color:#047857;
    border:1px solid #bbf7d0;
}

.otp-note{
    margin-top:18px;
    color:#94a3b8;
    font-size:12px;
    text-align:center;
    line-height:1.8;
}

@media(max-width:480px){

    .otp-card{
        padding:28px 20px;
        border-radius:22px;
    }

    .otp-brand h1{
        font-size:21px;
    }
}
