/* 登录页样式 */
.auth-card {position: relative; max-width: 420px;height: 550px; margin: 0 auto; }
.input-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #9aa0a6; }
.input-with-icon { padding-left: 20px; padding-right: 40px; border-radius: 12px; height: 44px; }
.btn-primary-soft { background: #9fe4d8; border: none; color: #0f5132; font-weight: 600; height: 44px; border-radius: 12px; transition: background-color .2s ease, box-shadow .2s ease; }
.btn-primary-soft:hover,
.btn-primary-soft:focus { background: #8cd9cc; color: #0f5132; }
.btn-primary-soft:active { background: #78cfc0; color: #0f5132; }
.btn-primary-soft:disabled,
.btn-primary-soft.disabled { opacity: .65; }
.divider { display:flex; align-items:center; gap:12px; margin:16px 0; color:#9aa0a6; }
.divider::before, .divider::after { content:""; flex:1; height:1px; background:#e5e7eb; }
.google-btn { border: 1px solid #eaebe5; height: 44px; border-radius: 12px; display:flex; align-items:center; justify-content:center; gap:8px; font-weight:600; text-decoration: none;}
.social-row { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:12px; }
.social-circle { width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid #e5e7eb; background:#fff; text-decoration: none; }
.muted-tip { position: absolute;width: 100%; bottom: 16px; left: 50%; transform: translateX(-50%); color:#9aa0a6; font-size:13px; text-align:center; margin-top:16px; }
.link { color:#0ea5e9; text-decoration:none; }
.top-actions { display:flex; justify-content:flex-end; font-size:13px; margin-bottom:8px; }
.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.45); display: none; align-items: center; justify-content: center; z-index: 9999; }
.modal-card { background: #fff; border-radius: 12px; width: 320px; padding: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.15); text-align: center; }
.icon { vertical-align: middle; display:inline-block; }
#btnGoogle .icon { width:18px; height:18px; }
.social-circle .icon { width:22px; height:22px; }
#wxOpenLink .icon { width:18px; height:18px; }

/* Tabs */
.tab-nav { display:flex; gap:24px; align-items:center; font-weight:600; }
.tab-btn { background:none; border:none; padding:8px 0; color:#6b7280; }
.tab-btn.active { color:#000; }
.tab-underline { height:1px; background:#e5e7eb; margin:8px 0 16px; position:relative; }
.tab-underline::after { content:""; position:absolute; left: var(--underline-left, 0); top:-1px; height:2px; width: var(--underline-width, 120px); background:#000; transition: left .25s ease, width .25s ease; }
.tab-content { transition: opacity .2s ease, transform .2s ease; }
.tab-content[aria-hidden="true"] { opacity:0; transform: translateY(6px); height:0; overflow:hidden; }
.tab-content[aria-hidden="false"] { opacity:1; transform: translateY(0); }

/* 中央半透明提示 */
.center-toast { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); background: rgba(0,0,0,0.8); color: #fff; padding: 12px 16px; border-radius: 12px; z-index: 1100; box-shadow: 0 10px 30px rgba(0,0,0,0.25); display: none; max-width: 80%; text-align: center; }
.center-toast.show { display: block; animation: fadeInOut 2.8s ease; }
@keyframes fadeInOut { 0% { opacity: 0; transform: translate(-50%, -50%) scale(0.98);} 10% { opacity: 1; transform: translate(-50%, -50%) scale(1);} 90% { opacity: 1; } 100% { opacity: 0; } }

/* 密码可见切换按钮 */
.pwd-eye { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: transparent; border: none; color: #6b7280; font-size: 13px; cursor: pointer; }
.pwd-eye:focus { outline: none; }
.pwd-eye .icon { width: 18px; height: 18px; opacity: .5;}
