/* ============================================================
   auth.css · 登录/注册页
   与 portal.css 共用一套变量（--orange / --ink / --line / --bg），
   明暗两套主题；本文件只负责登录卡片与迁移提示弹层。
   ============================================================ */

.auth-wrap{min-height:calc(100vh - 56px);display:flex;align-items:center;justify-content:center;padding:48px 20px 64px}

.acard{width:100%;max-width:430px;border:1px solid var(--line);border-radius:18px;background:#fff;
  padding:34px 34px 28px;box-shadow:0 18px 48px -28px rgba(24,36,64,.28)}

.acard h1{font-size:20px;font-weight:800;color:var(--ink);letter-spacing:-.2px}
.acard .sub{font-size:12.5px;color:var(--g2);margin-top:7px;line-height:1.75}

/* 字段 */
.fld{margin-top:18px}
.fld label{display:block;font-size:12px;color:var(--ink-2);font-weight:600;margin-bottom:7px}
.ipt-wrap{position:relative}
.ipt{width:100%;height:46px;border:1px solid var(--line);border-radius:11px;padding:0 14px;font-size:13.5px;
  background:var(--bg);color:var(--ink);outline:none;font-family:inherit;transition:.16s}
.ipt:focus{border-color:var(--orange);background:#fff;box-shadow:0 0 0 3px var(--orange-100)}
.ipt.err{border-color:#E0483C;background:#FEF6F4}
.ipt-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;
  background:transparent;color:var(--g3);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px}
.ipt-eye:hover{color:var(--ink-2);background:var(--bg)}
.fld .hint{font-size:11px;color:var(--g3);margin-top:6px;line-height:1.6}

/* 主按钮 */
.btn-login{width:100%;height:46px;border:none;border-radius:11px;background:var(--orange);color:#fff;
  font-weight:700;font-size:14.5px;margin-top:22px;cursor:pointer;font-family:inherit;transition:.16s}
.btn-login:hover{background:#E05515}
.btn-login:disabled{opacity:.6;cursor:default}

/* 错误条 */
.login-err{margin-top:16px;font-size:12px;color:#C4321F;background:#FDEEEB;border:1px solid #F7D6D0;
  border-radius:9px;padding:9px 12px;line-height:1.6}
.login-err.hidden{display:none}

/* 分隔与备选 */
.or{display:flex;align-items:center;gap:10px;margin:20px 0 0;color:var(--g3);font-size:11px}
.or::before,.or::after{content:"";height:1px;background:var(--line);flex:1}
.btn-ghost{width:100%;height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink-2);
  font-size:13px;font-weight:600;margin-top:12px;cursor:pointer;font-family:inherit}
.btn-ghost:hover{border-color:var(--orange);color:var(--orange)}

/* 迁移会员提示（旧系统账号可用原密码登录） */
.legacy-tip{margin-top:18px;border:1px dashed #E4D3C6;background:var(--orange-50);border-radius:11px;
  padding:11px 13px;font-size:11.5px;color:#8A5A3B;line-height:1.72}
.legacy-tip b{color:#B4521F}

.login-foot{font-size:10.5px;color:var(--g3);text-align:center;margin-top:20px;line-height:1.8}

/* ============ 迁移欢迎弹层 ============ */
.mg-mask{position:fixed;inset:0;background:rgba(18,24,38,.42);backdrop-filter:blur(3px);
  display:none;align-items:center;justify-content:center;padding:20px;z-index:120}
.mg-mask.on{display:flex}
.mg-box{width:100%;max-width:520px;background:#fff;border-radius:18px;padding:28px 28px 22px;
  box-shadow:0 30px 70px -30px rgba(16,24,40,.5);animation:mgIn .22s ease-out}
@keyframes mgIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.mg-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#0F7A5A;
  background:#E9F8F2;border:1px solid #C7EBDD;border-radius:20px;padding:3px 10px}
.mg-box h2{font-size:19px;font-weight:800;color:var(--ink);margin-top:12px;letter-spacing:-.2px}
.mg-box .mg-sub{font-size:12.5px;color:var(--g2);margin-top:8px;line-height:1.75}
.mg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}
.mg-item{background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:11px 13px}
.mg-item .k{font-size:10.5px;color:var(--g3)}
.mg-item .v{font-size:16px;font-weight:700;color:var(--ink);margin-top:3px;font-variant-numeric:tabular-nums}
.mg-item .v small{font-size:11px;font-weight:500;color:var(--g2);margin-left:3px}
.mg-note{margin-top:16px;font-size:11.5px;color:var(--g2);line-height:1.75;background:#FBFCFD;
  border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.mg-acts{display:flex;gap:10px;margin-top:18px}
.mg-acts .btn-login{margin-top:0;flex:1}
.mg-acts .btn-ghost{margin-top:0;flex:0 0 132px;height:46px}
.mg-form{margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);display:none}
.mg-form.on{display:block}
.mg-form .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mg-form .fld{margin-top:0}
.mg-form .btn-login{height:42px;margin-top:12px}
.mg-msg{font-size:11.5px;margin-top:9px;line-height:1.6}
.mg-msg.ok{color:#0F7A5A}
.mg-msg.bad{color:#C4321F}

/* 深色 */
[data-theme="dark"] body{background:#16181B;color:#E9EBEE}
[data-theme="dark"] .acard{background:#1E2024;border-color:#2C2E33;box-shadow:0 18px 48px -28px rgba(0,0,0,.6)}
[data-theme="dark"] .ipt{background:#16181B;border-color:#2C2E33;color:#E9EBEE}
[data-theme="dark"] .ipt:focus{background:#111316;box-shadow:0 0 0 3px rgba(242,101,34,.14)}
[data-theme="dark"] .btn-ghost{background:#1E2024;border-color:#2C2E33;color:#C7CBD2}
[data-theme="dark"] .login-err{background:rgba(224,72,60,.14);border-color:rgba(224,72,60,.3);color:#FF9C90}
[data-theme="dark"] .legacy-tip{background:rgba(242,101,34,.08);border-color:rgba(242,101,34,.28);color:#E3B79E}
[data-theme="dark"] .legacy-tip b{color:#FFAB7A}
[data-theme="dark"] .mg-box{background:#1E2024;border:1px solid #2C2E33}
[data-theme="dark"] .mg-item{background:#16181B;border-color:#2C2E33}
[data-theme="dark"] .mg-item .v{color:#F0F2F5}
[data-theme="dark"] .mg-note{background:#191B1F;border-color:#2C2E33;color:#A9AEB8}
[data-theme="dark"] .mg-tag{background:rgba(20,184,166,.12);border-color:rgba(20,184,166,.3);color:#5FD3C0}
[data-theme="dark"] .mg-form{border-color:#2C2E33}
[data-theme="dark"] .ptop{background:rgba(22,24,27,.96);border-color:#2C2E33}
[data-theme="dark"] .pnv{color:#C7CBD2}

/* 移动端 */
@media (max-width:640px){
  .ptop{padding:0 16px;gap:14px;overflow-x:auto}
  .ptop .pnv:nth-of-type(n+4){display:none}
  .auth-wrap{padding:26px 14px 48px;align-items:flex-start}
  .acard{padding:26px 20px 22px;border-radius:15px}
  .acard h1{font-size:18px}
  .mg-box{padding:22px 18px 18px;border-radius:15px}
  .mg-grid{grid-template-columns:1fr 1fr;gap:8px}
  .mg-acts{flex-direction:column}
  .mg-acts .btn-ghost{flex:none;width:100%}
  .mg-form .row{grid-template-columns:1fr}
}
