/* 登录 / 注册页 + 通用弹层样式 */
.auth-wrap { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: 20px; }
.auth-card {
  position: relative; z-index: 1; width: 100%; max-width: 400px;
  background: var(--card); border-radius: 28px; padding: 34px 28px;
  box-shadow: var(--shadow); text-align: center;
}
.auth-logo { width: 64px; height: 64px; margin: 0 auto 6px; border-radius: 20px;
  background: linear-gradient(135deg, var(--brand), var(--brand2)); display: grid; place-items: center;
  font-size: 36px; box-shadow: var(--shadow-sm); }
.auth-title { font-size: 1.5rem; margin: 6px 0 4px;
  background: linear-gradient(90deg, var(--brand), var(--brand2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.auth-sub { color: var(--ink-soft); font-size: .85rem; font-weight: 600; margin-bottom: 18px; }

.auth-tabs { display: flex; background: #f1eefe; border-radius: 14px; padding: 4px; margin-bottom: 18px; }
.auth-tab { flex: 1; border: none; background: transparent; cursor: pointer; padding: 10px; border-radius: 11px;
  font-weight: 800; color: var(--ink-soft); font-size: .95rem; transition: all .15s; }
.auth-tab.active { background: #fff; color: var(--brand); box-shadow: var(--shadow-sm); }

.auth-field { display: block; text-align: left; margin-bottom: 14px; }
.auth-field span { display: block; font-weight: 700; font-size: .82rem; color: var(--ink-soft); margin-bottom: 6px; padding-left: 4px; }
.auth-field input { width: 100%; border: 2px solid var(--line); border-radius: 14px; padding: 13px 14px;
  font-size: 1rem; color: var(--ink); transition: border-color .15s; background: #fbfaff; }
.auth-field input:focus { outline: none; border-color: var(--brand); background: #fff; }

.auth-submit { width: 100%; margin-top: 4px; }
.auth-msg { min-height: 20px; font-size: .85rem; font-weight: 700; margin: 2px 0 10px; }
.auth-msg.err { color: var(--no); }
.auth-msg.ok { color: var(--ok); }
.auth-back { display: inline-block; margin-top: 16px; color: var(--ink-soft); font-size: .82rem; font-weight: 600; text-decoration: none; }
.auth-back:hover { color: var(--brand); }

/* 通用弹层（排行榜等） */
.modal-mask { position: fixed; inset: 0; background: rgba(43,35,80,.45); z-index: 100;
  display: grid; place-items: center; padding: 16px; animation: fadeUp .2s both; }
.modal-box { background: var(--card); border-radius: 24px; padding: 22px 20px; width: 100%; max-width: 460px;
  max-height: 84vh; overflow: auto; box-shadow: var(--shadow); }
.modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.modal-head h2 { font-size: 1.2rem; }
.modal-close { border: none; background: #f1eefe; width: 34px; height: 34px; border-radius: 50%; cursor: pointer;
  font-size: 1.1rem; font-weight: 800; color: var(--ink-soft); }
