/* ========== 玩家Wiki ========== */
.wiki-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.wiki-cats{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.wiki-cat{display:inline-block;padding:6px 14px;border-radius:20px;font-size:13px;cursor:pointer;background:var(--bg2);border:1px solid var(--border);color:var(--text2);transition:all .2s;white-space:nowrap;user-select:none}
.wiki-cat:hover{border-color:var(--cyan);color:var(--cyan)}
.wiki-cat.active{background:linear-gradient(135deg,var(--accent),#e67e22);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 2px 10px rgba(230,126,34,.3)}
.wiki-search{flex:0 0 auto;min-width:220px}
.wiki-search input{width:100%;padding:8px 14px;border-radius:20px;border:1px solid var(--border);background:var(--bg2);color:var(--text);font-family:inherit;font-size:13px;outline:none;transition:border .2s}
.wiki-search input:focus{border-color:var(--cyan)}
.wiki-list{display:flex;flex-direction:column;gap:12px}
.wiki-empty{text-align:center;color:var(--text3);padding:40px 20px;font-size:14px}
.wiki-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:16px 18px;cursor:pointer;transition:all .25s;position:relative}
.wiki-card:hover{transform:translateY(-2px);border-color:var(--cyan);box-shadow:0 6px 20px rgba(78,205,196,.15)}
.wiki-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.wiki-cat-badge{display:inline-block;font-size:11px;color:var(--cyan);background:rgba(78,205,196,.1);border:1px solid rgba(78,205,196,.3);padding:2px 10px;border-radius:12px}
.wiki-card-views{margin-left:auto;font-size:12px;color:var(--text3)}
.wiki-delete-btn{background:transparent;border:none;color:#e74c3c;cursor:pointer;font-size:14px;padding:2px 6px;border-radius:6px}
.wiki-delete-btn:hover{background:rgba(231,76,60,.15)}
.wiki-card-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.4}
.wiki-excerpt{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wiki-card-meta{font-size:12px;color:var(--text3)}
.wiki-view-body{max-height:70vh;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}
.wiki-view-body::-webkit-scrollbar{display:none}
.wiki-view-meta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.wiki-meta-item{font-size:12px;color:var(--text2);background:var(--bg-deep);padding:4px 12px;border-radius:16px;border:1px solid var(--border)}
.wiki-rendered{font-size:14px;line-height:1.8;color:var(--text);word-break:break-word}
.wiki-rendered h1,.wiki-rendered h2,.wiki-rendered h3,.wiki-rendered h4{color:var(--cyan);margin:18px 0 10px;line-height:1.4}
.wiki-rendered h1{font-size:22px;border-bottom:2px solid var(--border);padding-bottom:8px}
.wiki-rendered h2{font-size:19px;border-bottom:1px solid var(--border);padding-bottom:6px}
.wiki-rendered h3{font-size:16px}
.wiki-rendered p{margin:8px 0}
.wiki-rendered a{color:var(--cyan);text-decoration:underline}
.wiki-rendered strong{color:var(--gold);font-weight:700}
.wiki-rendered ul,.wiki-rendered ol{padding-left:24px;margin:8px 0}
.wiki-rendered li{margin:4px 0}
.wiki-rendered blockquote{border-left:4px solid var(--accent);background:var(--bg-deep);padding:8px 16px;margin:10px 0;border-radius:0 8px 8px 0;color:var(--text2)}
.wiki-rendered code{background:var(--bg-deep);border:1px solid var(--border);padding:2px 6px;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:13px;color:#e74c3c}
.wiki-rendered pre{background:var(--bg-deep);border:1px solid var(--border);border-radius:8px;padding:14px;overflow-x:auto;margin:10px 0}
.wiki-rendered pre code{background:transparent;border:none;padding:0;color:#4ecdc4}
.wiki-rendered table{border-collapse:collapse;margin:12px 0;width:100%;font-size:13px}
.wiki-rendered th,.wiki-rendered td{border:1px solid var(--border);padding:8px 12px;text-align:left}
.wiki-rendered th{background:var(--bg-deep);color:var(--cyan);font-weight:600}
.wiki-rendered tr:nth-child(even){background:rgba(255,255,255,.02)}
.wiki-rendered img{max-width:100%;border-radius:8px;border:1px solid var(--border);margin:8px 0}
.wiki-rendered hr{border:none;border-top:1px solid var(--border);margin:16px 0}
.btn-danger{background:#e74c3c;color:#fff;border:none;padding:8px 16px;cursor:pointer;font-family:inherit;font-size:13px;border-radius:8px;margin-right:8px}
.btn-danger:hover{background:#c0392b}
.btn-preview:hover{background:#2980b9}

/* ========== EasyMDE 深色主题适配 ========== */
.modal-overlay .EasyMDEContainer{display:block;width:100%}
.modal-overlay .EasyMDEContainer .CodeMirror{
  background:var(--bg-deep);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:8px;
  font-family:inherit;
  font-size:14px;
  line-height:1.7;
}
.modal-overlay .editor-toolbar{
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:8px 8px 0 0;
  opacity:1;
}
.modal-overlay .editor-toolbar button{
  color:var(--text2) !important;
}
.modal-overlay .editor-toolbar button:hover,.modal-overlay .editor-toolbar button.active{
  background:var(--bg-deep);
  border-color:var(--cyan);
  color:var(--cyan) !important;
}
.modal-overlay .editor-toolbar button.separator{border-left:1px solid var(--border)}
.modal-overlay .editor-preview,.modal-overlay .editor-preview-side{
  background:var(--bg-deep);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:0 0 8px 8px;
  font-size:14px;
  line-height:1.8;
}
.modal-overlay .editor-preview h1,.modal-overlay .editor-preview h2,.modal-overlay .editor-preview h3{color:var(--cyan)}
.modal-overlay .editor-preview code{background:#2a2a2a;color:#e74c3c;padding:2px 6px;border-radius:4px}
.modal-overlay .editor-preview pre{background:#1e1e1e;padding:12px;border-radius:8px;overflow-x:auto}
.modal-overlay .editor-preview pre code{background:transparent;color:#4ecdc4}
.modal-overlay .editor-preview table{border-collapse:collapse;margin:10px 0}
.modal-overlay .editor-preview th,.modal-overlay .editor-preview td{border:1px solid var(--border);padding:6px 10px}
.modal-overlay .editor-preview blockquote{border-left:4px solid var(--accent);padding:6px 14px;margin:8px 0;background:rgba(255,255,255,.04)}
.modal-overlay .editor-preview img{max-width:100%;border-radius:8px}
.modal-overlay .CodeMirror-cursor{border-left:2px solid var(--cyan)}
.modal-overlay .CodeMirror-selected{background:rgba(78,205,196,.25)}
.modal-overlay .editor-toolbar.fullscreen,.modal-overlay .CodeMirror-fullscreen{
  background:var(--bg-deep);
  z-index:10000;
}

/* ========== Wiki 移动端适配 ========== */
@media (max-width:768px){
  .wiki-toolbar{flex-direction:column;align-items:stretch}
  .wiki-search{min-width:100%}
  .wiki-cats{justify-content:flex-start}
  .wiki-card{padding:14px}
}
@media (max-width:480px){
  .wiki-cat{padding:5px 12px;font-size:12px}
  .wiki-card-title{font-size:15px}
  .wiki-view-meta{gap:8px}
}

/* ===== 弹窗统一进场动画 ===== */
@keyframes modal-pop{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}

/* ===== 历史时间轴特效 ===== */
/* 金色圆点脉冲光 */
.timeline-dot::after{content:'';position:absolute;inset:-8px;border-radius:50%;border:2px solid var(--gold);opacity:0;animation:timeline-pulse 2.4s ease-out infinite;pointer-events:none}
@keyframes timeline-pulse{0%{transform:scale(.7);opacity:.9}70%{transform:scale(1.5);opacity:0}100%{transform:scale(1.5);opacity:0}}
/* 条目滚动进场（仅 JS 可用时加 .anim-ready 才隐藏，无 JS 环境直接显示） */
.timeline-item.anim-ready{opacity:0;transition:opacity .6s ease,transform .6s ease}
.timeline-item.anim-ready:nth-child(odd){transform:translateX(-46px)}
.timeline-item.anim-ready:nth-child(even){transform:translateX(46px)}
.timeline-item.anim-ready.visible{opacity:1;transform:translateX(0)}
/* hover 光效增强 */
.timeline-content:hover{box-shadow:0 0 24px rgba(78,205,196,.18),var(--pixel-shadow);border-color:rgba(78,205,196,.5)}

/* ===== 主线剧情特效 ===== */
/* 完整剧情容器定位 + 顶部光晕氛围 */
.plot-full{position:relative;overflow:hidden}
.plot-full::before{content:'';position:absolute;top:-1px;left:8%;right:8%;height:70px;background:radial-gradient(ellipse at center,rgba(156,107,255,.16),transparent 70%);pointer-events:none}
/* 段落与行动项滚动进场（仅 JS 可用时加 .anim-ready） */
.plot-full p.anim-ready{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.plot-full p.anim-ready.visible{opacity:1;transform:translateY(0)}
.plot-action.anim-ready{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.plot-action.anim-ready.visible{opacity:1;transform:translateY(0)}
.plot-action:nth-child(1){transition-delay:.05s}
.plot-action:nth-child(2){transition-delay:.15s}
.plot-action:nth-child(3){transition-delay:.25s}
/* 金句：放大进场 + 常亮呼吸光 */
.plot-full p.quote.anim-ready{opacity:0;transform:scale(.9);transition:opacity .7s ease,transform .7s ease}
.plot-full p.quote.anim-ready.visible{opacity:1;transform:scale(1)}
.plot-full p.quote.visible{animation:quote-glow 3.2s ease-in-out infinite}
@keyframes quote-glow{0%,100%{text-shadow:0 0 8px rgba(255,215,0,.25)}50%{text-shadow:0 0 22px rgba(255,215,0,.65)}}
/* 行动图标：缓慢浮动 + hover 点亮 */
.plot-action-icon{animation:icon-float 2.6s ease-in-out infinite}
.plot-action:nth-child(2) .plot-action-icon{animation-delay:.45s}
.plot-action:nth-child(3) .plot-action-icon{animation-delay:.9s}
@keyframes icon-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.plot-action:hover .plot-action-icon{background:var(--cyan);color:#0d1420;border-color:var(--cyan);box-shadow:0 0 18px rgba(78,205,196,.55);animation-play-state:paused}
.plot-action:hover h4{color:var(--cyan)}

/* ===== 服务器由来特效 ===== */
/* 信纸横线纹理（极淡） */
.origin-content{background-image:repeating-linear-gradient(180deg,transparent 0 27px,rgba(255,255,255,.03) 27px 28px)}
/* 首屏段落滚动进场 */
.origin-content > p.anim-ready{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.origin-content > p.anim-ready.visible{opacity:1;transform:translateY(0)}
/* 金色强调段：左侧滑入 + 呼吸光 */
.origin-content > p.highlight.anim-ready{opacity:0;transform:translateX(-10px);transition:opacity .7s ease,transform .7s ease}
.origin-content > p.highlight.anim-ready.visible{opacity:1;transform:translateX(0)}
.origin-content > p.highlight.visible{animation:origin-glow 4s ease-in-out infinite}
@keyframes origin-glow{0%,100%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 14px rgba(255,215,0,.35)}}

/* ===== 服务器规则特效 ===== */
/* 两列卡片交错进场 */
.rule-column.anim-ready{opacity:0;transition:opacity .6s ease,transform .6s ease}
.rule-column.anim-ready:nth-child(1){transform:translateX(-40px)}
.rule-column.anim-ready:nth-child(2){transform:translateX(40px)}
.rule-column.anim-ready.visible{opacity:1;transform:translateX(0)}
/* 规则条目依次浮现 */
.rule-item.anim-ready{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}
.rule-item.anim-ready.visible{opacity:1;transform:translateY(0)}
.rule-item:nth-child(1){transition-delay:.02s}
.rule-item:nth-child(2){transition-delay:.08s}
.rule-item:nth-child(3){transition-delay:.14s}
.rule-item:nth-child(4){transition-delay:.2s}
.rule-item:nth-child(5){transition-delay:.26s}
.rule-item:nth-child(6){transition-delay:.32s}
/* X/V 标记盖章弹出 */
.rule-item.visible .rule-mark{animation:rule-stamp .45s cubic-bezier(.34,1.56,.64,1) both}
.rule-item:nth-child(1) .rule-mark{animation-delay:.02s}
.rule-item:nth-child(2) .rule-mark{animation-delay:.08s}
.rule-item:nth-child(3) .rule-mark{animation-delay:.14s}
.rule-item:nth-child(4) .rule-mark{animation-delay:.2s}
.rule-item:nth-child(5) .rule-mark{animation-delay:.26s}
.rule-item:nth-child(6) .rule-mark{animation-delay:.32s}
@keyframes rule-stamp{from{transform:scale(0) rotate(-15deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
/* hover 发光 */
.rule-item:hover .rule-mark{box-shadow:0 0 12px currentColor}
.rule-item:hover{color:#fff}

/* ===== 顶部公告条特效 ===== */
/* 左右渐隐遮罩 */
.announcement-bar::before{content:'';position:absolute;top:0;bottom:0;left:0;width:70px;background:linear-gradient(90deg,var(--bg-card),transparent);z-index:1;pointer-events:none}
.announcement-bar::after{content:'';position:absolute;top:0;bottom:0;right:0;width:70px;background:linear-gradient(-90deg,var(--bg-card),transparent);z-index:1;pointer-events:none}
/* 底部青色呼吸光 */
.announcement-bar{animation:bar-glow 4.5s ease-in-out infinite}
@keyframes bar-glow{0%,100%{box-shadow:0 0 0 rgba(78,205,196,0)}50%{box-shadow:0 2px 16px rgba(78,205,196,.22)}}
/* ===== 常见问题特效 ===== */
/* FAQ 条目滚动进场 */
.faq-item.anim-ready{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease,border-color .3s ease,background .3s ease}
.faq-item.anim-ready.visible{opacity:1;transform:translateY(0)}
/* 展开时问题行高亮 */
.faq-question.active{color:var(--accent);background:rgba(78,205,196,0.05)}
/* 答案文字渐显 */
.faq-answer{opacity:0;transition:max-height .3s ease,padding .3s ease,opacity .25s ease}
.faq-question.active + .faq-answer{opacity:1;transition:max-height .3s ease,padding .3s ease,opacity .25s ease .08s}

/* ===== 全站统一滚动进场（剩余模块） ===== */
.fx-reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.fx-reveal.fx-visible{opacity:1;transform:translateY(0)}
/* Hero 首屏依次进场 */
.hero-badge,.hero-title,.hero-subtitle,.hero-buttons{opacity:0;animation:hero-in .9s ease forwards}
.hero-badge{animation-delay:.15s}
.hero-title{animation-delay:.35s}
.hero-subtitle{animation-delay:.6s}
.hero-buttons{animation-delay:.85s}
@keyframes hero-in{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
/* 副本卡片：hover 立体浮起 + BOSS 图缩放 */
.dungeon-card{transition:transform .35s ease,box-shadow .35s ease}
.dungeon-card:hover{transform:translateY(-8px);box-shadow:0 16px 36px rgba(0,0,0,.5)}
.dungeon-card img{transition:transform .5s ease}
.dungeon-card:hover img{transform:scale(1.05)}
/* 入服指引：图标弹入 */
.tutorial-step.fx-visible .tutorial-step-icon{animation:step-pop .5s cubic-bezier(.34,1.56,.64,1) both}
@keyframes step-pop{from{transform:scale(.5) rotate(-8deg)}to{transform:scale(1) rotate(0)}}
/* 联动服卡片 hover 浮起 */
.collab-card{transition:transform .35s ease,box-shadow .35s ease}
.collab-card:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(0,0,0,.45)}
/* 公告/签到卡：hover 青色呼吸边框 */
.announcement-card,.checkin-card{transition:border-color .3s ease,box-shadow .3s ease}
.announcement-card:hover,.checkin-card:hover{border-color:rgba(78,205,196,.5);box-shadow:0 0 20px rgba(78,205,196,.15)}
/* 全景图 hover 微缩放 */
.panorama-image{transition:transform .5s ease}
.panorama-container:hover .panorama-image{transform:scale(1.03)}
/* 作品/视频卡片 hover 上浮 */
.work-card,.video-card{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.work-card:hover,.video-card:hover{transform:translateY(-5px);box-shadow:0 12px 26px rgba(0,0,0,.45);border-color:rgba(78,205,196,.45)}

/* ===== 移动端导航：汉堡折叠菜单 ===== */
.top-nav .nav-toggle-m{display:none;background:none;border:2px solid rgba(255,255,255,0.15);color:#fff;font-size:20px;width:40px;height:40px;border-radius:8px;cursor:pointer;flex-shrink:0;margin-left:12px;line-height:1}
.top-nav .nav-toggle-m:active{background:rgba(78,205,196,0.15);border-color:var(--cyan)}
@media (max-width: 600px) {
  .top-nav .nav-toggle-m{display:block}
  .top-nav .nav-items{display:flex;position:absolute;top:100%;left:0;right:0;background:rgba(12,12,24,0.98);flex-direction:column;align-items:stretch;padding:10px 14px;gap:2px;border-bottom:1px solid rgba(255,255,255,0.08);opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .2s,transform .2s}
  .top-nav.open .nav-items{opacity:1;transform:translateY(0);pointer-events:auto}
  .top-nav .nav-item{padding:12px 14px;font-size:0.9rem;white-space:normal}
  .top-nav .nav-search-btn{justify-content:flex-start}
  .top-nav .nav-hint{display:none}
  .top-nav .nav-more-btn{display:none}
  /* 移动端：更多分组也收进菜单，点击展开 */
  .top-nav .nav-expand{display:none;max-height:none;grid-template-columns:1fr 1fr;gap:14px;padding:4px 16px 18px}
  .top-nav.open .nav-expand{display:grid}
  .top-nav:hover .nav-expand{max-height:none;padding:4px 16px 18px}
}

/* ===== 移动端布局修复 ===== */
/* 留言/回复保留换行 + 防溢出 */
.guestbook-item .gb-content{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;line-height:1.7}
.gb-reply-content{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;line-height:1.7}
/* 手机上去掉列表限高滚动（消除内容错位/重叠观感） */
@media (max-width: 768px) {
  .announcement-list{max-height:none !important}
  .guestbook-list{max-height:none !important}
}

/* ===== WebView 视口兼容修复（QQ/微信内置浏览器按桌面宽度渲染时强制单列） ===== */
@media (max-width: 980px) {
  .server-status-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
  .server-status-grid > * { min-width: 0; }
  .announcement-item { min-width: 0; }
  .announcement-content { min-width: 0; flex: 1 1 auto; }
  .checkin-card { min-width: 0; }
}

/* ===== 装备对比增强：雷达图/成长曲线/推荐/复制 ===== */
.eq-compare-charts{display:flex;flex-wrap:wrap;gap:14px;margin:4px 0 12px}
.eq-radar-wrap,.eq-curve-wrap{flex:1 1 300px;min-width:0;background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.eq-chart-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.eq-curve-note{font-size:11px;color:var(--text-dim);font-weight:400}
.eq-curve-select{margin-left:auto;background:var(--bg-deep);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-family:inherit;font-size:12px;outline:none;cursor:pointer}
.eq-curve-select:focus{border-color:var(--cyan)}
.eq-radar-svg,.eq-curve-svg{display:block}
.eq-chart-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.eq-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text2)}
.eq-legend-item i{width:10px;height:10px;border-radius:3px;display:inline-block;flex-shrink:0}
.eq-recommend{background:rgba(255,152,0,0.05);border:1px solid rgba(255,152,0,0.25);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.eq-recommend-list{display:flex;flex-direction:column;gap:8px}
.eq-recommend-item{display:flex;align-items:center;gap:8px;font-size:13px}
.eq-recommend-rank{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#ff9800,#ff5722);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.eq-recommend-name{flex:1;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.eq-recommend-val{color:var(--gold);font-weight:600;font-size:12px;white-space:nowrap}
.eq-compare-copy{background:linear-gradient(135deg,#4ecdc4,#2cb5a8);color:#fff;border:none;padding:9px 22px;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}
.eq-compare-copy:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(78,205,196,.3)}
@media (max-width:768px){.eq-compare-charts{flex-direction:column}.eq-curve-select{margin-left:0}}

/* ===== 装备对比入口按钮 ===== */
.eq-compare-entry-btn {
  margin-top: 12px;
  margin-left: 10px;
  padding: 10px 24px;
  background: linear-gradient(135deg, #4ecdc4, #2cb5a8);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
}
.eq-compare-entry-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(78,205,196,0.4);
}
@media (max-width: 768px) {
  .eq-compare-entry-btn { margin-left: 0; margin-top: 8px; }
}

/* ========== 玩家账号系统 ========== */
.nav-user { display: flex; align-items: center; gap: 8px; }
.nav-item-primary { background: linear-gradient(135deg, var(--cyan), #2cb5a8) !important; color: #fff !important; border-radius: 8px; }
.user-chip { position: relative; display: flex; align-items: center; gap: 8px; padding: 4px 10px; border-radius: 20px; background: rgba(78,205,196,0.1); border: 1px solid rgba(78,205,196,0.3); cursor: pointer; user-select: none; }
.user-chip img { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; }
.user-chip .user-name { color: var(--cyan); font-size: 14px; max-width: 90px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-caret { color: var(--text-dim); font-size: 10px; }
.user-dropdown { position: absolute; top: 110%; right: 0; min-width: 150px; padding: 6px 0; background: rgba(20,20,35,0.98); border: 1px solid rgba(255,255,255,0.1); border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,0.4); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: all 0.2s; z-index: 1000; }
.user-dropdown.show { opacity: 1; visibility: visible; transform: translateY(0); }
.user-dropdown a { display: block; padding: 9px 18px; color: #c0c0d0; font-size: 13px; text-decoration: none; cursor: pointer; }
.user-dropdown a:hover { background: rgba(78,205,196,0.1); color: var(--cyan); }
.auth-tabs { display: flex; gap: 4px; padding: 0 20px; border-bottom: 1px solid var(--border); }
.auth-tab { flex: 1; padding: 12px; background: none; border: none; color: var(--text-dim); font-family: inherit; font-size: 14px; cursor: pointer; border-bottom: 2px solid transparent; transition: all 0.2s; }
.auth-tab.active { color: var(--cyan); border-bottom-color: var(--cyan); }
.auth-error { padding: 8px 12px; background: rgba(231,76,60,0.1); border: 1px solid rgba(231,76,60,0.3); border-radius: 6px; color: #e74c3c; font-size: 13px; margin-top: 8px; }
.authed-input { border-color: rgba(78,205,196,0.5) !important; color: var(--cyan) !important; background: rgba(78,205,196,0.06) !important; }
@media (max-width: 768px) {
  .nav-user { gap: 4px; }
  .nav-item-primary { padding: 6px 10px !important; font-size: 12px !important; }
  .user-chip { padding: 3px 8px; }
  .user-chip .user-name { font-size: 12px; max-width: 60px; }
}

/* ========== 我的资料弹窗 ========== */
.profile-avatar-row { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
.profile-avatar-preview { width: 64px; height: 64px; border-radius: 14px; object-fit: cover; border: 2px solid rgba(78,205,196,0.4); background: #1c2333; flex-shrink: 0; }
.profile-avatar-actions { display: flex; flex-direction: column; gap: 6px; }
.profile-avatar-progress { font-size: 12px; color: var(--cyan); }
#profileAvatarUrl { margin-top: 2px; }

/* ========== 留言板社区头像/UID ========== */
.gb-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.gb-user { display: flex; align-items: center; gap: 8px; min-width: 0; }
.gb-avatar { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(78,205,196,.35); flex-shrink: 0; background: #1c2333; }
.gb-avatar-d, .gb-avatar-sm-d { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg,#1c2333,#26304f); color: var(--cyan); font-size: 13px; font-weight: 700; }
.gb-avatar-sm { width: 20px; height: 20px; border-width: 1px; font-size: 10px; }
.gb-uid { font-size: 11px; padding: 1px 7px; border-radius: 9px; background: rgba(255,215,0,.12); color: #ffd700; border: 1px solid rgba(255,215,0,.3); font-weight: 700; white-space: nowrap; flex-shrink: 0; }
.gb-uid-sm { font-size: 9px; padding: 0 5px; border-radius: 7px; }
.gb-reply-header { display: flex; justify-content: flex-start; align-items: center; gap: 6px; flex-wrap: wrap; }

/* ========== 作品/视频/Wiki 作者头像 ========== */
.work-author, .video-author { display: flex; align-items: center; gap: 6px; }
.wiki-card-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }

/* ========== 玩家论坛 ========== */
.forum-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.forum-cats { display: flex; gap: 8px; flex-wrap: wrap; }
.forum-cat { background: rgba(255,255,255,0.04); border: 1px solid var(--border); color: var(--text-dim); padding: 7px 14px; border-radius: 20px; cursor: pointer; font-family: inherit; font-size: 13px; transition: all .2s; }
.forum-cat:hover { color: var(--cyan); border-color: rgba(78,205,196,.5); }
.forum-cat.active { background: rgba(78,205,196,.15); border-color: var(--cyan); color: var(--cyan); font-weight: 700; }
.forum-cat-elite { background: rgba(255,215,61,.06); border-color: rgba(255,215,61,.3); color: #d4af37; }
.forum-cat-elite:hover { color: #ffd93d; border-color: rgba(255,215,61,.6); }
.forum-cat-elite.active { background: rgba(255,215,61,.15); border-color: #ffd93d; color: #ffd93d; font-weight: 700; }
.forum-tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.forum-tools input { background: var(--bg-deep); border: 2px solid var(--border); color: var(--text); padding: 8px 14px; border-radius: 8px; font-family: inherit; font-size: 13px; outline: none; width: 180px; }
.forum-tools input:focus { border-color: var(--cyan); }
.forum-new-btn { background: linear-gradient(135deg, var(--cyan), #2cb5a8); color: #fff; border: none; padding: 9px 18px; border-radius: 8px; cursor: pointer; font-family: inherit; font-size: 13px; font-weight: 700; }
.forum-new-btn:hover { filter: brightness(1.1); }
.forum-report-entry { background: rgba(231,76,60,.12); border: 1px solid rgba(231,76,60,.4); color: #e74c3c; padding: 9px 14px; border-radius: 8px; cursor: pointer; font-family: inherit; font-size: 13px; }
.forum-report-entry:hover { background: rgba(231,76,60,.22); }
.forum-list-head { display: grid; grid-template-columns: 1fr 60px 60px 150px; gap: 10px; padding: 10px 16px; color: var(--text-dim); font-size: 12px; border-bottom: 1px solid var(--border); align-items: center; }
.forum-posts { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: rgba(20,20,35,.5); }
.forum-row { display: grid; grid-template-columns: 1fr 60px 60px 150px; gap: 10px; padding: 13px 16px; border-bottom: 1px solid rgba(255,255,255,.05); cursor: pointer; transition: background .2s; align-items: center; }
.forum-row:last-child { border-bottom: none; }
.forum-row:hover { background: rgba(78,205,196,.06); }
.forum-row.row-pinned { background: rgba(255,215,0,.04); }
.sort-btn { background: none; border: none; color: var(--text-dim); font-family: inherit; font-size: 12px; cursor: pointer; padding: 2px 4px; text-align: center; transition: all .2s; }
.sort-btn:hover { color: var(--cyan); }
.sort-btn.active { color: var(--cyan); font-weight: 700; }
.sort-btn.active::after { content: ' ▼'; font-size: 9px; }
.forum-rule { background: rgba(78,205,196,.06); border: 1px solid rgba(78,205,196,.25); border-left: 4px solid var(--cyan); border-radius: 10px; padding: 10px 16px; font-size: 13px; color: var(--text-dim); margin-bottom: 16px; line-height: 1.6; }
.forum-rule b { color: var(--cyan); }
.fr-title2 { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 5px; }
.fr-title2:hover { color: var(--cyan); }
.fr-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fr-author { color: var(--text-dim); font-size: 12px; }
.fr-cat { color: var(--brick); font-size: 11px; background: rgba(200,85,61,.12); padding: 2px 8px; border-radius: 10px; margin-left: 4px; }
.fr-count, .fr-views { color: var(--text-dim); font-size: 12px; text-align: center; }
.fr-last { display: flex; flex-direction: column; gap: 2px; text-align: right; font-size: 12px; }
.fr-lr-row { display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.fr-lr-av { display: inline-flex; align-items: center; }
.fr-lr-author { color: var(--cyan); }
.fr-lr-time { color: var(--text-dim); font-size: 11px; }
.forum-empty { padding: 40px 20px; text-align: center; color: var(--text-dim); font-size: 14px; }
.post-flag { font-size: 11px; padding: 2px 8px; border-radius: 10px; margin-right: 6px; font-weight: 700; vertical-align: 2px; }
.flag-pin { background: rgba(255,215,0,.15); color: #ffd700; }
.flag-elite { background: rgba(231,76,60,.15); color: #ff6b6b; }

/* ========== 已解决 / 采纳 ========== */
.flag-solved { background: rgba(46,204,113,.15); color: #2ecc71; border: 1px solid rgba(46,204,113,.4); }
.forum-accept { color: #f1c40f !important; }
.forum-accepted-mark { display: inline-block; padding: 4px 10px; border-radius: 6px; background: rgba(46,204,113,.12); color: #2ecc71; font-size: 12px; font-weight: 700; margin-left: 6px; }
body.theme-day .forum-accepted-mark { background: rgba(46,204,113,.18); }
.forum-floor.fr-solved-floor { box-shadow: 0 0 0 2px rgba(46,204,113,.45), 0 4px 16px rgba(46,204,113,.15); }
/* 楼层核心：每个楼层一个 Grid 容器，左列固定宽、右列自适应 */
.forum-floor { display: grid; grid-template-columns: 160px 1fr; align-items: stretch; border: 1px solid var(--border); border-radius: 12px; margin-bottom: 12px; background: rgba(20,20,35,.55); }
.forum-floor.floor-post { border-color: rgba(78,205,196,.35); box-shadow: 0 0 0 1px rgba(78,205,196,.08); }
.fl-left { border-right: 1px solid var(--border); padding: 16px 12px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; background: rgba(255,255,255,.02); position: sticky; top: 80px; align-self: start; border-radius: 11px 0 0 11px; }
.fl-avatar { width: 60px; height: 60px; border-radius: 14px; object-fit: cover; border: 2px solid rgba(78,205,196,.4); }
.fl-avatar-d { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--brick), #a04a35); color: #fff; font-size: 24px; font-weight: 700; }
.fl-name { font-size: 14px; font-weight: 700; color: var(--text); word-break: break-all; line-height: 1.2; }
.fl-group-tag { font-size: 11px; font-weight: 700; padding: 3px 12px; border-radius: 10px; letter-spacing: .5px; }
.fl-group-admin { background: linear-gradient(135deg, rgba(120,60,180,.6), rgba(80,30,140,.55)); border: 1px solid rgba(160,100,220,.6); color: #e0c8ff; box-shadow: 0 0 8px rgba(140,80,200,.3); }
.fl-group-mod { background: linear-gradient(135deg, rgba(30,80,160,.55), rgba(20,50,120,.5)); border: 1px solid rgba(70,140,255,.55); color: #8ec0ff; box-shadow: 0 0 6px rgba(60,120,220,.25); }
.fl-group-vip { background: linear-gradient(135deg, rgba(180,140,40,.55), rgba(140,100,20,.5)); border: 1px solid rgba(255,200,80,.6); color: #ffe08a; box-shadow: 0 0 8px rgba(220,170,50,.3); }
.fl-group-veteran { background: linear-gradient(135deg, rgba(80,80,100,.5), rgba(50,50,70,.5)); border: 1px solid rgba(140,140,170,.4); color: #b0b0c8; }
.fl-lv { font-size: 11px; font-weight: 700; padding: 2px 10px; border-radius: 10px; }
.fl-lv-gray { color: #95a5a6; background: rgba(149,165,166,.15); }
.fl-lv-green { color: #2ecc71; background: rgba(46,204,113,.15); }
.fl-lv-cyan { color: var(--cyan); background: rgba(78,205,196,.15); }
.fl-lv-purple { color: #b07cf9; background: rgba(176,124,249,.15); }
.fl-lv-gold { color: #ffd700; background: rgba(255,215,0,.15); }
.fl-uid { font-size: 11px; color: var(--text-dim); }
.fl-regdate { font-size: 10px; color: var(--text-dim); opacity: .7; }
.fl-badges { display: flex; flex-wrap: wrap; gap: 5px; justify-content: center; }
.fl-badge-wrap { position: relative; display: inline-flex; }
.fl-badge { font-size: 10px; padding: 3px 10px; border-radius: 12px; background: rgba(30,30,60,.6); border: 1px solid rgba(100,100,160,.3); color: #a0a0c0; white-space: nowrap; cursor: default; }
.fl-badge-tip { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); background: rgba(15,15,30,.95); border: 1px solid rgba(120,140,200,.3); border-radius: 8px; padding: 8px 12px; font-size: 12px; color: #ccc; white-space: nowrap; opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; z-index: 100; pointer-events: none; box-shadow: 0 4px 20px rgba(0,0,0,.4); }
.fl-badge-tip b { color: #fff; font-size: 13px; }
.fl-badge-tip::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: rgba(120,140,200,.3); }
.fl-badge-wrap:hover .fl-badge-tip { opacity: 1; visibility: visible; }
/* 稀有度：统一蓝紫色调，靠光效/尺寸/亮度区分 */
.fl-badge-common { font-size: 10px; padding: 3px 10px; background: linear-gradient(135deg, rgba(40,40,80,.5), rgba(30,30,60,.5)); border-color: rgba(80,80,140,.35); color: #8888aa; }
.fl-badge-rare { font-size: 11px; padding: 3px 12px; background: linear-gradient(135deg, rgba(30,60,120,.55), rgba(20,40,90,.5)); border-color: rgba(70,140,255,.5); color: #7eb8ff; box-shadow: 0 0 6px rgba(70,140,255,.2), inset 0 0 8px rgba(70,140,255,.08); }
.fl-badge-epic { font-size: 12px; padding: 4px 14px; background: linear-gradient(135deg, rgba(70,40,130,.55), rgba(50,25,100,.5)); border-color: rgba(150,100,255,.55); color: #c4a8ff; box-shadow: 0 0 10px rgba(150,100,255,.28), inset 0 0 10px rgba(150,100,255,.1); }
.fl-badge-legendary { font-size: 13px; padding: 5px 18px; flex: 0 0 calc(100% - 10px); background: linear-gradient(135deg, rgba(50,80,180,.6), rgba(80,40,160,.55), rgba(40,60,150,.6)); border-color: rgba(120,160,255,.65); color: #d8e4ff; box-shadow: 0 0 16px rgba(100,140,255,.4), inset 0 0 14px rgba(120,160,255,.15); animation: legendaryGlow 2.2s ease-in-out infinite; font-weight: 600; letter-spacing: 1px; }
@keyframes legendaryGlow { 0%,100% { box-shadow: 0 0 10px rgba(100,140,255,.3), inset 0 0 10px rgba(120,160,255,.1); } 50% { box-shadow: 0 0 22px rgba(120,160,255,.55), inset 0 0 18px rgba(120,160,255,.2); } }
.fl-stats { font-size: 11px; color: var(--text-dim); border-top: 1px dashed var(--border); padding-top: 6px; width: 100%; }
.fl-right { padding: 14px 18px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.fr-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.fr-flag { font-size: 12px; font-weight: 700; color: var(--cyan); background: rgba(78,205,196,.12); padding: 3px 10px; border-radius: 10px; }
.floor-post .fr-flag { color: #ffd700; background: rgba(255,215,0,.12); }
.fr-time { font-size: 12px; color: var(--text-dim); }
.fr-views { font-size: 12px; color: var(--text-dim); display: inline-flex; align-items: center; gap: 3px; margin-left: auto; }
.floor-post .fr-views { color: #8fa3c8; }
.fr-title { font-size: 19px; font-weight: 700; color: var(--text); line-height: 1.4; }
.fr-content { font-size: 14px; line-height: 1.75; color: var(--text); word-break: break-word; white-space: pre-wrap; }
.fr-quote { font-size: 12px; color: var(--text-dim); background: rgba(255,255,255,.04); border-left: 3px solid var(--brick); padding: 6px 12px; border-radius: 0 8px 8px 0; margin: 2px 0; word-break: break-word; }
.fr-actions { display: flex; gap: 8px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.06); padding-top: 10px; }
.forum-floor:not(.floor-post) .fr-actions { margin-top: auto; }
.forum-like-btn, .forum-act-btn { background: rgba(255,255,255,.05); border: 1px solid var(--border); color: var(--text-dim); padding: 5px 12px; border-radius: 8px; cursor: pointer; font-family: inherit; font-size: 12px; transition: all .2s; }
.forum-like-btn:hover, .forum-act-btn:hover { color: var(--cyan); border-color: rgba(78,205,196,.5); }
.forum-like-btn.liked { color: #ffd700; border-color: rgba(255,215,0,.5); background: rgba(255,215,0,.08); }
.forum-del:hover { color: #e74c3c !important; border-color: rgba(231,76,60,.5) !important; }
.forum-back { background: rgba(255,255,255,.06); border: 1px solid var(--border); color: var(--text); padding: 8px 16px; border-radius: 8px; cursor: pointer; font-family: inherit; font-size: 13px; margin-bottom: 14px; }
.forum-back:hover { color: var(--cyan); border-color: rgba(78,205,196,.5); }

/* 回复框 */
.forum-reply-box { margin-top: 16px; border: 1px solid var(--border); border-radius: 12px; padding: 16px; background: rgba(20,20,35,.55); }
.frb-title { font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 10px; }
.forum-reply-box textarea { width: 100%; background: var(--bg-deep); border: 2px solid var(--border); border-radius: 8px; color: var(--text); padding: 12px; font-family: inherit; font-size: 13px; outline: none; resize: vertical; min-height: 70px; box-sizing: border-box; }
.forum-reply-box textarea:focus { border-color: var(--cyan); }
.frb-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; gap: 10px; flex-wrap: wrap; }
.frb-hint { font-size: 12px; color: var(--text-dim); }
.frb-foot button { background: linear-gradient(135deg, var(--cyan), #2cb5a8); color: #fff; border: none; padding: 9px 22px; border-radius: 8px; cursor: pointer; font-family: inherit; font-size: 13px; font-weight: 700; }
.frb-foot button:hover { filter: brightness(1.1); }
#forumQuoteBar { background: rgba(78,205,196,.08); border: 1px dashed rgba(78,205,196,.4); border-radius: 8px; padding: 8px 12px; font-size: 12px; color: var(--text-dim); margin-bottom: 8px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.quote-cancel { background: none; border: none; color: #e74c3c; cursor: pointer; font-size: 14px; margin-left: auto; }

/* @提及 玩家建议框 */
.mention-suggest { position: fixed; z-index: 99999; background: rgba(18,18,32,.98); border: 1px solid rgba(78,205,196,.4); border-radius: 10px; box-shadow: 0 10px 32px rgba(0,0,0,.5); overflow: hidden; display: none; max-height: 220px; overflow-y: auto; min-width: 180px; }
.mention-suggest.show { display: block; }
.mention-suggest .ms-head { padding: 6px 12px; font-size: 11px; color: var(--text-dim); border-bottom: 1px solid rgba(255,255,255,.06); background: rgba(78,205,196,.06); }
.mention-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; cursor: pointer; font-size: 13px; color: var(--text); transition: background .15s; }
.mention-item:hover { background: rgba(78,205,196,.12); color: var(--cyan); }
.mention-item .mi-uid { font-size: 11px; color: var(--text-dim); margin-left: auto; }
.mention-item .mi-at { color: var(--cyan); font-weight: 700; }

/* 举报箱 */
.report-item { border: 1px solid var(--border); border-radius: 10px; padding: 12px; margin-bottom: 10px; background: rgba(255,255,255,.02); }
.rp-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.rp-head b { color: var(--text); font-size: 14px; }
.rp-type { font-size: 11px; padding: 2px 8px; border-radius: 10px; background: rgba(231,76,60,.12); color: #e74c3c; }
.rp-reason { font-size: 13px; color: var(--text-dim); margin-bottom: 6px; }
.rp-time { font-size: 11px; color: var(--text-dim); margin-bottom: 8px; }
.rp-handled { display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 4px; background: rgba(46,204,113,.12); color: #2ecc71; font-size: 11px; }
.rp-result { color: #f39c12; font-size: 12px; margin-top: 4px; }
.report-item.rp-done { opacity: .65; }

/* 论坛移动端：列表改卡片布局 */
@media (max-width: 720px) {
  .forum-floor { grid-template-columns: 110px 1fr; }
  .fl-left { top: 60px; }
  .fl-avatar { width: 40px; height: 40px; font-size: 17px; border-radius: 10px; }
  .fl-name { font-size: 12px; }
  .fl-group-tag { font-size: 9px; padding: 2px 8px; }
  .fl-badge { font-size: 9px; padding: 2px 6px; }
  .fl-stats-grid .fl-stat-item b { font-size: 13px; }
  .fl-stats-detail { display: none; }
  .fl-regdate { display: none; }
  .forum-list-head { display: none; }
  .forum-row { display: block; padding: 14px; }
  .fr-count, .fr-views { display: inline; margin-right: 14px; font-size: 12px; }
  .fr-last { display: flex; flex-direction: row; align-items: center; gap: 6px; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.08); text-align: left; }
  .fr-lr-row { justify-content: flex-start; }
  .forum-tools input { width: 120px; }
}
/* 手机窄屏：楼层左栏折叠成一行，正文最大化 */
@media (max-width: 480px) {
  .forum-floor { grid-template-columns: 1fr; }
  .fl-left { position: static; flex-direction: row; justify-content: flex-start; align-items: center; text-align: left; padding: 10px 14px; border-right: none; border-bottom: 1px solid var(--border); gap: 6px 10px; flex-wrap: wrap; border-radius: 0; }
  .fl-left .fl-avatar { order: 1; width: 34px; height: 34px; font-size: 15px; border-radius: 8px; }
  .fl-name { order: 2; font-size: 13px; }
  .fl-group-tag { order: 3; font-size: 9px; padding: 2px 8px; }
  .fl-uid { order: 4; width: auto; font-size: 10px; padding-top: 1px; }
  .fl-regdate { display: none; }
  .fl-lv { order: 5; font-size: 10px; padding: 1px 8px; }
  .fl-badges { order: 6; justify-content: flex-start; width: auto; }
  .fl-badge { font-size: 9px; padding: 1px 6px; }
  .fl-stats-grid { order: 7; width: 100%; border-top: 1px dashed var(--border); padding-top: 6px; }
  .fl-stats-detail { display: none; }
  .fl-profile-btn { order: 8; font-size: 11px; padding: 4px 10px; }
  .fl-right { padding: 12px 14px; }
  .fr-title { font-size: 16px; }
  .fr-actions { flex-wrap: wrap; gap: 4px; }
  .forum-act-btn { font-size: 12px; padding: 5px 8px; }
}

/* 发帖工具条 */
.np-toolbar { display: flex; gap: 6px; margin-bottom: 8px; flex-wrap: wrap; }
.np-toolbar button { background: rgba(78,205,196,.08); border: 1px solid rgba(78,205,196,.25); color: var(--cyan); border-radius: 6px; padding: 5px 12px; font-size: 13px; font-family: inherit; cursor: pointer; transition: all .2s; }
.np-toolbar button:hover { background: rgba(78,205,196,.18); }
.np-toolbar button:disabled { opacity: .5; cursor: wait; }

/* 楼层内容 Markdown 排版 */
.fr-content { font-size: 14px; line-height: 1.75; color: var(--text); word-break: break-word; }
.fr-content img { max-width: 100%; border-radius: 10px; margin: 6px 0; display: block; cursor: zoom-in; }
.fr-content p { margin: 6px 0; }
.fr-content h1, .fr-content h2, .fr-content h3 { margin: 12px 0 6px; color: var(--cyan); }
.fr-content blockquote { border-left: 3px solid var(--cyan); margin: 8px 0; padding: 4px 12px; background: rgba(78,205,196,.06); color: var(--text-dim); border-radius: 0 8px 8px 0; }
.fr-content pre { background: rgba(0,0,0,.4); border: 1px solid var(--border); border-radius: 8px; padding: 10px 14px; overflow-x: auto; }
.fr-content code { background: rgba(78,205,196,.1); color: var(--cyan); padding: 1px 6px; border-radius: 4px; font-size: 13px; }
.fr-content pre code { background: none; color: inherit; padding: 0; }
.fr-content a { color: var(--cyan); text-decoration: underline; }
.fr-content ul, .fr-content ol { margin: 6px 0; padding-left: 22px; }

/* 查看资料按钮 + 资料卡 */
.fl-profile-btn { margin-top: auto; background: rgba(78,205,196,.08); border: 1px solid rgba(78,205,196,.25); color: var(--text-dim); border-radius: 6px; padding: 4px 10px; font-size: 11px; font-family: inherit; cursor: pointer; transition: all .2s; }
.fl-profile-btn:hover { color: var(--cyan); background: rgba(78,205,196,.18); }
.uc-card { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 6px 0; }
.uc-avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(78,205,196,.4); }
.uc-avatar-d { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--brick), #a04a35); color: #fff; font-size: 26px; font-weight: 700; }
.uc-name { font-size: 17px; font-weight: 700; color: var(--text); }
.uc-uid { font-size: 12px; color: var(--text-dim); }
.uc-lv { font-size: 12px; font-weight: 700; padding: 2px 12px; border-radius: 12px; }
.uc-badges { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; min-height: 24px; align-items: center; }
.uc-none { color: var(--text-dim); font-size: 12px; }
.uc-stats { display: flex; gap: 28px; margin-top: 10px; padding-top: 12px; border-top: 1px dashed var(--border); width: 100%; justify-content: center; }
.uc-stats div { text-align: center; }
.uc-stats b { display: block; font-size: 18px; color: var(--cyan); }
.uc-stats span { font-size: 11px; color: var(--text-dim); }

/* ========== 论坛通知系统 v20260938 ========== */
.notif-badge { display:inline-block; min-width:16px; height:16px; line-height:16px; padding:0 4px; margin-left:4px; border-radius:8px; background:#e74c3c; color:#fff; font-size:11px; font-weight:700; text-align:center; vertical-align:1px; }
.nf-item { padding:12px 14px; border-bottom:1px solid var(--border); cursor:pointer; transition:background .2s; border-radius:8px; margin-bottom:6px; }
.nf-item:hover { background:rgba(78,205,196,.08); }
.nf-unread { background:rgba(78,205,196,.07); border-left:3px solid var(--cyan); }
.nf-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.nf-type { font-size:12px; font-weight:700; color:var(--cyan); background:rgba(78,205,196,.12); padding:2px 8px; border-radius:10px; }
.nf-time { font-size:12px; color:var(--text-dim); }
.nf-text { font-size:14px; color:var(--text); line-height:1.5; }
.nf-text b { color:var(--cyan); }
.nf-title { font-size:13px; color:var(--text-dim); margin-top:4px; }
.mention { color:var(--cyan); font-weight:700; background:rgba(78,205,196,.12); padding:0 3px; border-radius:4px; }
.forum-loadmore { text-align:center; padding:18px 0 4px; }
.forum-loadmore button { background:rgba(78,205,196,.1); color:var(--cyan); border:1px solid rgba(78,205,196,.35); border-radius:10px; padding:10px 28px; font-size:14px; cursor:pointer; transition:all .2s; font-family:inherit; }
.forum-loadmore button:hover { background:rgba(78,205,196,.2); transform:translateY(-1px); }
.forum-loadmore button:disabled { opacity:.6; cursor:default; transform:none; }

/* ========== 个人中心 v20260939 ========== */
.uc-home-link { display: block; margin-top: 12px; padding: 8px 14px; text-align: center; color: var(--cyan); background: rgba(78,205,196,.08); border: 1px solid rgba(78,205,196,.3); border-radius: 8px; text-decoration: none; font-size: 13px; transition: all .2s; }
.uc-home-link:hover { background: rgba(78,205,196,.18); }

/* ========== 论坛第四批 v20260940 ========== */
.post-tag { display:inline-block; font-size:11px; font-weight:700; padding:1px 8px; border-radius:9px; margin-right:6px; vertical-align:1px; }
.ptag-ask { background:rgba(231,76,60,.15); color:#e74c3c; border:1px solid rgba(231,76,60,.4); }
.ptag-done { background:rgba(46,204,113,.15); color:#2ecc71; border:1px solid rgba(46,204,113,.4); }
.ptag-recruit { background:rgba(243,156,18,.15); color:#f39c12; border:1px solid rgba(243,156,18,.4); }
.ptag-talk { background:rgba(52,152,219,.15); color:#3498db; border:1px solid rgba(52,152,219,.4); }
.ptag-show { background:rgba(155,89,182,.15); color:#9b59b6; border:1px solid rgba(155,89,182,.4); }
.ptag-guide { background:rgba(78,205,196,.15); color:var(--cyan); border:1px solid rgba(78,205,196,.4); }
.preview-tip { position:fixed; z-index:99999; max-width:320px; padding:10px 14px; background:rgba(15,15,28,.97); border:1px solid rgba(78,205,196,.35); border-radius:10px; color:var(--text); font-size:13px; line-height:1.6; box-shadow:0 8px 28px rgba(0,0,0,.45); pointer-events:none; }
.fr-lr-col { display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
.fr-lr-time { font-size:11px; color:var(--text-dim); opacity:.85; }
@media (max-width: 720px) { .fr-lr-col { align-items:flex-start; } }

/* ========== 第五批 称号商城 v20260941 ========== */
.fl-title { display:inline-block; margin:2px 0 4px; padding:1px 8px; font-size:11px; font-weight:700; color:#d8b4fe; background:rgba(155,89,182,.18); border:1px solid rgba(155,89,182,.45); border-radius:8px; }
.uc-title { display:inline-block; margin:3px 0 2px; padding:1px 8px; font-size:11px; font-weight:700; color:#d8b4fe; background:rgba(155,89,182,.18); border:1px solid rgba(155,89,182,.45); border-radius:8px; }
.shop-points { padding:12px 20px 2px; font-size:14px; color:var(--text); }
.shop-points b { font-size:16px; }
.shop-item { display:flex; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid var(--border); }
.shop-item:last-child { border-bottom:none; }
.shop-icon { font-size:26px; width:36px; text-align:center; }
.shop-name { flex:1; font-size:15px; font-weight:700; color:var(--text); }
.shop-price { font-size:12px; color:var(--text-dim); margin-right:6px; }
.shop-btn { padding:6px 14px; border:1px solid rgba(78,205,196,.5); background:rgba(78,205,196,.12); color:var(--cyan); border-radius:8px; font-size:13px; cursor:pointer; transition:all .2s; }
.shop-btn:hover { background:rgba(78,205,196,.25); }
.shop-btn-on { background:rgba(155,89,182,.25); border-color:rgba(155,89,182,.6); color:#d8b4fe; }
@media (max-width:720px){ .shop-icon{font-size:20px;width:28px} .shop-name{font-size:13px} .shop-btn{padding:5px 10px;font-size:12px} }

/* ========== 第六批 通知楼层/徽章 v20260942 ========== */
.nf-floor { display:inline-block; margin-left:8px; padding:0 7px; font-size:11px; color:#d8b4fe; background:rgba(155,89,182,.15); border-radius:7px; }
.floor-flash { animation: floorFlash 2.4s ease; }
@keyframes floorFlash { 0%,60% { background:rgba(78,205,196,.22); box-shadow:0 0 0 1px rgba(78,205,196,.5); } 100% { background:transparent; box-shadow:none; } }

/* ========== 第四批 图片骨架屏 + 失败占位 v20260955 ========== */
.work-image img, .gallery-item img, .boss-card img, .eq-card img, .video-card img, .fr-content img {
  background: linear-gradient(110deg, rgba(255,255,255,.03) 40%, rgba(255,255,255,.09) 50%, rgba(255,255,255,.03) 60%);
  background-size: 200% 100%;
  animation: imgShimmer 1.4s infinite;
}
@keyframes imgShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.img-err { animation: none !important; background: #14142a !important; }

/* ========== 论坛分维度榜单 v20260956 ========== */
.forum-lb { margin: 14px 0 20px; padding: 16px 18px; background: linear-gradient(135deg, rgba(78,205,196,.07), rgba(155,89,182,.06)); border: 1px solid rgba(78,205,196,.2); border-radius: 14px; }
.lb-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.lb-title { font-size: 16px; font-weight: 700; color: var(--text); text-shadow: 0 0 14px rgba(78,205,196,.3); }
.lb-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.lb-tab { padding: 5px 14px; border-radius: 14px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); color: var(--text-dim); font-size: 13px; cursor: pointer; transition: all .2s; font-family: inherit; }
.lb-tab:hover { color: var(--text); border-color: rgba(78,205,196,.4); }
.lb-tab.active { background: linear-gradient(135deg, var(--cyan), #2cb5a8); color: #fff; border-color: transparent; box-shadow: 0 0 12px rgba(78,205,196,.4); }
.lb-note { margin: 10px 0 4px; font-size: 12px; color: var(--text-dim); line-height: 1.6; }
.lb-list { display: flex; flex-direction: column; gap: 6px; }
.lb-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: rgba(15,15,28,.5); border: 1px solid rgba(255,255,255,.06); border-radius: 10px; transition: background .2s, transform .2s; }
.lb-item:hover { background: rgba(78,205,196,.08); transform: translateX(3px); }
.lb-medal { width: 32px; text-align: center; font-size: 18px; flex-shrink: 0; }
.lb-rank { color: var(--text-dim); font-size: 14px; font-weight: 700; }
.lb-av { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(255,255,255,.1); flex-shrink: 0; }
.lb-av-d { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--cyan), #2cb5a8); color: #fff; font-size: 14px; font-weight: 700; }
.lb-name { flex: 1; color: var(--text); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb-uid { color: var(--text-dim); font-size: 12px; flex-shrink: 0; }
.lb-score { color: var(--cyan); font-size: 13px; font-weight: 700; flex-shrink: 0; }
.lb-loading, .lb-empty { padding: 14px; text-align: center; color: var(--text-dim); font-size: 13px; }
@media (max-width: 600px) { .lb-note { font-size: 11px; } .lb-item { flex-wrap: wrap; gap: 6px; } .lb-uid { display: none; } }

/* ========== 论坛侧边栏 v20260958 ========== */
.forum-col-main { min-width: 0; }
.forum-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 84px; }
.fs-card { background: rgba(20,20,35,.55); border: 1px solid var(--border); border-radius: 14px; padding: 16px; }
.fs-card h3 { margin: 0 0 12px; font-size: 14px; color: var(--text); border-left: 3px solid var(--cyan); padding-left: 8px; display: flex; align-items: center; gap: 6px; }
.task-summary { font-size: 12px; color: var(--cyan); margin-bottom: 10px; padding: 6px 10px; background: rgba(78,205,196,.08); border-radius: 8px; text-align: center; }
.task-item { margin-bottom: 10px; padding: 10px; background: rgba(255,255,255,.03); border-radius: 10px; border: 1px solid rgba(255,255,255,.05); transition: all .2s; }
.task-item.task-done { background: rgba(78,205,196,.08); border-color: rgba(78,205,196,.3); }
.task-row { display: flex; align-items: center; gap: 8px; }
.task-icon { font-size: 16px; flex-shrink: 0; }
.task-info { flex: 1; min-width: 0; }
.task-name { font-size: 13px; color: var(--text); font-weight: 600; }
.task-done .task-name { color: var(--cyan); }
.task-desc { font-size: 11px; color: var(--text-dim); margin-top: 2px; }
.task-reward { font-size: 11px; color: #f39c12; background: rgba(243,156,18,.12); padding: 2px 8px; border-radius: 8px; flex-shrink: 0; }
.task-bar { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.task-bar-track { flex: 1; height: 5px; background: rgba(255,255,255,.06); border-radius: 3px; overflow: hidden; }
.task-bar-fill { height: 100%; border-radius: 3px; transition: width .5s ease; }
.task-progress { font-size: 10px; color: var(--text-dim); white-space: nowrap; min-width: 28px; text-align: right; }
.fs-total { font-size: 11px; color: var(--text-dim); font-weight: 400; }
.fs-checkin-info { font-size: 13px; color: var(--text-dim); margin-bottom: 10px; line-height: 1.7; }
.fs-checkin-info b { color: var(--cyan); }
.fs-checkin-btn { width: 100%; padding: 10px; border: none; border-radius: 10px; background: linear-gradient(135deg, var(--cyan), #2cb5a8); color: #fff; font-family: inherit; font-size: 14px; font-weight: 700; cursor: pointer; transition: filter .2s, transform .2s; }
.fs-checkin-btn:hover { filter: brightness(1.1); transform: translateY(-1px); }
.fs-checkin-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.fs-member { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,.05); }
.fs-member:last-child { border-bottom: none; }
.fs-member .lb-av { width: 28px; height: 28px; }
.fs-member-name { flex: 1; color: var(--text); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-member-uid { color: var(--text-dim); font-size: 11px; flex-shrink: 0; }
.fs-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.fs-tag { padding: 5px 12px; border-radius: 14px; background: rgba(78,205,196,.1); border: 1px solid rgba(78,205,196,.25); color: var(--cyan); font-size: 12px; cursor: pointer; transition: all .2s; font-family: inherit; }
.fs-tag:hover { background: rgba(78,205,196,.22); }
.fs-tag.active { background: var(--cyan); color: #fff; border-color: transparent; }
.fs-tag em { font-style: normal; opacity: .7; font-size: 11px; margin-left: 2px; }
.fs-empty { padding: 8px 0; text-align: center; color: var(--text-dim); font-size: 12px; }

/* ========== 论坛排版微调 v20260958 ========== */
/* 榜单数字等宽右对齐 */
.lb-uid { font-variant-numeric: tabular-nums; min-width: 62px; text-align: right; }
.lb-score { font-variant-numeric: tabular-nums; min-width: 58px; text-align: right; }
/* 工具栏按钮间距紧凑 */
.forum-toolbar { margin-bottom: 10px; gap: 8px; }
.forum-cat { padding: 6px 12px; font-size: 12.5px; }
.forum-tools input { width: 160px; padding: 7px 12px; }
.forum-new-btn { padding: 8px 14px; }
.forum-report-entry { padding: 8px 12px; }
/* 深灰小字调亮 */
.forum-list-head { color: #a7adc2; }
.forum-row .fr-meta, .forum-row time, .forum-row .fr-lr-time, .fr-time, .fr-lr-row { color: #aab0c5; }

/* 签到卡浓缩（单按钮版） */
.fs-checkin-card { padding: 14px; }
.fs-checkin-card .fs-checkin-btn { font-size: 15px; padding: 12px; }
.fs-checkin-card .fs-checkin-info { text-align: center; margin: 8px 0 0; font-size: 12px; color: var(--text-dim); }
.fs-stats-line { color: var(--text-dim); font-size: 11px; margin-top: 4px; text-align: center; line-height: 1.6; }
.fs-stats-line b { color: var(--cyan); }
.fs-checkin-card .fs-checkin-info b { color: var(--cyan); }

/* ===== 论坛帖子移动端摘要 ===== */
.fr-preview-m { display: none; }
@media (max-width: 720px) {
  .fr-preview-m {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; font-size: 12px; color: var(--text-dim);
    line-height: 1.45; margin: 3px 0 2px; opacity: .9;
  }
}

/* ===== 数据看板 ===== */
.stats-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(130px,1fr)); gap: 10px; padding: 4px 0; }
.stat-card { background: var(--bg-card2); border: 1px solid var(--border); border-radius: 12px; padding: 14px 10px; text-align: center; }
.stat-icon { font-size: 22px; }
.stat-num { font-size: 20px; font-weight: 800; color: var(--cyan); margin-top: 4px; }
.stat-label { font-size: 12px; color: var(--text); margin-top: 2px; }
.stat-sub { font-size: 11px; color: var(--text-dim); margin-top: 2px; }
body.theme-day .stat-card { background: rgba(255,255,255,.6); }
/* ===== 运营中心 ===== */
.ac-tabs { display: flex; gap: 4px; padding: 0 20px; border-bottom: 1px solid var(--border); }
.ac-tab { flex: 1; padding: 12px; background: none; border: none; color: var(--text-dim); font-family: inherit; font-size: 14px; cursor: pointer; border-bottom: 2px solid transparent; transition: all .2s; }
.ac-tab.active { color: var(--cyan); border-bottom-color: var(--cyan); }
.sens-add { display: flex; gap: 8px; margin-bottom: 12px; }
.sens-add input { flex: 1; }
.sens-info { font-size: 13px; color: var(--text-dim); margin-bottom: 10px; }
.sens-info b { color: var(--cyan); }
.sens-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.sens-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; background: rgba(78,205,196,.08); border: 1px solid rgba(78,205,196,.3); border-radius: 8px; font-size: 13px; color: var(--text); }
.sens-chip button { background: none; border: none; color: var(--text-dim); cursor: pointer; font-size: 12px; padding: 0; line-height: 1; }
.sens-chip button:hover { color: #e74c3c; }
.admin-loading, .admin-empty, .admin-err { padding: 16px; text-align: center; color: var(--text-dim); font-size: 13px; }
.admin-err { color: #e74c3c; }
.admin-user-row { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-bottom: 1px solid var(--border); }
.admin-user-row:last-child { border-bottom: none; }
.au-info { flex: 1; min-width: 0; }
.au-name { font-size: 14px; color: var(--text); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.au-sub { font-size: 12px; color: var(--text-dim); margin-top: 2px; }
.au-act { flex-shrink: 0; }
.ubadge { display: inline-block; padding: 2px 8px; border-radius: 6px; font-size: 11px; background: rgba(78,205,196,.12); color: var(--cyan); }
.ubadge-admin { background: rgba(255,193,7,.15); color: #ffc107; }
.ubadge-ban { background: rgba(231,76,60,.15); color: #e74c3c; }

/* 帖子收藏按钮状态 */
#postFavBtn.faved, .forum-act-btn.faved { color: var(--cyan); border-color: rgba(78,205,196,.5); background: rgba(78,205,196,.1); }

/* 收藏列表 */
.fav-item { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border-bottom: 1px solid var(--border); cursor: pointer; transition: background .15s; }
.fav-item:hover { background: rgba(78,205,196,.05); }
.fav-item-title { flex: 1; min-width: 0; font-size: 14px; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fav-item-meta { font-size: 12px; color: var(--text-dim); flex-shrink: 0; }

/* 榜单展开/收起 */
.lb-more { text-align: center; padding: 8px 0 2px; }
.lb-more button { background: none; border: 1px solid rgba(78,205,196,.3); color: var(--cyan); font-size: 12px; padding: 5px 14px; border-radius: 14px; cursor: pointer; transition: all .2s; }
.lb-more button:hover { background: rgba(78,205,196,.1); }

.au-pts { color: #ffd166; }
.au-bonus { color: var(--text-dim); font-size: 11px; }

/* 管理员编辑他人帖子警示 */
.edit-warn { padding: 9px 12px; margin-bottom: 12px; background: rgba(255,193,7,.12); border: 1px solid rgba(255,193,7,.4); border-radius: 8px; color: #ffc107; font-size: 13px; }

/* 徽章管理 */
.au-badges { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.au-badge { display: inline-block; padding: 1px 7px; border-radius: 6px; font-size: 11px; background: rgba(155,89,182,.15); color: #d8b4fe; border: 1px solid rgba(155,89,182,.3); }
.au-badge-more { font-size: 11px; color: var(--text-dim); align-self: center; }
.bm-target { font-size: 14px; color: var(--text); margin-bottom: 12px; }
.bm-target b { color: var(--cyan); }
.bm-current { display: flex; flex-wrap: wrap; gap: 8px; }
.bm-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; background: rgba(155,89,182,.15); border: 1px solid rgba(155,89,182,.4); border-radius: 8px; font-size: 13px; color: #d8b4fe; }
.bm-badge button { background: none; border: none; color: var(--text-dim); cursor: pointer; font-size: 11px; padding: 0; line-height: 1; }
.bm-badge button:hover { color: #e74c3c; }
.bm-preset { display: flex; flex-wrap: wrap; gap: 8px; }
.bm-preset-btn { padding: 6px 12px; background: rgba(78,205,196,.08); border: 1px solid rgba(78,205,196,.3); border-radius: 8px; color: var(--text); font-size: 13px; cursor: pointer; transition: all .2s; font-family: inherit; }
.bm-preset-btn:hover { background: rgba(78,205,196,.18); color: var(--cyan); }

/* 社区创作入口卡片 */
.community-entry { display: flex; align-items: center; gap: 16px; padding: 22px 26px; background: linear-gradient(135deg, rgba(78,205,196,.08), rgba(200,85,61,.06)); border: 1px solid rgba(78,205,196,.25); border-radius: 16px; text-decoration: none; transition: all .3s; max-width: 720px; margin: 0 auto; }
.community-entry:hover { border-color: rgba(78,205,196,.6); background: linear-gradient(135deg, rgba(78,205,196,.16), rgba(200,85,61,.1)); transform: translateY(-2px); box-shadow: 0 8px 30px rgba(0,0,0,.35); }
.community-entry-icon { font-size: 34px; line-height: 1; }
.community-entry-title { color: var(--text); font-size: 17px; font-weight: 700; margin-bottom: 4px; }
.community-entry-sub { color: var(--text-dim); font-size: 12.5px; }
.community-entry-arrow { margin-left: auto; color: var(--cyan); font-size: 22px; transition: transform .3s; }
.community-entry:hover .community-entry-arrow { transform: translateX(4px); }
@media (max-width: 600px) { .community-entry { padding: 16px 14px; gap: 12px; } .community-entry-icon { font-size: 26px; } .community-entry-title { font-size: 15px; } }

/* ===== 白天模式：论坛页适配 ===== */
body.theme-day .forum-posts{background:rgba(245,241,230,.55)}
body.theme-day .forum-floor{background:var(--bg-card)}
body.theme-day .fl-left{background:var(--bg-card2)}
body.theme-day .forum-reply-box{background:var(--bg-card)}
body.theme-day .reply-item{background:var(--bg-card2)}
body.theme-day .lb-item{background:rgba(255,255,255,.45)}
body.theme-day .fs-card{background:rgba(255,255,255,.5)}
body.theme-day .post-row:hover{background:rgba(255,255,255,.5)}
.forum-post-row:hover{background:rgba(78,205,196,.06);box-shadow:inset 3px 0 0 var(--cyan);transform:translateX(2px);transition:all .15s;}
body.theme-day .forum-post-row:hover{background:rgba(255,255,255,.5);box-shadow:inset 3px 0 0 var(--cyan);}
body.theme-day .fr-floor{background:var(--bg-card)}
body.theme-day .fr-left{background:var(--bg-card2)}

/* ===== 全站像素风鼠标光标 ===== */
html, body { cursor: url('/vendor/cursors/arrow.cur'), auto; }
a, button, .nav-item, .nav-more-btn, [role="button"], select, summary, .forum-post-row, .post-row, .lb-item, .fs-card, .modal-close, .tag, .like-btn, .reply-btn, .work-card, .video-card, .eq-card, .wiki-item, .download-card, .panel-card, .guestbook-item, .announcement-item, .join-guide, .community-entry, .rule-column, .tutorial-step, .plot-card, .dungeon-card, .section-header { cursor: url('/vendor/cursors/hand.cur'), pointer; }
input[type="text"], input[type="password"], input[type="search"], input[type="email"], textarea, .EasyMDEContainer .CodeMirror, .ql-editor { cursor: text; }
a:active, button:active { cursor: pointer; }

/* 导航头像占位（无头像显示首字母） */
.nav-av { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; flex-shrink: 0; background: #1c2333; }
.nav-av-d { width: 26px; height: 26px; border-radius: 50%; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--cyan), #2cb5a8); color: #fff; font-size: 13px; font-weight: 700; flex-shrink: 0; display: none; }
/* ========== v20260989 Hero 状态条 + 滚动词条 + Bento 入口 + 3D 卡片 ========== */
/* ---- Hero 状态条 ---- */
.hero-status{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:32px;padding:10px 20px;background:rgba(15,15,28,.55);border:1px solid rgba(255,255,255,.12);border-radius:30px;backdrop-filter:blur(6px);opacity:0;animation:hero-in .9s ease forwards;animation-delay:1.05s}
.hero-status .hs-item{display:flex;align-items:center;gap:7px;color:var(--text-dim);font-size:13px;letter-spacing:.3px}
.hero-status .hs-dot{width:8px;height:8px;border-radius:50%;background:#2ecc71;box-shadow:0 0 8px #2ecc71;animation:pulse-dot 2s infinite}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.3}}
.hero-status .hs-sep{width:1px;height:14px;background:rgba(255,255,255,.18)}
body.theme-day .hero-status{background:rgba(245,241,230,.75);border-color:var(--border)}
/* ---- 滚动词条 ---- */
.marquee-bar{position:relative;overflow:hidden;padding:13px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:rgba(15,15,28,.6);margin-bottom:60px}
.marquee-track{display:flex;width:max-content;animation:marquee 32s linear infinite}
.marquee-item{display:flex;align-items:center;gap:48px;padding-right:48px;color:var(--text-dim);font-size:13px;letter-spacing:1px;white-space:nowrap}
.marquee-item b{color:var(--cyan);font-weight:600}
.marquee-item .m-star{color:var(--gold)}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
body.theme-day .marquee-bar{background:rgba(245,241,230,.6)}
/* ---- Bento 入口 ---- */
.bento-section{margin:0 auto 70px;max-width:1000px;padding:0 20px}
.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:128px;gap:16px}
.bento-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;text-decoration:none;transition:all .3s;overflow:hidden}
.bento-card::before{content:'';position:absolute;inset:0;background:radial-gradient(600px 200px at var(--mx,50%) var(--my,-20%),rgba(78,205,196,.14),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.bento-card:hover{transform:translateY(-4px);border-color:rgba(78,205,196,.55);box-shadow:0 12px 32px rgba(0,0,0,.35)}
.bento-card:hover::before{opacity:1}
.bento-lg{grid-column:span 2;grid-row:span 2}
.bento-top{display:flex;align-items:flex-start;gap:14px;position:relative;z-index:1}
.bento-icon{font-size:30px;line-height:1}
.bento-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:6px}
.bento-desc{font-size:12.5px;color:var(--text-dim);line-height:1.6}
.bento-arrow{position:absolute;right:18px;bottom:16px;color:var(--cyan);font-size:20px;transition:transform .3s;z-index:1}
.bento-card:hover .bento-arrow{transform:translateX(5px)}
body.theme-day .bento-card{background:var(--bg-card)}
body.theme-day .bento-card:hover{box-shadow:0 12px 32px rgba(0,0,0,.12)}
/* ---- 3D 卡片倾斜 ---- */
.dungeon-card{transition:all .35s}
.dungeon-card:hover{transform:perspective(900px) rotateX(2.5deg) rotateY(-2.5deg) translateY(-6px)}
.eq-card{transition:all .3s}
.eq-card:hover{transform:perspective(900px) rotateX(2deg) rotateY(-2deg) translateY(-3px)}
@media(hover:none){.dungeon-card:hover,.eq-card:hover{transform:translateY(-6px)}}
/* ---- 响应式 ---- */
@media (max-width:720px){.bento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto}.bento-lg{grid-column:span 2;grid-row:auto}.bento-card{padding:16px;min-height:96px}.bento-title{font-size:15px}.marquee-bar{margin-bottom:40px}}
@media (max-width:480px){.bento-grid{grid-template-columns:1fr}.bento-lg{grid-column:auto}.hero-status{flex-direction:column;gap:8px;border-radius:16px}.marquee-bar{margin-bottom:32px}}
/* ========== v20260990 积分兑换 + 首页动态统计 ========== */
.cdkey-sec-title{font-size:13px;color:var(--text-dim);margin:14px 0 8px;font-weight:600;letter-spacing:.5px}
.cdkey-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;flex-wrap:wrap}
.cdkey-item .cdkey-code{font-family:'Courier New',monospace;font-size:14px;color:var(--gold);font-weight:700;letter-spacing:1px}
.cdkey-item .cdkey-name{font-size:12.5px;color:var(--text);flex:1;min-width:90px}
.cdkey-item .cdkey-user{font-size:12px;color:var(--text-dim)}
.cdkey-item .cdkey-status{font-size:11.5px;padding:3px 8px;border-radius:8px}
.cdkey-item .st-pending{background:rgba(244,211,94,.12);color:#f4d35e;border:1px solid rgba(244,211,94,.3)}
.cdkey-item .st-done{background:rgba(46,204,113,.12);color:#2ecc71;border:1px solid rgba(46,204,113,.3)}
.cdkey-item.cdkey-done{opacity:.75}
.cdkey-item .cdkey-time{font-size:11px;color:var(--text-dim)}
body.theme-day .cdkey-item{background:rgba(0,0,0,.03)}
.bento-stats{position:relative;z-index:1;margin-top:12px;display:flex;gap:18px;flex-wrap:wrap}
.bento-stats .bs{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim)}
.bento-stats .bs b{color:var(--cyan);font-size:14px;font-family:'Press Start 2P',monospace;font-weight:400}
/* 无障碍：用户开启减少动态效果时关闭动画/过渡 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
/* 猫娘墙 - 横向轮播（桌面一行4张，平板一行2张，手机一行1张大卡） */
.catgirl-wall { padding: 30px 0; text-align: center; }
.cgw-inner { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.cgw-title { font-size: 18px; color: var(--cyan); margin-bottom: 20px; letter-spacing: 2px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.cgw-toggle { background: rgba(78,205,196,0.12); border: 1px solid rgba(78,205,196,0.4); color: var(--cyan); width: 28px; height: 28px; border-radius: 50%; cursor: pointer; font-size: 13px; line-height: 1; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.cgw-toggle:hover { background: rgba(78,205,196,0.25); }
.cgw-grid { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; scrollbar-width: thin; scrollbar-color: var(--cyan) transparent; }
.cgw-grid::-webkit-scrollbar { height: 6px; }
.cgw-grid::-webkit-scrollbar-thumb { background: var(--cyan); border-radius: 3px; }
.cgw-grid img { flex: 0 0 calc((100% - 36px) / 4); scroll-snap-align: start; border-radius: 12px; cursor: pointer; transition: transform 0.3s, box-shadow 0.3s; border: 2px solid transparent; max-height: 360px; object-fit: cover; }
.cgw-grid img:hover { transform: translateY(-6px) scale(1.05); box-shadow: 0 8px 24px rgba(78,205,196,0.3); border-color: var(--cyan); }
@media (max-width: 768px) { .cgw-grid img { flex: 0 0 calc((100% - 12px) / 2); max-height: 300px; } }
@media (max-width: 480px) { .cgw-grid img { flex: 0 0 80%; max-height: 320px; } }

/* 附魔成长曲线 */
.eq-enchant-grow { margin: 8px 0; padding: 8px 12px; background: var(--bg-card2); border-radius: 8px; }
.eq-enchant-grow-name { font-size: 13px; margin-bottom: 4px; }
.eq-enchant-grow-bar { height: 6px; background: var(--border); border-radius: 3px; overflow: hidden; }
.eq-enchant-grow-fill { height: 100%; background: linear-gradient(90deg, var(--cyan), var(--gold)); border-radius: 3px; transition: width 0.3s; }

/* 作者统计网格 */
.fl-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 8px 0; text-align: center; }
.fl-stat-item b { display: block; font-size: 14px; color: var(--cyan); }
.fl-stat-item span { font-size: 11px; color: var(--text-dim); }

/* 作者详细统计 */
.fl-stats-detail { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--border); font-size: 11px; color: var(--text-dim); }
.fl-stats-detail div { margin: 2px 0; }
.fl-stats-detail b { color: var(--cyan); }
.uc-stats-detail { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--border); font-size: 13px; color: var(--text-dim); }
.uc-stats-detail div { margin: 4px 0; }
.uc-stats-detail b { color: var(--cyan); }

/* ===== 手机端底部导航栏 ===== */
.mobile-tab-bar { display: none; }
@media (max-width: 600px) {
  .mobile-tab-bar {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(12, 12, 24, 0.97);
    backdrop-filter: blur(12px);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    z-index: 9998;
    padding: 6px 0 calc(6px + env(safe-area-inset-bottom));
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4);
  }
  .mtab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 6px 4px;
    text-decoration: none;
    color: var(--text-dim);
    font-size: 10px;
    transition: color 0.2s, transform 0.15s;
    position: relative;
  }
  .mtab:active { transform: scale(0.92); }
  .mtab-icon { font-size: 20px; line-height: 1; }
  .mtab-label { font-size: 10px; }
  .mtab.active { color: var(--cyan); }
  .mtab.active .mtab-icon { filter: drop-shadow(0 0 6px rgba(78, 205, 196, 0.5)); }
  .mtab-badge {
    position: absolute;
    top: 2px;
    right: calc(50% - 22px);
    background: #e74c3c;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    line-height: 1;
  }
}
