/* ================================================================
   MIG-04 · 登录页样式（源端 login.vue scoped 高保真）
   毛玻璃卡片 + 分段导航 + 光晕 + 微信扫码
   全嵌套于 .ui-v2 下
   ================================================================ */

.ui-v2 .login-page-container { width: 90%; max-width: 1440px; margin: 3.5rem auto 7rem auto; color: #ffffff; }

.ui-v2 .login-header { text-align: center; margin-bottom: 3.5rem; }
.ui-v2 .login-main-title { font-size: 2.75rem; font-weight: 700; color: #ffffff; letter-spacing: 0.05em; margin: 0 0 0.75rem 0; }
.ui-v2 .login-sub-title { font-size: 0.9375rem; color: #a1a1aa; margin: 0; }

/* 光晕外容器 */
.ui-v2 .card-glow-wrapper { position: relative; max-width: 480px; margin: 0 auto; }
.ui-v2 .glow-bg-cyan,
.ui-v2 .glow-bg-magenta { position: absolute; width: 220px; height: 220px; border-radius: 50%; filter: blur(70px); pointer-events: none; }
.ui-v2 .glow-bg-cyan { top: -30px; left: -30px; background: rgba(70, 200, 208, 0.45); }
.ui-v2 .glow-bg-magenta { bottom: -30px; right: -30px; background: rgba(220, 90, 180, 0.4); }

/* 毛玻璃卡片 */
.ui-v2 .login-glass-card { position: relative; z-index: 1; background: rgba(14, 15, 22, 0.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1.5px solid rgba(126, 232, 250, 0.35); border-radius: 1.5rem; padding: 2.5rem 2.25rem; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.7); }

/* 认证状态提示 */
.ui-v2 .alert-msg-box { padding: 0.75rem 1rem; border-radius: 0.75rem; font-size: 0.8125rem; margin-bottom: 1.5rem; }
.ui-v2 .alert-msg-box.unavailable { background: rgba(126, 232, 250, 0.1); border: 1px solid rgba(126, 232, 250, 0.35); color: #b8eff8; }

/* 分段导航条 */
.ui-v2 .tabs-segmented-bar { display: flex; gap: 0.25rem; padding: 0.3rem; background: rgba(8, 9, 14, 0.85); border: 1.5px solid rgba(255, 255, 255, 0.15); border-radius: 9999px; margin-bottom: 2.25rem; }
.ui-v2 .tab-pill { flex: 1; height: 42px; background: transparent; border: none; border-radius: 9999px; font-size: 0.84rem; font-weight: 500; color: #a1a1aa; cursor: pointer; white-space: nowrap; transition: all 250ms ease; }
.ui-v2 .tab-pill:hover:not([aria-selected="true"]) { color: #ffffff; }
.ui-v2 .tab-pill[aria-selected="true"] { background: linear-gradient(135deg, rgba(80, 200, 210, 0.85) 0%, rgba(120, 160, 200, 0.85) 100%); color: #ffffff; font-weight: 700; box-shadow: 0 4px 14px rgba(70, 200, 208, 0.35); }

/* 表单面板切换 */
.ui-v2 .auth-panel { display: none; }
.ui-v2 .auth-panel.active { display: flex; flex-direction: column; }

/* 字段组 */
.ui-v2 .form-field-group { margin-bottom: 1.75rem; }
.ui-v2 .field-label { display: block; font-size: 0.9375rem; font-weight: 600; color: #ffffff; margin-bottom: 0.625rem; }
.ui-v2 .field-label .required-star { color: #ef4444; }

/* 胶囊输入框 */
.ui-v2 .form-input-pill { width: 100%; height: 52px; padding: 0 1.25rem; font-size: 0.9375rem; color: #ffffff; background: rgba(8, 9, 14, 0.85); border: 1.5px solid rgba(255, 255, 255, 0.15); border-radius: 0.875rem; outline: none; transition: all 250ms ease; box-sizing: border-box; }
.ui-v2 .form-input-pill::placeholder { color: #52525b; }
.ui-v2 .form-input-pill:focus { border-color: rgba(126, 232, 250, 0.7); box-shadow: 0 0 16px rgba(126, 232, 250, 0.2); }

/* 验证码行 */
.ui-v2 .code-input-row { display: flex; gap: 0.875rem; align-items: center; }
.ui-v2 .code-input { flex: 1; }
.ui-v2 .btn-get-code { height: 52px; padding: 0 1.25rem; background: rgba(255, 255, 255, 0.08); border: 1.5px solid rgba(255, 255, 255, 0.2); border-radius: 0.875rem; font-size: 0.875rem; font-weight: 500; color: #ffffff; cursor: pointer; white-space: nowrap; transition: all 200ms ease; }
.ui-v2 .btn-get-code:hover:not(:disabled) { background: rgba(255, 255, 255, 0.15); border-color: rgba(255, 255, 255, 0.35); }
.ui-v2 .btn-get-code:disabled { opacity: 0.5; cursor: not-allowed; }
.ui-v2 .field-hint-note { font-size: 0.8125rem; color: #71717a; margin: 0.5rem 0 0 0; line-height: 1.5; }

/* 提交按钮 */
.ui-v2 .btn-login-submit { width: 100%; height: 56px; background: linear-gradient(135deg, rgba(80, 200, 210, 0.85) 0%, rgba(160, 110, 210, 0.85) 100%); border: 1.5px solid rgba(126, 232, 250, 0.6); border-radius: 9999px; font-size: 1.125rem; font-weight: 700; color: #ffffff; cursor: pointer; margin-top: 1rem; box-shadow: 0 8px 24px rgba(80, 200, 210, 0.35); transition: all 250ms ease; }
.ui-v2 .btn-login-submit:hover { background: linear-gradient(135deg, rgba(90, 220, 230, 1) 0%, rgba(180, 130, 230, 1) 100%); box-shadow: 0 12px 32px rgba(126, 232, 250, 0.5); transform: translateY(-2px); }
.ui-v2 .btn-login-submit:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

/* 微信扫码区 */
.ui-v2 .wechat-login-block { display: flex; flex-direction: column; align-items: center; padding: 1rem 0 1.5rem 0; }
.ui-v2 .wechat-hint { font-size: 0.9375rem; color: #d1d5db; margin: 0 0 1.75rem 0; }

.ui-v2 .qr-code-box { position: relative; width: 180px; height: 180px; background: #ffffff; border-radius: 1rem; padding: 1rem; display: flex; align-items: center; justify-content: center; cursor: pointer; overflow: hidden; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5); }

/* 扫描线动画 */
.ui-v2 .qr-scan-line { position: absolute; top: 0; left: 0; right: 0; height: 3px; background: #46c8d0; box-shadow: 0 0 12px #46c8d0; animation: scanMove 2.5s infinite linear; }
@keyframes scanMove { 0% { top: 0; } 50% { top: 100%; } 100% { top: 0; } }

/* 二维码模拟矩阵 */
.ui-v2 .qr-mock-matrix { position: relative; width: 100%; height: 100%; border: 2px solid #000000; display: flex; align-items: center; justify-content: center; }
.ui-v2 .qr-corner { position: absolute; width: 32px; height: 32px; border: 6px solid #000000; }
.ui-v2 .qr-corner.top-left { top: 4px; left: 4px; }
.ui-v2 .qr-corner.top-right { top: 4px; right: 4px; }
.ui-v2 .qr-corner.bottom-left { bottom: 4px; left: 4px; }
.ui-v2 .qr-center-icon { font-size: 2.5rem; color: #07c160; }

.ui-v2 .qr-sub-text { font-size: 0.8125rem; color: #a1a1aa; text-align: center; line-height: 1.6; margin: 1.5rem 0 0 0; }

.ui-v2 .login-footer-legal { font-size: 0.8125rem; color: #71717a; text-align: center; line-height: 1.6; margin: 2rem 0 0 0; }
.ui-v2 .login-footer-legal a { color: #a5b4fc; text-decoration: none; }
.ui-v2 .login-footer-legal a:hover { color: #c4b5fd; }

.ui-v2 .field-error-msg { color: #ef4444; font-size: 0.75rem; margin-top: 0.25rem; }

@media (max-width: 520px) {
  .ui-v2 .login-glass-card { padding: 1.5rem 1.25rem; }
  .ui-v2 .tabs-segmented-bar { overflow-x: auto; }
  .ui-v2 .tab-pill { font-size: 0.8125rem; }
}
