/* ===========================
   GOOGLE STYLE RESET
=========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{

    font-family:'Poppins',sans-serif;
    background:#edf2f7;
    min-height:100vh;
    display:flex;
    justify-content:center;
    align-items:center;
    overflow-x:hidden;

}

/* ===========================
BACKGROUND
=========================== */

.background-shape{

    position:fixed;
    width:650px;
    height:650px;

    background:linear-gradient(
        135deg,
        #4f7cff,
        #7b3ff2
    );

    border-radius:50%;

    top:-250px;
    right:-180px;

    opacity:.15;

    z-index:-1;

}

/* ===========================
CONTAINER
=========================== */

.container{

    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:30px;

}

/* ===========================
CARD
=========================== */

.register-card{

    width:100%;
    max-width:470px;

    background:#ffffff;

    border-radius:22px;

    overflow:hidden;

    box-shadow:
        0 15px 45px rgba(0,0,0,.12);

    animation:fadeUp .5s ease;

}

/* ===========================
HEADER
=========================== */

.card-header{

    padding:40px 35px;

    text-align:center;

    background:linear-gradient(
        135deg,
        #3d7bff,
        #7438ff
    );

    color:white;

}

.logo-circle{

    width:75px;
    height:75px;

    margin:auto;

    border-radius:50%;

    background:white;

    color:#5d4dff;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:32px;

    margin-bottom:20px;

}

.card-header h1{

    font-size:28px;
    font-weight:600;

}

.card-header p{

    margin-top:10px;

    font-size:14px;

    opacity:.9;

}

/* ===========================
FORM
=========================== */

form{

    padding:35px;

}

.input-group{

    margin-bottom:22px;

}

.input-group label{

    display:block;

    margin-bottom:8px;

    font-size:14px;

    color:#555;

    font-weight:500;

}

/* ===========================
INPUT BOX
=========================== */

.input-box{

    display:flex;

    align-items:center;

    border:1px solid #ddd;

    border-radius:14px;

    background:#fff;

    transition:.3s;

}

.input-box:focus-within{

    border-color:#4f7cff;

    box-shadow:
        0 0 0 4px rgba(79,124,255,.15);

}

.input-box i{

    width:48px;

    text-align:center;

    color:#777;

    font-size:17px;

}

.input-box input{

    flex:1;

    border:none;

    outline:none;

    height:54px;

    font-size:15px;

    font-family:'Poppins';

}

.togglePassword{

    width:48px;

    border:none;

    background:none;

    cursor:pointer;

    color:#666;

    font-size:16px;

}

/* ===========================
PASSWORD STRENGTH
=========================== */

#passwordStrength{

    margin-top:8px;

    font-size:13px;

    color:#666;

}

#passwordStrength span{

    color:#ff9800;

    font-weight:600;

}

/* ===========================
CHECKBOX
=========================== */

.terms{

    margin-bottom:25px;

}

.terms label{

    display:flex;

    align-items:center;

    gap:10px;

    font-size:14px;

    color:#555;

}

.terms input{

    width:18px;
    height:18px;

}

/* ===========================
BUTTON
=========================== */

.btn-register{

    width:100%;

    height:56px;

    border:none;

    border-radius:14px;

    cursor:pointer;

    background:linear-gradient(
        135deg,
        #3d7bff,
        #7438ff
    );

    color:white;

    font-size:16px;

    font-weight:600;

    transition:.35s;

}

.btn-register:hover{

    transform:translateY(-2px);

    box-shadow:
        0 12px 30px rgba(61,123,255,.35);

}

.btn-register i{

    margin-left:10px;

}

/* ===========================
LOADING
=========================== */

#loading{

    position:fixed;

    inset:0;

    background:rgba(255,255,255,.9);

    display:none;

    justify-content:center;

    align-items:center;

    flex-direction:column;

    z-index:999;

}

.spinner{

    width:55px;

    height:55px;

    border:5px solid #ddd;

    border-top:5px solid #4f7cff;

    border-radius:50%;

    animation:spin 1s linear infinite;

}

#loading p{

    margin-top:18px;

    font-weight:500;

    color:#555;

}

/* ===========================
ANIMATION
=========================== */

@keyframes spin{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ===========================
RESPONSIVE
=========================== */

@media(max-width:600px){

    .container{

        padding:15px;

    }

    .register-card{

        border-radius:18px;

    }

    .card-header{

        padding:35px 25px;

    }

    form{

        padding:25px;

    }

    .card-header h1{

        font-size:24px;

    }

}

/* ===========================
UPLOAD
=========================== */

.upload-box{

    border:2px dashed #cfcfcf;

    border-radius:15px;

    padding:20px;

    text-align:center;

    transition:.3s;

    cursor:pointer;

}

.upload-box:hover{

    border-color:#4f7cff;

}

.upload-label{

    cursor:pointer;

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:10px;

    color:#555;

}

.upload-label i{

    font-size:45px;

    color:#4f7cff;

}

.upload-label span{

    font-size:14px;

    font-weight:500;

}

.preview-image{

    display:none;

    margin-top:20px;

    width:100%;

    max-height:280px;

    object-fit:cover;

    border-radius:12px;

}

/* ===========================
SUCCESS PAGE
=========================== */

.success-card{

    text-align:center;

    padding:50px 35px;

}

.success-icon{

    width:110px;

    height:110px;

    margin:auto;

    border-radius:50%;

    background:#4CAF50;

    color:white;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:50px;

    animation:pop .6s ease;

}

.success-card h1{

    margin-top:30px;

    color:#333;

}

.success-card p{

    margin-top:15px;

    color:#666;

    line-height:1.8;

}

.success-info{

    margin-top:35px;

    display:flex;

    flex-direction:column;

    gap:15px;

}

.success-info div{

    background:#f6f8fc;

    padding:15px;

    border-radius:12px;

    font-size:15px;

}

.success-info i{

    color:#4CAF50;

    margin-right:10px;

}

.countdown{

    margin-top:35px;

    font-weight:600;

}

#timer{

    color:#4f7cff;

}

.success-button{

    display:block;

    text-decoration:none;

    margin-top:30px;

    line-height:55px;

}

@keyframes pop{

    0%{

        transform:scale(.4);

        opacity:0;

    }

    80%{

        transform:scale(1.15);

    }

    100%{

        transform:scale(1);

        opacity:1;

    }

}