/* ============ 前台登录 / 注册弹窗（全站通用） ============
   由后台「系统设置 → 登录注册」决定展示哪些方式（见 app/common.php::yx_login_opts）。
   同一份样式同时用于：① 全站登录弹窗；② 独立登录页 /login（body.lg-standalone）。
   不要把它改回老模板那套（layout/user_menu + auth.css 已废弃）。 */

.login-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1500;display:none;
  align-items:center;justify-content:center;padding:20px;box-sizing:border-box;}
.login-mask.show{display:flex;}

.login-modal{position:relative;width:100%;max-width:500px;max-height:calc(100vh - 40px);overflow-y:auto;
  background:#fff;border-radius:16px;box-shadow:0 12px 48px rgba(0,0,0,.2);
  padding:44px 40px 34px;text-align:center;box-sizing:border-box;}

.login-close{position:absolute;top:10px;right:16px;font-size:24px;line-height:1;color:#bbb;
  background:none;border:none;cursor:pointer;transition:color .2s;padding:2px 6px;}
.login-close:hover{color:#333;}

.login-logo{font-size:24px;font-weight:700;color:#222;letter-spacing:1px;margin-bottom:18px;}

/* 面板 */
.login-pane{width:100%;}
.login-title{font-size:18px;font-weight:700;color:#222;margin:20px 0 0;letter-spacing:.5px;
  display:flex;align-items:center;justify-content:center;gap:8px;}
.login-title-ico{width:24px;height:24px;display:block;}
.login-qr-box{display:inline-block;margin-top:20px;padding:20px;background:#fff;border-radius:12px;
  box-shadow:0 4px 16px rgba(0,0,0,.08);}
#loginQr,#loginQqQr{display:block;width:150px;height:150px;}
.login-qr-tip{margin-top:14px;font-size:12.5px;color:#9aa3b0;}
.login-empty{margin-top:26px;font-size:13.5px;color:#9aa3b0;line-height:1.9;}

/* 其它登录方式（竖向排列）：微信 / QQ / 账号密码 面板下使用 */
.login-alt{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:22px;}
.login-alt a{display:flex;align-items:center;justify-content:center;gap:8px;width:200px;height:40px;
  box-sizing:border-box;border:none;border-radius:999px;color:#fff;font-size:14px;font-weight:700;
  text-decoration:none;white-space:nowrap;transition:filter .2s;background:#12B7F5;}
.login-alt a:hover{filter:brightness(.9);}
.login-alt a.qq{background:#12B7F5;}
.login-alt a.wx{background:#07C160;}
.login-alt a.phone{background:#07C160;}
.login-alt a.acc{background:#3A73D6;}
.login-alt a.reg{background:#fff;color:#3A73D6;border:1px solid #cfdff7;}
.login-alt a.reg:hover{background:#f5f9ff;filter:none;}
.login-alt img{width:18px;height:18px;filter:brightness(0) invert(1);}
.login-alt a.reg img{display:none;}

/* 其它登录方式（横向平铺）：手机号 / 免密 面板下使用 */
.phone-alt{display:flex;width:100%;align-items:center;justify-content:center;gap:10px;margin-top:18px;}
.phone-alt a{display:inline-flex;align-items:center;justify-content:center;gap:5px;
  flex:1 1 0;min-width:0;max-width:132px;height:38px;padding:0 8px;box-sizing:border-box;
  border:none;border-radius:999px;color:#fff;font-size:12.5px;font-weight:600;
  text-decoration:none;white-space:nowrap;transition:filter .2s;}
.phone-alt a:hover{filter:brightness(.92);}
.phone-alt a.qq{background:#12B7F5;}
.phone-alt a.wx{background:#07C160;}
.phone-alt a.acc{background:#3A73D6;}
.phone-alt img{width:16px;height:16px;filter:brightness(0) invert(1);}
/* 只有 2 个其它登录方式时（.alt-2 由 JS 按实际数量打上）：撑满到与登录按钮同宽，
   左右两边正好对齐 —— 宽度 = .phone-submit 的 340px，两个按钮各 (340-10)/2 */
.phone-alt.alt-2{max-width:340px;}
.phone-alt.alt-2 > a{max-width:165px;}

/* 表单行（手机号 / 账号密码 共用） */
.phone-form{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:24px;}
.phone-row{display:flex;align-items:center;width:100%;max-width:340px;height:44px;
  border:1px solid #e5e7eb;border-radius:8px;background:#fff;transition:border-color .2s;box-sizing:border-box;}
.phone-row:focus-within{border-color:#07C160;}
.phone-prefix{flex-shrink:0;width:56px;text-align:center;font-size:14px;color:#333;
  border-right:1px solid #eee;line-height:42px;}
.phone-input{flex:1;min-width:0;border:none;outline:none;background:none;padding:0 14px;
  font-size:14px;color:#333;height:100%;box-sizing:border-box;font-family:inherit;}
.phone-input::placeholder{color:#b6bcc6;}
.captcha-canvas{flex-shrink:0;width:92px;height:38px;margin-right:5px;border-radius:5px;cursor:pointer;display:block;}
.sms-btn{flex-shrink:0;width:104px;height:32px;margin-right:6px;border:1px solid #07C160;background:#fff;
  color:#07C160;font-size:13px;border-radius:6px;cursor:pointer;transition:all .2s;font-family:inherit;}
.sms-btn:hover:not(:disabled){background:#07C160;color:#fff;}
.sms-btn:disabled{cursor:not-allowed;}
.phone-submit{width:100%;max-width:340px;height:44px;border:none;border-radius:999px;background:#07C160;
  color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:filter .2s;margin-top:6px;font-family:inherit;}
.phone-submit:hover{filter:brightness(.92);}
.phone-submit:disabled{opacity:.7;cursor:not-allowed;}
.phone-submit.blue{background:#3A73D6;}
.acc-err{display:none;width:100%;max-width:340px;box-sizing:border-box;background:#fdeeee;
  border:1px solid #f5c6c6;color:#c0392b;font-size:12.5px;border-radius:8px;padding:8px 12px;text-align:left;}
.acc-tip{font-size:12.5px;color:#999;text-align:center;}
.acc-tip a{color:#2D7CDF;text-decoration:none;}

/* 协议 */
.login-agree{margin-top:18px;font-size:12px;color:#999;display:flex;align-items:center;justify-content:center;gap:5px;}
.login-check{width:14px;height:14px;accent-color:#2D7CDF;cursor:pointer;margin:0;flex-shrink:0;}
.login-agree label{cursor:pointer;}
.login-agree a{color:#2D7CDF;text-decoration:none;}
.login-agree a:hover{text-decoration:underline;}

/* 轻提示（演示功能用） */
.login-toast{display:none;margin-top:14px;padding:9px 14px;border-radius:8px;background:#fff8e6;
  border:1px solid #ffe0a3;color:#a8730a;font-size:12.5px;line-height:1.6;}

/* ============ 独立登录页 /login：同一份弹窗，直接铺在页面上 ============ */
.lg-standalone{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;
  background:#f5f6f8;padding:calc(7vh + 120px) 20px 40px;box-sizing:border-box;
  font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:14px;color:#333;}
.lg-standalone .login-mask{position:static;inset:auto;display:block;background:none;padding:0;z-index:auto;}
.lg-standalone .login-modal{max-height:none;overflow:visible;}
.lg-standalone .login-close{display:none;}
.lg-home{position:fixed;top:16px;right:20px;font-size:13px;color:#9aa3b0;text-decoration:none;transition:color .2s;}
.lg-home:hover{color:#3A73D6;}
.lg-copy{margin-top:16px;text-align:center;font-size:12.5px;color:#9aa3b0;line-height:1.6;}

/* 窄屏 */
@media (max-width:560px){
  .login-modal{padding:36px 22px 28px;border-radius:14px;}
  .login-alt a{flex:1 1 118px;max-width:none;}
  .phone-row,.phone-submit{max-width:100%;}
  .login-title{font-size:17px;}
  .lg-standalone{padding:32px 14px 28px;}
}
