/* 虫二说房 - 全局样式（清爽科技感配色） */
/* 创建日期：2026-05-16 */

*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Microsoft YaHei",sans-serif;background:#f0f5ff;color:#1a1a1a;line-height:1.6;animation:fadeInUp .3s ease both}
a{text-decoration:none;color:inherit}

/* ===== 顶部栏 ===== */
.topbar{background:linear-gradient(135deg,#0066ff 0%,#00ccff 100%);color:#fff;padding:20px 40px 16px;text-align:center;box-shadow:0 4px 20px rgba(0,102,255,0.25);position:relative;overflow:hidden}
.topbar::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 30% 50%,rgba(0,204,255,0.15) 0%,transparent 60%),radial-gradient(ellipse at 70% 50%,rgba(255,255,255,0.05) 0%,transparent 50%);pointer-events:none}
.topbar::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.4),transparent)}
.topbar h1{font-size:22px;font-weight:400;letter-spacing:2px;position:relative}
.topbar .sub{font-size:12px;color:rgba(255,255,255,0.8);margin-top:4px;position:relative}

/* ===== 导航栏 ===== */
.citybar{background:rgba(255,255,255,0.96);padding:4px 16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;min-height:38px;box-shadow:0 2px 8px rgba(0,102,255,0.05);position:sticky;top:0;z-index:100;backdrop-filter:blur(10px);gap:2px}
.citybar a{display:inline-flex;align-items:center;padding:3px 10px;color:#555;font-size:13px;border:1.5px solid transparent;border-radius:20px;white-space:nowrap;line-height:22px;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);margin:1px 1px}
.citybar a:hover{color:#0066ff;background:#f0f5ff;border-color:#d0dfff;box-shadow:0 0 0 2px rgba(0,102,255,0.06)}
.citybar a.active{color:#fff;background:linear-gradient(135deg,#0066ff,#00ccff);border-color:#0066ff;box-shadow:0 2px 10px rgba(0,102,255,0.3)}
.citybar a.home-link{color:#e74c3c;border-color:#fde8e8;background:#fde8e8}
.citybar a.home-link:hover{color:#c0392b;background:#fde8e8;border-color:#e74c3c}
.citybar a.rank-link{color:#e67e22;border-color:#fff3e0;background:#fff3e0}
.citybar a.rank-link:hover{color:#d35400;background:#fff3e0;border-color:#e67e22}
.nav-center{display:flex;flex-wrap:wrap;align-items:center;gap:2px}
.citybar .right-link{margin-left:auto;color:#0066ff}

/* ===== 主布局 ===== */
.main-wrap{max-width:1280px;margin:20px auto;padding:0 20px;display:flex;gap:20px}
.main-wrap-full{max-width:1200px;margin:20px auto;padding:0 20px}
.content{flex:1;min-width:0}

/* ===== 侧边栏 ===== */
.sidebar{width:260px;flex-shrink:0}
.sidebar-box{background:#fff;border:1px solid #e8edf2;border-radius:8px;margin-bottom:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,102,255,0.05)}
.sidebar-title{padding:8px 12px;font-size:11px;color:#888;border-bottom:1px solid #e8edf2;text-transform:uppercase;letter-spacing:1px;background:#f8faff}
.sidebar-city{display:flex;align-items:center;padding:7px 12px;font-size:13px;color:#444;border-bottom:1px solid #f0f4f8;justify-content:space-between}
.sidebar-city:hover{background:#f0f5ff;color:#0066ff}
.sidebar-city.active{background:linear-gradient(135deg,#0066ff 0%,#00ccff 100%);color:#fff}
.sidebar-city .arrow{font-size:10px;opacity:.5}
.sidebar-district{display:block;padding:6px 12px 6px 22px;font-size:12px;color:#666;border-bottom:1px solid #f5f7fa}
.sidebar-district:hover{color:#0066ff;background:#f0f5ff}
.sidebar-district.active{color:#fff;background:#0066ff}

/* ===== 排行榜样式 ===== */
.sidebar-title.rank-title{display:flex;align-items:center;gap:6px;font-size:11px;text-transform:none;letter-spacing:0;background:#f8faff}
.sidebar-title.rank-title .rank-icon{font-size:12px}
.sidebar-box.rank-clicks .sidebar-title{color:#e67e22;border-left:3px solid #e67e22}
.sidebar-box.rank-likes .sidebar-title{color:#e74c3c;border-left:3px solid #e74c3c}
.sidebar-box.rank-dislikes .sidebar-title{color:#333;border-left:3px solid #333}
.sidebar-box.rank-source{overflow:visible}

.rank-item{display:flex;align-items:center;padding:6px 10px;border-bottom:1px solid #f5f7fa;font-size:12px;color:#555;transition:background .2s}
.rank-item:hover{background:#f8faff}
.rank-item:last-child{border-bottom:none}
.rank-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:10px;font-weight:600;color:#fff;margin-right:8px;flex-shrink:0}
.rank-1{background:#E62E2E}
.rank-2{background:#FF7A2F}
.rank-3{background:#FFD300}
.rank-4{background:#26C756;color:#fff}
.rank-5{background:#14B5A8;color:#fff}
.rank-6{background:#40A9FF;color:#fff}
.rank-7{background:#1F4E99;color:#fff}
.rank-8{background:#9254DE;color:#fff}
.rank-9{background:#FF7CB9;color:#fff}
.rank-10{background:#9E5B35;color:#fff}
.rank-11{background:#6B8E23;color:#fff}
.rank-12{background:#B8C2CC;color:#fff}
.rank-13{background:#1A1A1A;color:#fff}
.rank-14{background:#D8A7B1;color:#fff}
.rank-15{background:#FF5522;color:#fff}
.rank-16{background:#5A2D81;color:#fff}

/* ===== 州市/区县标签16色（复用rank色系，白字） ===== */
.badge-rank-1{background:#E62E2E;color:#fff}
.badge-rank-2{background:#FF7A2F;color:#fff}
.badge-rank-3{background:#FFD300;color:#fff}
.badge-rank-4{background:#26C756;color:#fff}
.badge-rank-5{background:#14B5A8;color:#fff}
.badge-rank-6{background:#40A9FF;color:#fff}
.badge-rank-7{background:#1F4E99;color:#fff}
.badge-rank-8{background:#9254DE;color:#fff}
.badge-rank-9{background:#FF7CB9;color:#fff}
.badge-rank-10{background:#9E5B35;color:#fff}
.badge-rank-11{background:#6B8E23;color:#fff}
.badge-rank-12{background:#B8C2CC;color:#fff}
.badge-rank-13{background:#1A1A1A;color:#fff}
.badge-rank-14{background:#D8A7B1;color:#fff}
.badge-rank-15{background:#FF5522;color:#fff}
.badge-rank-16{background:#5A2D81;color:#fff}

/* ===== 关键词标签16色（复用rank色系，浅底深字） ===== */
.kw-tag.rank-1{background:#fde8e8;color:#b71c1c;border-color:#E62E2E}
.kw-tag.rank-2{background:#fff3e0;color:#e65100;border-color:#FF7A2F}
.kw-tag.rank-3{background:#fffde7;color:#f9a825;border-color:#FFD300}
.kw-tag.rank-4{background:#e8f8e8;color:#1b8c3d;border-color:#26C756}
.kw-tag.rank-5{background:#e8f6f5;color:#0d7c72;border-color:#14B5A8}
.kw-tag.rank-6{background:#e3f2fd;color:#1565c0;border-color:#40A9FF}
.kw-tag.rank-7{background:#e8e8fd;color:#0d47a1;border-color:#1F4E99}
.kw-tag.rank-8{background:#f3e8ff;color:#6a1b9a;border-color:#9254DE}
.kw-tag.rank-9{background:#fce4ec;color:#c2185b;border-color:#FF7CB9}
.kw-tag.rank-10{background:#fbe9e7;color:#5d4037;border-color:#9E5B35}
.kw-tag.rank-11{background:#f0f4e8;color:#3e5907;border-color:#6B8E23}
.kw-tag.rank-12{background:#f5f5f5;color:#546e7a;border-color:#B8C2CC}
.kw-tag.rank-13{background:#f5f5f5;color:#1a1a1a;border-color:#1A1A1A}
.kw-tag.rank-14{background:#fce4ec;color:#a86a7a;border-color:#D8A7B1}
.kw-tag.rank-15{background:#fde8e8;color:#d84315;border-color:#FF5522}
.kw-tag.rank-16{background:#f3e5f5;color:#4a148c;border-color:#5A2D81}

/* ===== 信息行（日期+来源）入场动画 ===== */
.info-row {
    opacity: 0;
    filter: blur(6px);
    transform: translateY(10px);
    transition: opacity 0.9s cubic-bezier(.22,.68,0,1.2), filter 0.9s cubic-bezier(.22,.68,0,1.2), transform 0.9s cubic-bezier(.22,.68,0,1.2);
}

/* ===== 关键词入场动画 ===== */
.kw-anim {
    opacity: 0;
}

/* ===== 点赞区按钮入场动画 ===== */
.vb-anim {
    opacity: 0;
}

/* ===== 相关阅读入场动画 ===== */
.rel-header-anim {
    opacity: 0;
    transition: opacity 0.4s ease;
}
.rel-anim {
    opacity: 0;
}

/* ===== 上下篇入场动画 ===== */
.pn-anim {
    opacity: 0;
}

/* ===== 打字光标闪烁 ===== */
@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

/* 城市排样式（1-16名） */
.city-rank-item .rank-1{background:linear-gradient(135deg,#E62E2E,#b71c1c)}
.city-rank-item .rank-2{background:linear-gradient(135deg,#FF7A2F,#e65100)}
.city-rank-item .rank-3{background:linear-gradient(135deg,#FFD300,#f9a825);color:#fff}
.city-rank-item .rank-4{background:#26C756;color:#fff}
.city-rank-item .rank-5{background:#14B5A8;color:#fff}
.city-rank-item .rank-6{background:#40A9FF;color:#fff}
.city-rank-item .rank-7{background:#1F4E99;color:#fff}
.city-rank-item .rank-8{background:#9254DE;color:#fff}
.city-rank-item .rank-9{background:#FF7CB9;color:#fff}
.city-rank-item .rank-10{background:#9E5B35;color:#fff}
.city-rank-item .rank-11{background:#6B8E23;color:#fff}
.city-rank-item .rank-12{background:#B8C2CC;color:#fff}
.city-rank-item .rank-13{background:#1A1A1A;color:#fff}
.city-rank-item .rank-14{background:#D8A7B1;color:#fff}
.city-rank-item .rank-15{background:#FF5522;color:#fff}
.city-rank-item .rank-16{background:#5A2D81;color:#fff}
.rank-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#444}
.rank-text-src{overflow:visible;text-overflow:unset;flex:none}
/* ===== 排行榜数字滚动 ===== */
.rank-val{font-variant-numeric:tabular-nums}

/* ===== 详情页投票按钮涟漪 ===== */
.vote-btn{position:relative;overflow:hidden}
.vote-btn::after{
    content:'';position:absolute;border-radius:50%;
    background:rgba(255,255,255,.4);width:10px;height:10px;
    top:50%;left:50%;transform:translate(-50%,-50%) scale(0);
    pointer-events:none;animation:ripple .45s ease-out forwards
}
.rank-like-val{color:#e74c3c}
.rank-dislike-val{color:#333}

/* 排行榜表格标题样式 */
.rank-clicks-title{color:#e67e22;border-left:3px solid #e67e22}
.rank-likes-title{color:#e74c3c;border-left:3px solid #e74c3c}
.rank-dislikes-title{color:#333;border-left:3px solid #333}
.rank-city-title{color:#0066ff;border-left:3px solid #0066ff}
.rank-comment-title{color:#00695c;border-left:3px solid #00695c}

/* 排行榜表格数值样式 */
.rank-clicks-val{color:#e67e22}
.rank-likes-val{color:#e74c3c}
.rank-dislikes-val{color:#333}
.rank-city-val{color:#0066ff}

.rank-comment-val{color:#00695c}
.filter-bar{padding:10px 16px;background:#fff;border:1px solid #e8edf2;border-radius:8px;margin-bottom:16px;font-size:13px;color:#888;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.filter-bar strong{color:#333}
/* ===== 区县筛选（仅手机端显示） ===== */
.filter-districts-mobile{display:none;flex-wrap:wrap;gap:4px;align-items:center;margin-top:8px}
.filter-districts-mobile .fd-item{display:inline-flex;align-items:center;padding:2px 10px;font-size:12px;color:#555;border:1.5px solid #e0e8ff;background:#f5f8ff;border-radius:20px;white-space:nowrap;text-decoration:none;transition:all .2s}
.filter-districts-mobile .fd-item:hover{color:#0066ff;border-color:#0066ff;background:#f0f5ff}
.filter-districts-mobile .fd-item.active{color:#fff;background:linear-gradient(135deg,#0066ff,#00ccff);border-color:#0066ff}
.filter-districts-mobile .fd-all{color:#e74c3c;border-color:#fde8e8;background:#fde8e8}
.filter-districts-mobile .fd-all.active{color:#fff;background:linear-gradient(135deg,#e74c3c,#c0392b);border-color:#e74c3c}

/* ===== 新闻卡片 ===== */
/* ===== 卡片扫光效果 ===== */
.news-card{
    position:relative;
    overflow:hidden;
    background:#fff;
    border:1px solid #e8edf2;
    border-radius:8px;
    padding:16px 20px;
    margin-bottom:10px;
    transition:border-color .3s,box-shadow .3s,transform .3s cubic-bezier(.4,0,.2,1);
    opacity:0;
    transform:translateY(16px);
    animation:none
}
.news-card::before{
    content:'';
    position:absolute;
    top:0;left:-100%;
    width:60%;height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);
    transform:skewX(-20deg);
    transition:left .55s cubic-bezier(.4,0,.2,1);
    pointer-events:none;
    z-index:1;
}
.news-card:hover::before{left:160%}
.news-card:hover{border-color:#a0c4ff;box-shadow:0 8px 30px rgba(0,102,255,0.14),0 0 0 1px rgba(0,102,255,0.06);transform:translateY(-4px) scale(1.005)}
.news-card .tag{display:inline-block;background:#e8f0ff;color:#0066ff;padding:1px 8px;border-radius:10px;font-size:11px;margin-right:8px}
.news-card .title{font-size:16px;color:#222;margin-bottom:8px;line-height:1.4;display:flex;align-items:center;justify-content:space-between;gap:12px}
.news-card .title-left{display:flex;align-items:center;flex:1;min-width:0;overflow:hidden}
.news-card .title-left a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.news-card .card-date{display:inline-flex;align-items:center;font-size:12px;color:#aaa;white-space:nowrap;flex-shrink:0;transition:color .2s}
.news-card .card-date:hover{color:#0066ff}
.news-card .card-date i{color:#aaa}
.news-card .title a{color:#222;transition:color .2s}
.news-card .title a:hover{color:#0066ff}
.news-card .sum{font-size:13px;color:#666;margin-bottom:8px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-indent:2em}
.news-card .sum a{color:#666;text-decoration:none;transition:color .2s}
.news-card .sum a:hover{color:#0066ff}
.news-card .src{font-size:12px;color:#999;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.news-card .src a{color:#888;text-decoration:none;transition:color .2s}
.news-card .src a:hover{color:#0066ff}

/* ===== 卡片入场动画（滚动触发，覆盖已有animation） ===== */
.news-card{
    opacity:0;
    transform:translateY(32px);
    transition:opacity .5s ease-out,transform .5s ease-out;
    animation:none
}
.news-card.card-visible{
    opacity:1;
    transform:translateY(0)
}

/* ===== 卡片圆角标签（小） ===== */
.card-badge{display:inline-block;padding:1px 8px;border-radius:12px;font-size:12px;vertical-align:middle;text-decoration:none;transition:opacity .2s}
a.card-badge:hover{opacity:.7}
.card-badge-district{background:#fde8e8;color:#c0392b;border:1px solid #c0392b}
.card-badge-city{background:#e8f4fd;color:#2980b9;border:1px solid #2980b9}
.card-badge-date{background:#fff3e0;color:#e67e22;border:1px solid #e67e22}

/* ===== 置顶角标 ===== */
.top-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:12px;font-size:11px;font-weight:600;vertical-align:middle;margin-right:6px}
/* 首页置顶-红色 */
.top-badge.top-index{background:linear-gradient(135deg,#ff6b6b,#ff4757);color:#fff;box-shadow:0 2px 6px rgba(255,71,87,0.3);animation:pulse-badge-index 2s ease-in-out infinite}
@keyframes pulse-badge-index{0%,100%{box-shadow:0 2px 6px rgba(255,71,87,0.3)}50%{box-shadow:0 2px 14px rgba(255,71,87,0.55)}}
/* 城市置顶-蓝色 */
.top-badge.top-city{background:linear-gradient(135deg,#4dabf7,#228be6);color:#fff;box-shadow:0 2px 6px rgba(34,139,230,0.3);animation:pulse-badge-city 2s ease-in-out infinite}
@keyframes pulse-badge-city{0%,100%{box-shadow:0 2px 6px rgba(34,139,230,0.3)}50%{box-shadow:0 2px 14px rgba(34,139,230,0.55)}}
/* 区县置顶-绿色 */
.top-badge.top-district{background:linear-gradient(135deg,#51cf66,#2f9e44);color:#fff;box-shadow:0 2px 6px rgba(47,158,68,0.3);animation:pulse-badge-district 2s ease-in-out infinite}
@keyframes pulse-badge-district{0%,100%{box-shadow:0 2px 6px rgba(47,158,68,0.3)}50%{box-shadow:0 2px 14px rgba(47,158,68,0.55)}}

/* ===== 相关阅读区块 ===== */
.related-wrap{margin:24px 0;background:#fff;border:1px solid #e8edf2;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,102,255,0.05)}
.related-header{padding:10px 16px;font-size:13px;font-weight:600;color:#fff;background:linear-gradient(135deg,#1F4E99,#142b63);display:flex;align-items:center;gap:8px}
.related-header i{font-size:14px}
.related-body{padding:4px 0}
.related-row{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid #f0f4f8;font-size:13px;color:#555;text-decoration:none;transition:all .2s}
.related-row:last-child{border-bottom:none}
.related-row:hover{background:#f8fbff;color:#0066ff;padding-left:22px}
.related-arrow{color:#aaa;margin-right:10px;font-size:12px;transition:color .2s}
.related-row:hover .related-arrow{color:#0066ff}
.related-meta{display:inline-flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0;font-size:11px;color:#aaa}
.related-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}

/* ===== 关键词标签（彩色小圆角） ===== */
.kw-label{display:inline-flex;align-items:center;font-size:12px;color:#888;font-weight:400;white-space:nowrap;margin-right:4px}
.kw-tag{display:inline-flex;align-items:center;padding:1px 8px;border-radius:6px;margin-right:6px;margin-bottom:0;font-size:11px;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);border:1px solid transparent;position:relative}
.kw-tag:hover{opacity:1;transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px rgba(41,128,185,0.3);border-color:rgba(41,128,185,0.4);animation:kwPulse 1s ease-in-out infinite}
.kw-row{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}
@keyframes kwPulse{
    0%,100%{box-shadow:0 4px 12px rgba(41,128,185,0.3)}
    50%{box-shadow:0 4px 20px rgba(41,128,185,0.6)}
}

/* ===== 信息标签（日期/来源） ===== */
.info-date-tag{display:inline-flex;align-items:center;padding:1px 10px 1px 16px;border-radius:10px;font-size:11px;color:#fff!important;text-decoration:none;font-weight:600;position:relative}
.info-date-tag::before{content:'';position:absolute;left:7px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,0.7)}

/* ===== 卡片来源标签 ===== */
.src-tag{display:inline-flex;align-items:center;padding:1px 10px 1px 16px;border-radius:10px;font-size:11px;color:#fff!important;text-decoration:none;font-weight:600;position:relative}
.src-tag::before{content:'';position:absolute;left:7px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,0.7)}
.contact-tag{display:inline-flex;align-items:center;padding:1px 8px;border-radius:10px;font-size:11px;background:#f0f8ff;color:#2980b9;border:1px solid #2980b9;gap:3px}
.contact-tag button{border:1px solid #e74c3c;background:none;color:#e74c3c;font-size:11px;padding:1px 6px;cursor:pointer;line-height:1;border-radius:3px;font-family:inherit}
.contact-tag button:hover{background:#e74c3c;color:#fff}

/* ===== 卡片元信息行（新布局） ===== */
.meta-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.meta-left{display:flex;align-items:center;gap:10px;font-size:12px;color:#999}
.meta-left .date{color:#aaa}
.meta-right{display:flex;align-items:center;gap:14px;font-size:13px}

/* ===== 统计指标图标样式 ===== */
.stat-item{display:inline-flex;align-items:center;gap:4px;font-size:13px}
.stat-item i{font-size:13px;width:16px;text-align:center;color:#999}
.stat-item:hover{color:#555}
.stat-item.clickable{cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}
.stat-item.clickable:hover{background:#f0f0f0}
/* 脉冲动画 */
@keyframes votePulse{
    0%{transform:scale(1)}
    50%{transform:scale(1.35)}
    100%{transform:scale(1)}
}
@keyframes votePop{
    0%{transform:scale(1);opacity:1}
    50%{transform:scale(1.4);opacity:.8}
    100%{transform:scale(1);opacity:1}
}
.stat-item.voting{animation:votePulse .35s cubic-bezier(.4,0,.2,1)}
.stat-item.voted-like{color:#e74c3c!important}
.stat-item.voted-like i{color:#e74c3c!important}
.stat-item.voted-dislike{color:#7f8c8d!important}
.stat-item.voted-dislike i{color:#7f8c8d!important}

/* ===== 点赞爆炸粒子 ===== */
@keyframes voteExplode{
    0%{transform:scale(1);box-shadow:0 0 0 0 rgba(231,76,60,.5)}
    40%{transform:scale(1.2);box-shadow:0 0 0 8px rgba(231,76,60,0)}
    100%{transform:scale(1);box-shadow:0 0 0 0 rgba(231,76,60,0)}
}
@keyframes dislikeExplode{
    0%{transform:scale(1);box-shadow:0 0 0 0 rgba(149,165,166,.5)}
    40%{transform:scale(1.2);box-shadow:0 0 0 8px rgba(149,165,166,0)}
    100%{transform:scale(1);box-shadow:0 0 0 0 rgba(149,165,166,0)}
}
.stat-item.voted-like{animation:voteExplode .45s ease-out}
.stat-item.voted-dislike{animation:dislikeExplode .45s ease-out}
/* 数字跳动 */
.stat-item .vote-count{transition:all .2s}
.stat-item.count-bump .vote-count{animation:votePop .3s ease}
/* 彩色图标 */
.stat-item.clicks i{color:#3498db}
.stat-item.impressions i{color:#9b59b6}
.stat-item.stat-like i{color:#e74c3c}
.stat-item.stat-dislike i{color:#333}
.stat-item.stat-like{color:#e74c3c}
.stat-item.stat-like:hover{color:#c0392b}
.stat-item.stat-dislike i{color:#7f8c8d}
.stat-item.stat-dislike{color:#7f8c8d}
.stat-item.stat-dislike:hover{color:#555}
/* 查看全文 */
.read-more{color:#e74c3c;font-size:13px;font-weight:500;text-decoration:none;padding:4px 10px;border:1px solid #e74c3c;border-radius:3px;transition:all .2s;white-space:nowrap}
.read-more:hover{background:#e74c3c;color:#fff}

/* ===== 详情页投票按钮 ===== */
.vote-bar{display:flex;gap:16px;margin-top:24px;padding-top:16px;border-top:1px solid #eee}
.vote-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;border:1px solid #e0e0e0;background:#fff;border-radius:20px;font-size:14px;cursor:pointer;transition:all .2s;font-family:inherit}
.vote-btn i{font-size:14px}
.vote-btn:hover{border-color:#ccc}
.vote-btn:active{transform:scale(.95)}
.vote-like{color:#e74c3c;border-color:#e74c3c}
.vote-like:hover{background:#fef5f0}
.vote-like i{color:#e74c3c}
.vote-dislike{color:#7f8c8d;border-color:#7f8c8d}
.vote-dislike:hover{background:#f5f5f5}
.vote-dislike i{color:#7f8c8d}
.vote-count{font-weight:500}
.share-btn{color:#14B5A8;border-color:#14B5A8}
.share-btn:hover{background:#e8f6f5}
.share-btn i{color:#14B5A8}
.reward-btn{color:#e67e22;border-color:#e67e22}
.reward-btn:hover{background:#fff8f0}
.reward-btn i{color:#e67e22}

/* ===== 相关推荐 ===== */
.related-articles{margin:20px 0;padding:0}
.related-item{display:flex;align-items:center;padding:10px 0;border-bottom:1px solid #f0f0f0;color:#555;font-size:13px;text-decoration:none;transition:all .2s}
.related-item:last-child{border-bottom:none}
.related-item:hover{color:#0066ff;background:linear-gradient(90deg,#f0f5ff 0%,transparent 100%);padding-left:8px}
.related-item:hover .related-arrow{color:#0066ff}
.related-arrow{color:#aaa;margin-right:10px;font-size:12px;transition:color .2s}

/* ===== 空状态 ===== */
.empty-box{text-align:center;padding:60px 0;color:#bbb}
.empty-box .icon{font-size:36px;margin-bottom:10px;opacity:.3}

/* ===== 分页 ===== */
.pager{clear:both;text-align:center;margin:20px 0;display:block !important;width:100% !important}
.pager a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;background:#fff;border:1px solid #ddd;color:#555;font-size:13px;border-radius:20px;margin:0 2px;transition:all .2s;position:relative;overflow:hidden}
.pager a:hover{background:#0066ff;color:#fff;border-color:#0066ff}
.pager a.cur{background:linear-gradient(135deg,#0066ff 0%,#00ccff 100%);color:#fff;border-color:#0066ff}
.pager a:active{transform:scale(.92)}
@keyframes ripple{
    0%{transform:scale(0);opacity:1}
    100%{transform:scale(2.5);opacity:0}
}
.pager a .ripple-circle{
    position:absolute;border-radius:50%;background:rgba(0,102,255,.3);
    width:80px;height:80px;
    top:50%;left:50%;transform:translate(-50%,-50%) scale(0);
    pointer-events:none;animation:rippleSpread .6s ease-out forwards
}

/* ===== 搜索页面 ===== */
.result-stats{font-size:13px;color:#888;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.result-stats strong{color:#0066ff}
.highlight{background:#e8f0ff;padding:1px 2px;border-radius:2px;color:#0066ff}

/* ===== 表单页面（导入/编辑） ===== */
.box{background:#fff;border:1px solid #e8edf2;border-radius:8px;padding:24px 32px;box-shadow:0 2px 8px rgba(0,102,255,0.05)}
.form-row{margin-bottom:14px}
.form-row label{display:block;font-size:13px;color:#666;margin-bottom:5px}
.form-row input[type=text],.form-row select,.form-row textarea{width:100%;padding:8px 12px;border:1px solid #e8edf2;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}
.form-row input[type=text]:focus,.form-row select:focus,.form-row textarea:focus{border-color:#0066ff;outline:none;box-shadow:0 0 0 2px rgba(0,102,255,0.1)}
.form-row textarea{height:300px;resize:vertical}
.btn{padding:8px 28px;background:linear-gradient(135deg,#0066ff 0%,#00ccff 100%);color:#fff;border:none;border-radius:20px;font-size:14px;cursor:pointer;transition:opacity .2s;font-family:inherit}
.btn:hover{opacity:.9}
.tip{font-size:12px;color:#999;margin-top:3px}

/* ===== 消息提示 ===== */
.msg{padding:10px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}
.msg-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}
.msg-error{background:#ffe8e8;color:#c62828;border:1px solid #f5c6cb}

/* ===== 数据表格（管理后台） ===== */
.data-table{width:100%;background:#fff;border:1px solid #e8edf2;border-radius:8px;border-collapse:collapse;margin-bottom:16px;font-size:13px;table-layout:fixed}
.data-table-wrap{overflow-x:auto;width:100%;display:block}
.data-table th{background:linear-gradient(135deg,#0066ff 0%,#00ccff 100%);color:#fff;padding:8px 10px;text-align:left;font-weight:400}
.data-table td{padding:8px 10px;border-bottom:1px solid #f0f4f8;vertical-align:top}
.data-table tr:hover{background:#f8faff}
.data-table .title-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-0{color:#dc3545}
.status-1{color:#28a745}
.btn-sm{padding:3px 10px;font-size:12px;border-radius:20px;border:1px solid #ddd;background:#fff;cursor:pointer;margin-right:4px;transition:all .2s;font-family:inherit}
.btn-sm:hover{background:#0066ff;color:#fff;border-color:#0066ff}
.btn-danger{border-color:#dc3545;color:#dc3545}
.btn-danger:hover{background:#dc3545;color:#fff}

/* ===== 页脚 ===== */
.footer{text-align:center;padding:24px 20px;color:#999;font-size:12px;margin-top:30px;border-top:1px solid #e8edf2;position:relative}
.footer::before{content:'';position:absolute;top:-2px;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#0066ff,transparent)}

/* ===== 登录页面 ===== */
body.login-page{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#f5f5f5}
.login{background:#fff;padding:40px;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1)}
.login input[type=password]{padding:8px;font-size:16px;width:200px}
.login input[type=submit]{padding:8px 20px;font-size:16px;background:linear-gradient(135deg,#0066ff 0%,#00ccff 100%);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:opacity .2s}
.login input[type=submit]:hover{opacity:.9}

/* ===== 编辑页面（admin_edit.asp） ===== */
.edit-box{background:#fff;border:1px solid #e8edf2;border-radius:8px;padding:24px;max-width:900px;margin:20px auto;box-shadow:0 2px 8px rgba(0,102,255,0.05)}
.form-group{margin-bottom:16px}
.form-group label{display:block;margin-bottom:6px;color:#555;font-size:14px}
.form-group input[type=text],.form-group textarea,.form-group select{width:100%;padding:8px 12px;border:1px solid #e8edf2;border-radius:4px;font-size:14px;font-family:"Microsoft YaHei",sans-serif;transition:border-color .2s,box-shadow .2s}
.form-group input[type=text]:focus,.form-group textarea:focus,.form-group select:focus{border-color:#0066ff;outline:none;box-shadow:0 0 0 2px rgba(0,102,255,0.1)}
.form-group textarea{height:300px;resize:vertical}
.btn-primary{padding:8px 24px;font-size:14px;border-radius:20px;border:1px solid #0066ff;background:linear-gradient(135deg,#0066ff 0%,#00ccff 100%);color:#fff;cursor:pointer;transition:opacity .2s;font-family:inherit}
.btn-primary:hover{opacity:.9}
.btn-cancel{padding:8px 24px;font-size:14px;border-radius:20px;border:1px solid #ddd;background:#fff;color:#666;cursor:pointer;transition:all .2s;font-family:inherit}
.btn-cancel:hover{background:#f0f0f0}

/* ===== 详情页（detail.asp） ===== */
.news-box{background:#fff;border:1px solid #e8edf2;border-radius:8px;padding:28px 32px;margin-bottom:20px}
.news-box .meta{font-size:12px;color:#999;margin-bottom:12px;display:flex;gap:16px;flex-wrap:wrap}
.news-box .tag{display:inline-block;background:#e8f0ff;color:#0066ff;padding:1px 10px;border-radius:10px;font-size:11px}
.news-box .title{font-size:20px;color:#c0392b;line-height:1.4;font-weight:700;padding-bottom:10px;letter-spacing:.5px;text-align:center;position:relative;display:inline-block}
.news-box .title-rule{display:block;height:2px;background:#c0392b;margin:6px auto 20px;width:100%}
.news-box .body{font-size:15px;color:#444;line-height:2}
.news-box .body p{margin-bottom:14px;text-indent:2em}
/* ===== 背景遮罩 ===== */
#animOverlay {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.45);
    z-index: 9998;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
}

/* ===== 阅读进度条 ===== */
#progressBar {
    position: sticky;
    top: 46px;
    height: 8px;
    width: 0%;
    background: linear-gradient(90deg, #e74c3c, #e67e22, #f1c40f, #2ecc71, #3498db, #9b59b6, #e74c3c);
    background-size: 700% 100%;
    background-position: 100% 0;
    z-index: 99;
    transition: width 0.1s linear;
    box-shadow: 0 0 10px rgba(155, 89, 182, 0.6);
    animation: rainbowFlow 3s linear infinite;
}
@keyframes rainbowFlow {
    0%   { background-position: 0% 0%; }
    100% { background-position: 100% 0%; }
}

/* 手机端进度条浮到最顶部 */
@media (max-width: 768px) {
    #progressBar { top: 0; z-index: 9999; }
}

/* ===== 详情页标题入场动画 ===== */
.anim-title {
    opacity: 0;
    filter: blur(8px);
    transform: scale(0.92);
    transition: opacity 0.9s cubic-bezier(.22,.68,0,1.2), filter 0.9s cubic-bezier(.22,.68,0,1.2), transform 0.9s cubic-bezier(.22,.68,0,1.2);
}
.anim-title.show {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
}
}

/* 正文延迟淡入 */
.anim-body {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.5s cubic-bezier(.22,.68,0,1.2) 0.08s, transform 0.5s cubic-bezier(.22,.68,0,1.2) 0.08s;
}
.anim-body.show {
    opacity: 1;
    transform: translateY(0);
}
.news-box .source{margin-top:24px;padding-top:16px;border-top:1px solid #eee;font-size:13px;color:#888}
.news-box .source a{color:#0066ff}
.news-box .keywords{margin-top:12px;font-size:12px;color:#aaa}
.news-box .keywords span{display:inline-block;background:#f4f4f4;padding:2px 10px;border-radius:10px;margin-right:6px;color:#666}

/* ===== 排行榜页面 ===== */
.rank-header{text-align:center;padding:30px 0 20px}
.rank-header h2{font-size:24px;font-weight:400;color:#333;margin-bottom:8px}
.rank-header h2 i{color:#f39c12;margin-right:8px}
.rank-desc{font-size:13px;color:#999}

.rank-tables{display:flex;flex-direction:column;gap:24px;padding-bottom:30px}
.rank-table-wrap{background:#fff;border:1px solid #e8edf2;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,102,255,0.05)}

.rank-table-title{padding:12px 16px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px}
.rank-table-title i{font-size:16px}
.rank-clicks-title{background:linear-gradient(135deg,#3498db 0%,#2980b9 100%);color:#fff}
.rank-likes-title{background:linear-gradient(135deg,#e74c3c 0%,#c0392b 100%);color:#fff}
.rank-dislikes-title{background:linear-gradient(135deg,#d84315 0%,#7f8c8d 100%);color:#fff}
.rank-comment-title{background:linear-gradient(135deg,#00695c 0%,#b2dfdb 100%);color:#fff}

.rank-table{width:100%;border-collapse:collapse;font-size:13px}
.rank-table th{background:#f8faff;padding:10px 12px;text-align:left;font-weight:400;color:#666;border-bottom:1px solid #e8edf2;font-size:12px}
.rank-table td{padding:10px 12px;border-bottom:1px solid #f5f7fa;vertical-align:middle}
.rank-table tr:last-child td{border-bottom:none}
.rank-table tr:hover{background:#fafbff}

.rank-title-cell{max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-title-cell a{color:#333}
.rank-title-cell a:hover{color:#0066ff}

.rank-city{color:#888;font-size:12px}
.rank-date{color:#aaa;font-size:12px}
.rank-val{font-weight:500;white-space:nowrap}
.rank-clicks-val{color:#3498db}
.rank-likes-val{color:#e74c3c}
.rank-dislikes-val{color:#333}
.rank-city-val{color:#0066ff}
.rank-val i{margin-right:4px}

/* 城市排行表格 */
.rank-city-title{background:linear-gradient(135deg,#0066ff 0%,#00ccff 100%);color:#fff}
.rank-city-table th{text-align:center}
.rank-city-table td{text-align:center;vertical-align:middle}
.rank-city-table .rank-title-cell{text-align:left}
.rank-city-table td .rank-val{display:inline !important;font-weight:500;color:#333;white-space:nowrap}
.rank-city-table td .rank-clicks-val{color:#3498db}
.rank-city-table td .rank-likes-val{color:#e74c3c}
.rank-city-table td .rank-dislikes-val{color:#333}
@media screen and (max-width:768px){
/* 全局 */
*{font-size:14px}
body{padding-bottom:60px}

/* 顶部栏 */
.topbar{padding:14px 16px 12px}
.topbar h1{font-size:18px;letter-spacing:1px}
.topbar .sub{font-size:11px}

/* 导航栏 */
.citybar{height:auto;min-height:36px;padding:0 10px;flex-wrap:wrap;justify-content:flex-start!important}
.citybar a{padding:6px 8px;font-size:12px;color:#333!important}
.citybar .right-link{font-size:11px;padding:6px 8px;color:#0066ff!important}

/* 城市导航手机端：每行8个 */
.city-links-wrap{display:flex;width:100%;overflow:visible;margin:4px 0}
.city-links{display:grid!important;grid-template-columns:repeat(8,1fr);gap:2px 4px;width:100%;flex:none}
.city-links a{display:flex!important;justify-content:center;align-items:center;padding:1px 2px!important;font-size:11px!important;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#333!important}

.main-wrap{padding:0 10px;gap:12px;flex-direction:column}
.main-wrap-full{padding:0 10px}
.content{width:100%}
.sidebar{width:100%;display:flex;flex-wrap:wrap;gap:8px}
.sidebar-box{width:calc(50% - 4px);margin-bottom:0}
.sidebar-title{font-size:10px}
.sidebar-city{padding:6px 10px;font-size:12px}
.sidebar-district{padding:5px 10px 5px 18px;font-size:11px}
/* 移动端隐藏侧边栏，但排行榜要显示 */
.sidebar{display:none}
.main-wrap{flex-direction:column}

/* 筛选栏 */
.filter-bar{padding:8px 12px;font-size:12px}
.filter-bar strong{display:block;margin-bottom:4px}

/* 搜索框移动端 */
.nav-search-form{margin-left:4px}
.nav-search-input{width:80px}
.nav-search-input:focus{width:100px}

/* 评论区移动端 */
.comment-textarea{min-height:64px;font-size:14px}
.comment-foot{fadding:6px 4px}

/* 新闻卡片 */
.news-card{padding:12px 14px;margin-bottom:8px}
.news-card .title{font-size:15px}
.news-card .sum{font-size:13px}
.news-card .meta{font-size:11px}

/* 分页器 */
.pager{margin:16px 0}
.pager a{padding:4px 10px;font-size:12px}

/* 搜索页面 */

/* 表单页面 */
.box{padding:16px 14px}
.form-row input[type=text],.form-row select,.form-row textarea{font-size:13px}
.form-row textarea{height:200px}

/* 详情页 */
.news-box{padding:16px 14px;border-radius:0;margin-left:-10px;margin-right:-10px;width:calc(100% + 20px)}
.news-box .title{font-size:17px}
.news-box .body{font-size:14px;line-height:1.8}
.news-box .body p{margin-bottom:10px}
.news-box .meta{flex-direction:column;gap:4px}

/* 详情页底部投票按钮 */
.vote-bar{justify-content:center;margin-top:16px;padding-top:12px}
.vote-btn{padding:6px 12px;font-size:12px;gap:4px}
.vote-btn i{font-size:12px}

/* 数据表格 */
.data-table{font-size:12px}
.data-table th,.data-table td{padding:6px 8px}
.data-table .title-cell{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.data-table thead,.data-table tbody{display:table}

/* 编辑页面 */
.edit-box{padding:16px 14px;margin:10px auto;border-radius:0;width:calc(100% + 20px)}
.form-group input[type=text],.form-group textarea,.form-group select{font-size:13px}
.form-group textarea{height:200px}
.btn-primary,.btn-cancel{padding:8px 18px;font-size:13px}

/* 页脚 */
.footer{padding:16px 10px;font-size:11px;margin-top:20px}

/* 登录页面 */
.login{padding:24px 20px;width:calc(100% - 40px);max-width:320px}
.login input[type=password]{width:100%}
.login input[type=submit]{width:100%;padding:10px}

/* 手机端显示区县下拉 */
}

/* ===== 回到顶部按钮 ===== */
.back-to-top{
    position:fixed;bottom:28px;right:28px;width:42px;height:42px;
    border-radius:50%;border:none;background:linear-gradient(135deg,#0066ff,#00ccff);
    color:#fff;font-size:18px;cursor:pointer;opacity:0;visibility:hidden;
    transform:translateY(16px) scale(0.8);transition:all .35s cubic-bezier(.4,0,.2,1);
    box-shadow:0 4px 16px rgba(0,102,255,0.3);z-index:999;
    display:flex;align-items:center;justify-content:center;
}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.back-to-top:hover{transform:translateY(-3px) scale(1.1);box-shadow:0 6px 20px rgba(0,102,255,0.4)}
.back-to-top:active{transform:translateY(0) scale(0.95)}

/* ===== 数字滚动countUp效果 ===== */
.countup{font-variant-numeric:tabular-nums;transition:color .2s}

/* 详情页阅读量/曝光量数字动画 */
.count-num{font-variant-numeric:tabular-nums;display:inline-block}
.count-num.counting{transition:none}

/* ===== 关键词从右滑入 ===== */
/* index/search：滚动触发 */
.news-card:not(.card-visible) .kw-tag {
    opacity: 0;
    transform: translateX(24px);
}
.news-card.card-visible .kw-tag {
    opacity: 1;
    transform: translateX(0);
    transition: opacity 0.35s ease-out, transform 0.35s ease-out;
}
/* detail：页面加载即触发 */
.news-box .kw-tag {
    opacity: 0;
    animation-name: kwSlideIn;
    animation-duration: 0.4s;
    animation-timing-function: ease-out;
    animation-fill-mode: forwards;
}
@keyframes kwSlideIn {
    from { opacity: 0; transform: translateX(24px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* 浮动+1动画 */
@keyframes floatUp{
    0%{opacity:1;transform:translateY(0);font-size:12px}
    60%{opacity:1;transform:translateY(-14px);font-size:13px;color:#e74c3c;font-weight:600}
    100%{opacity:0;transform:translateY(-22px);font-size:12px;color:#e74c3c;font-weight:400}
}
.float-plus{position:absolute;top:0;right:-18px;animation:floatUp .9s ease-out forwards;color:#e74c3c;font-size:12px;font-weight:600;pointer-events:none;white-space:nowrap}

/* ===== 渐变装饰条 ===== */
.gradient-strip{
    height:3px;background:linear-gradient(90deg,#0066ff,#00ccff,#a855f7,#0066ff);
    background-size:300% 100%;animation:stripMove 6s linear infinite;
    margin-bottom:0
}
@keyframes stripMove{0%{background-position:0 0}100%{background-position:300% 0}}

/* ===== 骨架屏加载 ===== */
.skeleton-card{
    background:#fff;border:1px solid #e8edf2;border-radius:8px;padding:16px 20px;margin-bottom:10px;
    position:relative;overflow:hidden
}
.skeleton-card::after{
    content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,0.6),transparent);
    animation:skeletonShimmer 1.5s infinite
}
@keyframes skeletonShimmer{0%{left:-60%}100%{left:120%}}
.skeleton-line{height:12px;background:#eee;border-radius:6px;margin-bottom:8px}
.skeleton-line.title-line{height:16px;width:75%}
.skeleton-line.sum-line{height:12px;width:90%}
.skeleton-line.meta-line{height:10px;width:50%}
/* 按钮 */
.btn{padding:8px 20px;font-size:13px}

/* ===== 回复可见遮罩 ===== */
.content-lock{
    text-align:center;padding:48px 20px;background:linear-gradient(135deg,#f8f9fc,#f0f3f8);
    border-radius:10px;border:1px dashed #d4d8e0;margin:16px 0;
}
.lock-icon{font-size:42px;margin-bottom:12px;opacity:0.8}
.lock-title{font-size:17px;font-weight:600;color:#333;margin-bottom:6px}
.lock-desc{font-size:13px;color:#888;margin-bottom:4px}
.lock-btn-wrap{margin-top:14px}
.lock-refresh-btn{
    padding:8px 24px;border:none;border-radius:6px;cursor:pointer;
    background:linear-gradient(135deg,#0066ff,#00aaff);color:#fff;
    font-size:14px;font-weight:500;font-family:inherit;
    transition:transform .15s,box-shadow .15s;
}
.lock-refresh-btn:hover{transform:scale(1.04);box-shadow:0 4px 14px rgba(0,102,255,.3)}
.lock-refresh-btn:active{transform:scale(.97)}

/* 消息提示 */
.msg{padding:8px 12px;font-size:13px;border-radius:4px}

/* ===== 评论区 ===== */
.comment-section{margin-top:20px}
.comment-header{
    display:flex;align-items:center;gap:8px;
    padding:10px 0 8px;border-bottom:2px solid #e8edf2;margin-bottom:12px;
    font-size:13px;color:#333;font-weight:600;
}
.comment-header i{color:#26C756}

/* 提交框 */
.comment-form{margin-bottom:16px}
.comment-textarea{
    width:100%;padding:10px 12px;border:1.5px solid #d0dfff;border-radius:8px;
    font-size:13px;resize:vertical;min-height:72px;max-height:200px;
    font-family:"Microsoft YaHei",sans-serif;line-height:1.5;
    transition:border-color .2s;outline:none;
}
.comment-textarea:focus{border-color:#0066ff;box-shadow:0 0 0 3px rgba(0,102,255,.1)}
.comment-textarea::-webkit-scrollbar{width:4px}
.comment-textarea::-webkit-scrollbar-thumb{background:#d0dfff;border-radius:2px}
.comment-foot{
    display:flex;justify-content:space-between;align-items:center;margin-top:6px;
}
.comment-char-count{font-size:11px;color:#aaa}
.comment-char-count.warn{color:#e74c3c;font-weight:600}
.comment-submit{
    padding:6px 18px;background:linear-gradient(135deg,#0066ff,#00ccff);
    color:#fff;border:none;border-radius:20px;font-size:12px;cursor:pointer;
    transition:opacity .2s,transform .15s;
}
.comment-submit:hover{opacity:.88;transform:translateY(-1px)}
.comment-submit:active{transform:translateY(0)}
.comment-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}
.comment-msg{font-size:12px;padding:6px 0;text-align:center}
.comment-msg.ok{color:#27ae60}
.comment-msg.err{color:#e74c3c}

/* 单条评论 */
.comment-item{
    padding:10px 0;border-bottom:1px solid #f0f4f8;
    animation:fadeInUp .3s ease both;
}
.comment-item:last-child{border-bottom:none}
.comment-meta{
    display:flex;align-items:center;gap:8px;margin-bottom:5px;
}
.comment-ip{font-size:11px;color:#aaa}
.comment-time{font-size:11px;color:#ccc;margin-left:auto}
.comment-body{font-size:13px;color:#444;line-height:1.6;word-break:break-all}
.comment-actions{display:flex;gap:12px;margin-top:5px}
.comment-vote{
    font-size:11px;color:#aaa;cursor:pointer;transition:color .2s;
    background:none;border:none;padding:0;display:flex;align-items:center;gap:3px;
}
.comment-vote:hover{color:#26C756}
.comment-vote.voted-like{color:#e74c3c}
.comment-vote.voted-dislike{color:#7f8c8d}
.comment-vote i{font-size:11px}

/* 空评论 */
.comment-empty{text-align:center;padding:20px 0;color:#ccc;font-size:13px}

/* ===== 评论翻页 ===== */
.comment-pager{margin-top:12px;display:flex;justify-content:center;align-items:center;gap:10px}
.cmt-pager{display:flex;justify-content:center;align-items:center;gap:10px;padding:10px 0}
.cmt-page-btn{display:inline-block;padding:5px 14px;border-radius:16px;font-size:12px;background:#f0f4f8;color:#666;text-decoration:none;transition:all .2s;cursor:pointer;border:1px solid #dde}
.cmt-page-btn:hover{background:#0066ff;color:#fff;border-color:#0066ff}
.cmt-page-cur{font-size:12px;color:#999;white-space:nowrap}

/* ===== 评论手机适配 ===== */
@media screen and (max-width:768px){
    .comment-section{margin-top:14px}
    .comment-header{font-size:12px;padding:8px 0 6px}
    .comment-textarea{
        font-size:14px;
        min-height:60px;
        padding:8px 10px;
    }
    .comment-submit{
        padding:7px 16px;
        font-size:13px;
        border-radius:16px;
    }
    .comment-foot{gap:8px}
    .comment-item{
        padding:8px 0;
    }
    .comment-body{
        font-size:14px;
        word-break:break-word;
        line-height:1.5;
    }
    .comment-meta{
        flex-wrap:wrap;
        gap:4px;
    }
    .comment-time{margin-left:0;font-size:10px;color:#ccc}
    .comment-ip{font-size:10px}
    .comment-pending-tag{
        font-size:10px;
        padding:1px 6px;
    }
    .comment-item-pending{
        background:#fffbf0;
        border:1px solid #ffe0b2;
        border-radius:6px;
        padding:8px;
        margin-bottom:6px;
    }
    .comment-empty{padding:14px 0;font-size:12px}
    .comment-msg{font-size:12px}
    .cmt-page-btn{padding:6px 12px;font-size:13px;border-radius:20px}
    .cmt-page-cur{font-size:12px}
}

/* 游客提示 */
.comment-tips{
    font-size:11px;color:#bbb;text-align:center;margin-top:6px;
}

/* 待审评论样式 */
.comment-item-pending{
    background:#fffbf0;
    border-color:#ffeaa7;
}
.comment-pending-tag{
    display:inline-block;
    font-size:11px;
    color:#e67e22;
    background:#fff3e0;
    border:1px solid #ffe0b2;
    border-radius:10px;
    padding:1px 8px;
    margin-left:8px;
    font-weight:500;
}

/* 排行榜移动端 */
.rank-header{padding:20px 10px 16px}
.rank-header h2{font-size:20px}
.rank-desc{font-size:12px;padding:0 10px}
.rank-tables{padding:0 10px 20px;gap:16px}
.rank-table-wrap{border-radius:6px;overflow-x:auto}
.rank-table-title{padding:10px 12px;font-size:13px}
.rank-table{font-size:12px;min-width:500px}
.rank-table th,.rank-table td{padding:8px 10px}
.rank-title-cell{max-width:120px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-city,.rank-date{font-size:11px}

/* 移动端卡片元信息 */
.meta-row{gap:6px}
.meta-left{gap:8px;font-size:11px}
.meta-right{gap:8px;font-size:12px;flex-wrap:wrap}
.stat-item{font-size:12px}
.stat-item i{font-size:12px;width:14px}
.read-more{padding:3px 8px;font-size:12px}
}

/* ===== 回到顶部按钮 ===== */
.back-to-top{position:fixed;bottom:28px;right:28px;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#0066ff,#00ccff);color:#fff;border:none;font-size:16px;cursor:pointer;box-shadow:0 2px 12px rgba(0,102,255,0.35);opacity:0;visibility:hidden;transform:translateY(10px);transition:all .3s;z-index:999;display:flex;align-items:center;justify-content:center}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,102,255,0.5)}

/* ===== 页面淡入动画 ===== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeInUp .35s ease both}

/* ===== 日历样式 ===== */
#calendarBtn{transition:all .2s}
#calendarBtn:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.5)!important}

#calendarDropdown{
    max-height:400px;
    overflow-y:auto;
    overflow-x:hidden
}

#calendarDropdown button:hover{
    background:#f0f5ff!important;
    border-radius:3px
}

#calendarGrid div{
    transition:all .2s;
    font-size:12px;
    overflow:hidden;
    min-width:0
}

#calendarGrid div:not(:first-child):hover{
    background:#f0f5ff;
    cursor:pointer
}

#calendarGrid .today{
    border:1px solid #0066ff;
    font-weight:600
}

#calendarGrid .has-articles{
    background:#e8f0ff;
    color:#0066ff;
    font-weight:500;
    border-radius:3px
}

#calendarGrid .other-month{
    color:#ccc
}

/* ===== 城市导航滑动指示条 ===== */
.nav-center{
    display:flex;align-items:center;flex-wrap:wrap;
    justify-content:center;width:100%;
}
.nav-links,.nav-right{display:contents}
.city-links-wrap{
    display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.city-links{
    display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:3px 6px;padding:2px 0;
    position:relative;flex:none;
}
.city-slider{
    position:absolute;bottom:0;height:2px;
    background:linear-gradient(90deg,#0066ff,#00ccff);
    border-radius:2px;transition:left .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1);
    pointer-events:none;box-shadow:0 0 6px rgba(0,102,255,.5);
}

@media screen and (max-width:768px){
    #calendarDropdown{
        position:fixed!important;
        top:50%!important;
        left:50%!important;
        transform:translate(-50%,-50%)!important;
        bottom:auto!important;
        right:auto!important;
        width:300px!important;
        max-height:80vh;
        overflow-y:auto
    }
}

/* ===== 上一篇/下一篇 ===== */
.prev-next-bar{display:flex;justify-content:space-between;align-items:center;margin:18px 0 8px;gap:12px}
.pn-link{color:#0066ff;text-decoration:none;display:inline-flex;align-items:center;overflow:hidden;padding:4px 0;min-width:0}
.pn-link:hover{color:#0055dd;text-decoration:underline}
.pn-disabled{color:#bbb;display:inline-flex;align-items:center;min-width:0;padding:4px 0}
.pn-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.pn-arrow{color:#0066ff;flex-shrink:0;font-size:14px;padding:0 2px}
.pn-disabled .pn-arrow{color:#bbb}
.pn-sep{width:1px;height:18px;background:#d0dfff;flex-shrink:0;margin:0 4px}

@media screen and (max-width:768px){
    .prev-next-bar{flex-direction:column;align-items:stretch;gap:6px}
    .pn-link,.pn-disabled{width:100%}
    .pn-title{flex:none;max-width:calc(100% - 30px)}
    .pn-sep{display:none}
    .related-row{font-size:12px;padding:8px 12px}
    .related-meta{margin-left:6px}
    .rel-date{display:none}
    .filter-districts-mobile{display:flex!important;width:100%;margin-left:0;margin-top:6px}
}

/* ===== 字体大小切换 ===== */
body.fs-small .news-box .body{font-size:13px!important}
body.fs-medium .news-box .body{font-size:15px!important}
body.fs-large .news-box .body{font-size:17px!important;line-height:2.2!important}

/* ===== 区县导航样式 ===== */
.district-nav .sidebar-title{color:#0066ff;border-left:3px solid #0066ff}
.district-item{display:flex;align-items:center;padding:6px 10px;border-bottom:1px solid #f5f7fa;font-size:12px;color:#555;transition:background .2s;text-decoration:none}
.district-item:hover{background:#f8faff;color:#0066ff}
.district-item.active{background:linear-gradient(135deg,#0066ff 0%,#00ccff 100%);color:#fff}
.district-item .rank-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:10px;font-weight:600;color:#fff;margin-right:8px;flex-shrink:0}
.district-item .rank-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.district-item .rank-val{display:flex;align-items:center;gap:3px;font-size:11px;color:#3498db;margin-left:6px;white-space:nowrap}
.district-item.active .rank-text,
.district-item.active .rank-val{color:#fff}
.district-all{color:#e74c3c;font-weight:600;display:flex;align-items:center;padding:7px 10px;font-size:13px;border-bottom:1px solid #f0f4f8;justify-content:space-between;text-decoration:none;transition:background .2s}
.district-all:hover{background:#fef5f0}
.district-all.active{background:linear-gradient(135deg,#e74c3c 0%,#c0392b 100%);color:#fff!important}
.district-all .rank-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font-size:10px;margin-right:8px;flex-shrink:0;background:#e74c3c;color:#fff}
.district-all .rank-text{flex:1}
.district-all .arrow{font-size:10px;opacity:.5}

/* ===== 5个新增动画 ===== */

/* 1. 新闻卡片整体入场（滚动触发，覆盖已有animation） */
.news-card{
    opacity:0;
    transform:translateY(32px);
    transition:opacity .5s ease-out,transform .5s ease-out;
    animation:none!important
}
.news-card.card-visible{
    opacity:1!important;
    transform:translateY(0)!important;
    transition:opacity .5s ease-out,transform .5s ease-out
}

/* 2. 来源标签轻微弹跳（卡片进入后触发） */
.news-card.card-visible .src-tag{
    animation:tagBounce .5s ease-out .35s both
}
@keyframes tagBounce{
    0%   {transform:scale(1)}
    40%  {transform:scale(1.12)}
    70%  {transform:scale(.96)}
    100% {transform:scale(1)}
}

/* 3. 侧边栏排行条目 stagger 入场 */
.sidebar-box .rank-item{
    opacity:0;
    transform:translateX(-16px);
    transition:opacity .35s ease-out,transform .35s ease-out
}
.sidebar-box.sidebar-visible .rank-item{
    opacity:1;
    transform:translateX(0)
}

/* 4. 翻页涟漪加强 */
.pager-ripple{
    position:relative;
    overflow:hidden
}
.ripple-circle{
    position:absolute;
    border-radius:50%;
    background:rgba(0,102,255,.3);
    width:80px;
    height:80px;
    margin-left:-40px;
    margin-top:-40px;
    animation:rippleSpread .6s ease-out forwards;
    pointer-events:none
}
@keyframes rippleSpread{
    0%   {transform:translate(-50%,-50%) scale(0);opacity:.5}
    100% {transform:translate(-50%,-50%) scale(3);opacity:0}
}

/* 5. 移动端城市导航逐条入场 */
@media(max-width:768px){
    .city-links a{
        opacity:0;
        transform:translateY(8px);
        transition:opacity .3s ease-out,transform .3s ease-out;
        color:#333!important
    }
    .city-links.city-nav-visible a{opacity:1;transform:translateY(0)}
    .city-links.city-nav-visible a:nth-child(1){transition-delay:0s}
    .city-links.city-nav-visible a:nth-child(2){transition-delay:.05s}
    .city-links.city-nav-visible a:nth-child(3){transition-delay:.10s}
    .city-links.city-nav-visible a:nth-child(4){transition-delay:.15s}
    .city-links.city-nav-visible a:nth-child(5){transition-delay:.20s}
    .city-links.city-nav-visible a:nth-child(6){transition-delay:.25s}
    .city-links.city-nav-visible a:nth-child(7){transition-delay:.30s}
    .city-links.city-nav-visible a:nth-child(8){transition-delay:.35s}
    .city-links.city-nav-visible a:nth-child(n+9){transition-delay:.40s}
}

/* ===== 导航条搜索表单 ===== */
.nav-search-form{display:inline-flex;align-items:center;margin-left:6px}
.nav-search-input{padding:3px 12px;border:1.5px solid #d0dfff;background:rgba(255,255,255,.85);color:#333;border-radius:20px;font-size:12px;width:100px;transition:all .3s}
.nav-search-input:focus{border-color:#0066ff;box-shadow:0 0 0 3px rgba(0,102,255,0.1);width:130px;background:#fff;outline:none}
.nav-search-btn{padding:3px 10px;margin-left:4px;border:1.5px solid #0066ff;background:linear-gradient(135deg,#0066ff,#00ccff);color:#fff;border-radius:20px;font-size:12px;cursor:pointer;transition:all .25s}
.nav-search-btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,102,255,0.3)}

/* ===== 日历按钮与下拉 ===== */
#calendarBtn{padding:4px 10px;margin-left:4px;border:1px solid #e67e22;background:#e67e22;color:#fff;border-radius:3px;font-size:12px;cursor:pointer}
#calendarDropdown{display:none;position:absolute;top:100%;right:0;margin-top:4px;background:#fff;border:1px solid #e8edf2;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.15);z-index:1000;padding:12px;width:320px;overflow-x:hidden}
.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.calendar-nav-btn{background:none;border:none;font-size:16px;cursor:pointer;color:#0066ff;padding:4px 8px}
.calendar-title-label{font-size:14px;font-weight:500;color:#333}
#calendarGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center;font-size:12px}
.calendar-weekday{color:#999;font-weight:500;padding:4px 2px}
.calendar-footer{margin-top:8px;text-align:center}
.calendar-today-btn{padding:4px 12px;border:1px solid #0066ff;background:#fff;color:#0066ff;border-radius:3px;font-size:11px;cursor:pointer}
.calendar-day-link{display:flex;align-items:center;justify-content:center;width:100%;height:28px;border-radius:4px;text-decoration:none;font-size:12px;transition:background .2s}
.calendar-day-link:hover{} /* handled by JS */
.calendar-day-today{background:linear-gradient(135deg,#0066ff,#00ccff);color:#fff}
.calendar-day-current{background:#fff3e0;color:#e67e22}
.calendar-day-normal{background:transparent;color:#333}
.calendar-day-today:hover{background:linear-gradient(135deg,#0055dd,#0099cc)!important}
.calendar-day-current:hover{background:#ffe0c0!important}
.calendar-day-normal:hover{background:#f0f5ff!important}

/* ===== 页脚 ===== */
.footer a{color:#fff;text-decoration:none}

/* ===== 回到顶部 ===== */
#backToTop{display:none;position:fixed;bottom:24px;right:24px;width:40px;height:40px;background:linear-gradient(135deg,#0066ff,#00ccff);color:#fff;border:none;border-radius:50%;font-size:18px;cursor:pointer;box-shadow:0 4px 12px rgba(0,102,255,.3);z-index:200;line-height:40px;text-align:center;transition:opacity .3s,transform .3s}

/* ===== 通用工具类 ===== */
.rank-icon-red{color:#e74c3c}
.rank-text-sm{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-text-src{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.rank-val-auto{margin-left:auto}
.empty-hint{font-size:12px;color:#ccc}
.top-title{color:#8b0000}
.title-newspaper-icon{margin-right:7px;color:#0066ff;font-size:13px}
.card-date-icon{margin-right:3px}
.read-more-link{color:#e74c3c}
.badge-icon{margin-right:3px}
.kw-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.info-row{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:16px}
.title-wrapper{text-align:center;margin:14px 0 0;word-break:break-all;position:relative}
.font-toggle{display:inline-flex;align-items:center;gap:6px;margin-left:8px;font-size:12px;color:#999;border-left:1px solid #ddd;padding-left:8px}
.fs-btn{cursor:pointer}
.fs-btn.active{font-weight:700;color:#0066ff}
.reward-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.6);z-index:10000;justify-content:center;align-items:center}
.reward-box{background:#fff;border-radius:12px;padding:20px;text-align:center;max-width:320px;position:relative}
.reward-close{position:absolute;top:10px;right:15px;background:none;border:none;font-size:24px;cursor:pointer;color:#999}
.reward-title{margin-bottom:16px;color:#333;font-size:16px}
.reward-img{max-width:280px;border-radius:8px}
.reward-desc{margin-top:12px;color:#666;font-size:13px}
.no-more{font-size:12px;color:#ccc;text-align:center;padding:10px 12px}
.sidebar-box-first{margin-top:0}
.rel-date i,.rel-clicks i{font-size:11px}
.info-date-tag i{margin-right:4px}
.kw-label i{margin-right:4px}

/* ===== 搜索页 ===== */
.search-input{padding:12px 18px;border:2px solid #d0dfff;border-radius:24px;font-size:14px;transition:all .3s;background:#fafbff}
.search-input:focus{border-color:#0066ff;box-shadow:0 0 0 3px rgba(0,102,255,0.12),0 2px 12px rgba(0,102,255,0.1);background:#fff;outline:none}
.search-btn{padding:12px 32px;background:linear-gradient(135deg,#0066ff,#00ccff);color:#fff;border:none;border-radius:24px;font-size:14px;cursor:pointer;transition:all .25s;font-weight:500;letter-spacing:.5px;box-shadow:0 4px 12px rgba(0,102,255,0.25)}
.search-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,102,255,0.35)}
.kw-row-mt{margin-top:8px}

/* ===== 管理员页面公共样式 ===== */
.citybar-admin{justify-content:center}
.admin-search-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.admin-search-input{flex:1;min-width:180px;padding:6px 14px;border:1.5px solid #d0dfff;border-radius:20px;font-size:13px}
.admin-search-select{padding:6px 12px;border:1.5px solid #d0dfff;border-radius:20px;font-size:13px;min-width:120px}
.admin-search-submit{padding:6px 18px;background:linear-gradient(135deg,#0066ff,#00ccff);color:#fff;border:none;border-radius:20px;font-size:13px;cursor:pointer}
.admin-search-clear{color:#999;font-size:13px;text-decoration:none;padding:6px 8px}
.admin-search-count{margin-left:auto;color:#888;font-size:13px}
.admin-search-count strong{color:#0066ff}
.admin-box-top{margin-top:16px;margin-bottom:0;border-radius:8px 8px 0 0;padding:14px 20px}
.admin-table-wrap{border-radius:0 0 8px 8px;margin-bottom:0}
.admin-table{border-radius:0 0 8px 8px;table-layout:fixed}
.admin-pager{padding:16px 0}
.admin-pager-ellipsis{color:#999;padding:0 6px}
.admin-empty{text-align:center;padding:40px;color:#bbb}
.admin-th-id{width:50px}
.admin-th-title{width:280px}
.admin-th-city{width:80px}
.admin-th-district{width:80px}
.admin-th-source{width:120px}
.admin-th-date{width:88px}
.admin-th-clicks{width:52px;text-align:center}
.admin-th-likes{width:42px;text-align:center}
.admin-th-status{width:72px;text-align:center}
.admin-th-top{width:44px;text-align:center}
/* 一般数据表单元格 */
.admin-td-center{text-align:center}
.admin-td-id{color:#0066ff;font-size:12px;font-weight:600;text-decoration:none}
.admin-td-id a{color:#0066ff;font-size:12px;font-weight:600;text-decoration:none}
.admin-td-title{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-td-title a{color:#333}
.admin-td-city{font-size:12px;color:#666}
.admin-td-district{font-size:12px;color:#666}
.admin-td-source{font-size:12px;color:#888;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.admin-td-date{font-size:12px;color:#888}
.admin-td-clicks{text-align:center;font-size:12px;color:#3498db}
.admin-td-likes{text-align:center;font-size:12px;color:#e74c3c}
/* 置顶筛选项 */
.admin-top-link{font-size:11px;color:#fff;text-decoration:none}
.admin-top-link.active-index{color:#ff4757;font-weight:700;text-decoration:underline}
.admin-top-link.active-city{color:#228be6;font-weight:700;text-decoration:underline}
.admin-top-link.active-district{color:#2f9e44;font-weight:700;text-decoration:underline}
.admin-top-dot-on{font-size:16px}
.admin-top-dot-off{color:#ddd;font-size:16px}
.admin-top-dot-index-on{color:#ff4757;font-size:16px}
.admin-top-dot-city-on{color:#228be6;font-size:16px}
.admin-top-dot-district-on{color:#2f9e44;font-size:16px}
.admin-status-pub{color:#28a745;font-size:12px;text-decoration:none;font-weight:500}
.admin-status-draft{color:#dc3545;font-size:12px;text-decoration:none;font-weight:500}
/* 操作按钮 */
.admin-btn-approve{background:#27ae60;color:#fff;padding:3px 10px;border-radius:4px;font-size:12px;text-decoration:none}
.admin-btn-reject{background:#95a5a6;color:#fff;padding:3px 10px;border-radius:4px;font-size:12px;text-decoration:none}
.admin-btn-delete{background:#e74c3c;color:#fff;padding:3px 10px;border-radius:4px;font-size:12px;text-decoration:none}
.admin-btn-blue{padding:3px 10px;font-size:11px;white-space:nowrap}
/* 编辑页 */
.admin-form-row-150{flex:0 0 150px}
.admin-form-row-200{flex:0 0 200px}
.admin-form-row-120{flex:0 0 120px}
.admin-form-row-full{flex:1;min-width:140px}
.admin-form-flex{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start}
.admin-input-full{width:100%}
.admin-checkbox{width:16px;height:16px;cursor:pointer}
.admin-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;flex:none}
.admin-checkbox-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}
.admin-checkbox-text{font-weight:600;color:#333}
.admin-btn-cancel{display:inline-flex;align-items:center;padding:8px 24px;font-size:14px;border-radius:20px;border:1px solid #ddd;background:#fff;color:#666;cursor:pointer;transition:all .2s;font-family:inherit;text-decoration:none;margin-left:10px}
.admin-kw-hist{margin-top:6px}
.admin-kw-hist-title{font-size:12px;color:#999;margin-bottom:4px}
.admin-kw-tags{display:flex;flex-wrap:wrap;gap:4px}
.admin-msg{margin-top:16px;padding:8px 14px;border-radius:6px;font-size:13px}
.admin-cmt-actions{display:flex;gap:6px;flex-wrap:wrap}
.admin-cmt-content{font-size:13px;color:#333;line-height:1.5;max-width:320px;word-break:break-all}
.admin-cmt-newsid{font-size:12px;color:#3498db;text-decoration:none}
.admin-cmt-ip{font-size:11px;color:#888;white-space:nowrap}
.admin-cmt-time{font-size:12px;color:#aaa;white-space:nowrap}
.admin-td-comment-id{font-size:12px;font-weight:600;color:#888}
.admin-td-kw-center{text-align:center}
.admin-td-kw-ord{text-align:center;color:#999;font-size:12px}
.kw-tag-mini{font-size:10px;padding:0 5px;margin-bottom:1px}
