:root{
  --bg:#f6f9ff; --ink:#0f172a; --muted:#64748b; --line:#e7edf6;
  --brand:#2f6bff; --brand-d:#1f50d6; --brand-soft:#eaf1ff;
  --ok:#10b981; --bad:#ef4444; --radius:14px; --shadow:0 10px 40px rgba(20,40,90,.12);
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  color:var(--ink);background:var(--bg);font-size:15px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}

.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}

/* 左侧 */
.auth-aside{background:linear-gradient(150deg,#2f6bff,#5b8bff);color:#fff;
  padding:40px;display:flex;flex-direction:column;justify-content:space-between}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:18px}
.logo em{font-style:normal;font-weight:600;opacity:.8;font-size:14px}
.logo img.logo-img{width:30px;height:33px;display:block}
.aside-copy{margin:auto 0}
.aside-copy h2{font-size:32px;line-height:1.3;margin:0 0 16px;font-weight:800}
.aside-copy p{font-size:15px;opacity:.92;max-width:380px;margin:0 0 26px}
.aside-points{list-style:none;padding:0;margin:0}
.aside-points li{padding:9px 0;font-size:14px;opacity:.95}
.aside-foot{font-size:13px;opacity:.8}

/* 右侧 */
.auth-main{display:flex;align-items:center;justify-content:center;padding:30px}
.auth-card{width:100%;max-width:380px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}
.tabs{display:flex;gap:6px;background:var(--bg);padding:4px;border-radius:10px;margin-bottom:22px}
.tab{flex:1;border:0;background:transparent;padding:9px;border-radius:8px;font-size:14px;
  font-weight:600;color:var(--muted);cursor:pointer}
.tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.06)}

.form.hidden{display:none}
label{display:block;font-size:13px;color:var(--muted);margin:14px 0 5px}
input,select{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;
  font-size:14px;outline:none;background:#fff;color:var(--ink)}
input:focus,select:focus{border-color:var(--brand)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 18px;
  border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:.15s}
.btn.primary{background:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand-d)}
.btn.full{width:100%}
.btn.lg{margin-top:18px;padding:13px}

.msg{margin-top:12px;font-size:13px;min-height:18px}
.msg.err{color:var(--bad)}
.msg.ok{color:var(--ok)}

.wx-row{margin-top:22px}
.wx-divider{text-align:center;color:var(--muted);font-size:12px;position:relative;margin:6px 0 14px}
.wx-divider::before,.wx-divider::after{content:"";position:absolute;top:50%;width:38%;height:1px;background:var(--line)}
.wx-divider::before{left:0}.wx-divider::after{right:0}
.wx-divider span{background:#fff;padding:0 10px}
.btn.wx{background:#07c160;color:#fff;font-weight:600}
.btn.wx:hover{background:#06ad56}
.btn.wx:disabled{background:#cbd5e1;color:#fff;cursor:not-allowed}
.back-home{display:block;text-align:center;margin-top:16px;color:var(--muted);font-size:13px}
.back-home:hover{color:var(--brand)}

@media (max-width:820px){
  .auth-wrap{grid-template-columns:1fr}
  .auth-aside{display:none}
}

