/* ===== JLPT 记忆宫殿 - 认证模块样式 ===== */

/* ---------- 基础样式 ---------- */
.header { overflow:visible !important; }
/* 顶部导航按钮统一等宽（排除圆形图标按钮） */
.header-btns { gap:12px !important; }
.header-btns .header-btn:not(.header-btn-icon) { min-width:0 !important; width:100% !important; padding:8px 4px !important; text-align:center; font-size:14px !important; box-sizing:border-box; }
/* 圆形图标按钮 */
.header-btn-icon { min-width:34px !important; width:34px !important; height:34px !important; padding:0 !important; border-radius:50% !important; flex:0 0 34px !important; font-size:15px !important; }
.user-area { display:inline-flex; align-items:center; gap:8px; margin-left:12px; position:relative; z-index:100; }
.sync-status-icon { font-size:14px; cursor:pointer; opacity:0.9; transition:opacity .2s; user-select:none; }
.sync-status-icon:hover { opacity:1; transform:scale(1.15); }
.sync-status-icon[title*="同步中"] { animation: spin 1s linear infinite; display:inline-block; }
@keyframes spin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
.user-btn { background:rgba(255,255,255,0.15); color:#fff; border:1px solid rgba(255,255,255,0.3); padding:8px 16px; border-radius:20px; cursor:pointer; font-size:14px; transition:all .2s; }
.user-btn:hover { background:rgba(255,255,255,0.25); }
.user-info { display:flex; align-items:center; gap:8px; }
.user-avatar { width:32px; height:32px; border-radius:50%; background:linear-gradient(135deg,#6a8aaa,#3d5166); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:14px; cursor:pointer; }
.user-name { color:#fff; font-size:14px; cursor:pointer; }
/* 双货币徽章：PP(PlayPoint·蓝) 在左，G(gold金币·黄) 在右 */
.cur-badge { display:inline-flex; align-items:center; font-size:12px; font-weight:700; padding:1px 7px; border-radius:10px; line-height:1.5; white-space:nowrap; flex-shrink:0; letter-spacing:0.2px; }
.cur-badge + .cur-badge { margin-left:2px; }
.cur-pp { color:#fff; background:#1e88e5; }
.cur-gold { color:#5d4a00; background:#ffd700; }
.cur-level { color:#fff; background:rgba(0,0,0,0.35); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,0.18); }
/* 平时成绩：毛玻璃金色 + 金属光泽 */
.cur-score { color:#ffe6a8; background:linear-gradient(135deg, rgba(255,215,130,0.30), rgba(255,185,70,0.20) 50%, rgba(230,160,40,0.28)); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border:1px solid rgba(255,205,110,0.5); text-shadow:0 1px 2px rgba(90,50,0,0.55); box-shadow:inset 0 1px 0 rgba(255,255,255,0.4), inset 0 -1px 1px rgba(160,105,20,0.3), 0 1px 3px rgba(0,0,0,0.3); position:relative; overflow:hidden; }
.cur-score::after { content:''; position:absolute; top:0; left:0; right:0; height:46%; background:linear-gradient(180deg, rgba(255,255,255,0.45), rgba(255,255,255,0)); pointer-events:none; border-radius:10px; }
.user-dropdown { position:absolute; top:100%; right:0; background:#fff; border-radius:10px; box-shadow:0 4px 20px rgba(0,0,0,0.15); min-width:180px; z-index:1000; overflow:hidden; display:none; }
.user-dropdown.show { display:block; }
.user-dropdown a { display:block; padding:10px 16px; color:#333; text-decoration:none; font-size:14px; cursor:pointer; transition:background .15s; }
.user-dropdown a:hover { background:#f5f0e8; }
.user-dropdown a.danger { color:#c62828; }
.user-dropdown .divider { height:1px; background:#eee; }

/* ---------- 通用弹窗 ---------- */
.auth-overlay { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.5); z-index:9999; display:none; align-items:center; justify-content:center; }
.auth-overlay.active { display:flex; }
.auth-box { background:#fff; border-radius:16px; width:380px; max-width:92vw; max-height:90vh; overflow-y:auto; padding:28px 32px; box-shadow:0 10px 40px rgba(0,0,0,0.2); position:relative; box-sizing:border-box; }
.auth-close { position:absolute; top:12px; right:16px; font-size:24px; cursor:pointer; color:#999; background:none; border:none; line-height:1; }
.auth-close:hover { color:#333; }
.auth-title { font-size:20px; font-weight:700; color:#2c3e50; text-align:center; margin-bottom:20px; }
.fav-tab-btn { flex:1; padding:8px 16px; border:2px solid #d0c8b8; background:#fff; color:#555; border-radius:8px; cursor:pointer; font-size:14px; font-weight:600; transition:all 0.2s; }
.fav-tab-btn:hover { border-color:#2c3e50; color:#2c3e50; }
.fav-tab-btn.active { background:#2c3e50; color:#fff; border-color:#2c3e50; }

/* 成就系统 */
.achievement-tab-btn, .lb-tab-btn { padding:6px 14px; border:2px solid #d0c8b8; background:#fff; color:#555; border-radius:6px; cursor:pointer; font-size:13px; font-weight:600; transition:all 0.2s; }
.achievement-tab-btn:hover, .lb-tab-btn:hover { border-color:#2c3e50; color:#2c3e50; }
.achievement-tab-btn.active, .lb-tab-btn.active { background:#2c3e50; color:#fff; border-color:#2c3e50; }
.achievement-item { display:flex; align-items:center; gap:12px; padding:12px; margin-bottom:8px; background:#f9f6f0; border-radius:8px; cursor:pointer; transition:all 0.2s; border:2px solid transparent; }
.achievement-item:hover { border-color:#2c3e50; transform:translateY(-1px); }
.achievement-unlocked { background:#fff8e1; }
.achievement-locked { opacity:0.6; background:#f5f5f5; }
.achievement-icon { width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:24px; flex-shrink:0; }
.achievement-info { flex:1; min-width:0; }
.achievement-name { font-size:15px; font-weight:700; color:#2c3e50; margin-bottom:2px; }
.achievement-desc { font-size:12px; color:#666; margin-bottom:2px; }
.achievement-level { font-size:11px; font-weight:600; }
.achievement-status { font-size:20px; flex-shrink:0; }
.ach-series-badge { display:inline-block; font-size:10px; padding:1px 6px; background:#e3f2fd; color:#1976d2; border-radius:4px; font-weight:600; margin-left:6px; vertical-align:middle; }
.ach-progress-wrap { margin:4px 0; }
.ach-progress-bar { width:100%; height:6px; background:#e0e0e0; border-radius:3px; overflow:hidden; }
.ach-progress-fill { height:100%; background:linear-gradient(90deg,#4caf50,#8bc34a); border-radius:3px; transition:width 0.3s; }
.ach-progress-text { font-size:11px; color:#888; margin-top:3px; }
/* 邮箱 */
.mail-list { display:flex; flex-direction:column; gap:8px; }
.mail-item { padding:12px; background:#f9f6f0; border-radius:8px; cursor:pointer; transition:all .2s; border-left:3px solid transparent; }
.mail-item:hover { background:#fff3e0; transform:translateX(2px); }
.mail-unread { background:#fff8e1; border-left-color:#ff9800; font-weight:600; }
.mail-item-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.mail-sender { font-size:13px; color:#2c3e50; font-weight:600; }
.mail-date { font-size:11px; color:#999; }
.mail-dot { width:8px; height:8px; background:#f44336; border-radius:50%; display:inline-block; margin-left:6px; }
.mail-title { font-size:14px; color:#333; margin-bottom:2px; }
.mail-preview { font-size:12px; color:#888; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mail-detail-title { font-size:20px; font-weight:700; color:#2c3e50; margin-bottom:8px; }
.mail-detail-meta { display:flex; justify-content:space-between; font-size:12px; color:#888; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid #eee; }
.mail-detail-content { font-size:14px; color:#333; line-height:1.8; white-space:pre-wrap; }
.mail-pinned { background:#ffebee !important; border-left-color:#e53935 !important; }
.mail-pinned .mail-title { color:#c62828; }

/* 排行榜 */
.leaderboard-item { display:flex; align-items:center; gap:12px; padding:10px 12px; margin-bottom:6px; background:#f9f6f0; border-radius:8px; cursor:pointer; transition:all 0.2s; }
.leaderboard-item:hover { background:#fff3e0; transform:translateX(4px); }
.lb-rank { width:36px; height:36px; border-radius:50%; background:#2c3e50; color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; flex-shrink:0; }
.lb-user { flex:1; min-width:0; }
.lb-username { font-size:14px; font-weight:600; color:#2c3e50; }
.lb-realname { font-size:11px; color:#888; }
.lb-value { font-size:16px; font-weight:700; color:#2c3e50; text-align:right; flex-shrink:0; }
.auth-tabs { display:flex; gap:0; margin-bottom:20px; border-bottom:2px solid #eee; }
.auth-tab { flex:1; text-align:center; padding:10px; cursor:pointer; font-size:16px; font-weight:600; color:#999; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .2s; }
.auth-tab.active { color:#2c3e50; border-bottom-color:#2c3e50; }
.auth-form .form-group { margin-bottom:14px; }
.auth-form label { display:block; font-size:13px; color:#666; margin-bottom:6px; font-weight:600; }
.auth-form input, .auth-form textarea { width:100%; padding:10px 14px; border:1px solid #ddd; border-radius:8px; font-size:14px; outline:none; transition:border-color .2s; box-sizing:border-box; font-family:inherit; }
.auth-form input:focus, .auth-form textarea:focus { border-color:#3d5166; }
.auth-submit { width:100%; padding:12px; background:linear-gradient(135deg,#2c3e50,#3d5166); color:#fff; border:none; border-radius:8px; font-size:15px; font-weight:600; cursor:pointer; transition:opacity .2s; margin-top:4px; }
.auth-submit:hover { opacity:0.9; }
.auth-error { color:#c62828; font-size:13px; margin-top:8px; min-height:18px; }
.auth-links { text-align:center; margin-top:12px; }
.auth-links a { color:#3d5166; cursor:pointer; font-size:13px; text-decoration:underline; }
.auth-hint { text-align:center; color:#999; font-size:12px; margin-top:12px; }

/* ---------- 个人资料 ---------- */
.profile-section { margin-bottom:8px; }
.profile-row { display:flex; align-items:center; padding:10px 0; border-bottom:1px solid #f0f0f0; }
.profile-label { width:80px; color:#666; font-size:14px; font-weight:600; flex-shrink:0; }
.profile-value { flex:1; color:#333; font-size:14px; word-break:break-all; }
.profile-readonly { font-size:11px; color:#999; background:#f5f5f5; padding:2px 8px; border-radius:8px; flex-shrink:0; }
.profile-edit-btn { background:none; border:1px solid #ddd; color:#666; padding:4px 12px; border-radius:6px; cursor:pointer; font-size:12px; transition:all .2s; flex-shrink:0; }
.profile-edit-btn:hover { border-color:#3d5166; color:#3d5166; }

/* ---------- 管理后台 ---------- */
.admin-overlay { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.5); z-index:9999; display:none; align-items:flex-start; justify-content:center; padding:30px 20px; overflow-y:auto; }
.admin-overlay.active { display:flex; }
.admin-box { background:#fff; border-radius:16px; width:900px; max-width:95vw; max-height:90vh; overflow-y:auto; padding:24px; box-shadow:0 10px 40px rgba(0,0,0,0.2); position:relative; box-sizing:border-box; }
.admin-close { position:absolute; top:12px; right:16px; font-size:24px; cursor:pointer; color:#999; background:none; border:none; z-index:10; line-height:1; }
.admin-close:hover { color:#333; }
.admin-title { font-size:20px; font-weight:700; color:#2c3e50; margin-bottom:16px; }
.admin-tabs { display:flex; gap:0; margin-bottom:20px; border-bottom:2px solid #eee; }
.admin-tab { padding:10px 20px; cursor:pointer; font-size:14px; font-weight:600; color:#999; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .2s; white-space:nowrap; }
.admin-tab.active { color:#2c3e50; border-bottom-color:#2c3e50; }
.admin-stats { display:flex; gap:16px; margin-bottom:20px; }
.admin-stat-card { flex:1; background:linear-gradient(135deg,#f8f6f0,#fff); border:1px solid #e8ddd0; border-radius:12px; padding:16px; text-align:center; box-sizing:border-box; }
.admin-stat-card .num { font-size:28px; font-weight:700; color:#2c3e50; }
.admin-stat-card .label { font-size:12px; color:#999; margin-top:4px; }
.admin-table-wrap { overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; font-size:13px; }
.admin-table th { background:#f8f6f0; padding:10px 8px; text-align:left; font-weight:600; color:#555; border-bottom:2px solid #e0d5c5; white-space:nowrap; }
.admin-table td { padding:10px 8px; border-bottom:1px solid #f0ebe0; }
.admin-table tr:hover { background:#faf8f4; }
.admin-badge { padding:3px 10px; border-radius:10px; font-size:11px; font-weight:600; }
.admin-badge.admin { background:#ffe0b2; color:#e65100; }
.admin-badge.sub_admin { background:#fff9c4; color:#f57f17; }
.admin-badge.user { background:#e8f5e9; color:#2e7d32; }
.status-badge { padding:3px 10px; border-radius:10px; font-size:11px; font-weight:600; }
.status-badge.active { background:#e8f5e9; color:#2e7d32; }
.status-badge.pending { background:#fff3e0; color:#e65100; }
.status-badge.disabled { background:#ffebee; color:#c62828; }
.status-badge.approved { background:#e8f5e9; color:#2e7d32; }
.status-badge.rejected { background:#ffebee; color:#c62828; }
.status-badge.used { background:#f5f5f5; color:#999; }
.status-badge.fulfilled { background:#e8f5e9; color:#2e7d32; }
.admin-action-btn { padding:4px 10px; border:1px solid #ddd; border-radius:6px; cursor:pointer; font-size:12px; margin:2px; background:#fff; transition:all .2s; }
.admin-action-btn:hover { border-color:#3d5166; }
.admin-action-btn.primary { background:#2c3e50; color:#fff; border-color:#2c3e50; }
.admin-action-btn.danger { color:#c62828; border-color:#ffcdd2; }
.admin-action-btn.danger:hover { background:#ffebee; }
.admin-action-btn.warn { color:#e65100; border-color:#ffe0b2; }
.admin-empty { text-align:center; padding:40px; color:#999; }

/* ---------- 每日测试弹窗 ---------- */
.daily-header { text-align:center; margin-bottom:16px; }
.daily-date { font-size:13px; color:#999; margin-bottom:6px; }
.daily-level { font-size:22px; font-weight:700; margin:8px 0; }
.daily-level span { color:#764ba2; }
.daily-desc { font-size:12px; color:#666; }
.daily-stats { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
.daily-stat-card { background:#f8f9fa; padding:14px 10px; border-radius:10px; text-align:center; border:1px solid #eee; box-sizing:border-box; }
.daily-stat-card .num { font-size:24px; font-weight:700; color:#333; }
.daily-stat-card .num.orange { color:#e65100; }
.daily-stat-card .num.gold { color:#c9a96e; }
.daily-stat-card .label { font-size:12px; color:#999; margin-top:4px; }
.daily-rule-box { background:#fff8e1; padding:12px 14px; border-radius:8px; font-size:13px; color:#795548; line-height:1.9; margin-bottom:16px; }
.daily-rule-box strong { color:#5d4037; }
.daily-result-ok { background:#e8f5e9; color:#2e7d32; padding:12px; border-radius:8px; text-align:center; margin-bottom:16px; font-size:14px; }
.daily-result-fail { background:#ffebee; color:#c62828; padding:12px; border-radius:8px; text-align:center; margin-bottom:16px; font-size:14px; }

/* ---------- 排行榜 ---------- */
.leaderboard-table { width:100%; border-collapse:collapse; font-size:14px; }
.leaderboard-table th { background:#f8f6f0; padding:10px 8px; text-align:left; font-weight:600; color:#555; border-bottom:2px solid #e0d5c5; white-space:nowrap; }
.leaderboard-table td { padding:10px 8px; border-bottom:1px solid #f0ebe0; }
.leaderboard-table tr { cursor:pointer; transition:background .15s; }
.leaderboard-table tr:hover { background:#faf8f4; }
.leaderboard-tip { text-align:center; font-size:12px; color:#999; margin-top:12px; }

/* ---------- 用户详情 ---------- */
.user-detail-name { font-size:20px; font-weight:700; margin-bottom:10px; }
.user-detail-meta { font-size:13px; color:#666; line-height:2; margin-bottom:14px; }
.user-detail-section { margin-bottom:14px; padding-top:12px; border-top:1px solid #eee; }
.user-detail-section:first-of-type { border-top:none; padding-top:0; }
.user-detail-section .section-title { font-weight:600; margin-bottom:8px; font-size:14px; color:#333; }
.user-detail-row { display:flex; justify-content:space-between; padding:5px 0; font-size:13px; border-bottom:1px solid #f5f5f5; }
.user-detail-row .lbl { color:#666; }
.user-detail-row .val { color:#333; font-weight:500; }

/* 收藏按钮 */
.word-item { position:relative; }
.fav-btn { position:absolute; top:6px; right:8px; font-size:16px; cursor:pointer; user-select:none; z-index:2; line-height:1; }
.fav-btn:hover { transform:scale(1.2); }
.pass-level-row { margin-bottom:10px; }
.pass-level-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; font-size:13px; }
.pass-level-name { font-weight:600; color:#333; }
.pass-level-count { color:#666; }
.pass-bar-bg { width:100%; height:14px; background:#f0f0f0; border-radius:7px; overflow:hidden; }
.pass-bar-fill { height:100%; border-radius:7px; transition:width .3s; min-width:0; }
.pass-bar-fill.lv-N5 { background:linear-gradient(90deg,#81c784,#4caf50); }
.pass-bar-fill.lv-N4 { background:linear-gradient(90deg,#64b5f6,#2196f3); }
.pass-bar-fill.lv-N3 { background:linear-gradient(90deg,#ffb74d,#ff9800); }
.pass-bar-fill.lv-N2 { background:linear-gradient(90deg,#e57373,#f44336); }
.pass-empty { text-align:center; font-size:12px; color:#999; padding:10px 0; }

/* ---------- 积分商店 ---------- */
.shop-points-header { text-align:center; margin-bottom:16px; font-size:15px; }
.shop-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.shop-item-card { background:#fff; border:1px solid #e0e0e0; border-radius:10px; padding:14px; display:flex; flex-direction:column; min-height:130px; box-sizing:border-box; }
.shop-item-card .item-name { font-weight:600; font-size:15px; margin-bottom:6px; }
.shop-item-card .item-desc { font-size:13px; color:#666; flex:1; margin-bottom:10px; line-height:1.5; }
.shop-item-card .item-footer { display:flex; justify-content:space-between; align-items:center; }
.shop-item-card .item-cost { color:#c9a96e; font-weight:600; }

/* ---------- 测试菜单底部入口 ---------- */
#dailyTestEntry { margin-top:16px; padding-top:14px; border-top:2px dashed #ddd; }
#dailyTestEntry > div { display:flex; gap:10px; }
#dailyTestEntry .diff-btn { flex:1; min-height:72px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:10px 8px; box-sizing:border-box; }
#dailyTestEntry .diff-btn strong { font-size:12px; margin-top:6px; font-weight:400; opacity:0.9; display:block; line-height:1.3; }

/* ---------- Toast ---------- */
.toast { position:fixed; top:20px; left:50%; transform:translateX(-50%) translateY(-100px); background:#333; color:#fff; padding:12px 24px; border-radius:8px; font-size:14px; z-index:10000; transition:transform .3s; opacity:0; max-width:90vw; text-align:center; }
.toast.show { transform:translateX(-50%) translateY(0); opacity:1; }
.toast.success { background:#2e7d32; }
.toast.error { background:#c62828; }

/* ==================== 手机端适配 (≤600px) ==================== */
@media (max-width: 600px) {
  /* 通用弹窗 */
  .auth-box { width:94vw; padding:20px 16px; border-radius:12px; max-height:92vh; }
  .auth-title { font-size:18px; margin-bottom:16px; }
  .auth-close { top:8px; right:12px; font-size:26px; padding:4px; }
  .auth-tab { font-size:15px; padding:10px 6px; }
  .auth-form input, .auth-form textarea { font-size:16px; padding:10px 12px; }
  .auth-form label { font-size:12px; }
  .auth-submit { padding:12px; font-size:15px; min-height:44px; }

  /* 管理后台 */
  .admin-box { width:97vw; padding:14px 12px; border-radius:12px; max-height:92vh; }
  .admin-title { font-size:18px; margin-bottom:12px; }
  .admin-close { top:8px; right:12px; font-size:26px; padding:4px; }
  .admin-stats { flex-direction:row; flex-wrap:wrap; gap:8px; }
  .admin-stat-card { flex:1; min-width:calc(50% - 4px); padding:10px 8px; }
  .admin-stat-card .num { font-size:22px; }
  .admin-stat-card .label { font-size:11px; }
  /* tab横向滚动，等宽不挤压 */
  .admin-tabs { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .admin-tab { padding:10px 16px; font-size:13px; flex:none; min-width:72px; text-align:center; }
  .admin-table { font-size:12px; }
  .admin-table th, .admin-table td { padding:8px 6px; }
  .admin-action-btn { padding:6px 10px; font-size:12px; margin:2px; min-height:32px; }

  /* 个人资料 */
  .profile-row { flex-wrap:wrap; gap:4px; }
  .profile-label { width:100%; margin-bottom:2px; font-size:13px; }
  .profile-value { font-size:13px; }
  .profile-edit-btn { padding:5px 12px; font-size:12px; min-height:32px; }

  /* 用户区域：手机端紧凑显示，隐藏用户名防止金币显示不全 */
  .user-area { margin-left:0; gap:6px; max-width:calc(100vw - 190px); overflow:visible; }
  .user-name { display:none !important; }
  .user-avatar { width:30px; height:30px; font-size:13px; flex-shrink:0; }
  .user-info .cur-badge { font-size:10px !important; padding:0 3px !important; flex-shrink:0; line-height:1.4; }
  .user-info .cur-badge + .cur-badge { margin-left:0 !important; }
  .user-info > span[style*="font-size:11px"] { display:none !important; }
  .user-info { gap:3px !important; cursor:pointer; }
  .user-dropdown { right:0; top:calc(100% + 6px); min-width:160px; }
  .sync-status-icon { font-size:13px; }

  /* 顶部8按钮：手机端4列等宽 */
  .header-btns { gap:6px !important; padding:0 8px !important; max-width:100% !important; }
  .header-btns .header-btn:not(.header-btn-icon) { min-width:0 !important; width:100% !important; padding:6px 2px !important; font-size:11px !important; border-radius:12px !important; height:36px !important; }
  .header-btn-icon { width:34px !important; height:34px !important; min-width:34px !important; flex:0 0 34px !important; position:relative !important; z-index:101 !important; }
  .header-btn-icon svg { width:20px !important; height:20px !important; pointer-events:none; }

  /* 右上角 */
  .header-top-right { top:8px !important; left:8px; right:8px; width:auto; gap:5px !important; z-index:200 !important; }
  .header-top-right #userAreaContainer { flex:1 1 auto; justify-content:flex-start; min-width:0; }

  /* 每日测试 */
  .daily-level { font-size:20px; }
  .daily-stats { gap:10px; }
  .daily-stat-card { padding:12px 8px; }
  .daily-stat-card .num { font-size:22px; }
  .daily-rule-box { font-size:12px; padding:10px 12px; line-height:1.8; }

  /* 排行榜 */
  .leaderboard-table { font-size:13px; }
  .leaderboard-table th, .leaderboard-table td { padding:8px 6px; }

  /* 用户详情 */
  .user-detail-name { font-size:18px; }
  .user-detail-meta { font-size:12px; line-height:1.8; }
  .user-detail-row { font-size:12px; }

  /* 积分商店：手机端单列等宽 */
  .shop-grid { grid-template-columns:1fr; gap:10px; }
  .shop-item-card { min-height:100px; padding:12px; }

  /* 测试菜单入口按钮：等宽等高 */
  #dailyTestEntry > div { gap:8px; }
  #dailyTestEntry .diff-btn { min-height:68px; padding:8px 6px; font-size:14px; }
  #dailyTestEntry .diff-btn strong { font-size:11px; margin-top:4px; }

  /* Toast */
  .toast { width:90vw; padding:10px 16px; font-size:13px; }
}

/* ==================== 平板端适配 (601-900px) ==================== */
@media (min-width:601px) and (max-width:900px) {
  .admin-box { width:96vw; padding:18px; }
  .admin-tab { padding:10px 14px; font-size:13px; }
  .admin-stats { gap:10px; }
  .admin-stat-card { padding:14px; }
  .shop-grid { grid-template-columns:1fr 1fr; }
}

/* ==================== 皮肤商店 5 个 tab 手机端一次性全显示 ==================== */
@media (max-width:600px) {
  .admin-tabs.skin-tabs { flex-wrap:wrap; overflow-x:visible; justify-content:center; row-gap:0; }
  .admin-tabs.skin-tabs .admin-tab { min-width:0; flex:0 0 auto; padding:9px 13px; }
}
