:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#172337;background:#f5f7fa;font-synthesis:none}
*{box-sizing:border-box}
body{min-height:100vh;min-height:100dvh;margin:0;background:linear-gradient(145deg,#f7f9fc 0%,#edf2f7 100%)}
.login-shell{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px}
.login-card{width:min(100%,420px);padding:42px 44px 46px;background:#fff;border:1px solid #e6ebf1;border-radius:14px;box-shadow:0 20px 55px rgba(32,49,74,.08)}
.brand{display:flex;align-items:center;gap:10px;color:#315b92;font-size:13px;font-weight:750;letter-spacing:.18em}
.brand-mark{display:block;width:13px;height:13px;border-radius:3px;background:#315b92;transform:rotate(45deg)}
h1{margin:38px 0 30px;font-size:28px;font-weight:650;line-height:1.25;letter-spacing:.02em}
form{display:grid;gap:10px}
label{margin-top:8px;color:#41516a;font-size:13px;font-weight:600}
input{width:100%;height:48px;padding:0 14px;border:1px solid #d4dce6;border-radius:8px;background:#fff;color:#172337;font:inherit;font-size:15px;outline:0;transition:border-color .15s,box-shadow .15s}
input:focus{border-color:#315b92;box-shadow:0 0 0 3px rgba(49,91,146,.14)}
button{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;height:49px;margin-top:22px;border:0;border-radius:8px;background:#315b92;color:#fff;font:inherit;font-size:15px;font-weight:650;cursor:pointer;transition:background .15s,transform .15s}
button:hover{background:#244c7f}
button:active{transform:translateY(1px)}
button:focus-visible{outline:3px solid #83a7d1;outline-offset:3px}
button span{font-size:19px;font-weight:400;line-height:1}
.error{margin:0 0 20px;padding:11px 13px;border:1px solid #f1c8c2;border-radius:7px;background:#fff4f2;color:#a33d30;font-size:13px;line-height:1.5}
@media(max-width:480px){.login-shell{padding:20px}.login-card{padding:36px 28px 38px;box-shadow:0 12px 34px rgba(32,49,74,.07)}h1{margin:34px 0 25px;font-size:26px}}
@media(prefers-reduced-motion:reduce){input,button{transition:none}}
