* { box-sizing:border-box; }
body { margin:0; min-height:100vh; min-height:100dvh; display:grid; place-items:center; padding:24px; background:#eef3f3; color:#263b49; font-family:system-ui,-apple-system,'Segoe UI','Microsoft YaHei',sans-serif; }
.login-card { width:100%; max-width:410px; padding:32px; background:#fff; border:1px solid #dfe7e7; border-radius:14px; box-shadow:0 12px 40px #17372a0a; }
.login-brand { display:flex; gap:11px; align-items:center; margin-bottom:28px; }.login-brand strong { display:block; font-size:22px; color:#172d3b; }.login-brand small { display:block; margin-top:3px; color:#829098; font-size:12px; }
h1 { margin:0 0 8px; font-size:23px; }.login-description { margin:0 0 24px; font-size:13px; line-height:1.6; color:#70808a; }
label { display:block; margin:16px 0 7px; font-size:13px; font-weight:600; }
input { width:100%; min-height:44px; padding:10px 12px; border:1px solid #cbd8dc; border-radius:6px; background:#fff; font:inherit; font-size:16px; color:inherit; }
input:focus-visible,button:focus-visible { outline:2px solid #19795d; outline-offset:2px; }
.login-password { position:relative; }.login-password input { padding-right:65px; }.login-password button { position:absolute; inset:1px 1px 1px auto; padding:0 14px; border:0; border-radius:5px; color:#517765; background:transparent; cursor:pointer; }
.login-submit { margin-top:24px; width:100%; min-height:44px; border:0; border-radius:6px; color:white; background:#277a61; font:inherit; font-weight:600; cursor:pointer; }.login-submit:hover { background:#1a684f; }.login-submit:disabled { opacity:.65; cursor:wait; }
.login-error { margin:14px 0 0; color:#a23626; font-size:13px; line-height:1.5; }
.login-remember { margin:16px 0 0; text-align:center; color:#548370; font-size:12px; }.login-help { margin:24px 0 0; padding-top:18px; border-top:1px solid #edf1f2; text-align:center; color:#849098; font-size:12px; }
[hidden] { display:none !important; }
@media(max-width:480px) { body { padding:16px; }.login-card { padding:26px 22px; } }
