/* 私有登录页样式：移动端优先，iOS 安全区适配，支持深色模式 */
:root{
  --brand:#123a8a;
  --brand-dark:#0c2a66;
  --ink:#1b2333;
  --muted:#5d6b85;
  --line:#dbe2ee;
  --bg:#f4f6fa;
  --danger:#b4232c;
  --field:#ffffff;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  min-height:100vh;
  min-height:100dvh;
  background:
    radial-gradient(1100px 520px at 50% -18%, #dfe8fb 0%, rgba(223,232,251,0) 62%),
    var(--bg);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,"Segoe UI",sans-serif;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:calc(24px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));
}
.gate{width:100%;max-width:392px}
.badge{
  display:inline-block;
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--brand);
  background:#e5ecfb;
  border-radius:999px;
  padding:6px 13px;
  margin-bottom:18px;
}
h1{font-size:29px;line-height:1.22;margin:0 0 12px;letter-spacing:-.01em}
.sub{margin:0 0 26px;font-size:15px;line-height:1.7;color:var(--muted)}
.sub b{color:var(--ink);font-weight:700}
form{margin:0}
.lbl{display:block;font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:9px}
.inputwrap{position:relative;display:block}
input[type=password],input[type=text]{
  width:100%;
  height:54px;
  padding:0 74px 0 16px;
  font-size:17px;
  font-family:inherit;
  color:var(--ink);
  background:var(--field);
  border:1.5px solid var(--line);
  border-radius:14px;
  outline:none;
  transition:border-color .16s ease, box-shadow .16s ease;
  -webkit-appearance:none;
  appearance:none;
}
input:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(18,58,138,.13)}
input::placeholder{color:#9aa6bd}
.eye{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  height:38px;
  padding:0 13px;
  font:inherit;
  font-size:14px;
  font-weight:600;
  color:var(--brand);
  background:transparent;
  border:0;
  border-radius:10px;
  cursor:pointer;
}
.eye:active{background:#eef2fb}
.err{
  margin-top:12px;
  padding:11px 14px;
  font-size:14px;
  line-height:1.55;
  color:var(--danger);
  background:#fdeced;
  border:1px solid #f7cfd2;
  border-radius:12px;
}
.go{
  width:100%;
  height:56px;
  margin-top:20px;
  font:inherit;
  font-size:17px;
  font-weight:700;
  letter-spacing:.02em;
  color:#fff;
  background:linear-gradient(180deg,var(--brand) 0%,var(--brand-dark) 100%);
  border:0;
  border-radius:14px;
  cursor:pointer;
  box-shadow:0 8px 20px -8px rgba(18,58,138,.7);
  transition:transform .12s ease, opacity .16s ease;
}
.go:active{transform:translateY(1px)}
.go[disabled]{opacity:.62;cursor:default;transform:none}
.hint{margin:20px 0 0;font-size:12.5px;line-height:1.7;color:#8a95ab;text-align:center}
@media (prefers-color-scheme:dark){
  :root{
    --ink:#eaeef7;
    --muted:#a4b0c7;
    --line:#333d52;
    --bg:#111624;
    --brand:#7fa4f0;
    --brand-dark:#5d86dd;
    --danger:#ff9aa2;
    --field:#1a2133;
  }
  body{background:radial-gradient(1100px 520px at 50% -18%,#1b2540 0%,rgba(27,37,64,0) 62%),var(--bg)}
  .badge{background:#1d2842;color:#a8c2f8}
  input::placeholder{color:#6b7893}
  .err{background:#33191d;border-color:#5c2a30}
  .eye:active{background:#212b42}
  .go{box-shadow:none;color:#0d1526}
  .hint{color:#6d7a94}
}
