*{
    box-sizing:border-box;
}

html,
body{
    min-height:100%;
}

body{
    margin:0;
    color:#20242c;
    background-color:#edf0f2;
    background-image:linear-gradient(90deg,rgba(47,53,66,.045) 1px,transparent 1px),linear-gradient(rgba(47,53,66,.045) 1px,transparent 1px);
    background-size:28px 28px;
    font-family:'Malgun Gothic',sans-serif;
}

.login-layout{
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(320px,1fr) minmax(420px,540px);
}

.brand-panel{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:28px;
    padding:56px;
    background:#2f3542;
    color:white;
}

.brand-mark{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    grid-template-rows:repeat(3,1fr);
    gap:6px;
    width:92px;
    height:92px;
    padding:14px;
    border:2px solid #70a1ff;
}

.brand-mark span{
    min-width:0;
    min-height:0;
    background:#70a1ff;
}

.brand-name,
.form-kicker{
    margin:0 0 8px;
    color:#70a1ff;
    font-size:13px;
    font-weight:800;
    letter-spacing:0;
}

.brand-panel h1{
    margin:0;
    font-size:36px;
    letter-spacing:0;
}

.brand-description{
    margin:14px 0 0;
    color:#dfe4ea;
    font-size:15px;
}

.login-panel{
    display:flex;
    align-items:center;
    padding:48px 64px;
    background:rgba(255,255,255,.94);
    border-left:1px solid #d7dce2;
}

.login-form{
    width:100%;
    max-width:380px;
    margin:0 auto;
}

.form-heading{
    margin-bottom:34px;
}

.form-heading h2{
    margin:0 0 10px;
    font-size:28px;
    letter-spacing:0;
}

.form-heading p:last-child{
    margin:0;
    color:#68707d;
    font-size:14px;
}

.login-form label{
    display:block;
    margin:20px 0 8px;
    font-size:13px;
    font-weight:700;
}

.login-form input{
    width:100%;
    height:46px;
    padding:0 13px;
    border:1px solid #cbd1d8;
    border-radius:6px;
    background:white;
    color:#20242c;
    font:inherit;
    outline:none;
}

.login-form input:focus{
    border-color:#1e90ff;
    box-shadow:0 0 0 3px rgba(30,144,255,.14);
}

.login-form button{
    width:100%;
    height:48px;
    margin-top:12px;
    border:0;
    border-radius:6px;
    background:#1e90ff;
    color:white;
    font-size:15px;
    font-weight:700;
    cursor:pointer;
}

.login-form button:disabled{
    opacity:.6;
    cursor:wait;
}

.form-error{
    min-height:20px;
    margin:14px 0 0;
    color:#c0392b;
    font-size:13px;
}

@media (max-width:760px){
    .login-layout{
        grid-template-columns:1fr;
        grid-template-rows:auto 1fr;
    }

    .brand-panel{
        justify-content:flex-start;
        gap:16px;
        padding:26px 24px;
    }

    .brand-mark{
        width:56px;
        height:56px;
        gap:3px;
        padding:8px;
    }

    .brand-panel h1{
        font-size:22px;
    }

    .brand-description{
        display:none;
    }

    .login-panel{
        align-items:flex-start;
        padding:42px 24px;
        border-left:0;
        border-top:1px solid #d7dce2;
    }
}
