/* 登录页(/v2/login):员工端 / 管理端同一页,按 2026-09-20 参考稿还原。基础样式(.ic .btn .brand-tag .hidden .num)沿用 app.css */
.login-page{min-height:100vh;display:flex;flex-direction:column}
.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--s-5) var(--s-3)}
.glow{position:fixed;border-radius:50%;pointer-events:none}
.glow-a{width:560px;height:560px;top:-160px;left:50%;margin-left:-280px;background:var(--primary-line);filter:blur(64px);opacity:.35}
.glow-b{width:420px;height:420px;bottom:-140px;left:50%;margin-left:-60px;background:#e1e9f6;filter:blur(40px);opacity:.6}
.login-col{width:100%;max-width:460px;position:relative}

.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:var(--s-4)}
.login-brand h1{font-size:24px;line-height:32px;font-weight:700;letter-spacing:-.01em;margin:var(--s-2) 0 0}
.login-brand p{font-size:12px;line-height:16px;color:var(--ink-2);margin:4px 0 0}
.login-brand .brand-tag{display:inline-block}   /* app.css 在窄屏下隐藏顶栏的这个标签,登录页始终显示 */

.login-card{background:var(--card);border-radius:var(--r-lg);box-shadow:0 20px 40px -12px rgba(20,28,37,.18),var(--sh-sm);
  padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4)}

/* 白名单准入状态 */
.origin{background:var(--bg);border-radius:var(--r-md);padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.origin-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);font-size:11px;line-height:14px}
.origin-state{display:flex;align-items:center;gap:6px}
.origin-top .num{color:var(--ink-2)}
.origin p{margin:0;font-size:12px;line-height:17px;color:var(--ink-2)}
.lg-dot{width:8px;height:8px;border-radius:50%;background:var(--good);animation:pulse 2s ease-in-out infinite}
.lg-dot.warn{background:#d97706;animation:none}
@keyframes pulse{50%{opacity:.4}}

/* 表单 */
.form{display:flex;flex-direction:column;gap:var(--s-3)}
.form-head h2{font-size:18px;line-height:24px;margin:0}
.form-head p{font-size:12px;line-height:17px;color:var(--ink-2);margin:4px 0 0}
.lg-field{display:flex;flex-direction:column;gap:6px}
.lg-field label,.lg-field-top label{font-size:12px;line-height:16px;font-weight:600;color:var(--ink-2)}
.lg-field-top{display:flex;align-items:center;justify-content:space-between}
.inp{position:relative;display:flex;align-items:center}
.inp>.ic{position:absolute;left:12px;font-size:20px;color:var(--ink-3);pointer-events:none}
.inp input{width:100%;height:44px;padding:0 12px 0 40px;border-radius:var(--r-md);border:1px solid transparent;background:var(--bg);transition:.15s}
.inp input::placeholder{color:var(--ink-3)}
.inp input:focus{outline:none;background:var(--card);border-color:var(--primary-line);box-shadow:0 0 0 3px var(--primary-soft)}
.inp .eye{position:absolute;right:6px;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--ink-3)}
.inp .eye:hover{color:var(--ink)}
.inp .eye .ic{font-size:20px}
.inp input:has(+ .eye){padding-right:44px}

.check{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2);cursor:pointer;user-select:none;width:fit-content}
.check input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;margin:0}
.link{font-size:12px;font-weight:600;color:var(--primary)}
.link:hover{color:var(--primary-d)}
.back{align-self:center;padding:4px}

.actions{display:flex;flex-direction:column;gap:10px;padding-top:4px}
.btn-lg{height:44px;width:100%;gap:8px;font-weight:700}
.login-card .btn-primary{box-shadow:0 2px 8px rgba(255,90,0,.32)}
.btn-soft{background:var(--card);color:var(--primary);box-shadow:var(--sh-sm);border:1px solid var(--line)}
.btn-soft:hover{background:var(--primary-soft);border-color:var(--primary-line)}

.note{font-size:12px;line-height:19px;background:var(--bg);border-radius:var(--r-md);padding:10px 12px}
.lg-msg{font-size:13px;line-height:20px;border-radius:var(--r-md);padding:10px 12px}
.lg-msg.err{background:var(--bad-soft);color:var(--bad-ink)}
.lg-msg.ok{background:var(--good-soft);color:var(--good)}
.lg-msg .link{font-size:13px;color:inherit;text-decoration:underline}

.login-foot{position:relative;padding:var(--s-3);text-align:center;font-size:12px;color:var(--ink-3)}

@media (max-width:480px){
  .login-main{padding:var(--s-4) var(--s-3);align-items:flex-start}
  .login-card{padding:var(--s-4) 20px;gap:20px}
}

/* 进场动效:品牌区与登录卡片依次淡入上移(系统「减少动态效果」时由 app.css 统一关掉) */
.login-brand{animation:mx-rise .3s ease-out}
.login-card{animation:mx-rise .3s ease-out .06s backwards}
