﻿/* auth-login.css — 多渠道登录公共样式（S-052）
 * 注意：重置仅限 auth-login / auth-modal-overlay 上下文，避免污染宿主页（MV2.4 弹出层注入父页 DOM） */
.auth-login,.auth-login *,.auth-modal-overlay,.auth-modal-overlay *{margin:0;padding:0;box-sizing:border-box}
body.auth-login{font-family:-apple-system,"Microsoft YaHei","PingFang SC",sans-serif;background:#f0f2f5;min-height:100vh;color:#333}
/* iframe 弹窗模式：白底、无暗色遮罩、卡片顶部居中（lhgdialog 已提供 modal 遮罩与标题栏） */
body.auth-login-iframe{background:#fff;display:flex;align-items:flex-start;justify-content:center;padding:0}
body.auth-login-iframe .auth-card{box-shadow:none;border-radius:0}
.auth-login a{color:#014099;text-decoration:none}
.auth-login a:hover{text-decoration:underline}

.auth-header{height:60px;background:#fff;border-bottom:1px solid #e8e8e8;display:flex;align-items:center;justify-content:space-between;padding:0 40px}
.auth-header .logo{display:flex;align-items:center;gap:10px}
.auth-header .logo img,.auth-header .logo svg{height:30px;width:auto}
.auth-header-right{font-size:12px;color:#999}

.auth-main{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 60px);padding:32px 20px}
.auth-card{width:700px;max-width:100%;background:#fff;border-radius:14px;box-shadow:0 4px 24px rgba(0,0,0,0.06);display:flex;overflow:hidden;animation:authFadeIn .5s ease}
.auth-card.auth-card-modal{width:360px;flex-direction:column}
.auth-card.auth-card-admin{width:380px;flex-direction:column}
.auth-card.auth-card-bind{width:380px;flex-direction:column}
@keyframes authFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

.auth-brand{width:280px;flex-shrink:0;background:linear-gradient(135deg,#014099 0%,#002a6e 100%);padding:32px 24px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth-brand::before{content:"";position:absolute;top:-40px;right:-40px;width:140px;height:140px;background:radial-gradient(circle,rgba(255,255,255,0.06) 0%,transparent 70%);border-radius:50%}
.auth-brand .brand-logo{position:relative;z-index:1}
.auth-brand .brand-logo img{width:100%;max-width:220px;height:auto}
.auth-brand .brand-desc{font-size:12px;color:rgba(255,255,255,0.6);line-height:1.7;margin-top:12px;position:relative;z-index:1}
.auth-brand .features{margin-top:14px;position:relative;z-index:1}
.auth-brand .feature{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;color:rgba(255,255,255,0.7)}
.auth-brand .feature .dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,0.4)}
.auth-brand .brand-footer{font-size:10px;color:rgba(255,255,255,0.3);position:relative;z-index:1}

.auth-form{flex:1;padding:28px 32px 20px;display:flex;flex-direction:column;min-height:380px}
.auth-form.auth-form-compact{padding:12px 20px 14px;min-height:250px}
.auth-form .form-title{font-size:20px;color:#222;font-weight:600;margin-bottom:2px}
.auth-form .form-sub{font-size:12px;color:#999;margin-bottom:16px}
.auth-form .form-title-sm{font-size:17px;color:#222;font-weight:600;text-align:center}
.auth-form .form-sub-sm{font-size:12px;color:#888;margin-top:3px;text-align:center}

.auth-tabs{display:flex;gap:0;margin-bottom:16px;background:#f5f7fa;border-radius:6px;padding:2px}
.auth-tab{flex:1;text-align:center;padding:6px 0;font-size:12px;font-weight:500;color:#888;cursor:pointer;border-radius:5px;transition:all .2s;background:transparent;border:none;outline:none}
.auth-tab.active{color:#014099;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.08)}
.auth-pane{display:none}
.auth-pane.active{display:block;animation:authTabIn .25s ease}
@keyframes authTabIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

.auth-fg{margin-bottom:12px}
.auth-fg label{display:block;font-size:12px;color:#444;margin-bottom:4px;font-weight:500}
.auth-input-wrap{display:flex;align-items:center;border:1.5px solid #e0e0e0;border-radius:6px;transition:all .25s;background:#f8f9fb;overflow:hidden}
.auth-input-wrap:focus-within{border-color:#014099;background:#fff;box-shadow:0 0 0 3px rgba(1,64,153,0.08)}
.auth-input-wrap .icon{width:34px;text-align:center;color:#bbb;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color .25s}
.auth-input-wrap:focus-within .icon{color:#014099}
.auth-input-wrap .icon svg{width:15px;height:15px}
.auth-input-wrap input{flex:1;border:none;outline:none;height:36px;font-size:13px;background:transparent;padding-right:10px;color:#333;width:100%}
.auth-input-wrap input::placeholder{color:#b0b0b0;font-size:12px}

.auth-captcha-row,.auth-sms-row{display:flex;gap:8px}
.auth-captcha-row .auth-input-wrap,.auth-sms-row .auth-input-wrap{flex:1}
.auth-captcha-img{width:100px;height:38px;cursor:pointer;flex-shrink:0;border-radius:6px;border:1px solid #e0e0e0;background:#f8f9fb;object-fit:cover}
.auth-sms-btn{width:100px;height:38px;background:#014099;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;flex-shrink:0;transition:all .25s;white-space:nowrap}
.auth-sms-btn:hover{background:#003077;box-shadow:0 4px 12px rgba(1,64,153,0.25)}
.auth-sms-btn:disabled{background:#c0c0c0;cursor:not-allowed;box-shadow:none}

.auth-btn{width:100%;height:40px;background:linear-gradient(135deg,#014099,#002a6e);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;margin-top:2px;transition:all .25s;letter-spacing:2px}
.auth-btn:hover{background:linear-gradient(135deg,#0155b8,#003077);box-shadow:0 6px 20px rgba(1,64,153,0.3);transform:translateY(-1px)}
.auth-err{color:#d32f2f;font-size:11px;margin-top:4px;min-height:16px}

.auth-social-divider{display:flex;align-items:center;gap:12px;margin:12px 0 8px;font-size:11px;color:#bbb}
.auth-social-divider::before,.auth-social-divider::after{content:"";flex:1;height:1px;background:#eee}
.auth-social-btns{display:flex;justify-content:center;gap:12px;margin-bottom:8px}
/* 标注式社交登录按钮（图标+文字），符合 QQ 互联/微信开放平台按钮放置规范 */
.auth-social-btn{height:36px;border-radius:18px;border:1.5px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .25s;padding:0 16px;font-size:13px;font-weight:600;background:#f5f5f5}
.auth-social-btn img,.auth-social-btn svg{width:18px;height:18px;display:block}
.auth-social-btn .auth-social-label{white-space:nowrap}
.auth-social-block{margin-top:4px}
.auth-social-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.12)}
.auth-social-btn.wechat{border-color:#07C160;color:#07C160;background:#f0faf4}
.auth-social-btn.wechat svg path{fill:#07C160}
.auth-social-btn.wechat:hover{background:#07C160;color:#fff}
.auth-social-btn.wechat:hover svg path{fill:#fff}
.auth-social-btn.qq{border-color:#12B7F5;color:#12B7F5;background:#f0f8fe}
.auth-social-btn.qq svg path{fill:#12B7F5;stroke:#12B7F5}
.auth-social-btn.qq:hover{background:#12B7F5;color:#fff}
.auth-social-btn.qq:hover svg path{fill:#fff;stroke:#fff}

.auth-footer{margin-top:auto;text-align:center;font-size:12px;color:#999;padding-top:12px}
.auth-footer .dot{color:#ddd;margin:0 8px}

.auth-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.45);z-index:1000;display:flex;align-items:center;justify-content:center}
.auth-modal-header{display:flex;align-items:center;justify-content:center;padding:18px 22px 0}
.auth-modal-header .logo-svg{height:26px;width:auto;fill:#01499e}

/* MV2.4 弹出层模式：固定遮罩 + 居中卡片，取代 lhgdialog iframe（尺寸对齐 scripts/login_design/ajax_login.html） */
.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.45);z-index:10000;display:flex;align-items:center;justify-content:center;animation:authFadeIn .25s ease}
.auth-modal-overlay .auth-modal-card{position:relative;width:360px;max-width:calc(100vw - 32px);background:#fff;border-radius:12px;box-shadow:0 16px 48px rgba(0,0,0,0.2);overflow:hidden;animation:authModalIn .28s cubic-bezier(.2,.8,.2,1)}
.auth-modal-overlay .auth-modal-card.auth-card-modal{width:360px}
.auth-modal-overlay .auth-modal-close{position:absolute;top:8px;right:10px;width:28px;height:28px;border:none;background:transparent;font-size:22px;line-height:1;color:#999;cursor:pointer;border-radius:50%;transition:all .2s;z-index:2}
.auth-modal-overlay .auth-modal-close:hover{background:#f0f0f0;color:#333}
.auth-modal-overlay .auth-modal-header{padding:20px 22px 0}
.auth-modal-overlay .auth-form{padding:16px 24px 20px}
.auth-modal-overlay .auth-form.auth-form-compact{min-height:380px}
/* SMS 图形验证码门禁占位：visibility:hidden 保留空间，使两 Tab 等高防闪动 */
.auth-modal-overlay .alm-gate-hidden{visibility:hidden}
/* 弹出层内部尺寸对齐设计稿（不影响独立登录页） */
.auth-modal-overlay .auth-modal-header{padding:18px 22px 0}
.auth-modal-overlay .auth-form{padding:12px 20px 14px}
.auth-modal-overlay .auth-tabs{margin-bottom:14px}
.auth-modal-overlay .auth-tab{padding:5px 0}
.auth-modal-overlay .auth-input-wrap .icon{width:32px}
.auth-modal-overlay .auth-input-wrap .icon svg{width:14px;height:14px}
.auth-modal-overlay .auth-input-wrap input{height:34px;font-size:12px}
.auth-modal-overlay .auth-captcha-row,.auth-modal-overlay .auth-sms-row{gap:6px}
.auth-modal-overlay .auth-captcha-img{width:90px;height:36px}
.auth-modal-overlay .auth-sms-btn{width:90px;height:36px;font-size:11px}
.auth-modal-overlay .auth-btn{height:38px;font-size:13px}
.auth-modal-overlay .auth-social-divider{font-size:10px;margin:10px 0 8px}
.auth-modal-overlay .auth-social-btns{gap:10px;margin-bottom:8px}
.auth-modal-overlay .auth-social-btn{height:32px;padding:0 12px;font-size:12px}
.auth-modal-overlay .auth-social-btn svg{width:15px;height:15px}
.auth-modal-overlay .auth-footer{font-size:11px;padding:0 24px 16px}
.auth-modal-overlay .auth-footer a{color:#014099;text-decoration:none;font-weight:500}
.auth-modal-overlay .auth-footer a:hover{text-decoration:underline}
.auth-modal-overlay .auth-footer .dot{margin:0 6px}
@keyframes authModalIn{from{opacity:0;transform:translateY(-16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}

.auth-admin-header{background:linear-gradient(135deg,#014099 0%,#003077 100%);padding:24px 28px 16px;text-align:center;position:relative;overflow:hidden}
.auth-admin-header .logo{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:4px}
.auth-admin-header .logo img,.auth-admin-header .logo svg{height:32px;width:auto}
.auth-admin-header .corp{font-size:11px;color:rgba(255,255,255,0.5);margin-top:2px}

.auth-bind-header{text-align:center;padding:20px 24px 0}
.auth-bind-header .logo-svg{height:28px;width:auto;fill:#01499e;margin-bottom:10px}
.auth-bind-info{background:#f7f9fc;border-radius:8px;padding:12px 14px;display:flex;align-items:center;gap:10px;margin-bottom:16px;border:1px solid #eee}
.auth-bind-info .avt{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1.5px solid #07C160;background:#f0faf4}
.auth-bind-info .avt img{width:17px;height:17px}
.auth-bind-info .info{flex:1;min-width:0}
.auth-bind-info .info .name{font-size:13px;color:#333;font-weight:500}
.auth-bind-info .info .plat{font-size:11px;color:#999;margin-top:1px}
.auth-bind-info .badge{font-size:10px;background:#07C160;color:#fff;padding:2px 8px;border-radius:4px;font-weight:500;white-space:nowrap}
.auth-bind-later{text-align:center;margin-top:12px}
.auth-bind-later a{font-size:12px;color:#999;text-decoration:none}
.auth-bind-later a:hover{color:#3b6cff;text-decoration:underline}
.auth-bind-tip{display:flex;gap:8px;font-size:11px;color:#999;margin-top:10px;line-height:1.6;background:#fafbfc;padding:10px 12px;border-radius:6px}
.auth-bind-footer{text-align:center;font-size:11px;color:#bbb;padding:14px 24px 18px}

/* 付款强制绑手机浮层（BindPhoneModal）复用 auth-modal-overlay / auth-modal-card，无额外样式 */

/* 30天柔性提醒浮层（PhoneTipModal） */
.phone-tip-card{width:360px;padding:24px 22px 20px;text-align:center}
.phone-tip-title{font-size:17px;font-weight:600;color:#222;margin-bottom:10px}
.phone-tip-msg{font-size:13px;color:#666;line-height:1.7;margin-bottom:18px}
.phone-tip-btns{display:flex;gap:10px;justify-content:center}
.phone-tip-btns .auth-btn{width:auto;min-width:120px;margin:0}
.auth-btn-secondary{background:#fff;color:#014099;border:1px solid #014099;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;min-width:120px}
.auth-btn-secondary:hover{background:#f5f8ff}

@media (max-width:720px){
  .auth-card{flex-direction:column;width:100%}
  .auth-brand{width:100%;min-height:160px}
  .auth-header{padding:0 16px}
}
