:root{
    --ink:#0f172a;
    --muted:#64748b;
    --line:#dbe4f0;
    --primary:#176741;
    --cyan:#8aae52;
}
*{box-sizing:border-box}
body{
    margin:0;
    min-height:100vh;
    font-family:Inter,Arial,sans-serif;
    color:var(--ink);
    background:
        radial-gradient(circle at top left,rgba(79,70,229,.22),transparent 28rem),
        radial-gradient(circle at bottom right,rgba(6,182,212,.18),transparent 30rem),
        linear-gradient(135deg,#f8fbff,#eef4fb);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:22px;
}
.login-shell{
    width:min(980px,100%);
    display:grid;
    grid-template-columns:1.05fr .95fr;
    background:rgba(255,255,255,.96);
    border:1px solid rgba(219,228,240,.95);
    border-radius:30px;
    overflow:hidden;
    box-shadow:0 30px 80px rgba(15,23,42,.18);
}
.brand-panel{
    background:linear-gradient(155deg,#08111f,#111827 56%,#123749);
    color:#fff;
    padding:42px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:520px;
}
.logo{
    width:58px;
    height:58px;
    border-radius:20px;
    background:linear-gradient(135deg,var(--primary),var(--cyan));
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:950;
    font-size:22px;
    box-shadow:0 18px 36px rgba(6,182,212,.25);
}
.brand-panel h1{
    margin:28px 0 10px;
    font-size:42px;
    line-height:1.03;
    letter-spacing:-.055em;
}
.brand-panel p{
    color:#cbd5e1;
    font-size:17px;
    line-height:1.55;
    max-width:420px;
}
.brand-foot{
    font-size:13px;
    color:#94a3b8;
}
.form-panel{
    padding:42px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.form-panel h2{
    margin:0 0 8px;
    font-size:30px;
    letter-spacing:-.04em;
}
.form-panel .sub{
    margin:0 0 24px;
    color:var(--muted);
}
label{
    display:block;
    font-weight:900;
    color:#334155;
    margin:14px 0 7px;
}
input{
    width:100%;
    min-height:50px;
    border:1px solid #cbd5e1;
    border-radius:15px;
    padding:12px 14px;
    font-size:16px;
    color:var(--ink);
    background:#fff;
}
input:focus{
    outline:3px solid rgba(79,70,229,.18);
    border-color:var(--primary);
}
button{
    width:100%;
    min-height:50px;
    border:0;
    border-radius:15px;
    background:linear-gradient(135deg,var(--primary),#2a794b);
    color:#fff;
    font-weight:950;
    font-size:16px;
    margin-top:20px;
    cursor:pointer;
    box-shadow:0 16px 30px rgba(79,70,229,.25);
}
.notice{
    background:#fee2e2;
    border:1px solid #fecaca;
    color:#991b1b;
    border-radius:15px;
    padding:12px 14px;
    margin-bottom:16px;
    font-weight:800;
}
.links{
    margin-top:18px;
    display:flex;
    justify-content:flex-start;
    gap:12px;
    flex-wrap:wrap;
}
.links a{
    color:#315d31;
    font-weight:900;
    text-decoration:none;
}
.links a:hover{
    text-decoration:underline;
}
@media (max-width:760px){body{
        padding:14px;
        align-items:flex-start;
    }
.login-shell{
        grid-template-columns:1fr;
        border-radius:24px;
    }
.brand-panel{
        min-height:0;
        padding:26px;
    }
.brand-panel h1{
        font-size:32px;
    }
.form-panel{
        padding:26px;
    }}
