<style>
*{
    box-sizing:border-box;
}

body.login{
    margin:0;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background:
        radial-gradient(circle at top left, rgba(66,133,244,.18), transparent 28%),
        radial-gradient(circle at bottom right, rgba(52,168,83,.18), transparent 28%),
        #f5f7fb;
    font-family:"Times New Roman", serif;
}

.login-box{
    width:100%;
    max-width:430px;
    background:#fff;
    border-radius:28px;
    padding:34px;
    border:1px solid #e5edf8;
    box-shadow:0 20px 60px rgba(15,23,42,.12);
}

.brand{
    text-align:center;
    margin-bottom:25px;
}

.brand img{
    width:130px;
    height:130px;
    object-fit:contain;
    margin-bottom:12px;
}

.brand h1{
    margin:0;
    font-size:26px;
    color:#0f172a;
    font-weight:900;
    line-height:1.2;
}

.brand p{
    margin-top:8px;
    color:#64748b;
    font-size:15px;
}

.login-title{
    text-align:center;
    font-size:24px;
    font-weight:900;
    margin-bottom:6px;
    color:#111827;
}

.login-subtitle{
    text-align:center;
    color:#64748b;
    font-size:14px;
    margin-bottom:20px;
}

.alert{
    background:#fff2f2;
    color:#b42318;
    border:1px solid #ffd0d0;
    padding:14px;
    border-radius:16px;
    margin-bottom:18px;
    font-size:14px;
}

.form{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.input{
    width:100%;
    border:1.8px solid #dbe2ea;
    border-radius:16px;
    padding:15px 16px;
    font-size:15px;
    background:#fff;
    outline:none;
    transition:.3s;
}

.input:focus{
    border-color:#4285f4;
    box-shadow:0 0 0 4px rgba(66,133,244,.12);
}

.role-select-wrap{
    margin-bottom:0;
}

.role-select{
    font-weight:800;
    cursor:pointer;
    background:#fff;
}

.selected-role-text{
    display:none;
    background:#f8fafc;
    border:1px solid #e5e7eb;
    padding:12px 14px;
    border-radius:14px;
    margin-bottom:0;
    font-size:14px;
    color:#334155;
}

.password-wrap{
    position:relative;
}

.password-wrap .input{
    padding-right:55px;
}

.toggle-pass{
    position:absolute;
    right:16px;
    top:50%;
    transform:translateY(-50%);
    cursor:pointer;
    font-size:18px;
}

.btn{
    border:none;
    border-radius:16px;
    background:linear-gradient(135deg,#4285f4,#1967d2);
    color:#fff;
    padding:15px;
    font-size:16px;
    font-weight:900;
    cursor:pointer;
    transition:.3s;
}

.btn:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 30px rgba(66,133,244,.28);
}

@media(max-width:480px){
    .login-box{
        margin:14px;
        padding:24px;
    }

    .brand img{
        width:110px;
        height:110px;
    }

    .brand h1{
        font-size:23px;
    }
}
</style>