*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;
    background:#eef2f7;
    overflow-x:hidden;
    overflow-y:auto;
}

/* HEADER */

.login-header{
    height:72px;
    background:#673080;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 2px 8px rgba(0,0,0,.12);
}

.header-container{
    width:100%;
    max-width:1400px;
    display:flex;
    align-items:center;
    padding:0 30px;
}

.header-logo{
    height:46px;
    width:auto;
    margin-right:14px;
}

.header-text h1{
    color:#fff;
    font-size:20px;
    font-weight:700;
    line-height:1.2;
}

.header-text p{
    color:#e7dff0;
    font-size:13px;
    margin-top:3px;
}

/* MAIN */

.login-wrapper{
    flex:1;
    display:flex;
    justify-content:center;
    align-items:flex-start;
    padding:30px;
    padding-top:40px;

    overflow-y:auto;
}

/* CARD */

.login-card{
    width:420px;
    background:#fff;
    border-radius:18px;
    padding:38px;
    box-shadow:
    0 15px 35px rgba(0,0,0,.08),
    0 4px 10px rgba(0,0,0,.04);
}
.login-title{
    text-align:center;
    margin-bottom:30px;
}

.login-title h2{
    font-size:36px;
    color:#222;
    line-height:1.2;
    margin-bottom:12px;
    font-weight:700;
    letter-spacing:-0.5px;
}

.login-title p{
    color:#666;
    font-size:15px;
}

/* ERROR */

.errornote{
    margin-bottom:20px;
    padding:12px;
    background:#fff4f4;
    border:1px solid #f5bcbc;
    border-radius:8px;
    color:#d32f2f;
    text-align:center;
    font-size:14px;
}

/* FORM */

.form-group{
    margin-bottom:20px;
}

.form-group label{
    display:block;
    margin-bottom:8px;
    color:#333;
    font-size:14px;
    font-weight:600;
}

.form-group input{
    width:100%;
    height:48px;
    padding:0 15px;
    border:1px solid #d6d6d6;
    border-radius:8px;
    font-size:15px;
    transition:.25s;
    outline:none;
}

.form-group input:focus{
    border-color:#673080;
    box-shadow:0 0 0 3px rgba(103,48,128,.18);
}

/* Password Field */

.password-wrapper{
    position:relative;
}
.password-wrapper input{
    width:100%;
    padding-right:45px;
}
.toggle-password{
    position:absolute;
    right:15px;
    top:50%;
    transform:translateY(-50%);
    cursor:pointer;
    color:#777;
    font-size:18px;
    transition:.2s;
}
.toggle-password:hover{
    color:#673080;
}
.toggle-password i{
    pointer-events:none;
}
 
/* BUTTON */

button{
    width:100%;
    height:48px;
    margin-top:8px;
    border:none;
    border-radius:8px;
    background:#673080;
    color:#fff;
    font-size:16px;
    font-weight:600;
    cursor:pointer;
    transition:.25s;
}

button:hover{
    background:#4C216A;
    transform:translateY(-1px);
}

/* FOOTER */

.login-footer{
    height:42px;
    background:#673080;
    color:#fff;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:13px;
}

/* RESPONSIVE */

@media(max-width:768px){
    .login-card{
        width:100%;
        max-width:380px;
        padding:30px;
    }
    .login-title h2{
        font-size:30px;
        line-height:1.2;
    }
    .header-logo{
        height:40px;
    }

    .header-text h1{
        font-size:18px;
    }

}

.successnote{
    color:#198754;
    background:#d1e7dd;
    border:1px solid #badbcc;
    padding:12px;
    border-radius:6px;
    margin-bottom:15px;
    text-align:center;
}

.help{
    font-size:12px;
    color:#777;
    margin-top:6px;
}

.setup-help{
    margin-top:20px;
    padding:15px;
    background:#f8f9fa;
    border-radius:8px;
    border:1px solid #e5e5e5;
}

.setup-help h4{
    margin-bottom:10px;
}

.setup-help ul{
    margin-left:20px;
}

.successnote{
    background:#d4edda;
    color:#155724;
    border:1px solid #c3e6cb;
    border-radius:6px;
    padding:12px;
    margin-bottom:15px;
}

input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear{
    display:none !important;
}

@media (min-width: 769px) {
    .login-wrapper{
        align-items:center;
    }
}