/* ===== Login Page ===== */
.login-page { display: flex; min-height: 100vh; align-items: center; justify-content: center; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
.login-card { background: #fff; border-radius: 12px; box-shadow: 0 20px 60px rgba(0,0,0,0.15); width: 420px; max-width: 90vw; padding: 40px; }
.login-card h1 { font-size: 24px; font-weight: 700; text-align: center; margin-bottom: 4px; }
.login-card .subtitle { text-align: center; color: var(--text-secondary); margin-bottom: 32px; font-size: 14px; }
.login-btn-wework { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 12px 0; background: #07c160; color: #fff; border-radius: 8px; font-size: 16px; font-weight: 500; transition: opacity var(--transition-fast); }
.login-btn-wework:hover { opacity: 0.9; text-decoration: none; }
.login-btn-wework svg { flex-shrink: 0; }
.login-qrcode-wrap { display: flex; flex-direction: column; align-items: center; padding: 20px 0; }
.login-qrcode-wrap img { width: 280px; height: 280px; border: 1px solid var(--border-light); border-radius: 8px; }
.login-qrcode-wrap .login-tip { margin-top: 16px; color: var(--text-secondary); font-size: 14px; }
.login-back { display: block; margin-top: 24px; text-align: center; color: var(--text-secondary); cursor: pointer; font-size: 14px; }
.login-back:hover { color: var(--color-primary); text-decoration: none; }

/* Login status */
.login-status { text-align: center; padding: 20px 0; }
.login-status .spinner { margin-bottom: 16px; }
.login-status p { color: var(--text-secondary); font-size: 14px; }
.login-status .login-error { color: var(--color-error); font-size: 14px; margin-top: 16px; }
