*{
    box-sizing:border-box;
}

html,
body{
    margin:0;
    width:100%;
    min-height:100%;
}

body{
    overflow-x:hidden;
    font-family:Arial,sans-serif;
    background:#0f150e;
    color:#eef2e8;
}

.login-page{
    width:100%;
    min-height:100vh;
    min-height:100svh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:16px;
    background:
        radial-gradient(circle at 50% 8%,rgba(120,149,79,.16),transparent 38%),
        linear-gradient(145deg,#1b2418 0%,#10160f 55%,#0b100a 100%);
}

.login-card{
    width:100%;
    max-width:430px;
    margin:auto;
    padding:18px 24px 24px;
    border:1px solid #5f7344;
    border-radius:14px;
    background:#182116;
    box-shadow:0 20px 55px rgba(0,0,0,.55);
}

.login-logo{
    display:block;
    width:135px;
    max-width:42%;
    height:auto;
    margin:0 auto 2px;
    border-radius:10px;
}

h1{
    margin:2px 0 4px;
    text-align:center;
    font-size:34px;
    line-height:1.05;
    letter-spacing:-1px;
}

h1 span{
    color:#f1f3ee;
}

h1 strong{
    color:#a9c477;
}

.divider{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:10px;
    margin:12px 0 14px;
    color:#83985c;
}

.divider span{
    height:1px;
    background:#53643d;
}

.divider b{
    font-size:9px;
}

.login-form label{
    display:block;
    margin:10px 0 5px;
    color:#c9df9f;
    font-size:14px;
    font-weight:bold;
}

.login-form input{
    display:block;
    width:100%;
    height:44px;
    padding:9px 12px;
    border:1px solid #52643d;
    border-radius:7px;
    background:#111810;
    color:#fff;
    font-size:16px;
}

.login-form input::placeholder{
    color:#778170;
}

.login-form input:focus{
    outline:none;
    border-color:#9bb86c;
    box-shadow:0 0 0 3px rgba(145,173,101,.14);
}

.login-form button{
    display:block;
    width:100%;
    min-height:46px;
    margin-top:17px;
    border:1px solid #9aae6c;
    border-radius:7px;
    background:linear-gradient(180deg,#829f50 0%,#657f3f 100%);
    color:#fff;
    font-size:16px;
    font-weight:bold;
    letter-spacing:.05em;
    text-transform:uppercase;
    cursor:pointer;
}

.login-form button:hover{
    filter:brightness(1.08);
}

.login-error{
    margin:0 0 10px;
    padding:10px 11px;
    border:1px solid #8a4b4b;
    border-radius:7px;
    background:#572b2b;
    color:#fff;
    font-size:14px;
}

/* Телефон */
@media(max-width:520px){
    .login-page{
        padding:
            max(10px,env(safe-area-inset-top))
            max(10px,env(safe-area-inset-right))
            max(10px,env(safe-area-inset-bottom))
            max(10px,env(safe-area-inset-left));
    }

    .login-card{
        max-width:360px;
        padding:15px 16px 19px;
        border-radius:12px;
    }

    .login-logo{
        width:105px;
        max-width:38%;
    }

    h1{
        font-size:28px;
    }

    .divider{
        margin:9px 0 11px;
    }

    .login-form label{
        margin-top:8px;
        font-size:13px;
    }

    .login-form input{
        height:42px;
        font-size:16px;
    }

    .login-form button{
        min-height:44px;
        margin-top:14px;
        font-size:15px;
    }
}

/* Низький екран */
@media(max-height:650px){
    .login-page{
        align-items:flex-start;
        padding-top:8px;
        padding-bottom:8px;
    }

    .login-card{
        padding-top:10px;
        padding-bottom:14px;
    }

    .login-logo{
        width:85px;
    }

    h1{
        font-size:25px;
    }

    .divider{
        margin:7px 0 8px;
    }

    .login-form label{
        margin-top:7px;
    }

    .login-form input{
        height:40px;
    }

    .login-form button{
        min-height:42px;
        margin-top:12px;
    }
}
