@charset "UTF-8";

/*----------------------------------------*/
/*  Account (登录 / 注册)
/*----------------------------------------*/
main {
  background: #000 url(../images/member/authpagebg.jpg) center center no-repeat;
  background-size: cover;
}

footer {
  padding-top: 0px;
  background: none;
  height: auto;
}

footer .copyRight {
  height: 120px;
}

.authPage {
  min-height: calc(100vh - 120px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 140px 0 80px;
  position: relative;
  /* background-image: radial-gradient(ellipse at 18% 18%, rgba(0, 198, 241, 0.16), transparent 50%), radial-gradient(ellipse at 82% 82%, rgba(17, 49, 132, 0.38), transparent 55%); */
}

.authPage .container {
  max-width: 78%;
  display: flex;
  justify-content: center;
}

.authCard {
  display: flex;
  align-items: stretch;
  width: 960px;
  max-width: 100%;
  padding: 0;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  background: rgba(0, 0, 0, 0.1);
}

.authCard .authBanner {
  flex: 0 0 440px;
  position: relative;
  overflow: hidden;
}

.authCard .authBanner img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.authCard .authBody {
  flex: 1;
  padding: 48px 46px 40px;
}

.authCard .authLogo {
  text-align: center;
  margin-bottom: 34px;
}

.authCard .authLogo img {
  width: 168px;
  height: auto;
}

.authCard .authHead {
  text-align: center;
  margin-bottom: 30px;
}

.authCard .authHead h1 {
  font-size: 28px;
  font-weight: bold;
  color: #fff;
  margin-bottom: 10px;
}

.authCard .authHead p {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.55);
}

#regForm .form-item {
  position: relative;
}

#regForm .form-item::before {
  content: '*';
  position: absolute;
  left: 12px;
  top: 14px;
  color: #ff0000;
  font-size: 18px;
  line-height: 1;
  z-index: 2;
  pointer-events: none;
}

#regForm .form-item input {
  padding-left: 24px;
}

/* 被栏目阅读权限拦下来到登录页时的提示条（见 users_login.htm） */
.authCard .loginNotice {
  margin-bottom: 24px;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid rgba(0, 198, 241, 0.35);
  background: rgba(0, 198, 241, 0.1);
  font-size: 14px;
  line-height: 20px;
  color: #d7f4ff;
}

/*登录 Tab 切换*/
.authTabs {
  display: flex;
  margin-bottom: 32px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.authTabs a {
  flex: 1;
  text-align: center;
  padding: 14px 0;
  font-size: 16px;
  color: rgba(255, 255, 255, 0.55);
  position: relative;
}

.authTabs a:hover {
  color: #fff;
}

.authTabs a.on {
  color: #fff;
}

.authTabs a.on:after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -1px;
  width: 44px;
  height: 2px;
  transform: translateX(-50%);
  background: linear-gradient(93.37deg, #00c6f1 2.92%, #113184 92.55%);
}

.authForm .form-item {
  margin-bottom: 26px;
}

.authForm .form-item>label {
  display: block;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 8px;
}

.authForm .form-item input {
  width: 100%;
  height: 46px;
  display: flex;
  padding-left: 12px;
  border-radius: 6px;
  background: none;
  border: none;
  border: 1px solid rgba(255, 255, 255, 0.6);
  color: #fff;
  position: relative;
  font-size: 16px;
}


.authForm .form-item input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

.authForm .form-item input:focus {
  border-bottom-color: #00c6f1;
}

.authForm .form-item.has-error input {
  border-bottom-color: #ff5c5c;
}

.authForm .form-item .err-tip {
  display: none;
  font-size: 12px;
  color: #ff5c5c;
  margin-top: 6px;
}

.authForm .form-item.has-error .err-tip {
  display: block;
}

.authForm .codeRow {
  display: flex;
  align-items: flex-end;
  gap: 12px;
}

.authForm .codeRow .form-item {
  flex: 1;
}

.authForm .codeRow .codeBtn {
  height: 44px;
  padding: 0 18px;
  margin-bottom: 26px;
  border-radius: 6px;
  border: 1px solid #060F2A;
  background: rgba(0, 198, 241, 0.12);
  color: #00C5F0;
  font-size: 14px;
  white-space: nowrap;
  cursor: pointer;
}

.authForm .codeRow .codeBtn:hover {
  background: rgba(0, 198, 241, 0.22);
}

.authForm .codeRow .codeBtn.disabled {
  color: rgba(255, 255, 255, 0.4);
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
  cursor: not-allowed;
}

.authForm .codeRow .captchaImg {
  height: 46px;
  width: auto;
  margin-bottom: 26px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  cursor: pointer;
  display: block;
}

.authForm .formMsg {
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 20px;
  color: #ff5c5c;
}

.authForm .formMsg.show {
  display: block;
}

.authForm .form-extra {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 26px;
}

.authForm .form-extra label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
}

.authForm .form-extra label input {
  width: 16px;
  height: 16px;
  accent-color: #00c6f1;
}

.authForm .form-extra a {
  font-size: 14px;
  color: #00c6f1;
}

