:root { --login-bg: #f5f7fa; --login-card: #fff; --login-line: #dfe5ec; --login-text: #1f2d3d; --login-muted: #7b8794; --login-primary: #297bff; }
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--login-bg); color: var(--login-text); font: 14px/1.5 "Microsoft YaHei", "PingFang SC", Helvetica, Arial, sans-serif; }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-card { width: min(420px, 100%); padding: 34px; border: 1px solid var(--login-line); border-radius: 6px; background: var(--login-card); box-shadow: 0 12px 32px rgba(31,45,61,.10); }
.login-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; }
.login-mark { width: 48px; height: 48px; flex: 0 0 48px; display: grid; place-items: center; overflow: hidden; border-radius: 10px; background: var(--login-primary); color: #fff; font-size: 20px; font-weight: 600; }
.login-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.login-brand strong { display: block; font-size: 18px; }
.login-brand span { display: block; margin-top: 2px; color: var(--login-muted); font-size: 11px; letter-spacing: 1px; }
.login-card h1 { margin: 0 0 6px; font-size: 22px; font-weight: 600; }
.login-card p { margin: 0 0 24px; color: var(--login-muted); }
.login-field { display: block; margin-bottom: 16px; color: #526170; font-weight: 500; }
.login-field input { width: 100%; margin-top: 7px; padding: 11px 12px; border: 1px solid #d5dde6; border-radius: 4px; background: #fff; color: var(--login-text); }
.login-field input:focus { outline: none; border-color: var(--login-primary); box-shadow: 0 0 0 2px rgba(41,123,255,.22); }
.login-submit { width: 100%; margin-top: 8px; padding: 11px 14px; border: 1px solid var(--login-primary); border-radius: 4px; background: var(--login-primary); color: #fff; font-weight: 600; }
.login-submit:hover { background: #1960d1; }
.login-submit:disabled { cursor: wait; opacity: .65; }
.login-foot { margin-top: 24px; color: var(--login-muted); font-size: 12px; text-align: center; }

/* The full admin stylesheet is shared with authenticated pages. Keep the
   unauthenticated screen's sizing isolated so global page rules cannot make
   the logo or form overflow the login card. */
.admin-login-page { min-height: 100vh; overflow-x: hidden; }
.admin-login-page .login-shell { width: 100%; min-height: 100vh; }
.admin-login-page .login-card { position: relative; overflow: hidden; }
.admin-login-page .login-brand { min-height: 48px; }
.admin-login-page .login-field input { display: block; min-height: 46px; font-size: 16px; }
.admin-login-page .login-submit { min-height: 46px; cursor: pointer; font-size: 16px; }
