/* 页面专属：index · 由 scripts/gen/gen-css-split.js 生成（★r1310），改规则请改生成器输入侧后重生成 */
.login-shell {
  position: relative;
  isolation: isolate;
  min-height: 100vh; /* ★r1381e R74 dvh 兜底 */
  min-height: 100dvh;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390px, 440px);
  align-items: center;
  gap: clamp(36px, 6vw, 110px);
  padding: clamp(24px, 4vw, 58px) clamp(28px, 7vw, 110px);
  overflow: hidden;
}
.login-field { min-height: 0; align-self: start; }
.login-field label { margin: 0 0 8px; color: var(--login-text); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
/* 密码框右侧给切换按钮留出点击空间，避免文字被遮挡 */
#password { padding-right: 42px; }
.login-captcha-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.login-captcha-head h2 { margin: 0; color: #21130f; font-size: 14px; line-height: 1.35; }
.login-captcha-head p { margin: 3px 0 0; color: rgba(33, 19, 15, .7); font-size: 11px; line-height: 1.4; }
.login-captcha-image { min-height: 56px; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px solid rgba(61, 48, 43, .34); border-radius: 7px; color: #8c1e08; background: #f6efe8; font-size: 14px; font-weight: 800; }
.login-captcha-image svg { display: block; width: 100%; height: 56px; }
.login-captcha-image img { display: block; height: 56px; width: auto; max-width: 100%; object-fit: contain; }
.login-error { min-height: 0; margin: -6px 0 -6px; color: #b42318; font-size: 12px; font-weight: 700; line-height: 1.5; }
.login-error:empty { display: none; }
@media (max-width: 900px) {
.login-shell { grid-template-columns: 1fr; justify-items: center; padding-inline: clamp(22px, 6vw, 54px); }
}
@media (max-width: 560px) {
.login-shell { align-items: center; justify-items: center; padding: 18px 14px 40px; }
.login-captcha-image, .login-captcha-image svg, .login-captcha-image img { min-height: 54px; height: 54px; }
}