.authForm .agreeRow {
  margin-top: 20px;
  font-size: 15px;
  line-height: 20px;
  color: rgba(255, 255, 255, 1);
}

.authForm .agreeRow input {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: #00c6f1;
}

.authForm .agreeRow a {
  color: #00c6f1;
}

.authSubmit {
  width: 100%;
  height: 48px;
  border-radius: 6px;
  border: none;
  background: linear-gradient(93.37deg, #00c6f1 2.92%, #113184 92.55%);
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  cursor: pointer;
  margin-top: 8px;
}

.authSubmit:hover {
  opacity: 0.9;
}

.authSwitch {
  text-align: center;
  margin-top: 24px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.55);
}

.authSwitch a {
  color: #00c6f1;
}

@media only screen and (max-width: 820px) {
  .authPage {
    padding: 120px 0 60px;
  }

  .authCard {
    width: 480px;
  }

  .authCard .authBanner {
    display: none;
  }

  .authCard .authBody {
    padding: 36px 26px 32px;
  }

  .authCard .authLogo img {
    width: 140px;
  }
}

/* ==========================================================================
   认证页 layer 提示弹窗（登录失败提示 / 注册待审核提示）
   皮肤类名由 static/js/auth-dialog.js 用 layer 的 skin 选项加上：
     type:0 + skin:'authDialog' → <div class="layui-layer layui-layer-dialog authDialog">
   下面整套覆盖 layer.css 的默认白底样式（选择器都比默认多一层类，稳压）：
     默认 .layui-layer-dialog .layui-layer-content 是 padding:20px / 居中 / 14px
     默认 .layui-layer-btn a 是 32px 白底灰字，.layui-layer-btn0 是绿底 #00A67C
   ========================================================================== */
.layui-layer.authDialog {
  min-width: 0;
  background: #060F2A;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
  overflow: hidden;
  /* 内联的 width:420px 挡不住 max-width —— 窄屏自动收窄，不会横向溢出 */
  max-width: calc(100vw - 32px);
}

.layui-layer.authDialog .layui-layer-content {
  padding: 0;              /* 内边距交给 .authDialogBody，分隔线才能通栏 */
  background: none;
  color: #fff;
  font-size: 15px;
  line-height: 24px;
  text-align: left;        /* 默认是居中 */
  word-break: normal;      /* 默认 break-all 会把英文单词从中间断开 */
}

.authDialogBody {
  display: flex;
  gap: 16px;
  padding: 30px 30px 22px;
}

.authDialogIco {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  line-height: 0;
}

.authDialogMain {
  flex: 1 1 auto;
  min-width: 0;
}

.authDialogEyebrow {
  display: block;
  margin-bottom: 6px;
  font-size: 12px;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.45);
}

.authDialogTitle {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.3;
  color: #fff;
}

.authDialogText {
  margin: 0;
  font-size: 15px;
  line-height: 24px;
  color: rgba(255, 255, 255, 0.75);
  word-break: break-word;
}

/* 可选的一行补充说明 —— 要改要删都只动这一处 */
.authDialogHint {
  margin: 10px 0 0;
  padding-top: 10px;
  border-top: 1px dashed rgba(255, 255, 255, 0.12);
  font-size: 13px;
  line-height: 20px;
  color: rgba(255, 255, 255, 0.55);
}

/* 成功语气（注册已提交）：描边与 eyebrow 染成站点青，与警示态一眼可分。
   图标本身就是青色对勾（见 auth-dialog.js 的 ICON_OK），这里再补一层容器色调。 */
.layui-layer.authDialog.authDialogOk {
  border-color: rgba(0, 198, 241, 0.38);
}

.layui-layer.authDialog.authDialogOk .authDialogEyebrow {
  color: rgba(0, 198, 241, 0.85);
}

.layui-layer.authDialog .layui-layer-btn {
  padding: 0 30px 26px;
  text-align: right;
}

/* 按钮复刻 .authSubmit：同一套站点渐变 / 圆角 6px */
.layui-layer.authDialog .layui-layer-btn a,
.layui-layer.authDialog .layui-layer-btn .layui-layer-btn0 {
  height: 44px;
  line-height: 44px;
  padding: 0 28px;
  border: none;
  border-radius: 6px;
  background-color: transparent;
  background-image: linear-gradient(93.37deg, #00c6f1 2.92%, #113184 92.55%);
  color: #fff;
  font-size: 15px;
  font-weight: bold;
}

.layui-layer.authDialog .layui-layer-btn a:hover {
  opacity: 0.9;
  color: #fff;
}

/* 窄屏：收紧内边距与图标，别把内容挤成一列字 */
@media only screen and (max-width: 480px) {
  .layui-layer.authDialog {
    max-width: calc(100vw - 20px);
  }

  .authDialogBody {
    gap: 12px;
    padding: 24px 20px 18px;
  }

  .authDialogIco,
  .authDialogIco svg {
    width: 36px;
    height: 36px;
  }

  .authDialogTitle {
    font-size: 18px;
  }

  .layui-layer.authDialog .layui-layer-btn {
    padding: 0 20px 20px;
  }
}