/* 登录页：全宽、隐藏通用顶栏；整页一屏、不滚动；白底、仅顶部/按钮上色 */
  .wrap{max-width:100%;padding:0}
  .topbar{display:none}
  html,body{height:100%}
  .auth-screen{display:flex;flex-direction:column;min-height:100vh;background:#fff}

  /* 顶部彩色带（与首页一致） */
  .hband{
    background:linear-gradient(135deg,#8E0B20 0%,#C8102E 55%,#E02A2A 100%);
    color:#fff;display:flex;align-items:center;justify-content:space-between;
    padding:13px 28px;gap:16px;
  }
  .hband .brand{display:flex;align-items:center;gap:14px}
  .hband .brand img{height:36px;width:auto;object-fit:contain}
  .hband .brand .name{font-weight:800;font-size:17px;letter-spacing:1px;white-space:nowrap}
  .hband .slogan{display:flex;gap:0;align-items:center}
  .hband .slogan span{font-size:14px;font-weight:700;letter-spacing:2px;padding:0 13px;position:relative}
  .hband .slogan span:not(:last-child)::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:1px;height:13px;background:rgba(255,255,255,.5)}

  /* 返回首页按钮（顶部右侧，白描边） */
  .hband-right{display:flex;align-items:center;gap:18px}
  .hbtn{
    display:inline-flex;align-items:center;gap:5px;
    color:#fff;text-decoration:none;font-size:13.5px;font-weight:700;
    padding:6px 13px;border:1.5px solid rgba(255,255,255,.7);border-radius:999px;
    transition:.15s;white-space:nowrap;
  }
  .hbtn:hover{background:rgba(255,255,255,.18);border-color:#fff}
  @media(max-width:600px){.hband .slogan{display:none}.hbtn{font-size:13px;padding:6px 12px}}

  /* 中部：居中的白卡表单 */
  .abody{flex:1;display:flex;align-items:center;justify-content:center;padding:20px}
  .abox{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 28px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
  .abox .welcome{text-align:center;margin-bottom:18px}
  .abox .welcome h2{font-size:22px;font-weight:800;color:var(--ink)}
  .abox .welcome p{font-size:13.5px;color:var(--sub);margin-top:6px}

  .field{position:relative;margin-bottom:13px}
  .field svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:var(--sub)}
  .field input{padding-left:42px;margin:0}
  .field input:focus{box-shadow:0 0 0 3px rgba(31,165,74,.14)}

  .abox form .btn{width:100%;margin-top:4px;border-radius:10px;padding:12px}

  /* 微信联系提示卡片 */
  .wechat-notice{
    margin-top:18px;padding:16px;border-radius:12px;
    background:linear-gradient(135deg,#fef9f0 0%,#fff8e6 100%);
    border:1px solid #f0dca0;text-align:center;
  }
  .wechat-notice h3{font-size:15px;font-weight:700;color:#b8860b;margin:0 0 8px}
  .wechat-notice p{font-size:13px;color:#8a7332;margin:0 0 10px;line-height:1.5}
  /* height:auto —— 源图 admin_wechat.png 是 379×360（宽高比 1.053），
     之前写死 height:130px 会把它横向压扁 5%，微信「扫一扫」对几何变形敏感，
     会明显掉识别率。必须让高度跟着宽度走，保持原始比例。
     尺寸同时放大到 200px：微信官方建议二维码渲染边长 ≥200px，扫码成功率更高。
     （下方「纯电脑版」那一组没有包在 @media 里、就是全局默认，两处保持同值避免歧义。） */
  .wechat-notice img{width:200px;height:auto;max-width:100%;border-radius:8px;border:2px solid #f0dca0;display:block;margin:0 auto 8px}

  /* 纯电脑版：放大、更醒目（全局默认，不做手机塌缩） */
  .hband{padding:18px 34px}
  .hband .brand img{height:46px}
  .hband .brand .name{font-size:20px}
  .hband .slogan span{font-size:16px;padding:0 16px}
  .hbtn{font-size:15px;padding:7px 15px}
  .abody{padding:48px 20px}
  .abox{max-width:440px;padding:38px 40px;border-radius:18px;
    box-shadow:0 18px 48px rgba(31,165,74,.10),0 2px 8px rgba(0,0,0,.04)}
  .abox .welcome{margin-bottom:24px}
  .abox .welcome h2{font-size:27px;letter-spacing:1px}
  .abox .welcome p{font-size:15px;margin-top:8px}
  .field{margin-bottom:16px}
  .field input{font-size:16px;padding-top:15px;padding-bottom:15px;border-radius:10px}
  .field svg{width:20px;height:20px;left:15px}
  .abox form .btn{font-size:17px;padding:15px;border-radius:12px}
  .wechat-notice{padding:18px 20px}
  .wechat-notice h3{font-size:16px}
  .wechat-notice img{width:200px;height:auto}

/* ── 失败态引导（2026-11-03）────────────────────────────────────────
   依据：近 30 天登录失败 135 次，11 个 IP 试 3-5 次后彻底放弃。
   原来「忘记密码？」入口在表单下方、扫码步骤埋在二维码下面 → 用户找不到出口、只能反复试。 */
.flash-go{color:var(--primary);font-weight:700;text-decoration:underline;margin-left:6px;white-space:nowrap}
.flash-go:hover{opacity:.75}
.wechat-notice .wn-act{font-size:13.5px;line-height:1.6;color:#7a6520;background:rgba(255,255,255,.72);
  border:1px solid #f0dca0;border-radius:6px;padding:8px 10px;margin:0 0 10px;text-align:left}
.wechat-notice .wn-act b{color:#a06d10}
/* 密码错时把二维码面板高亮一下，指引视线 */
.wechat-notice.flash-hl{animation:wnFlash 2.4s ease-out 1}
@keyframes wnFlash{
  0%,100%{box-shadow:0 0 0 0 rgba(200,16,46,0)}
  12%{box-shadow:0 0 0 5px rgba(200,16,46,.26)}
  55%{box-shadow:0 0 0 5px rgba(200,16,46,.18)}
}
