/* ============================================================
   login.css — 登录/注册页 UI 2026-08-05 全新设计
   保留全部既有 class 名
   ============================================================ */
/* 表单页内容区垂直居中（2026-08-07） */
/* 2026-08-09 排除 .bgB 弹层：否则 .bgB{display:none} 被覆盖，会员到期弹层一打开就强制显示 */
body > div:not(#toper):not(#footer):not(.bgB){
  min-height:calc(100vh - 5.6rem);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem 0 8rem;
  box-sizing:border-box;
}
body > div:not(#toper):not(#footer) fieldset{
  margin:0 auto;
}
fieldset{
  width:min(440px,92vw);
  margin:4rem auto;
  background:#fff;
  border:1px solid #dfe5ee;
  border-radius:12px;
  box-shadow:0 8px 30px rgba(20,40,80,.1);
  padding:2.4rem 2rem 2.8rem;
}
legend{
  font-weight:600;
  font-size:1.8rem;
  color:#1558b0;
  padding:0 1rem;
}
p{
  height:auto;
  line-height:2.4rem;
  margin:1rem auto 0;
  width:100%;
  display:flex;
  align-items:center;
  gap:.8rem;
}
.pline{
  border-bottom:1px solid #f0f3f8;
  padding-bottom:.8rem;
}
.label{
  float:none;
  width:26%;
  margin-left:0;
  font-size:1.5rem;
  line-height:2.4rem;
  color:#5a6b82;
  text-align:justify;
  text-align-last:justify;
  -webkit-text-align-last:justify;
  display:block;
  flex:none;
}
.pline input{
  width:100%;
  flex:1;
  height:3.8rem;
  line-height:3.8rem;
  font-size:1.5rem;
  border:1px solid #cfd8e4;
  border-radius:8px;
  text-align:left;
  margin-left:0;
  padding:0 1.2rem;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.pline input:focus{
  outline:none;
  border-color:#1a73e8;
  box-shadow:0 0 0 3px rgba(26,115,232,.15);
}
.pline button{
  width:100%;
  flex:1;
  height:3.8rem;
  line-height:3.8rem;
  font-size:1.5rem;
  border:1px solid #cfd8e4;
  border-radius:8px;
  text-align:center;
  margin-left:0;
  background:#fff;
  color:#1558b0;
  cursor:pointer;
  transition:all .18s ease;
}
.pline button:hover{
  border-color:#1a73e8;
  background:#e8f0fe;
}
.cb{
  width:100%;
  margin-left:0;
  margin-top:1.2rem;
  height:4.2rem;
  line-height:4.2rem;
  font-size:1.6rem;
  text-align:center;
  border-radius:8px;
  cursor:pointer;
}
button.cb{
  border:1px solid #1a73e8;
  background:#1a73e8;
  color:#fff;
  font-weight:600;
  letter-spacing:.3em;
  transition:all .18s ease;
}
button.cb:hover{
  background:#1558b0;
  border-color:#1558b0;
  box-shadow:0 4px 14px rgba(26,115,232,.35);
}
a.cb{
  display:block;
  border:1px solid #1a73e8;
  background:#fff;
  color:#1a73e8;
  line-height:3rem;
  border-radius:8px;
  text-decoration:none;
}
i{
  font-size:1.4rem;
  color:#e64340;
  font-style:normal;
}
#result{ width:100%; }
.reg{
  height:3rem;
  line-height:3rem;
  color:#5a6b82;
  font-size:1.4rem;
}
#years{
  margin-left:13%;
  width:20%;
}
span.refresh{
  float:right;
  font-size:1.2rem;
}
img#codeimg{
  float:right;
  height:3.6rem;
  border-radius:6px;
  border:1px solid #dfe5ee;
}
input#codeing, input#smsCode{
  width:50%;
}
/* 2026-08-09 验证码行：PC 输入框弹性占满完整显示；刷新提示+验证码图包成 .codegroup 一组靠右；移动端换行后整组仍靠右对齐 */
.pline:has(input#codeing){
  flex-wrap:wrap;
}
.pline:has(input#codeing) input#codeing{
  width:auto;
  flex:1 1 auto;
  min-width:11rem;
}
.pline:has(input#codeing) .codegroup{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  margin-left:auto;
  flex:none;
  white-space:nowrap;
}
.pline:has(input#codeing) span.refresh{
  float:none;
  white-space:nowrap;
}
.pline:has(input#codeing) img#codeimg{
  float:none;
  height:3.6rem;
}
/* PC 端一行：隐藏冗余的刷新提示文字（图片可点，title 提示），输入框+图同行完整显示 */
@media only screen and (min-width:768px){
  .pline:has(input#codeing) span.refresh{
    display:none;
  }
}
input#getCode{
  width:40%;
  margin-right:0;
  border:1px solid #1a73e8;
  background:#fff;
  color:#1a73e8;
  font-size:1.3rem;
  border-radius:6px;
  cursor:pointer;
}
p#payType{
  border:0;
}
p#payType input{
  width:15px;
  margin-left:2rem;
}
p#payType label img{
  height:3rem;
  float:left;
}
select#vip, select#years, select#new_vip{
  width:20%;
  margin-left:25%;
  height:3.4rem;
  line-height:3.4rem;
  border:1px solid #cfd8e4;
  border-radius:6px;
  text-align:center;
  background:#fff;
  font-size:1.4rem;
}

@media only screen and (max-width:767px){
  fieldset{
    width:92vw;
    margin:2rem auto;
    padding:1.8rem 1.4rem 2.2rem;
  }
  /* 2026-08-07：验证码行允许换行，输入框不被图挤窄 */
  .pline{
    flex-wrap:wrap;
  }
  input#codeing, input#smsCode{
    width:55%;
    flex:1 1 55%;
    min-width:14rem;
  }
  p#payType{
    height:auto;
  }
  p#payType label{
    float:left;
    margin-right:5%;
  }
  p#payType label#apay{
    float:left;
    margin-top:2rem;
    margin-left:35%;
  }
}
