/* ============================================================
   auth.css — 门户注册/登录/找回密码 统一样式
   风格基准:首页 public.css/style.css,主色 #0ca29e(学术会议云)
   ============================================================ */
* { margin:0; padding:0; box-sizing:border-box; }
html, body { min-height:100%; }
body.auth-body {
  font-family:"Microsoft YaHei","PingFang SC","Segoe UI",Arial,sans-serif;
  color:#333;
  background:#f2f7f7;
  background:linear-gradient(180deg,#e8f4f3 0%,#f2f7f7 240px,#f6f8f8 100%);
  font-size:14px;
}

/* ---------- 顶部品牌条(同首页头部白底风格) ---------- */
.auth-top {
  background:#fff;
  border-bottom:1px solid #e5eeee;
  box-shadow:0 1px 6px rgba(12,162,158,.06);
}
.auth-top-in {
  max-width:1100px; margin:0 auto; padding:14px 20px;
  display:flex; align-items:center; justify-content:space-between;
}
.auth-top .logo { display:inline-flex; align-items:center; }   /* 与首页 .p-logo 一致 */
.auth-top .logo img { height:58px; vertical-align:middle; }
.auth-top .logo .logo-txt {
  display:inline-block; vertical-align:middle; margin-left:10px;
  font-size:15px; color:#0ca29e; font-weight:600; letter-spacing:1px;
  border-left:1px solid #d8e6e5; padding-left:10px;
}
.auth-top a.backhome {
  font-size:13px; color:#666; text-decoration:none;
}
.auth-top a.backhome:hover { color:#0ca29e; }

/* ---------- 主体区域 ---------- */
.auth-main {
  max-width:1100px; margin:0 auto; padding:44px 16px 30px;
  display:flex; justify-content:center;
}
.auth-main.wide { display:block; }

/* ---------- 卡片 ---------- */
.auth-card {
  width:100%; max-width:430px;
  background:#fff; border-radius:10px;
  border:1px solid #e3eded;
  box-shadow:0 8px 30px rgba(13,80,78,.10);
  padding:34px 38px 28px;
}
.auth-card.lg { max-width:680px; }

.auth-title { font-size:20px; color:#222; font-weight:700; text-align:center; }
.auth-title em { font-style:normal; color:#0ca29e; }
.auth-sub {
  text-align:center; font-size:13px; color:#8a9a99;
  margin:8px 0 24px; line-height:1.7;
}

/* ---------- 表单 ---------- */
.auth-form { width:100%; }
.auth-field { margin-bottom:16px; }
.auth-label {
  display:block; font-size:13px; color:#556; margin-bottom:6px; font-weight:500;
}
.auth-input {
  width:100%; height:44px; padding:0 13px;
  font-size:14px; color:#333;
  border:1px solid #d5e2e1; border-radius:6px; outline:none;
  background:#fbfdfd;
  transition:border-color .2s, box-shadow .2s, background .2s;
  font-family:inherit;
}
.auth-input::placeholder { color:#b4c2c1; }
.auth-input:focus {
  border-color:#0ca29e; background:#fff;
  box-shadow:0 0 0 3px rgba(12,162,158,.12);
}
.auth-input[readonly] { background:#f2f6f6; color:#889; }

/* 校验提示 span(由 detect.v2.js 写入) */
.auth-field .hint,
.auth-hint {
  display:block; min-height:20px; margin-top:4px;
  font-size:12px; color:#1a9c98;
}
.auth-hint img { vertical-align:-2px; margin-right:2px; }

/* ---------- 验证码行 ---------- */
.auth-captcha { display:flex; gap:10px; align-items:center; }
.auth-captcha .auth-input { flex:1; min-width:0; }
.auth-captcha img {
  height:44px; min-width:110px; border-radius:6px; cursor:pointer;
  border:1px solid #d5e2e1; background:#fff; object-fit:cover;
}
.auth-captcha .refresh {
  font-size:12.5px; color:#0ca29e; text-decoration:none; white-space:nowrap;
}
.auth-captcha .refresh:hover { text-decoration:underline; }

/* 短信/邮箱验证码行:输入 + 获取按钮 */
.auth-code-row { display:flex; gap:10px; }
.auth-code-row .auth-input { flex:1; min-width:0; }
.auth-btn-code {
  height:44px; padding:0 16px; white-space:nowrap;
  border:1px solid #0ca29e; border-radius:6px; cursor:pointer;
  background:#fff; color:#0ca29e; font-size:13.5px;
  transition:background .2s, color .2s;
  font-family:inherit;
}
.auth-btn-code:hover { background:rgba(12,162,158,.06); }
.auth-btn-code[disabled] {
  border-color:#c5d6d5; color:#9ab; cursor:not-allowed; background:#f6fafa;
}

/* ---------- 按钮 ---------- */
.auth-btn {
  display:inline-block; width:100%; height:46px;
  border:none; border-radius:6px; cursor:pointer;
  background:linear-gradient(135deg,#12b3af,#0ca29e);
  color:#fff !important; font-size:16px; font-weight:600; letter-spacing:4px; text-indent:4px;
  box-shadow:0 6px 16px rgba(12,162,158,.30);
  transition:transform .15s, box-shadow .15s, filter .15s;
  text-decoration:none; text-align:center; line-height:46px;
  font-family:inherit;
}
.auth-btn:hover  { transform:translateY(-1px); box-shadow:0 9px 20px rgba(12,162,158,.38); filter:brightness(1.04); }
.auth-btn:active { transform:translateY(0); filter:brightness(.95); }
.auth-btn[disabled] {
  background:#c2d8d7; box-shadow:none; cursor:not-allowed; transform:none; filter:none;
}
.auth-btn.ghost {
  background:#fff; color:#0ca29e !important; border:1px solid #0ca29e; box-shadow:none;
}
.auth-btn.ghost:hover { background:rgba(12,162,158,.05); box-shadow:none; }
.auth-btn.sm { width:auto; height:38px; line-height:38px; padding:0 18px; font-size:14px; letter-spacing:1px; text-indent:1px; }

/* ---------- 按钮下链接行 ---------- */
.auth-links {
  margin-top:16px; font-size:13px; color:#789; line-height:2;
  text-align:center;
}
.auth-links a { color:#0ca29e; text-decoration:none; }
.auth-links a:hover { text-decoration:underline; }
.auth-links .sep { color:#d5e0df; margin:0 6px; }
.auth-links .strong-link { font-weight:600; }

/* ---------- 协议勾选 ---------- */
.auth-agree {
  margin:4px 0 14px; padding:12px 14px;
  background:#f4fafa; border:1px solid #e0efee; border-radius:6px;
  font-size:12.5px; color:#667; line-height:1.9;
}
.auth-agree input[type=checkbox] {
  width:15px; height:15px; vertical-align:-3px; margin-right:5px; accent-color:#0ca29e;
}
.auth-agree a { color:#0ca29e; text-decoration:none; }
.auth-agree a:hover { text-decoration:underline; }
.auth-agree .must { color:#e64c3c; }

/* ---------- 提示块 ---------- */
.auth-note {
  margin-top:14px; padding:10px 14px;
  background:#fdf7ee; border:1px solid #f2e6d4; border-radius:6px;
  font-size:12.5px; color:#9a7d4f; line-height:1.9;
}
.auth-note a { color:#0ca29e; text-decoration:none; }
.auth-note a:hover { text-decoration:underline; }

/* ---------- 微信登录分隔线 ---------- */
.auth-divider {
  display:flex; align-items:center; gap:12px;
  margin:20px 0 14px; color:#a8b8b7; font-size:12px;
}
.auth-divider::before, .auth-divider::after {
  content:""; flex:1; height:1px; background:#e4eeed;
}

/* ---------- 二维码 ---------- */
.auth-qrcode { margin-top:26px; text-align:center; }
.auth-qrcode img { width:110px; height:110px; border-radius:8px; border:1px solid #e5eeee; }
.auth-qrcode p { margin-top:8px; font-size:12px; color:#9aabaa; line-height:1.8; }

/* ---------- 身份选择卡(reg03s) ---------- */
.auth-choose { max-width:760px; margin:0 auto; width:100%; }
.auth-choose-grid {
  display:flex; gap:22px; margin-top:6px;
}
.auth-choose-item {
  flex:1; display:block; background:#fff;
  border:1.5px solid #e3eded; border-radius:12px;
  padding:32px 26px 26px; text-decoration:none; text-align:center;
  box-shadow:0 4px 16px rgba(13,80,78,.06);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.auth-choose-item:hover {
  transform:translateY(-4px);
  border-color:#0ca29e;
  box-shadow:0 14px 30px rgba(12,162,158,.16);
}
.auth-choose-item .ic {
  width:62px; height:62px; margin:0 auto 14px; border-radius:14px;
  background:linear-gradient(135deg,#12b3af,#0ca29e);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 18px rgba(12,162,158,.28);
}
.auth-choose-item .ic svg { width:32px; height:32px; fill:#fff; }
.auth-choose-item h3 { font-size:17px; color:#222; margin-bottom:8px; }
.auth-choose-item p  { font-size:12.5px; color:#8a9a99; line-height:1.8; }
.auth-choose-item .go {
  display:inline-block; margin-top:14px; font-size:13px; color:#0ca29e; font-weight:600;
}

/* ---------- 页脚 ---------- */
.auth-footer {
  text-align:center; padding:16px 10px 26px;
  font-size:12px; color:#a5b5b4; line-height:2;
}

/* ---------- 响应式 ---------- */
@media (max-width:560px) {
  .auth-card { padding:26px 20px 22px; }
  .auth-main { padding-top:22px; }
  .auth-choose-grid { flex-direction:column; }
  .auth-top .logo img { height:44px; }   /* 与首页移动端一致 */
  .auth-top .logo .logo-txt { display:none; }
}
