/* ============ 爱微圈云 · 登录 / 注册（自包含，不依赖 site.css） ============ */
:root{
  --brand:#1677ff;
  --brand-2:#4096ff;
  --ink:#0b0d12;
  --text:#1f2329;
  --text-2:#4e5969;
  --muted:#86909c;
  --line:#e5eaf2;
  --err:#f53f3f;
  --ok:#00b42a;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{
  font:15px/1.7 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  color:var(--text);-webkit-font-smoothing:antialiased;
  background:#080a0f;
}
a{color:inherit;text-decoration:none}

/* ---------- 整页背景 ---------- */
.auth-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px;
  position:relative;overflow:hidden;
  background:
    radial-gradient(900px 520px at 18% 8%,rgba(22,119,255,.20),transparent 62%),
    radial-gradient(760px 460px at 84% 92%,rgba(64,150,255,.14),transparent 60%),
    linear-gradient(160deg,#07090e 0%,#0b1120 52%,#080d1c 100%);
}
.auth-wrap::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:radial-gradient(ellipse 72% 62% at 50% 42%,#000,transparent 78%);
}

/* ---------- 卡片（左右分栏） ---------- */
.auth-box{
  position:relative;z-index:2;width:100%;max-width:940px;
  display:grid;grid-template-columns:.92fr 1.08fr;
  background:#fff;border-radius:22px;overflow:hidden;
  box-shadow:0 46px 120px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.06);
}

/* ---------- 左：品牌区 ---------- */
.auth-brand{
  position:relative;padding:46px 40px 40px;color:#fff;
  display:flex;flex-direction:column;
  background:
    radial-gradient(520px 320px at 78% 4%,rgba(64,150,255,.34),transparent 62%),
    linear-gradient(160deg,#0a0e18 0%,#0e1730 58%,#0a1327 100%);
}
.auth-brand::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse 80% 70% at 40% 30%,#000,transparent 82%);
}
.auth-brand > *{position:relative;z-index:2}

