/* ==========================================================================
   wb-login.css —— 登录页视觉还原（1:1 对齐 V1.38 原版 login-gov/hospital/doctor.html）
   说明：原版登录页 = 页内内联兜底样式 + wb.theme.css 分端覆盖（外部 link 在 <style> 之后，
        同特异性时 theme 胜）。本表按「原版最终计算样式」取值，保证转化前后视觉完全相同。
   端标识：.login-page 上挂 end-gov / end-hospital / end-doctor（由 loginPage.end 提供）。
   ========================================================================== */

.login-page { position: fixed; inset: 0; z-index: 900; }

html, body { background: #F5F7FB; }
.login-page,
.login-page body {
  font-family: "Inter", "Noto Sans SC", -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
}

.login-screen {
  position: fixed; inset: 0; z-index: 900;
  display: flex; align-items: center; justify-content: center;
  /* 政府 / 医生端（wb.theme.css 分端覆盖后的最终值） */
  background: #F5F7FB;
  background:
    radial-gradient(ellipse 60% 50% at 50% 0%, rgba(29, 78, 216, .08) 0%, rgba(0, 0, 0, 0) 64%),
    linear-gradient(180deg, #FFFFFF 0%, #F4F6FB 55%, #EEF2F9 100%);
}
/* 医院端：蓝紫主题 */
.login-page.end-hospital .login-screen {
  background: #F6F5FB;
  background:
    radial-gradient(ellipse 60% 50% at 50% 0%, rgba(79, 70, 229, .10) 0%, rgba(79, 70, 229, 0) 64%),
    linear-gradient(180deg, #FFFFFF 0%, #F5F4FB 55%, #EFEDF9 100%);
}
.login-screen::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(11, 18, 32, .032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 18, 32, .032) 1px, transparent 1px);
  background-size: 52px 52px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 0%, transparent 78%);
  mask-image: radial-gradient(ellipse at 50% 40%, #000 0%, transparent 78%);
}
.login-box {
  position: relative; z-index: 2;
  width: 400px; max-width: calc(100vw - 48px);
  background: #fff; border-radius: 20px; padding: 44px 40px 34px;
  border: 1px solid #E6EAF2;
  box-shadow: 0 24px 64px rgba(11, 18, 32, .10);
  color: #0B1220;
}
.login-box .lg { display: flex; align-items: center; gap: 14px; margin-bottom: 30px; }
.login-box .lg .logo {
  width: 50px; height: 50px; border-radius: 14px; flex: none;
  background: linear-gradient(135deg, #1E3A8A, #3B63E8);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 22px; font-weight: 800; box-shadow: 0 8px 24px rgba(29, 78, 216, .08);
}
/* 医院端：蓝紫渐变 */
.login-page.end-hospital .login-box .lg .logo {
  background: linear-gradient(135deg, #3730A3, #6366F1);
  box-shadow: 0 8px 24px rgba(79, 70, 229, .08);
}
.login-box .lg .t { font-size: 19px; font-weight: 800; letter-spacing: .3px; }
.login-box .lg .s { font-size: 12px; color: #8A93A6; letter-spacing: .5px; margin-top: 5px; text-transform: uppercase; }
.login-box label { display: block; font-size: 12.5px; font-weight: 700; color: #3A4457; margin: 18px 0 8px; }
.login-box input {
  width: 100%; box-sizing: border-box; height: 42px; padding: 0 14px;
  border: 1px solid #E6EAF2; border-radius: 10px; background: #fff;
  font-size: 14px; color: #0B1220; font-family: inherit; outline: none;
  letter-spacing: .02em;
  transition: border-color .2s, box-shadow .2s;
}
.login-box #lgPass { letter-spacing: .16em; font-weight: 600; }
.login-box input:focus { border-color: #1D4ED8; box-shadow: 0 0 0 3px rgba(29, 78, 216, .08); }
.login-page.end-hospital .login-box input:focus { border-color: #4F46E5; box-shadow: 0 0 0 3px rgba(79, 70, 229, .08); }
.login-box button {
  width: 100%; margin-top: 26px; height: 46px; border: none; border-radius: 10px;
  background: linear-gradient(135deg, #1E3A8A, #3B63E8); color: #fff;
  font-size: 15px; font-weight: 700; letter-spacing: 4px; cursor: pointer;
  font-family: inherit; box-shadow: 0 8px 24px rgba(29, 78, 216, .08);
  transition: transform .2s, box-shadow .2s, filter .2s;
}
.login-page.end-hospital .login-box button {
  background: linear-gradient(135deg, #3730A3, #6366F1);
  box-shadow: 0 8px 24px rgba(79, 70, 229, .08);
}
.login-box button:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(29, 78, 216, .08); filter: brightness(1.06); }
.login-page.end-hospital .login-box button:hover { box-shadow: 0 14px 32px rgba(79, 70, 229, .08); }
.login-box button:disabled { opacity: .7; cursor: default; transform: none; }
.login-box .err { display: none; font-size: 12.5px; font-weight: 600; color: #DC2626; margin-top: 12px; text-align: center; }
.login-box .err.on { display: block; }
.login-screen.leaving { transform: scale(1.08); opacity: 0; filter: blur(8px); transition: transform .3s ease-in, opacity .3s ease-in, filter .3s ease-in; }

/* ---------- 演示系统顶端条（返回首页 + 平台标识） ---------- */
.demo-bar {
  box-sizing: border-box;
  position: fixed; top: 0; left: 0; right: 0; z-index: 449; height: 46px;
  display: flex; align-items: center; gap: 12px; padding: 0 14px;
  background: rgba(255, 255, 255, .92); border-bottom: 1px solid #E6EAF2;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
.demo-bar .db-back {
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 14px;
  border-radius: 999px; font-size: 12.5px; font-weight: 600; color: #0B1220;
  background: #fff; border: 1px solid #E6EAF2; text-decoration: none;
}
.demo-bar .db-back svg { width: 13px; height: 13px; stroke: currentColor; stroke-width: 2.2; fill: none; }
.demo-bar .db-dot { width: 7px; height: 7px; border-radius: 50%; background: #1D4ED8; flex: none; }
.demo-bar .db-title { font-size: 13px; font-weight: 700; color: #3A4457; letter-spacing: .01em; }

/* 登录页整体让出顶端条 */
body .login-screen { top: 46px; }

/* ==========================================================================
   注册申请弹窗（1:1 还原原版 shared/wb.register.js 注入的样式）
   注意：--rgt-g1 / --rgt-g2 / --rgt-rgb 由弹窗根元素内联提供（分端品牌色），
        .rgt-entry 在弹窗外，原版中 var 未定义而继承父级灰色 —— 与原版保持一致。
   ========================================================================== */
.rgt-entry { margin-top: 18px; text-align: center; font-size: 13px; color: #8A93A6; }
.rgt-entry a { color: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.rgt-entry a:hover { text-decoration: underline; }
.rgt-mask { position: fixed; inset: 0; z-index: 1200; background: rgba(11,18,32,.44);
  display: none; align-items: center; justify-content: center; padding: 24px;
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.rgt-mask.on { display: flex; }
.rgt-box { width: 560px; max-width: 100%; max-height: calc(100vh - 48px); overflow: auto;
  background: #fff; border-radius: 18px; border: 1px solid #E6EAF2;
  box-shadow: 0 28px 72px rgba(11,18,32,.22); padding: 30px 34px 26px;
  animation: rgtIn .28s cubic-bezier(.2,.8,.3,1); }
@keyframes rgtIn { from { transform: translateY(14px) scale(.98); opacity: 0; } to { transform: none; opacity: 1; } }
.rgt-head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 4px; }
.rgt-head .rt { font-size: 18px; font-weight: 800; color: #0B1220; }
.rgt-head .rs { font-size: 12.5px; color: #8A93A6; margin-top: 6px; }
.rgt-close { width: 30px; height: 30px; border-radius: 8px; border: 1px solid #E6EAF2; background: #fff;
  color: #8A93A6; font-size: 16px; line-height: 1; cursor: pointer; flex: none; font-family: inherit; }
.rgt-close:hover { color: #0B1220; border-color: #CDD5E3; }
.rgt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; margin-top: 18px; }
.rgt-f { margin-bottom: 14px; }
.rgt-f.full { grid-column: 1 / -1; }
.rgt-f label { display: block; font-size: 12.5px; font-weight: 700; color: #3A4457; margin-bottom: 7px; }
.rgt-f label em { color: #DC2626; font-style: normal; margin-left: 2px; }
.rgt-f input { width: 100%; box-sizing: border-box; height: 40px; padding: 0 13px;
  border: 1px solid #E6EAF2; border-radius: 9px; background: #fff; font-size: 13.5px;
  color: #0B1220; font-family: inherit; outline: none; transition: border-color .2s, box-shadow .2s; }
.rgt-f input:focus { border-color: var(--rgt-g2, #1D4ED8); box-shadow: 0 0 0 3px rgba(var(--rgt-rgb, 29,78,216), .12); }
.rgt-f input.bad { border-color: #DC2626; box-shadow: 0 0 0 3px rgba(220,38,38,.10); }
.rgt-err { display: none; font-size: 12.5px; font-weight: 600; color: #DC2626; margin-top: 4px; text-align: center; }
.rgt-err.on { display: block; }
.rgt-submit { width: 100%; margin-top: 8px; height: 44px; border: none; border-radius: 10px;
  background: linear-gradient(135deg, var(--rgt-g1, #1E3A8A), var(--rgt-g2, #1D4ED8)); color: #fff;
  font-size: 14.5px; font-weight: 700; letter-spacing: 3px; cursor: pointer; font-family: inherit;
  box-shadow: 0 8px 22px rgba(var(--rgt-rgb, 29,78,216), .26); transition: transform .2s, filter .2s; }
.rgt-submit:hover { transform: translateY(-1px); filter: brightness(1.06); }
.rgt-submit:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.rgt-tip { font-size: 12px; color: #8A93A6; text-align: center; margin-top: 12px; }
/* 成功态 */
.rgt-ok { display: none; text-align: center; padding: 26px 0 10px; }
.rgt-ok.on { display: block; }
.rgt-ok .ico { width: 62px; height: 62px; margin: 0 auto 18px; border-radius: 50%;
  background: rgba(16,185,129,.12); color: #10B981; display: flex; align-items: center; justify-content: center; }
.rgt-ok .ico svg { width: 30px; height: 30px; stroke: currentColor; stroke-width: 2.6; fill: none; }
.rgt-ok .t1 { font-size: 17px; font-weight: 800; color: #0B1220; }
.rgt-ok .t2 { font-size: 13px; color: #5A6478; margin-top: 10px; line-height: 1.8; }
.rgt-ok .t2 b { color: #0B1220; }
.rgt-ok .btn { margin-top: 22px; height: 42px; padding: 0 42px; border: none; border-radius: 10px;
  background: linear-gradient(135deg, var(--rgt-g1, #1E3A8A), var(--rgt-g2, #1D4ED8)); color: #fff;
  font-size: 14px; font-weight: 700; cursor: pointer; font-family: inherit; }