html,
body{
    height:100%;
}

body{
    display:grid;
    place-items:center;
}

.card{
    width:min(420px,calc(100% - 32px));
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:12px;
    padding:34px;
    box-shadow:0 18px 50px rgba(0,0,0,.28);
}

.brand{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:22px;
}

.brand-mark{
    width:11px;
    height:11px;
    background:var(--yellow);
    transform:rotate(45deg);
    border-radius:2px;
}

h1{
    margin:0 0 8px;
    font-size:28px;
    line-height:1.2;
    color:var(--text-strong);
    font-weight:600;
}

.subtitle{
    color:var(--muted);
    margin-bottom:28px;
    font-size:14px;
}

label{
    display:block;
    margin:17px 0 8px;
    color:var(--text);
    font-size:13px;
    font-weight:500;
}

input{
    width:100%;
    padding:13px 14px;
    border-radius:6px;
    border:1px solid var(--border);
    background:var(--bg);
    color:var(--text);
    outline:none;
    font-size:14px;
    transition:border-color .15s ease,box-shadow .15s ease;
}

input:hover{
    border-color:#434C5A;
}

input:focus{
    border-color:var(--yellow);
    box-shadow:0 0 0 1px var(--yellow);
}

button{
    width:100%;
    margin-top:26px;
    padding:13px;
    border:0;
    border-radius:6px;
    background:var(--yellow);
    color:var(--on-yellow);
    font-weight:700;
    font-size:14px;
    transition:background .15s ease,transform .05s ease;
}

button:hover{
    background:var(--yellow-active);
}

button:active{
    transform:translateY(1px);
}

.error{
    background:rgba(246,70,93,.10);
    border:1px solid rgba(246,70,93,.45);
    color:#FFB7C1;
    padding:11px 12px;
    border-radius:6px;
    margin-bottom:18px;
    font-size:13px;
}

.security-note{
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid var(--border);
    color:var(--muted-2);
    font-size:12px;
    text-align:center;
}
