:root{color-scheme:light;--ink:#17243c;--muted:#7b8598;--primary:#6754e8}
*{box-sizing:border-box}
body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 50% 0,#e9e7fb 0,transparent 55%),#f5f6fa;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.5}
button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}
.page{width:min(100%,440px);margin:0 auto;padding:calc(env(safe-area-inset-top) + clamp(28px,8vh,80px)) 22px calc(env(safe-area-inset-bottom) + 32px)}
.top-link{display:inline-flex;align-items:center;min-height:44px;margin-bottom:24px;font-size:13px;color:#687389}
.top-link:hover{color:var(--primary)}
.login-card{padding:30px;border:1px solid #e7e9f1;border-radius:22px;background:#fff;box-shadow:0 12px 36px #25345408}
.logo-wrap{margin-bottom:22px}.logo{width:48px;height:48px;border-radius:14px;overflow:hidden}.logo img{width:100%;height:100%;display:block}
.title{margin:0;font-size:26px;line-height:1.35;font-weight:700;letter-spacing:-.5px}.sub{margin:8px 0 28px;font-size:14px;color:var(--muted)}
.form{display:flex;flex-direction:column;gap:10px}.field-label{font-size:13px;font-weight:600}
.password-box{display:flex;align-items:center;gap:10px;height:52px;padding:0 10px 0 14px;border:1px solid #dce0eb;border-radius:12px;background:#fafbfe;transition:border-color .15s,box-shadow .15s}
.password-box:focus-within{border-color:#8e80ee;box-shadow:0 0 0 3px #6754e812;background:#fff}.lock-icon{width:18px;height:18px;color:#8993a6;flex-shrink:0}
.input{width:100%;min-width:0;flex:1;height:48px;outline:0;border:0;background:transparent;font-size:16px;color:var(--ink)}.input::placeholder{color:#a0a8b8}
.toggle-pass{border:0;background:transparent;color:#6a7287;font-size:12px;min-width:44px;min-height:44px;cursor:pointer}.toggle-pass:hover{color:var(--primary)}
.btn{height:50px;margin-top:10px;border:0;border-radius:12px;background:var(--primary);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}.btn:hover{background:#5945d4}.btn:active{background:#4f3ec3}
a:focus-visible,button:focus-visible{outline:3px solid #b4a8ff;outline-offset:3px}
.err{margin-top:16px;padding:10px 12px;border:1px solid #f4d8dd;border-radius:10px;background:#fff5f6;color:#b8354a;font-size:13px}
.footer{margin-top:22px;text-align:center;font-size:12px;color:#929aae}
@media(max-width:380px){.page{padding-left:16px;padding-right:16px}.login-card{padding:25px 22px}.title{font-size:24px}}
@media(max-height:600px){.page{padding-top:16px}.top-link{margin-bottom:12px}.login-card{padding-top:22px;padding-bottom:22px}.logo-wrap{margin-bottom:14px}.sub{margin-bottom:20px}}
