/* 登录页（UI.png 左稿：天空渐变背景 + 居中白卡；注册/找回密码文案按需求已删除） */
/* 登录页只引这一份 CSS（不含 app.css），所以这两条基础规则必须自己带上（M6 实测）：
   box-sizing：没有它，卡片 width:100% + padding 会撑破手机视口（430 > 390）；
   .is-hidden：login.js 用它开关验证码栏和报错条，没有它空报错条会一直显示。 */
*{box-sizing:border-box}
.is-hidden{display:none !important}
body.login-page{margin:0;min-height:100vh;font:14px/1.6 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:#1f2937}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#8fc7f5 0%,#bfe0fa 40%,#e3f1fd 58%,#cfe9f7 100%)}
.login-card{width:100%;max-width:360px;background:#fff;border-radius:14px;box-shadow:0 18px 40px rgba(16,24,40,.18);padding:26px}
.login-brand{text-align:center;margin-bottom:14px}
.login-logo{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#e8f1ff;color:#2f7cf6}
.login-title{margin:8px 0 2px;font-size:22px;letter-spacing:4px}
.login-sub{margin:0;font-size:12px;color:#6b7280}
.login-tabs{display:flex;justify-content:center;border-bottom:1px solid #e5e7eb;margin-bottom:16px}
.login-tab{position:relative;padding:8px 18px;font-size:14px;color:#6b7280}
.login-tab.is-active{color:#1d4ed8;font-weight:600}
.login-tab.is-active::after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:2px;background:#2f7cf6;border-radius:2px}
.login-form{display:flex;flex-direction:column;gap:12px}
.lfld{display:flex;align-items:center;gap:8px;height:40px;border:1px solid #e5e7eb;border-radius:8px;padding:0 10px;background:#fff}
.lfld:focus-within{border-color:#2f7cf6;box-shadow:0 0 0 3px rgba(47,124,246,.12)}
.lfld-ico{display:grid;place-items:center;color:#9ca3af}
.lfld input{flex:1;min-width:0;border:0;outline:none;font:inherit;font-size:14px;background:transparent}
.captcha-img{height:30px;width:86px;border-radius:4px;cursor:pointer;background:#f1f5f9;object-fit:contain}
.captcha-img.is-loading{opacity:.35}
.captcha-refresh{flex:0 0 auto;width:22px;height:22px;padding:0;border:0;border-radius:4px;background:#eef2f7;color:#4b5563;font-size:12px;line-height:22px;cursor:pointer}
.captcha-refresh:hover{background:#e2e8f0;color:#1d4ed8}
.remember{display:flex;align-items:center;gap:6px;font-size:13px;color:#4b5563}
.remember input{width:14px;height:14px;accent-color:#2f7cf6}
.login-error{margin:0;font-size:13px;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:7px 10px}
.login-submit{height:40px;border:0;border-radius:8px;background:#2f7cf6;color:#fff;font:600 15px/1 system-ui,"Microsoft YaHei",sans-serif;letter-spacing:2px;cursor:pointer}
.login-submit:hover{background:#1f6ae0}
.login-submit:disabled{opacity:.6;cursor:default}
.login-hint{margin:14px 0 0;font-size:12px;color:#6b7280;background:#f8fafc;border-radius:8px;padding:8px 10px}
.login-hint a{color:#1d4ed8;text-decoration:underline}
/* 手机竖屏（UI.png「登录页面（手机端）」稿）：白底通栏、卡片不描边，控件加高到 44px 便于点按 */
@media (max-width:560px){
  .login-wrap{padding:0;background:#fff}
  .login-card{max-width:none;padding:28px 20px;border-radius:0;box-shadow:none}
  .login-logo{width:52px;height:52px}
  .login-title{font-size:20px}
  .login-tabs{margin-bottom:18px}
  .lfld{height:44px}
  .login-submit{height:44px}
  .captcha-img{height:34px;width:96px}
}
