:root{--color-primary:#2b5cff;--color-primary-dark:#1d44d8;--color-primary-light:#eef2ff;--color-accent:#00c2a8;--gradient-brand:linear-gradient(135deg, #2b5cff, #00c2a8);--gradient-brand-deep:linear-gradient(135deg, #1d44d8, #0e7c8c);--color-ink:#0f172a;--color-text:#334155;--color-muted:#5b6b82;--color-border:#e2e8f0;--color-bg:#fff;--color-bg-soft:#f6f8fc;--color-bg-dark:#0b1533;--color-success:#15803d;--color-success-bg:#f0fdf4;--color-warning:#b45309;--color-danger:#dc2626;--color-danger-text:#b91c1c;--color-danger-bg:#fef2f2;--radius-control:8px;--radius-card:16px;--shadow-card:0 4px 24px #0f172a0f;--shadow-card-hover:0 8px 32px #0f172a1a;--content-width:1200px;--font-zh-cn:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-zh-hk:-apple-system, BlinkMacSystemFont, "PingFang HK", "Microsoft JhengHei", "Noto Sans HK", sans-serif;--font-en:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}:root:lang(zh-CN){--font-body:var(--font-zh-cn)}:root:lang(zh-HK){--font-body:var(--font-zh-hk)}:root:lang(en){--font-body:var(--font-en)}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.7}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:lang(zh-CN) :is(h1,.login-slogan),:lang(zh-HK) :is(h1,.login-slogan){word-break:keep-all;overflow-wrap:anywhere}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login{grid-template-columns:45% 1fr;min-height:100dvh;display:grid}.login-brand{color:#fff;background:var(--gradient-brand-deep);flex-direction:column;padding:48px 64px;display:flex;position:relative;overflow:hidden}.login-brand-logo{width:180px;height:auto}.login-slogan{letter-spacing:.02em;margin:96px 0 0;font-size:32px;font-weight:700;line-height:1.3}.login-points{gap:16px;margin:40px 0 0;padding:0;font-size:18px;list-style:none;display:grid}.login-points li{align-items:center;gap:12px;display:flex}.login-art{align-self:flex-end;width:min(360px,80%);height:auto;margin-top:auto}.login-main{flex-direction:column;padding:24px 48px;display:flex}.login-topbar{justify-content:flex-end;align-items:center;gap:16px;display:flex}.login-mobile-logo{width:auto;height:40px;display:none}.login-topbar-actions{align-items:center;gap:20px;font-size:14px;display:flex}.login-locale{font:inherit;color:var(--color-text);background:var(--color-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%235b6b82' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 8px center / 12px;border:1px solid var(--color-border);border-radius:var(--radius-control);appearance:none;cursor:pointer;padding:6px 28px 6px 10px}.login-back,.login-contact a{color:var(--color-primary);text-decoration:none}.login-back:hover,.login-contact a:hover{color:var(--color-primary-dark);text-decoration:underline}.login-card{width:100%;max-width:400px;margin:auto;padding:48px 0}.login-card h1{color:var(--color-ink);margin:0;font-size:30px;line-height:1.3}.login-subtitle{color:var(--color-muted);margin:8px 0 32px}.login-notice{border-radius:var(--radius-control);margin-bottom:24px;padding:12px 16px;font-size:14px}.login-notice.is-success{color:var(--color-success);background:var(--color-success-bg);border:1px solid #bbf7d0}.login-notice.is-error{color:var(--color-danger-text);background:var(--color-danger-bg);border:1px solid #fecaca}.field{margin-bottom:20px}.field label{color:var(--color-ink);margin-bottom:6px;font-size:14px;font-weight:600;display:block}.field input{width:100%;height:48px;font:inherit;color:var(--color-ink);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-control);padding:0 14px;transition:border-color .15s,box-shadow .15s;display:block}.field input::placeholder{color:var(--color-muted)}.field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.field input[aria-invalid=true]{border-color:var(--color-danger)}.field input[aria-invalid=true]:focus{box-shadow:0 0 0 3px var(--color-danger-bg)}.field input[readonly]{background:var(--color-bg-soft)}.field-error{color:var(--color-danger-text);margin:6px 0 0;font-size:14px}.password-wrap{position:relative}.password-wrap input{padding-right:48px}.password-toggle{width:40px;height:40px;color:var(--color-muted);border-radius:var(--radius-control);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-toggle:hover{color:var(--color-ink)}.login-submit{width:100%;height:48px;font:inherit;color:#fff;background:var(--color-primary);border-radius:var(--radius-control);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;margin-top:8px;font-weight:600;transition:background-color .15s;display:flex}.login-submit:hover:not(:disabled){background:var(--color-primary-dark)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-contact{text-align:center;color:var(--color-muted);margin:24px 0 0;font-size:14px}.login-footer{text-align:center;color:var(--color-muted);font-size:13px}@media (width<=1199px){.login{grid-template-columns:36% 1fr}.login-brand{padding:40px}.login-slogan{margin-top:64px;font-size:26px}.login-points,.login-art{display:none}}@media (width<=767px){.login{display:block}.login-brand{display:none}.login-main{background:var(--color-bg-soft);min-height:100dvh;padding:16px 20px 24px}.login-topbar{justify-content:space-between}.login-mobile-logo{display:block}.login-topbar-actions{gap:12px}.login-card{background:var(--color-bg);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin:32px auto;padding:32px 24px}.login-card h1{font-size:24px}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}
