*{box-sizing:border-box}body{margin:0;background:#edf2df;font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:#002e19}.login-page{width:100%;max-width:470px;min-height:100dvh;margin:auto;background:url('/assets/login-baseline.png') top center/100% auto no-repeat;padding-bottom:26px}.visual{width:100%;aspect-ratio:941/867;overflow:hidden}.visual img{display:block;width:100%;height:auto}.login-card{position:relative;margin:0 3.5%;padding:24px 5.5% 20px;background:#fff;border-radius:28px;box-shadow:0 8px 28px #254e2410}h1{text-align:center;font-size:clamp(25px,8vw,37.6px);line-height:1.25;margin:0;font-weight:900;letter-spacing:-1px}.tagline{text-align:center;font-size:clamp(15px,4.5vw,21px);color:#6b6f7f;margin:12px 0 18px;letter-spacing:1px}label{display:block;color:#555b6e;font-size:16px;margin:12px 0 8px}.field{display:flex;align-items:center;gap:10px;border:1px solid #d3dfdb;background:#f6faf8;border-radius:12px;min-height:49px;padding:0 14px}.field>span{color:#346d59;border-right:1px solid #dbe5e0;padding-right:12px;font-size:22px}input{width:100%;min-width:0;border:0;background:transparent;font:inherit;font-size:16px;padding:12px 0;color:#213a2e;outline-offset:4px}input::placeholder{color:#757b8c}.field button{border:0;background:none;color:#6e7285;width:32px;height:40px;padding:2px;cursor:pointer;flex-shrink:0}.field svg{width:23px;fill:none;stroke:currentColor;stroke-width:2}button.enter{width:100%;min-height:49px;margin-top:12px;border-radius:26px;border:1px solid #15855c;background:linear-gradient(140deg,#289b68,#008154);box-shadow:inset 0 2px 3px #c3f2c67a,0 8px 16px #08714415;color:white;font:inherit;font-weight:800;font-size:21px;cursor:pointer}.enter:disabled{opacity:.6}#error{font-size:13px;color:#a02e28;margin:8px 0 0;min-height:18px;overflow-wrap:anywhere}button:focus-visible,input:focus-visible{outline:3px solid #4a976b}@media(min-width:600px){.login-page{margin:18px auto;border-radius:22px;overflow:hidden;min-height:0}}@media(max-width:340px){.login-card{padding-top:19px}.tagline{margin-bottom:14px}label{margin-top:10px}}

/* Restore filled account/lock glyph treatment from the frozen PNG. */
.field:first-of-type>span svg circle,.field:first-of-type>span svg path,.field>span svg rect{fill:currentColor}.field>span svg rect{stroke:none}

/* Tablet-only reflow. Existing artwork bytes and the established mobile layout stay unchanged. */
@media (min-width:600px){
 body{display:flex;flex-direction:column;min-height:100dvh;padding:24px}
 .login-page{flex:none;width:100%;max-width:520px;min-height:0;margin:auto;padding:0;background:none;border-radius:24px;overflow:visible}
 .visual{width:100%;aspect-ratio:941/867;border-radius:24px 24px 0 0}
 .visual img{width:100%;height:auto}
 .login-card{width:100%;margin:0;padding:26px 32px 24px;border-radius:24px;min-width:0}
 h1{font-size:clamp(28px,3.5vw,36px);line-height:1.3;letter-spacing:-1px}
 .tagline{font-size:20px;line-height:1.5;margin:10px 0 18px}
 .field{min-height:52px}.field button{width:44px;min-height:44px}.enter{min-height:52px}
}
@media (min-width:700px) and (orientation:landscape){
 .login-page{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);align-items:center;gap:clamp(24px,3.5vw,48px);max-width:1100px}
 .visual{border-radius:24px;min-width:0}
 .login-card{padding:28px;box-shadow:0 8px 28px #254e2410}
 h1{font-size:clamp(26px,2.8vw,36px)}
 .tagline{font-size:clamp(16px,1.8vw,20px)}
}
@media (min-width:600px) and (max-height:560px){
 body{padding:16px 24px}.login-page{margin:auto}
 .visual{max-width:min(100%,calc((100dvh - 32px)*941/867));justify-self:center}
 .login-card{padding:20px 24px}.tagline{margin-bottom:12px}label{margin-top:10px}
}
@media(min-width:600px){.field input{min-height:44px}}
