:root{
  --bg:#f5f7fa;
  --surface:#ffffff;
  --text:#172033;
  --muted:#667085;
  --line:#d8dee8;
  --line-strong:#aeb8c7;
  --accent:#2457d6;
  --accent-hover:#1d49b8;
  --accent-soft:#eef3ff;
  --danger:#b4233b;
  --focus:#8fb0ff;
  color:var(--text);
  background:var(--bg);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  letter-spacing:0;
}
*{box-sizing:border-box}
html{min-width:320px;background:var(--bg)}
body{min-height:100dvh;margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.55}
a{color:inherit;text-decoration:none}
button,input{font:inherit;letter-spacing:0}
.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,48px);border-bottom:1px solid var(--line);background:var(--surface)}
.brand{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:750}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:6px;background:var(--text);color:#f8fafc;font-size:13px;font-weight:800}
.topbar-label{color:var(--muted);font-size:13px}
.login-layout{width:min(960px,calc(100% - 40px));min-height:calc(100dvh - 118px);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,420px);align-items:center;gap:clamp(54px,9vw,112px);padding:64px 0}
.login-intro{min-width:0;padding-right:clamp(0px,3vw,36px)}
.product-label{margin:0 0 14px;color:var(--accent);font-size:12px;font-weight:750}
h1{margin:0;font-size:clamp(32px,4vw,44px);line-height:1.16;font-weight:760;letter-spacing:0}
.intro-copy{max-width:430px;margin:18px 0 28px;color:var(--muted);font-size:16px;line-height:1.75}
.return-note{display:inline-flex;align-items:center;min-height:34px;margin:0;padding:6px 10px;border-left:3px solid var(--accent);background:var(--accent-soft);color:#344a72;font-size:12px}
.login-form-region{padding-left:clamp(28px,5vw,64px);border-left:1px solid var(--line)}
form{width:100%}
.field{margin-bottom:22px}
label{display:block;margin-bottom:8px;color:var(--text);font-size:13px;font-weight:700}
input{width:100%;height:46px;padding:0 13px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--text);outline:none;transition:border-color .15s ease,box-shadow .15s ease}
input:hover{border-color:#8490a3}
input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 32%,transparent)}
input[aria-invalid="true"]{border-color:var(--danger)}
.field-error{min-height:18px;margin:5px 0 0;color:var(--danger);font-size:12px}
.form-status{min-height:21px;margin:0 0 12px;color:var(--danger);font-size:13px}
button{width:100%;height:46px;border:0;border-radius:6px;background:var(--accent);color:#f8fafc;font-weight:750;cursor:pointer;transition:background .15s ease,transform .1s ease}
button:hover{background:var(--accent-hover)}
button:active{transform:translateY(1px)}
button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
button:disabled{background:#8ca2d6;cursor:wait;transform:none}
footer{height:54px;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--line);color:var(--muted);font-size:11px;background:var(--surface)}
@media (max-width:760px){
  .topbar{padding:0 18px}
  .login-layout{width:min(100% - 36px,480px);min-height:calc(100dvh - 118px);display:block;padding:48px 0}
  .login-intro{padding:0 0 34px}
  h1{font-size:32px}
  .intro-copy{margin:14px 0 20px;font-size:14px}
  .login-form-region{padding:30px 0 0;border-left:0;border-top:1px solid var(--line)}
}
@media (max-width:390px){
  .topbar-label{display:none}
  .login-layout{width:calc(100% - 28px);padding:34px 0}
  h1{font-size:28px}
}
@media (prefers-reduced-motion:reduce){
  input,button{transition:none}
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#121722;
    --surface:#181f2c;
    --text:#edf1f7;
    --muted:#a9b2c2;
    --line:#30394a;
    --line-strong:#58647a;
    --accent:#82a7ff;
    --accent-hover:#9bb8ff;
    --accent-soft:#202d4b;
    --danger:#ff879b;
    --focus:#82a7ff;
  }
  .brand-mark,button{color:#111827}
  .return-note{color:#c9d8fb}
  button:disabled{background:#63769f;color:#dfe6f2}
}
