.login-page{
    min-height:100vh;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:40px;
    background:
        radial-gradient(circle at 20% 20%,rgba(18,111,211,.15),transparent 30%),
        linear-gradient(135deg,#edf7ff,#ffffff);
}

.login-card{
    width:640px;
    max-width:100%;
    background:#fff;
    border-radius:30px;
    padding:50px;
    box-shadow:0 25px 70px rgba(0,0,0,.12);
}

.back-link{
    text-decoration:none;
    color:#1976d2;
    font-weight:700;
}

.logo{
    width:220px;
    display:block;
    margin:25px auto 35px;
}

.title-block{
    text-align:center;
    margin-bottom:35px;
}

.title-block h1{
    margin:0;
    font-size:40px;
    font-weight:800;
    color:#102033;
}

.title-line{
    width:80px;
    height:4px;
    margin:18px auto;
    border-radius:20px;
    background:#1976d2;
}

.title-block p{
    color:#5d6f86;
    line-height:1.6;
    margin:0;
}

.form-group{
    margin-bottom:24px;
}

.form-group label{
    display:block;
    margin-bottom:8px;
    font-weight:700;
    color:#24364d;
}

.form-control{
    width:100%;
    height:56px;
    border:1px solid #d2dce9;
    border-radius:14px;
    padding:0 18px;
    font-size:17px;
    transition:.2s;
}

.form-control:focus{
    outline:none;
    border-color:#1976d2;
    box-shadow:0 0 0 4px rgba(25,118,210,.12);
}

.input-validation-error{
    border:2px solid #dc3545!important;
    background:#fff8f8;
}

.field-validation-error{
    display:block;
    color:#dc3545;
    margin-top:6px;
    font-size:14px;
    font-weight:600;
}

.remember-row{
    display:flex;
    align-items:center;
    gap:10px;
    margin:22px 0 30px;
}

.remember-row input{
    width:18px;
    height:18px;
}

.btn-login{
    width:100%;
    height:58px;
    border:none;
    border-radius:14px;
    background:linear-gradient(135deg,#1f8cff,#1565c0);
    color:#fff;
    font-size:19px;
    font-weight:700;
    cursor:pointer;
    transition:.2s;
}

.btn-login:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(25,118,210,.25);
}

.btn-login:disabled{
    opacity:.7;
    cursor:default;
}

.security-row{
    display:flex;
    justify-content:center;
    gap:25px;
    margin-top:28px;
    font-size:14px;
    color:#66788e;
}

.version-text{
    text-align:center;
    margin-top:18px;
    color:#97a5b8;
    font-size:13px;
}

.loading-overlay{
    position:fixed;
    inset:0;
    display:none;
    justify-content:center;
    align-items:center;
    background:rgba(255,255,255,.88);
    backdrop-filter:blur(6px);
    z-index:9999;
}

.loading-box{
    text-align:center;
}

.loading-logo{
    width:120px;
    animation:spin 1.5s linear infinite;
}

.loading-box h2{
    margin-top:25px;
    margin-bottom:10px;
    color:#102033;
}

.loading-box p{
    color:#5d6f86;
}

@keyframes spin{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}