/* 月度登录主题：所有规则限制在登录视图内。 */
#loginView {
  --login-navy: #795a27;
  --login-gold: #b28a42;
  --login-paper: #f7f2e6;
  --login-wash: #eee1c0;
  min-height: 100vh;
  min-height: 100svh;
  padding: 36px 24px;
  background: radial-gradient(ellipse at 16% 10%, var(--login-wash), transparent 62%), var(--login-paper);
}
#loginView .login-card {
  width: 100%; max-width: 1080px; min-height: clamp(688px, 69vw, 744px);
  grid-template-columns: 46% minmax(0, 1fr);
  border: 1px solid rgba(255,255,255,.9); border-radius: 22px;
  background: #fff; box-shadow: 0 28px 80px -30px rgba(42,38,27,.25);
}
#loginView .login-side {
  display: block; padding: 0; border: 0; min-height: 0; align-self: stretch;
  background: var(--login-paper); color: var(--login-navy);
}
#loginView .login-side::before, #loginView .login-side::after { content: none; }
#loginView .login-season-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
#loginView .login-season-art[hidden] { display: none; }
#loginView .login-season-mobile { display: none; }
#loginView[data-art-error] .login-season-mobile { display: flex; position: absolute; inset: 0; padding: 40px; flex-direction: column; justify-content: center; text-align: left; }
#loginView .login-season-mobile h2 { margin: 0 0 18px; font-size: 34px; font-weight: 600; letter-spacing: 2px; }
#loginView .login-season-mobile > p:last-child { margin: 0; max-width: 340px; font-size: 16px; line-height: 1.9; }
#loginView .login-form { padding: 40px 54px 28px; }
#loginView .login-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 32px; }
#loginView .login-brand img { flex: 0 0 38px; object-fit: contain; }
#loginView .login-brand h1 { margin: 0; font-family: 'PangMenCu','PingFang SC',sans-serif; color: #1b3b57; font-size: 28px; font-weight: 400; line-height: 1.2; letter-spacing: 2px; }
#loginView .login-brand div > span { display: block; margin-top: 4px; color: #657584; font-size: 10px; letter-spacing: 1px; }
#loginView .login-edition { margin-left: auto; padding-left: 8px; color: var(--login-navy); font-size: 10px; letter-spacing: 1px; white-space: nowrap; }
#loginView .lf-head h2 { margin: 0; color: #213449; font-size: 31px; font-weight: 600; line-height: 1.4; letter-spacing: 1px; }
#loginView .lf-head h2 span { margin-left: 4px; color: var(--login-gold); }
#loginView .lf-head > p { margin: 8px 0 0; color: #637587; font-size: 13px; line-height: 1.7; }
#loginView .tabs { gap: 0; margin: 25px 0 22px; padding: 0; background: transparent; border-radius: 0; border-bottom: 1px solid #e6ebef; }
#loginView .tab { position: relative; min-height: 44px; padding: 0 0 13px; border: 0; border-radius: 0; color: #627586; background: transparent; font-size: 13px; font-weight: 400; box-shadow: none; }
#loginView .tab + .tab { margin-left: 17px; }
#loginView .tab::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: transparent; }
#loginView .tab.active { color: var(--login-navy); background: transparent; font-weight: 600; box-shadow: none; }
#loginView .tab.active::after { background: var(--login-navy); }
#loginView .tab:hover { color: var(--login-navy); }
#loginView label { margin: 0 0 9px; color: #3f5366; font-size: 13px; font-weight: 500; }
#loginView input { height: 49px; margin: 0 0 21px; padding: 12px 15px; border: 1px solid #dce3e9; border-radius: 8px; background: #fcfdfe; color: #253e55; font-size: 14px; line-height: 1.4; }
#loginView input::placeholder { color: #637587; opacity: 1; }
#loginView input:hover { border-color: #b7c6d1; }
#loginView input:focus { border-color: var(--login-navy); background: #fff; outline: 2px solid var(--login-wash); outline-offset: 1px; box-shadow: none; }
#loginView .code-row { gap: 10px; }
#loginView .code-row input { width: 0; }
#loginView .code-row .btn { height: 49px; flex-basis: 112px; padding: 0 10px; border-color: #dce3e9; border-radius: 8px; background: var(--login-paper); color: var(--login-navy); font-size: 12px; }
#loginView .code-row .btn:hover { border-color: var(--login-navy); }
#loginView .btn.primary { display: flex; align-items: center; justify-content: center; gap: 15px; height: 49px; margin-top: 3px; border: 1px solid var(--login-navy); border-radius: 8px; background: var(--login-navy); color: #fff; font-size: 14px; font-weight: 500; box-shadow: none; }
#loginView .btn.primary::after { content: ''; width: 6px; height: 6px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); opacity: .75; }
#loginView .btn.primary:hover { filter: brightness(.92); }
#loginView .btn:disabled { cursor: not-allowed; opacity: .55; box-shadow: none; }
#loginView .tab:focus-visible, #loginView .btn:focus-visible { outline: 3px solid var(--login-gold); outline-offset: 4px; }
#loginView .hint { min-height: 42px; margin: 15px 0 0; color: #647788; font-size: 11px; line-height: 1.9; }
#loginView #loginMsg { min-height: 21px; margin: 9px 0 0; font-size: 12px; line-height: 1.75; }
#loginView .remember-row { display: flex; align-items: center; gap: 8px; margin: 2px 0 0; color: #4a5f72; font-size: 12px; cursor: pointer; user-select: none; }
#loginView .remember-row input { width: 15px; height: 15px; margin: 0; padding: 0; border: 1px solid #c3d0da; border-radius: 3px; background: #fff; accent-color: var(--login-navy); cursor: pointer; box-shadow: none; }
#loginView .remember-row span { line-height: 1.6; }
#loginView .login-form-footer { margin-top: auto; padding-top: 20px; }
#loginView .login-internal { display: flex; align-items: center; justify-content: center; gap: 5px; margin: 0; color: #657888; font-size: 11px; letter-spacing: .4px; }
#loginView .login-internal svg { width: 17px; height: 17px; }
#loginView .lf-foot { display: block; margin: 5px 0 0; padding: 0; color: #657888; font-size: 10px; letter-spacing: .5px; }
@media (min-width: 1600px) {
  #loginView .login-card { max-width: 1140px; min-height: 786px; }
  #loginView .login-form { padding: 54px 64px 32px; }
  #loginView .login-brand { margin-bottom: 40px; }
}
@media (max-width: 1000px) and (min-width: 901px) {
  #loginView { padding: 24px 20px; }
  #loginView .login-card { grid-template-columns: 44% minmax(0,1fr); }
  #loginView .login-form { padding: 30px 32px 24px; }
  #loginView .login-brand { margin-bottom: 25px; }
  #loginView .login-edition { font-size: 9px; letter-spacing: 0; }
}
@media (max-width: 900px) {
  #loginView { align-items: flex-start; padding: 20px 16px; }
  #loginView .login-card { display: block; max-width: 460px; min-height: 0; border-radius: 18px; }
  #loginView .login-side { min-height: 0; height: auto; aspect-ratio: 2 / 3; padding: 0; text-align: left; }
  #loginView .login-season-art { position: static; display: block; width: 100%; height: auto; border-radius: 0; box-shadow: none; }
  #loginView .login-season-art[hidden] { display: none; }
  #loginView .login-season-mobile { display: none; }
  #loginView[data-art-error] .login-season-mobile { display: flex; width: 100%; height: 100%; padding: 28px; }
  #loginView .login-season-mobile h2 { font-size: 28px; }
  #loginView .login-form { padding: 27px 27px 22px; }
  #loginView .login-brand { margin-bottom: 24px; gap: 8px; }
  #loginView .login-brand img { width: 32px; height: 32px; flex-basis: 32px; }
  #loginView .login-brand h1 { font-size: 25px; }
  #loginView .login-brand div > span { font-size: 9px; }
  #loginView .login-edition { font-size: 9px; letter-spacing: .3px; }
  #loginView .lf-head h2 { font-size: 25px; }
  #loginView .lf-head > p { margin-top: 7px; font-size: 12px; }
  #loginView .tabs { margin: 21px 0; }
  #loginView .tab { font-size: 12px; min-height: 42px; padding-bottom: 12px; }
  #loginView .tab + .tab { margin-left: 8px; }
  #loginView input { height: 48px; font-size: 16px; margin-bottom: 20px; padding: 11px 13px; }
  #loginView .code-row .btn { height: 48px; flex-basis: 102px; font-size: 11px; }
  #loginView .btn.primary { height: 48px; }
  #loginView .login-form-footer { padding-top: 16px; }
}
@media (max-width: 360px) {
  #loginView { padding: 12px 10px; }
  #loginView .login-form { padding-right: 21px; padding-left: 21px; }
  #loginView .login-edition { letter-spacing: 0; font-size: 8px; }
  #loginView .code-row { gap: 7px; }
  #loginView .code-row .btn { flex-basis: 94px; padding: 0 7px; }
}
