/* 登录 / 注册 / 用户状态 样式 */
.auth-overlay {
  position: fixed; inset: 0; background: rgba(15,23,42,.55); backdrop-filter: blur(3px);
  display: flex; align-items: center; justify-content: center; z-index: 9999; padding: 20px;
}
.auth-card {
  width: 100%; max-width: 400px; background: #fff; border-radius: 18px; padding: 28px 26px;
  box-shadow: 0 20px 50px rgba(0,0,0,.25); animation: authIn .22s ease;
}
@keyframes authIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.auth-title { margin: 0 0 4px; font-size: 20px; font-weight: 700; color: #1f2937; text-align: center; }
.auth-sub { margin: 0 0 20px; font-size: 13px; color: #9ca3af; text-align: center; }
.auth-tabs { display: flex; gap: 8px; margin-bottom: 18px; background: #f1f5f9; border-radius: 10px; padding: 4px; }
.auth-tab { flex: 1; padding: 9px; font-size: 14px; border: none; background: transparent; border-radius: 8px; cursor: pointer; color: #64748b; font-weight: 600; }
.auth-tab.active { background: #fff; color: #2563eb; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.auth-field { margin-bottom: 14px; }
.auth-field label { display: block; font-size: 12.5px; color: #6b7280; margin-bottom: 6px; }
.auth-field input {
  width: 100%; padding: 11px 14px; font-size: 15px; border: 1.5px solid #d7dbe0; border-radius: 10px;
  outline: none; box-sizing: border-box; transition: border-color .15s;
}
.auth-field input:focus { border-color: #4c8bf5; }
.auth-submit { width: 100%; padding: 12px; font-size: 15px; font-weight: 600; color: #fff; background: linear-gradient(135deg,#4c8bf5,#2563eb); border: none; border-radius: 10px; cursor: pointer; margin-top: 6px; transition: opacity .15s; }
.auth-submit:hover { opacity: .92; }
.auth-submit:disabled { opacity: .5; cursor: default; }
.auth-msg { min-height: 18px; font-size: 13px; color: #dc2626; margin: 8px 0 0; text-align: center; }
.auth-msg.ok { color: #16a34a; }
.auth-skip { display: block; width: 100%; margin-top: 12px; padding: 10px; font-size: 13px; color: #6b7280; background: transparent; border: 1px solid #e5e7eb; border-radius: 10px; cursor: pointer; }
.auth-skip:hover { background: #f8fafc; }
.auth-close { position: absolute; top: 14px; right: 16px; font-size: 20px; color: #9ca3af; background: none; border: none; cursor: pointer; }

/* 顶栏用户区 */
.user-box { display: flex; align-items: center; gap: 8px; margin-left: 10px; }
.user-name { font-size: 13px; color: #fff; opacity: .9; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-btn { padding: 6px 12px; font-size: 13px; background: rgba(255,255,255,.18); color: #fff; border: none; border-radius: 8px; cursor: pointer; }
.user-btn:hover { background: rgba(255,255,255,.3); }

/* 暗色 */
[data-theme="dark"] .auth-card { background: #1e293b; }
[data-theme="dark"] .auth-title { color: #e2e8f0; }
[data-theme="dark"] .auth-tabs { background: #0f172a; }
[data-theme="dark"] .auth-tab.active { background: #334155; color: #93c5fd; }
[data-theme="dark"] .auth-field input { background: #0f172a; border-color: #334155; color: #e2e8f0; }
[data-theme="dark"] .auth-field label { color: #94a3b8; }

/* ---------- 顶栏用户区可见性修复（2026-10-02） ---------- */
/* 顶栏为浅色背景，原白字不可见 → 改深色；深色模式再切回浅色 */
.user-box .user-name { color: #1f2937; opacity: 1; display: inline-flex; align-items: center; gap: 6px; }
.user-box .user-btn { color: #1f2937; background: rgba(15, 23, 42, .07); }
.user-box .user-btn:hover { background: rgba(15, 23, 42, .14); }
[data-theme="dark"] .user-box .user-name, body.dark .user-box .user-name { color: #f1f5f9; }
[data-theme="dark"] .user-box .user-btn, body.dark .user-box .user-btn { color: #f1f5f9; background: rgba(255, 255, 255, .14); }
[data-theme="dark"] .user-box .user-btn:hover, body.dark .user-box .user-btn:hover { background: rgba(255, 255, 255, .26); }