.brand-logo{display:flex;align-items:center;gap:11px;margin-bottom:38px}
.brand-logo .mk{
  width:38px;height:38px;border-radius:10px;flex:0 0 38px;
  background:linear-gradient(135deg,#1677ff,#3d9bff);
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:19px;color:#fff;
  box-shadow:0 6px 20px rgba(22,119,255,.45);
}
.brand-logo b{font-size:17px;font-weight:700;letter-spacing:.2px;line-height:1.2}
.brand-logo b small{display:block;font-size:9px;font-weight:400;letter-spacing:1.7px;color:#7d8ba3;margin-top:1px}

.auth-brand h2{
  font-size:26px;line-height:1.42;letter-spacing:-.6px;margin:0 0 12px;font-weight:720;
  background:linear-gradient(120deg,#fff 34%,#a8c8ff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.auth-brand .lead{font-size:13.5px;line-height:1.85;color:#93a2ba;margin:0 0 30px}

.brand-points{display:grid;gap:14px;margin-top:6px}
.brand-points div{display:flex;gap:11px;font-size:13px;color:#b9c6da;line-height:1.65}
.brand-points i{
  flex:0 0 20px;width:20px;height:20px;border-radius:6px;margin-top:2px;
  background:rgba(22,119,255,.18);border:1px solid rgba(64,150,255,.32);
  display:flex;align-items:center;justify-content:center;
}
.brand-points svg{width:11px;height:11px;stroke:#4d9cff;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.brand-points b{color:#fff;font-weight:600}

.brand-foot{
  display:flex;gap:22px;margin-top:auto;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.09);
}
.brand-foot div span{display:block;font-size:19px;font-weight:740;letter-spacing:-.4px;color:#fff;font-variant-numeric:tabular-nums}
.brand-foot div small{font-size:10.5px;color:#6d7c93;letter-spacing:.2px}

/* ---------- 右：表单区 ---------- */
.auth-form{padding:46px 52px 40px;display:flex;flex-direction:column;justify-content:center}
.auth-form h1{font-size:23px;font-weight:720;letter-spacing:-.5px;margin:0 0 6px}
.auth-form .sub{font-size:13px;color:var(--muted);margin:0 0 28px}

.field{margin-bottom:17px}
.field label{
  display:block;font-size:12.5px;font-weight:550;color:var(--text-2);
  margin-bottom:7px;letter-spacing:.1px;
}
.inp-box{position:relative}
.inp-box .ic{
  position:absolute;left:13px;top:50%;transform:translateY(-50%);
  width:17px;height:17px;stroke:#a8b2c1;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;pointer-events:none;transition:.16s;
}
.inp{
  width:100%;height:46px;padding:0 14px 0 40px;
  border:1px solid #dfe5ef;border-radius:10px;background:#fbfcfe;
  font-size:14px;color:var(--text);font-family:inherit;
  transition:border-color .16s,background .16s,box-shadow .16s;
}
.inp::placeholder{color:#b3bbc8}
.inp:hover{border-color:#c9d4e4}
.inp:focus{
  outline:none;border-color:var(--brand);background:#fff;
  box-shadow:0 0 0 4px rgba(22,119,255,.11);
}
.inp-box:focus-within .ic{stroke:var(--brand)}
.inp.pw{padding-right:44px}

.pw-toggle{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:34px;height:34px;border:none;background:transparent;border-radius:8px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s;
}
.pw-toggle:hover{background:#f0f4fa}
.pw-toggle svg{width:17px;height:17px;stroke:#a8b2c1;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pw-toggle:hover svg{stroke:var(--text-2)}

.hint{font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.6}

/* 记住我 / 忘记密码 */
.form-row{display:flex;align-items:center;justify-content:space-between;margin:4px 0 22px;font-size:12.5px}
.form-row label{display:flex;align-items:center;gap:7px;color:var(--text-2);cursor:pointer;margin:0}
.form-row input[type=checkbox]{accent-color:var(--brand);width:15px;height:15px;cursor:pointer}
.form-row a{color:var(--brand);font-weight:500}
.form-row a:hover{text-decoration:underline}

/* 按钮 */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;height:48px;border:none;border-radius:11px;
  background:linear-gradient(135deg,#1677ff,#3d95ff);color:#fff;
  font-size:15px;font-weight:600;font-family:inherit;letter-spacing:.3px;
  cursor:pointer;transition:.18s;
  box-shadow:0 8px 24px rgba(22,119,255,.34);
}
.btn:hover{background:linear-gradient(135deg,#2d86ff,#54a4ff);box-shadow:0 12px 30px rgba(22,119,255,.42);transform:translateY(-1px)}
.btn:active{transform:translateY(0);box-shadow:0 5px 16px rgba(22,119,255,.32)}

/* 提示 */
.msg{display:flex;gap:9px;padding:11px 13px;border-radius:9px;font-size:12.5px;margin-bottom:18px;line-height:1.6;align-items:flex-start}
.msg.err{background:#fff1f0;color:#c0281f;border:1px solid #ffd6d1}
.msg.ok{background:#eaffef;color:#00701f;border:1px solid #bdf3c8}
.msg svg{flex:0 0 15px;width:15px;height:15px;margin-top:2px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* 底部 */
.auth-foot{text-align:center;font-size:13px;color:var(--muted);margin-top:24px}
.auth-foot a{color:var(--brand);font-weight:600}
.auth-foot a:hover{text-decoration:underline}
.agree{text-align:center;font-size:11.5px;color:#aab2bf;margin-top:18px;line-height:1.7}
.agree a{color:#8b95a5}
.agree a:hover{color:var(--brand)}

/* 密码强度 */
.pw-meter{display:flex;gap:6px;margin-top:9px;height:4px}
.pw-meter i{flex:1 1 0;display:block;height:4px;border-radius:3px;background:#e9eef6;transition:background .2s}
.pw-meter.lv1 i:nth-child(1){background:#f53f3f}
.pw-meter.lv2 i:nth-child(-n+2){background:#ff7d00}
.pw-meter.lv3 i:nth-child(-n+3){background:#00b42a}
.pw-tip{font-size:11px;color:var(--muted);margin-top:5px}

/* ---------- 响应式 ---------- */
@media(max-width:880px){
  .auth-box{grid-template-columns:1fr;max-width:440px;border-radius:20px}
  .auth-brand{display:none}
  .auth-form{padding:36px 26px 32px}
  .auth-form h1{font-size:21px}
  .auth-wrap{padding:20px 16px}
}
@media(max-width:420px){
  .auth-form{padding:30px 20px 26px}
  .inp{height:44px}
  .btn{height:46px}
}
