:root{
    --bg:#090d14;
    --surface:#111722;
    --surface-2:#171f2c;
    --border:#2c3646;
    --border-strong:#445166;
    --blue:#2f7df6;
    --cyan:#19b8c7;
    --red:#d94a4a;
    --text:#f6f8fb;
    --muted:#a0aab8;
    --shadow:0 18px 44px rgba(0,0,0,.28);
}

*{
    box-sizing:border-box;
}

html{
    min-height:100%;
}

body{
    min-height:100vh;
    margin:0;
    color:var(--text);
    background:linear-gradient(180deg,#0b111b 0%,#090d14 46%,#0b0f16 100%);
    font-family:"Segoe UI",Arial,sans-serif;
}

a{
    color:inherit;
    text-decoration:none;
}

.login-shell{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:18px;
}

.panel{
    background:rgba(17,23,34,.98);
    border:1px solid var(--border);
    border-radius:8px;
    box-shadow:var(--shadow);
}

.login-card{
    width:min(430px,100%);
    padding:22px;
}

.brand{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.brand-mark{
    width:44px;
    height:44px;
    flex:0 0 44px;
    display:grid;
    place-items:center;
    border:1px solid #315d95;
    border-radius:8px;
    background:#10223a;
    color:#cfe6ff;
    font-weight:900;
}

.brand-mark img{
    width:28px;
    height:28px;
    display:block;
    object-fit:contain;
}


.brand-copy strong{
    display:block;
    color:#d8ebff;
    font-size:20px;
    line-height:1.15;
    font-weight:800;
}

.brand-copy small{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-size:12px;
    font-weight:700;
}

.login-head{
    margin-top:28px;
}

.eyebrow{
    margin:0 0 8px;
    color:var(--cyan);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
}

.login-head h1{
    margin:0;
    color:#eef5ff;
    font-size:30px;
    line-height:1.15;
    letter-spacing:0;
}

.login-head p{
    margin:10px 0 0;
    color:var(--muted);
    font-size:15px;
    line-height:1.55;
}

.status-message{
    margin-top:16px;
    padding:12px;
    border:1px solid rgba(31,164,99,.65);
    border-radius:8px;
    background:#101824;
    color:#c6f6dc;
    font-size:14px;
}

.login-form{
    display:grid;
    gap:14px;
    margin-top:22px;
}

.field{
    display:grid;
    gap:6px;
}

.field span{
    color:var(--muted);
    font-size:12px;
    font-weight:800;
}

input{
    min-height:42px;
    width:100%;
    border:1px solid var(--border);
    border-radius:8px;
    padding:10px 11px;
    background:#0f1621;
    color:var(--text);
    font:inherit;
    font-size:14px;
    outline:none;
}

input:focus{
    border-color:#5b9dff;
    box-shadow:0 0 0 3px rgba(47,125,246,.18);
}

.field-error{
    color:#ffd0d0;
    font-size:12px;
    font-weight:700;
}

.login-options{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
}

.remember{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--muted);
    font-size:13px;
    font-weight:700;
}

.remember input{
    width:16px;
    height:16px;
    min-height:16px;
    accent-color:var(--blue);
}

.login-options a{
    color:#cfe6ff;
    font-size:13px;
    font-weight:800;
}

button{
    min-height:42px;
    border:none;
    border-radius:8px;
    padding:10px 12px;
    color:white;
    cursor:pointer;
    font:inherit;
    font-size:14px;
    font-weight:800;
    transition:filter .15s ease,transform .15s ease,box-shadow .15s ease;
}

button:hover{
    filter:brightness(1.08);
}

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

button:focus-visible,
a:focus-visible,
input:focus-visible{
    outline:3px solid rgba(143,197,255,.42);
    outline-offset:2px;
}

.btn-blue{
    background:var(--blue);
}

@media(max-width:520px){
    .login-shell{
        align-items:start;
        padding:10px;
    }

    .login-card{
        padding:18px;
    }

    .login-head h1{
        font-size:26px;
    }

    .login-options,
    .login-options a,
    button{
        width:100%;
    }

    button{
        justify-content:center;
    }
}
