*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:#f0f2f5;min-height:100vh;}
.login-wrapper{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;}
.login-card{background:#fff;border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.08);padding:48px 40px 36px;width:400px;max-width:100%;}
.brand{text-align:center;margin-bottom:36px;}
.brand .logo{width:52px;height:52px;border-radius:14px;background:#1677ff;color:#fff;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 4px 12px rgba(22,119,255,.25);}
.brand h1{font-size:24px;font-weight:700;color:#1a1a1a;}
.brand p{font-size:13px;color:#999;margin-top:4px;}
.field{position:relative;margin-bottom:20px;}
.field-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#bbb;pointer-events:none;}
.field input{width:100%;height:46px;padding:0 16px 0 44px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;color:#1a1a1a;outline:none;transition:border-color .2s,box-shadow .2s;font-family:inherit;background:#fafafa;}
.field input:focus{border-color:#1677ff;box-shadow:0 0 0 3px rgba(22,119,255,.1);background:#fff;}
.field input::placeholder{color:#bbb;}
.error{display:none;color:#ff4d4f;font-size:13px;margin-bottom:16px;text-align:center;}
button[type="submit"]{width:100%;height:46px;background:#1677ff;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s;font-family:inherit;}
button[type="submit"]:hover{background:#4096ff;}
button[type="submit"]:disabled{opacity:.6;cursor:not-allowed;}
.footer-text{text-align:center;margin-top:28px;font-size:12px;color:#ccc;}
