*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: Segoe UI, sans-serif;
    border-radius: 20px;
}

body{
    min-height:100vh;
    background:linear-gradient(135deg,#eef4fb,#dbe7fb);
    color:#304a69;
}

/* HEADER */

.topbar{
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px 40px;
}

.topbar-left{
    display: flex;
    align-items: center;
    gap: 15px;
    flex-direction: column;
}

.logo{
	width: 130px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

.brand-title{
    font-size:22px;
    font-weight:700;
    color:#2552a7;
	text-align: center;
}

.brand-sub{
    font-size: 13px;
    color: #6c7a89;
    text-align: center;
}

.topbar-links a{
    margin-left:25px;
    text-decoration:none;
    color:#2552a7;
    font-weight:500;
}

/* MAIN */

.main{
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px;
}

/* LOGIN CARD */

.login-card{
    width:520px;
    background:white;
    padding:35px;
    border-radius:22px;
    box-shadow:0 20px 60px rgba(0,0,0,0.15);
}

.login-card h2{
    text-align: center;
    margin-bottom: 5px;
    color: #2552a7;
}

.login-sub{
    text-align: center;
    font-size: 15px;
    margin-bottom: 20px;
    color: #7a8899;
}

.input-group{
    margin-bottom:18px;
}

.input-group label{
    font-size:14px;
    display:block;
    margin-bottom:5px;
}

.input-group input{
    width: 100%;
    padding: 14px;
    border-radius: 10px;
    border: 2px solid #b5cfff;
    background: #f7faff;
    font-size: 16px;
}

.input-group input:focus{
    border-color:#2552a7;
    outline:none;
}

button{
    width:100%;
    padding:16px;
    border:none;
    border-radius:12px;
    background:linear-gradient(90deg,#4f6cff,#2552a7);
    color:white;
    font-size:18px;
    font-weight:600;
    cursor:pointer;
}

.login-footer{
    text-align:center;
    margin-top:18px;
    font-size:14px;
    color:#7a8899;
}

.error{
    color: #d93025;
    font-size: 10px;
    margin-top: 1px;
    min-height: 10px;
}


/* FOOTER */

.footer{
    text-align:center;
    padding:20px;
    color:#7a8899;
}

/* 📱 MOBILE */

@media (max-width:1000px){

    .main{
        flex-direction:column;
        padding:20px;
        gap:30px;
    }

    .promo{
        text-align:center;
    }

    .promo-image{
        max-width:320px;
    }

    .promo h1{
        font-size:26px;
    }

    .login-card{
        width:100%;
        max-width:420px;
    }

    .topbar{
        flex-direction:column;
        gap:15px;
        text-align:center;
    }

    .topbar-links a{
        margin:0 10px;
    }
}

/* 📱 SMALL PHONES */

@media (max-width:480px){

    .promo h1{font-size:22px}
    .promo p{font-size:16px}

    .login-card{
        padding:25px 20px;
        border-radius:18px;
    }

    button{font-size:16px}
}

/* СООБЩЕНИЯ */
#messageBox {
    display: none;
    margin-top: 15px;
    padding: 12px;
    border-radius: 8px;
    text-align: center;
    font-size: 15px;
    line-height: 1.4;
}

#messageBox.success {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

#messageBox.error {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

#messageBox.warning {
    background-color: #fff3cd;
    color: #856404;
    border: 1px solid #ffeaa7;
}

/* Спиннер кнопки */
#spinner {
    display: none;
    font-size: 20px;
}

/* Подсказка под полем ввода */
.hint {
    font-size: 12px;
    color: #6c757d;
    font-style: italic;
    margin-top: 4px;
    display: block;
}