/* Login-only layout. Keep the filing footer in normal flow at every height. */
.login-stage{
 --login-ink:#193236;
 --login-muted:#60746e;
 --login-line:#dce3da;
 min-height:100vh;
 min-height:100svh;
 display:grid;
 grid-template-columns:minmax(0,1fr);
 grid-template-rows:1fr auto;
 background-color:#f0f2ec;
 background-image:linear-gradient(#d6dfd333 1px,transparent 1px),linear-gradient(90deg,#d6dfd333 1px,transparent 1px);
 background-size:72px 72px;
 color:var(--login-ink);
}
.login-main{display:grid;place-items:center;padding:48px 24px;min-width:0}
.login-card{
 width:min(440px,100%);
 padding:38px 40px 40px;
 border:1px solid var(--login-line);
 border-top:4px solid #ef632e;
 border-radius:16px;
 background:#fffefa;
 box-shadow:0 16px 50px #1932360c,0 2px 8px #19323604;
}
.login-card .brand{margin:0;gap:14px;color:var(--login-ink)}
.login-card .brand-logo{width:64px;height:52px;border-radius:7px;padding:2px;box-shadow:none;border-color:#e3e7df}
.login-card .brand strong{font-size:22px;letter-spacing:-.5px;line-height:1.45}
.login-card .brand small{font-size:9px;letter-spacing:1.7px;color:var(--login-muted);line-height:1.8}
.login-heading{padding-top:28px;margin-top:28px;border-top:1px solid #e8ece4}
.login-heading h1{font-size:26px;line-height:1.4;letter-spacing:-.5px;margin:0 0 26px;font-weight:700}
.login-card .login-form{display:block;padding:0;margin:0;max-width:none;width:100%}
.login-card .field{margin:0 0 22px}
.login-card .field label{font-size:13px;line-height:1.5;font-weight:600;margin-bottom:9px;color:#344c48}
.login-card input{height:50px;padding:12px 14px;background:#f8faf5;border-color:#d9e0d5;border-radius:8px;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}
.login-card input::placeholder{color:#8b9991;opacity:1}
.login-card input:focus{outline:none;border-color:#567d70;background:#fff;box-shadow:0 0 0 3px #567d701a}
.login-password-field{position:relative}
.login-password-field input{padding-right:64px}
.login-password-toggle{position:absolute;right:5px;bottom:5px;height:40px;min-width:52px;padding:0 10px;border-radius:5px;font-size:12px;background:transparent;color:#567065;font-weight:500}
.login-password-toggle:hover{background:#eaf0e5;filter:none}
.login-password-toggle:focus-visible,.login-submit:focus-visible{outline:2px solid #567d70;outline-offset:3px}
.login-card .login-submit{min-height:50px;margin-top:4px;border-radius:8px;font-size:15px;letter-spacing:.5px;box-shadow:0 3px 8px #ef632e18;transition:background .15s,transform .15s}
.login-card .login-submit:hover{background:#de5522;filter:none}
.login-card .login-submit:active{transform:translateY(1px)}
.login-card .login-submit:disabled{opacity:.65;transform:none}
.login-card .error{font-size:13px;padding:12px 14px;margin:0 0 20px;overflow-wrap:anywhere}
.login-card .muted{font-size:12px}
.login-captcha{margin:0 0 18px}
.login-captcha label{display:block;font-size:13px;font-weight:600;margin-bottom:9px;color:#344c48}
.login-captcha-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.login-captcha-row img{display:block;width:min(230px,100%);height:70px;border:1px solid #d9e0d5;border-radius:8px;background:#eef3eb}
.login-captcha-row button{flex:none;min-height:42px;padding:0 10px}
.login-captcha input[name="captchaAnswer"]{width:100%}
.login-stage .app-footer{
 position:static;
 display:flex;
 flex-direction:column;
 align-items:center;
 justify-content:center;
 gap:5px;
 width:100%;
 padding:18px 24px 22px;
 border-top:1px solid #dce3da;
 background:#f0f2ec;
 backdrop-filter:none;
 color:#60746e;
 text-align:center;
 font-size:12px;
 line-height:1.8;
 overflow-wrap:anywhere;
}
.login-stage .app-footer .beian{justify-content:center;gap:4px 18px}
.login-stage .app-footer a{color:#526b62;text-decoration:none}
.login-stage .app-footer a:hover{color:#b64318;text-decoration:underline}
@media(max-width:480px){
 .login-main{padding:28px 18px}
 .login-card{padding:28px 24px 30px;border-radius:12px}
 .login-card .brand{gap:11px}
 .login-card .brand-logo{width:56px;height:46px}
 .login-card .brand strong{font-size:20px}
 .login-card .brand small{font-size:8px;letter-spacing:1.3px}
 .login-heading{padding-top:24px;margin-top:24px}
 .login-heading h1{font-size:24px;margin-bottom:24px}
 .login-stage .app-footer{padding:15px 18px 18px}
 .login-stage .app-footer .beian{flex-direction:column;align-items:center;gap:0}
}
@media(prefers-reduced-motion:reduce){
 .login-card input,.login-card .login-submit{transition:none}
}
