/* ==================== 公共基础样式 ==================== */
*{margin:0;padding:0;box-sizing:border-box;font-family:"Microsoft YaHei",sans-serif}
body{background:linear-gradient(135deg,#f5f7fa 0%,#e8ecf3 100%);padding:20px;min-height:100vh}
.wrap{max-width:900px;margin:0 auto;background:#fff;border-radius:18px;padding:26px;box-shadow:0 8px 32px rgba(0,0,0,0.08)}
a{text-decoration:none}

/* 按钮 */
button{padding:10px 16px;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}
.btn-red{background:linear-gradient(135deg,#e63946,#d92121);color:#fff;box-shadow:0 2px 8px rgba(217,33,33,0.25)}
.btn-blue{background:linear-gradient(135deg,#3b82f6,#2478e0);color:#fff;box-shadow:0 2px 8px rgba(36,120,224,0.25)}
.btn-red:hover{background:linear-gradient(135deg,#d92121,#b81b1b);transform:translateY(-1px);box-shadow:0 4px 12px rgba(217,33,33,0.35)}
.btn-blue:hover{background:linear-gradient(135deg,#2478e0,#1864cc);transform:translateY(-1px);box-shadow:0 4px 12px rgba(36,120,224,0.35)}
.btn-red:active,.btn-blue:active{transform:translateY(0)}

/* 绿色/紫色按钮（找房间/快速加入） */
.btn-green{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;box-shadow:0 2px 8px rgba(22,163,74,0.25)}
.btn-green:hover{background:linear-gradient(135deg,#16a34a,#15803d);transform:translateY(-1px);box-shadow:0 4px 12px rgba(22,163,74,0.35)}
.btn-purple{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;box-shadow:0 2px 8px rgba(124,58,237,0.25)}
.btn-purple:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);transform:translateY(-1px);box-shadow:0 4px 12px rgba(124,58,237,0.35)}
.btn-green:active,.btn-purple:active{transform:translateY(0)}

/* 提示按钮（暖色系，区别于红蓝按钮） */
.btn-hint{background:linear-gradient(135deg,#faad14,#d48806);color:#fff;box-shadow:0 2px 8px rgba(250,173,20,0.25)}
.btn-hint:hover{background:linear-gradient(135deg,#d48806,#b8860b);transform:translateY(-1px);box-shadow:0 4px 12px rgba(250,173,20,0.35)}
.btn-hint:active{transform:translateY(0)}

/* 按钮悬浮提示（显示扣分信息） */
[data-tooltip]{position:relative}
[data-tooltip]::before{
    content:attr(data-tooltip);
    position:absolute;
    bottom:calc(100% + 8px);
    left:50%;
    transform:translateX(-50%);
    padding:5px 12px;
    background:rgba(0,0,0,0.8);
    color:#fff;
    font-size:12px;
    font-weight:normal;
    border-radius:6px;
    white-space:nowrap;
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease .15s;
    z-index:100
}
[data-tooltip]::after{
    content:'';
    position:absolute;
    bottom:calc(100% + 3px);
    left:50%;
    transform:translateX(-50%);
    border:5px solid transparent;
    border-top-color:rgba(0,0,0,0.8);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease .15s;
    z-index:100
}
[data-tooltip]:hover::before,
[data-tooltip]:hover::after{opacity:1}

/* 表单元素 */
select,input{padding:10px;border:1px solid #ddd;border-radius:6px;font-size:15px;transition:border-color .2s,box-shadow .2s}
select:focus,input:focus{outline:none;border-color:#2478e0;box-shadow:0 0 0 3px rgba(36,120,224,0.12)}

/* 信息提示框 */
.info-box{padding:12px 16px;background:linear-gradient(135deg,#fff5f5,#fff2f2);border-radius:10px;margin:15px 0;border-left:3px solid #d92121;font-size:15px;font-weight:500;color:#c41e1e}

/* 成语卡片 */
.idiom-card{border:2px solid #d92121;border-radius:14px;padding:16px 20px;text-align:center;margin:4px 0 2px 0;background:linear-gradient(180deg,#fffdfd 0%,#fff8f8 100%);box-shadow:0 4px 16px rgba(217,33,33,0.08)}
.cy-text{display:flex;justify-content:center;gap:6px;font-size:40px;font-weight:bold;margin:8px 0;color:#1a1a1a;text-shadow:0 1px 2px rgba(0,0,0,0.06)}
.cy-text span{display:inline-block;width:44px;text-align:center}
.py-text{display:flex;justify-content:center;gap:6px;color:#888;font-size:16px}
.py-text span{display:inline-block;width:44px;text-align:center}
.explain-text{margin-top:6px;color:#555;font-size:14px;line-height:1.5}

/* 输入框 */
.game-input{width:100%;padding:12px 14px;font-size:18px;border:2px solid #eee;border-radius:10px;margin:2px 0 4px 0;transition:border-color .2s,box-shadow .2s}
.game-input:focus{outline:none;border-color:#d92121;box-shadow:0 0 0 3px rgba(217,33,33,0.1)}

/* 消息提示 */
.msg{font-size:17px;margin:2px 0 4px 0;min-height:18px;transition:all .3s ease}
.success{color:#00a846}
.error{color:#d92121}

/* AI 提示展示框 */
.hint-box{margin:8px 0;padding:10px 16px;background:linear-gradient(135deg,#fffbe6,#fff8e1);border:1px dashed #faad14;border-radius:10px;font-size:14px;color:#ad6800;text-align:center;animation:fadeIn .3s ease}
.hint-box .hint-label{font-size:13px;color:#ad6800}
.hint-box .hint-chars{font-size:24px;font-weight:bold;color:#d4380d;letter-spacing:6px;margin:0 4px;vertical-align:middle}
.hint-box .hint-cost{font-size:12px;color:#999}

/* Tab 标签栏 */
.tab-bar{display:flex;border-bottom:2px solid #eee;margin-bottom:20px;gap:4px}
.tab-bar button{flex:1;padding:12px;border:none;background:transparent;font-size:16px;cursor:pointer;color:#888;border-radius:8px 8px 0 0;transition:all .2s ease;position:relative}
.tab-bar button:hover{color:#d92121;background:#fff5f5}
.tab-bar button.active{color:#d92121;font-weight:bold;background:#fff}
.tab-bar button.active::after{content:'';position:absolute;bottom:-2px;left:20%;right:20%;height:3px;background:#d92121;border-radius:2px}
.tab-badge{display:inline-block;background:#d92121;color:#fff;font-size:11px;padding:1px 7px;border-radius:10px;margin-left:4px;min-width:18px;text-align:center;line-height:18px;vertical-align:middle}
.tab-short{display:none}
.tab-setting-dropdown{display:none;position:relative}
.dropdown-menu{display:none;position:absolute;top:100%;right:0;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.12);z-index:100;min-width:140px;overflow:hidden}
.dropdown-menu.show{display:block}
.dropdown-item{padding:12px 16px;font-size:14px;cursor:pointer;color:#555;transition:all .15s ease;white-space:nowrap}
.dropdown-item:hover{background:#fff5f5;color:#d92121}
.dropdown-item.active{color:#d92121;font-weight:bold;background:#fff5f5}
.dropdown-arrow{font-size:10px;margin-left:2px}
.panel{display:none}
.panel.show{display:block;animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

/* 表单行 */
.form-row{margin:14px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ==================== 弹窗组件 ==================== */
/* 遮罩层 */
.confirm-mask{position:fixed;inset:0;background:rgba(0,0,0,0.35);z-index:11000;display:flex;justify-content:center;align-items:center}

/* 确认对话框 */
.confirm-box{position:relative;background:#fff;border-radius:14px;padding:22px 26px;box-shadow:0 12px 40px rgba(0,0,0,0.25);min-width:280px;max-width:88%;max-height:90vh;overflow-y:auto;text-align:center;z-index:11001;animation:popIn .18s ease-out}
.confirm-msg{font-size:16px;color:#333;margin-bottom:20px;line-height:1.6}
.confirm-actions{display:flex;gap:12px;justify-content:center}
.confirm-actions button{padding:9px 22px;border-radius:7px;cursor:pointer;font-size:14px;transition:all .15s}
.confirm-actions .btn-cancel{border:1px solid #ddd;background:#f5f5f5;color:#666}
.confirm-actions .btn-cancel:hover{background:#e8e8e8}
.confirm-actions .btn-ok{border:none;background:#d92121;color:#fff}
.confirm-actions .btn-ok:hover{background:#b81b1b}
@keyframes popIn{from{opacity:0;transform:scale(0.92)}to{opacity:1;transform:scale(1)}}

/* 美化提示框（替代原生 alert） */
.alert-modal{width:280px;padding:22px 26px;text-align:center}
.alert-icon{font-size:36px;margin-bottom:10px}
.alert-icon.error{color:#d92121}
.alert-icon.success{color:#52c41a}
.alert-icon.info{color:#1677ff}
.alert-msg{font-size:15px;color:#333;margin-bottom:18px;line-height:1.6}
.alert-modal button{padding:8px 28px;border:none;border-radius:7px;background:#d92121;color:#fff;font-size:14px;cursor:pointer}
.alert-modal button:hover{background:#b81b1b}

/* 分享弹窗 */
.share-modal{width:340px;padding:24px}
.share-qr{text-align:center;margin-bottom:16px}
.share-qr img{border-radius:10px;border:1px solid #eee}
.share-title{font-size:16px;font-weight:bold;color:#333;margin-bottom:12px;text-align:center}
.share-link-row{display:flex;gap:8px;margin-bottom:12px}
.share-link-row input{flex:1;padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;background:#f9f9f9;color:#555}
.share-link-row button{padding:8px 12px;font-size:13px;border-radius:6px;white-space:nowrap}
.share-btns{display:flex;gap:10px;justify-content:center}
.share-btns button{flex:1;padding:10px;font-size:13px;border:none;border-radius:8px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;gap:4px}
.share-wechat{background:#07c160}
.share-weibo{background:#e6162d}
.share-copy{background:#6366f1}
.share-btns button:hover{opacity:.85}

/* ==================== 房间相关样式 ==================== */
.room-id-box{display:none;margin:10px 0;padding:14px;background:linear-gradient(135deg,#fffbe6,#fff8e1);border:1px solid #ffe58f;border-radius:10px;text-align:center;box-shadow:0 2px 8px rgba(255,229,143,0.3)}
.room-id-label{font-size:14px;color:#ad6800}
.room-id-num{font-size:28px;font-weight:bold;letter-spacing:6px;color:#d4380d;font-family:'Courier New',monospace;margin:0 10px;text-shadow:0 1px 2px rgba(212,56,13,0.1)}
.host-panel{display:none;margin:10px 0;padding:12px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:10px;text-align:center}
.host-label{font-size:14px;color:#0369a1}
.lock-status{display:none;margin-left:10px;font-size:13px;color:#dc2626;font-weight:bold}
.btn-leave{background:#f5f5f5;color:#666;border:1px solid #d9d9d9;border-radius:6px;cursor:pointer;transition:all .2s}
.btn-leave:hover{background:#ff4d4f;color:#fff;border-color:#ff4d4f}

/* 回合倒计时 */
.turn-countdown{display:inline-block;padding:3px 12px;border-radius:20px;font-size:14px;font-weight:bold;color:#fff;background:linear-gradient(135deg,#1677ff,#0958d9);box-shadow:0 2px 6px rgba(22,119,255,0.3);animation:countdownPulse 1s ease-in-out infinite}
.turn-countdown.countdown-warning{background:linear-gradient(135deg,#ff4d4f,#d92121);box-shadow:0 2px 8px rgba(217,33,33,0.4);animation:countdownUrgent .5s ease-in-out infinite}
@keyframes countdownPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes countdownUrgent{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}

/* ==================== 登录/注册弹窗 ==================== */
.auth-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:10000;justify-content:center;align-items:center}
.auth-box{background:#fff;border-radius:16px;padding:26px 30px;width:320px;box-shadow:0 20px 60px rgba(0,0,0,0.3);animation:popIn .2s ease-out}
.auth-title{text-align:center;color:#d92121;margin:0 0 18px 0;font-size:20px}
.auth-error{background:#fff2f0;border:1px solid #ffccc7;border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:14px;color:#cf1322;line-height:1.6;text-align:center}
.auth-input{width:100%;padding:10px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:border-color .2s,box-shadow .2s;margin-bottom:12px}
.auth-input:focus{outline:none;border-color:#d92121;box-shadow:0 0 0 3px rgba(217,33,33,0.1)}
.auth-status{font-size:12px;margin:2px 0 0;min-height:0}
.auth-switch{text-align:center;margin-top:14px;font-size:13px}
.auth-switch a{color:#3b82f6;text-decoration:none;cursor:pointer}
.auth-switch a:hover{text-decoration:underline}
.auth-cancel{text-align:center;margin-top:8px}
.auth-cancel a{color:#999;text-decoration:none;font-size:13px;cursor:pointer}
.auth-cancel a:hover{color:#666}
.reg-name-field{display:none}

/* ==================== 公开房间列表弹窗 ==================== */
.room-list-content{max-height:400px;overflow-y:auto}

/* 返回上次房间提示 */
.rejoin-hint{text-align:center;margin:6px 0 2px}
.rejoin-hint a{color:#1677ff;font-size:13px;cursor:pointer;text-decoration:none;padding:4px 12px;border:1px solid #91caff;border-radius:16px;background:#f0f7ff;transition:all .2s}
.rejoin-hint a:hover{background:#e6f4ff;border-color:#1677ff}
.room-card{background:#f8f9fa;border:1px solid #e8ecf3;border-radius:10px;padding:12px 14px;margin-bottom:10px;transition:all .2s}
.room-card:hover{border-color:#3b82f6;box-shadow:0 2px 12px rgba(59,130,246,0.15)}
.room-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.room-card-id{font-weight:bold;color:#333;font-size:15px}
.room-card-level{font-size:12px;padding:2px 8px;border-radius:10px;color:#fff}
.room-card-level.easy{background:#22c55e}
.room-card-level.mid{background:#faad14}
.room-card-level.hard{background:#e63946}
.room-card-info{font-size:13px;color:#666;display:flex;gap:14px;flex-wrap:wrap}
.room-card-info span{display:inline-flex;align-items:center;gap:3px}
.room-card-join{margin-top:8px;width:100%;padding:8px;font-size:14px}
.room-list-empty{text-align:center;color:#999;padding:30px 0;font-size:14px}

/* ==================== 顶部导航 ==================== */
.top-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px}
.nav-links{display:flex;gap:8px;flex-wrap:wrap}
.nav-link{font-size:14px;padding:8px 14px;border-radius:8px;white-space:nowrap;transition:all .2s ease}
.nav-link.lb{color:#d92121;background:#fff2f2}
.nav-link.lb:hover{background:#ffe0e0;transform:translateY(-1px)}
.nav-link.learn{color:#722ed1;background:#f9f0ff}
.nav-link.learn:hover{background:#efdbff;transform:translateY(-1px)}
.nav-link.chain{color:#d48806;background:#fffbe6}
.nav-link.chain:hover{background:#fff1b8;transform:translateY(-1px)}
.nav-link.rules{color:#3b82f6;background:#eff6ff}
.nav-link.rules:hover{background:#dbeafe;transform:translateY(-1px)}
.nav-link.back{color:#3b82f6;background:#eff6ff}
.nav-link.back:hover{background:#dbeafe;transform:translateY(-1px)}
.nav-link.profile{color:#fa8c16;background:#fff7e6}
.nav-link.profile:hover{background:#ffe7ba;transform:translateY(-1px)}
.nav-short{display:none}

/* ==================== 排行榜页面样式 ==================== */
.lb-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.lb-header h1{color:#d92121;font-size:26px}
.refresh-btn{padding:8px 16px;background:#2478e0;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}
.refresh-btn:hover{background:#1864cc}
.lb-table{width:100%;border-collapse:collapse;margin-top:10px}
.lb-table th{background:#d92121;color:#fff;padding:12px;font-size:15px;text-align:center;border-radius:6px 6px 0 0}
.lb-table td{padding:12px;border-bottom:1px solid #eee;text-align:center;font-size:15px}
.lb-table tr:hover{background:#f8f9fe}
.rank-1 td{background:linear-gradient(90deg,#fff8e1,#fff3cd)}
.rank-2 td{background:#f5f5f5}
.rank-3 td{background:#fff1e6}

/* ==================== 卡片操作按钮 ==================== */
.card-actions{display:flex;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid #f0f0f0}
.card-action-btn{padding:4px 10px;font-size:12px;border-radius:6px;cursor:pointer;border:1px solid #eee;background:#fafafa;color:#888;transition:all .2s ease;user-select:none}
.card-action-btn:hover{border-color:#d92121;color:#d92121}
.card-action-btn.fav-active{color:#faad14;border-color:#ffe58f;background:#fffbe6}
.card-action-btn:active{transform:scale(0.96)}

/* ==================== 成语详情弹窗 ==================== */
.idiom-detail-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:10000;justify-content:center;align-items:center}
.idiom-detail-box{background:#fff;border-radius:16px;padding:30px 36px;width:420px;max-width:90%;box-shadow:0 20px 60px rgba(0,0,0,0.3);animation:popIn .2s ease-out;position:relative}
.idiom-detail-close{position:absolute;top:14px;right:16px;font-size:22px;color:#ccc;cursor:pointer;line-height:1;transition:color .2s}
.idiom-detail-close:hover{color:#d92121}
.idiom-detail-name{font-size:36px;font-weight:bold;text-align:center;color:#1a1a1a;letter-spacing:10px;margin:10px 0 6px 0}
.idiom-detail-py{text-align:center;color:#888;font-size:16px;margin-bottom:16px}
.idiom-detail-chars{display:flex;justify-content:center;gap:8px;margin-bottom:18px}
.idiom-detail-char{width:56px;min-height:56px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #d92121;border-radius:10px;background:linear-gradient(135deg,#fff8f8,#fff);padding:8px 4px;gap:2px;overflow:hidden}
.idiom-detail-char-py{font-size:12px;color:#999;font-weight:normal;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.idiom-detail-char-text{font-size:28px;font-weight:bold;color:#d92121;line-height:1.2}
.idiom-detail-meta{display:flex;justify-content:center;gap:6px;margin-bottom:16px;flex-wrap:nowrap}
.idiom-detail-meta-item{font-size:12px;color:#666;background:#f5f5f5;padding:3px 8px;border-radius:6px;white-space:nowrap}
.idiom-detail-meta-item b{color:#333}
.idiom-detail-def{background:linear-gradient(135deg,#fffbe6,#fff8e1);border-left:3px solid #faad14;border-radius:8px;padding:14px 16px;font-size:14px;line-height:1.8;color:#555}
.idiom-detail-def-title{font-size:13px;color:#ad6800;font-weight:bold;margin-bottom:4px}

/* ==================== 纠错弹窗 ==================== */
.correction-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:10000;justify-content:center;align-items:center}
.correction-box{background:#fff;border-radius:14px;padding:24px 28px;width:380px;max-width:90%;box-shadow:0 20px 60px rgba(0,0,0,0.3);animation:popIn .2s ease-out}
.correction-title{font-size:17px;font-weight:bold;color:#333;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}
.correction-close{font-size:20px;color:#ccc;cursor:pointer;line-height:1}
.correction-close:hover{color:#d92121}
.correction-field{margin-bottom:14px}
.correction-field label{display:block;font-size:13px;color:#666;margin-bottom:6px}
.correction-field select,.correction-field textarea{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit;box-sizing:border-box}
.correction-field textarea{min-height:80px;resize:vertical}
.correction-field select:focus,.correction-field textarea:focus{outline:none;border-color:#d92121;box-shadow:0 0 0 3px rgba(217,33,33,0.1)}
.correction-submit{width:100%;padding:10px;font-size:15px;margin-top:4px}
.rank-medal{font-size:24px}
.player-name{font-weight:bold;color:#333}
.score-num{color:#d92121;font-weight:bold;font-size:17px}
.level-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;color:#fff}
.level-easy{background:#52c41a}
.level-mid{background:#faad14}
.level-hard{background:#ff4d4f}
.win-rate-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:bold}
.wr-high{background:#f0fdf4;color:#15803d}
.wr-mid{background:#fffbeb;color:#d48806}
.wr-low{background:#fef2f2;color:#dc2626}
.empty-tip{text-align:center;padding:40px;color:#999;font-size:16px}

/* ==================== 全站页脚 ==================== */
.site-footer{text-align:center;padding:18px 16px 6px;margin-top:28px}
.site-footer-line{width:48px;height:3px;background:linear-gradient(90deg,#d92121,#fa8c16);border-radius:2px;margin:0 auto 14px}
.site-footer p{margin:3px 0;line-height:1.7;color:#b0b0b0;font-size:12px}
.site-footer a{color:#b0b0b0;text-decoration:none;border-bottom:1px dashed #d0d0d0;transition:all .2s}
.site-footer a:hover{color:#d92121;border-bottom-color:#d92121}
.site-footer .footer-links{margin-top:8px;}
.site-footer .footer-links a{margin:0 2px;}

/* ==================== 成语卡片列表（共享） ==================== */
.idiom-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:20px}
.idiom-item{background:#fff;border:1px solid #eee;border-radius:12px;padding:16px 18px;transition:all .25s ease;cursor:pointer;position:relative;overflow:hidden}
.idiom-item::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#d92121,#e63946);opacity:0;transition:opacity .25s ease}
.idiom-item:hover{box-shadow:0 6px 20px rgba(0,0,0,0.1);transform:translateY(-2px);border-color:#fbb}
.idiom-item:hover::before{opacity:1}
.idiom-item-name{display:flex;gap:4px;font-size:22px;font-weight:bold;color:#1a1a1a;margin-bottom:4px}
.idiom-item-name span{display:inline-block;width:28px;text-align:center}
.idiom-item-py{display:flex;gap:4px;font-size:13px;color:#999;margin-bottom:2px}
.idiom-item-py span{display:inline-block;width:28px;text-align:center}
.idiom-item-def{font-size:13px;color:#666;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.idiom-item-level{position:absolute;top:12px;right:12px;font-size:11px;padding:2px 8px;border-radius:4px;color:#fff}
.idiom-item-level.easy{background:#52c41a}
.idiom-item-level.mid{background:#faad14}
.idiom-item-level.hard{background:#ff4d4f}

/* ==================== 分页（共享） ==================== */
.pagination{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}
.pagination button{padding:7px 14px;border:1px solid #ddd;border-radius:6px;background:#fff;color:#666;font-size:14px;cursor:pointer;transition:all .2s ease}
.pagination button:hover:not(:disabled){border-color:#d92121;color:#d92121}
.pagination button.active{background:#d92121;color:#fff;border-color:#d92121}
.pagination button:disabled{opacity:0.4;cursor:not-allowed}
.pagination .page-info{font-size:13px;color:#999;padding:0 8px}
.page-jump{display:flex;align-items:center;gap:6px;margin-left:8px}
.page-jump input{width:56px;padding:6px 8px;border:1px solid #ddd;border-radius:6px;font-size:14px;text-align:center}
.page-jump input:focus{outline:none;border-color:#d92121}
.page-jump button{padding:6px 12px;font-size:13px;white-space:nowrap}

/* ==================== 通用状态（共享） ==================== */
.result-info{font-size:13px;color:#999;margin-bottom:12px;padding:0 4px}
.result-info b{color:#d92121}
.empty-state{text-align:center;padding:50px 20px;color:#999}
.empty-state-icon{font-size:48px;margin-bottom:12px;opacity:0.5}
.empty-state-text{font-size:15px}
.loading-state{text-align:center;padding:40px;color:#999;font-size:15px}
.loading-state .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d92121;margin:0 3px;animation:bounce 1.2s infinite ease-in-out}
.loading-state .dot:nth-child(2){animation-delay:0.15s}
.loading-state .dot:nth-child(3){animation-delay:0.3s}
@keyframes bounce{0%,80%,100%{transform:scale(0.6);opacity:0.5}40%{transform:scale(1);opacity:1}}

/* ==================== 响应式 ==================== */
@media(max-width:600px){
    body{padding:10px}
    .wrap{padding:14px;border-radius:14px}
    h1{font-size:22px}
    .cy-text{font-size:32px}
    .cy-text span{width:36px}
    .tab-bar{gap:2px;flex-wrap:nowrap}
    .tab-bar button{font-size:13px;padding:10px 4px;white-space:nowrap;flex:1;text-align:center}
    .tab-full{display:none}
    .tab-short{display:inline}
    .tab-setting{display:none}
    .tab-setting-dropdown{display:flex;flex:1}
    .tab-setting-trigger{flex:1;display:flex;align-items:center;justify-content:center;gap:2px}
    .tab-badge{font-size:10px;padding:0 5px;min-width:15px;line-height:15px}
    .form-row{gap:8px}
    .nav-links{gap:4px;width:100%;flex-wrap:nowrap}
    .nav-link{font-size:13px;padding:6px 4px;flex:1;text-align:center}
    .nav-full{display:none}
    .nav-short{display:inline}
    .info-box{font-size:14px;padding:10px 12px}
    .idiom-card{padding:14px 16px}
    .game-input{font-size:16px}
    .py-text{font-size:14px}
    .py-text span{width:36px}
    .explain-text{font-size:13px}

    /* 按钮触控区优化 */
    button{padding:10px 14px;font-size:14px}
    .btn-red,.btn-blue{padding:10px 16px}

    /* 排行榜表格：手机端隐藏次要列 */
    .lb-table th,.lb-table td{padding:8px 4px;font-size:13px}
    .lb-table th{font-size:13px}
    .lb-all th:nth-child(4),.lb-all td:nth-child(4),
    .lb-all th:nth-child(5),.lb-all td:nth-child(5),
    .lb-all th:nth-child(6),.lb-all td:nth-child(6),
    .lb-all th:nth-child(7),.lb-all td:nth-child(7){display:none}
    .lb-multi th:nth-child(4),.lb-multi td:nth-child(4),
    .lb-multi th:nth-child(5),.lb-multi td:nth-child(5){display:none}
    .lb-header{flex-direction:column;align-items:flex-start;gap:10px}
    .lb-header h1{font-size:22px}

    /* 弹窗适配 */
    .confirm-box{min-width:auto;width:90%;padding:18px 20px}
    .auth-box{width:100%;max-width:320px;padding:22px 20px}
    .idiom-detail-box{padding:24px 18px}
    .idiom-detail-name{font-size:30px;letter-spacing:6px}
    .idiom-detail-char{width:48px;min-height:48px;padding:6px 3px}
    .idiom-detail-char-py{font-size:11px}
    .idiom-detail-char-text{font-size:24px}
    .idiom-detail-meta{gap:6px}
    .idiom-detail-meta-item{padding:2px 6px;font-size:11px}

    /* 成语卡片/分页（共享） */
    .idiom-list{grid-template-columns:1fr;gap:10px}
    .idiom-item{padding:14px}
    .idiom-item-name{font-size:20px}
    .idiom-item-name span,.idiom-item-py span{width:24px}
    .card-action-btn{padding:6px 12px;font-size:13px}
    .pagination{gap:4px}
    .pagination button{padding:6px 10px;font-size:13px}
    .page-jump{margin-left:4px}
    .page-jump input{width:48px;font-size:13px}
    .page-jump button{padding:5px 10px;font-size:12px}

    /* 房间相关 */
    .room-id-num{font-size:24px;letter-spacing:4px}
    .room-id-box button{padding:5px 10px;font-size:13px}
    #leaveRoomBtn{margin-left:0;margin-top:6px}
    .host-panel{padding:10px}
    .turn-countdown{font-size:12px;padding:2px 10px}

    /* 创建房间表单：手机端每项独占一行 */
    .panel .form-row:first-child span,
    .panel .form-row:first-child select{font-size:13px}
    .panel .form-row:first-child select{padding:6px 8px}
    .panel .form-row:first-child .btn-red{width:100%;margin-top:4px}

    /* 加入房间行：输入框独占一行，按钮平分 */
    #joinRoomId{width:100%;margin-bottom:6px}
    #joinRoom,#findRoom,#quickJoin{flex:1;padding:10px 6px;font-size:13px}

    /* 房间列表弹窗 */
    #roomListOverlay .auth-box{max-width:100% !important;width:94% !important;padding:18px 16px}
    .room-list-content{max-height:50vh}
    .room-card{padding:10px 12px}
    .room-card-info{gap:10px;font-size:12px}
    .room-card-join{padding:9px;font-size:13px}
}
