/* ============================================================
   数智泰州 - 科技艺术风主样式
   AI基础设施和应用 · 泰州市土木建筑学会
   ============================================================ */

/* ====== CSS 变量 ====== */
:root {
  --bg-primary: #0A0F12;
  --bg-secondary: #0F1620;
  --bg-tertiary: #141B28;
  --bg-card: rgba(255, 255, 255, 0.03);
  --bg-glass: rgba(10, 15, 18, 0.7);
  --border-subtle: rgba(255, 255, 255, 0.08);
  --border-glow: rgba(255, 255, 255, 0.15);

  --text-primary: #FFFFFF;
  --text-secondary: #B0B8C0;
  --text-muted: #6B7280;

  --neon-cyan: #00FFE0;
  --neon-pink: #FF6BD8;
  --neon-blue: #5B9BFF;
  --neon-green: #5BE5A0;
  --neon-orange: #FFB060;

  --gradient-cyan-blue: linear-gradient(135deg, #00FFE0 0%, #5B9BFF 100%);
  --gradient-dark: linear-gradient(180deg, #0A0F12 0%, #0F1620 50%, #0A0F12 100%);

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-pill: 100px;

  /* 头部标题块与紧跟内容之间的统一间距（按用户反馈：标题栏和下面内容间隔 8） */
  --gap-heading-content: 8px;

  --shadow-glow-cyan: 0 0 30px rgba(0, 255, 224, 0.15);
  --shadow-card: 0 4px 24px rgba(0, 0, 0, 0.4);

  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ====== Reset ====== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-sans);
  background: var(--bg-primary);
  color: var(--text-primary);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; transition: var(--transition); }
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
ul, ol { list-style: none; }

/* ====== 通用容器 ====== */
.container { max-width: 1440px; margin: 0 auto; padding: 0 64px; }
.section { padding: 80px 0; position: relative; }

/* ============================================================
   子模块色系（照搬参考站：每个主栏目一套强调色）
   - 参考站用 body.theme-xxx 切换；此处作用于 .section，作用域限定在该子模块
   ============================================================ */
/* === 子模块 / 子页面主题色（呼应首页 hero 的 5 主题色 + 中国红收尾） ===
   来源：与首页 hero banner 的 theme_color 一致（cyan/pink/blue/green/orange + 红） */
.section.theme-cyan,
.page-hero.theme-cyan   { --module-accent: #00FFE0; --module-accent-deep: #0AB8A8; --module-accent-soft: #6EFFF0; }
.section.theme-pink,
.page-hero.theme-pink   { --module-accent: #FF6BD8; --module-accent-deep: #C7329C; --module-accent-soft: #FFA8E5; }
.section.theme-blue,
.page-hero.theme-blue   { --module-accent: #5B9BFF; --module-accent-deep: #2D6BC8; --module-accent-soft: #9DC4FF; }
.section.theme-green,
.page-hero.theme-green  { --module-accent: #5BE5A0; --module-accent-deep: #2BA972; --module-accent-soft: #9BF5C6; }
.section.theme-orange,
.page-hero.theme-orange { --module-accent: #FFB060; --module-accent-deep: #C7820E; --module-accent-soft: #FFD3A8; }
.section.theme-red,
.page-hero.theme-red    { --module-accent: #C41E3A; --module-accent-deep: #9E0B22; --module-accent-soft: #E8506A; }
.section.theme-purple,
.page-hero.theme-purple { --module-accent: #A78BFA; --module-accent-deep: #7C3AED; --module-accent-soft: #D8B4FE; }

/* ============================================================
   子模块顶部动态底纹横幅（照搬参考站 page-hero）
   - 背景：深色底 + 该模块 accent 辉光（适配深色科技风）
   - 网格纹理 ::before（mask 径向渐隐）
   - .ph-canvas 粒子（JS 注入，白色适配所有主题色）
   - .ph-glow 光晕脉冲
   ============================================================ */
.module-hero {
  position: relative; margin: 0 auto 56px; padding: 40px 56px;
  border-radius: 20px; overflow: hidden;
  max-width: 1080px;
  text-align: center;
  background:
    radial-gradient(130% 130% at 82% 8%, color-mix(in srgb, var(--module-accent, #00FFE0) 26%, transparent), transparent 60%),
    linear-gradient(120deg, color-mix(in srgb, var(--module-accent-deep, #0A0F12) 42%, #0A0F12), #0A0F12);
  border: 1px solid color-mix(in srgb, var(--module-accent, #00FFE0) 28%, transparent);
}
.module-hero::before {
  content: ""; position: absolute; inset: 0; opacity: .35;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(circle at 80% 20%, #000, transparent 70%);
  -webkit-mask-image: radial-gradient(circle at 80% 20%, #000, transparent 70%);
}
.module-hero .ph-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.module-hero .ph-glow {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(circle at 78% 30%, color-mix(in srgb, var(--module-accent, #00FFE0) 32%, transparent), transparent 46%);
  animation: phPulse 6s ease-in-out infinite;
}
.module-hero .container { position: relative; z-index: 2; max-width: 100%; padding: 0; }
@keyframes phPulse { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }

/* === 子页面顶部横幅（page-hero）——
   子页面（list/article/bbs/search/...）的标题区独立通栏，max-width 100% 占满，
   内含与 hero 完全相同的动态底纹三件套：网格 + canvas 粒子 + 主题色光晕 */
.page-hero {
  position: relative; padding: clamp(56px, 8vw, 96px) 24px var(--gap-heading-content);
  overflow: hidden; text-align: center;
  background:
    radial-gradient(140% 130% at 82% 8%, color-mix(in srgb, var(--module-accent, #00FFE0) 28%, transparent), transparent 60%),
    linear-gradient(135deg, color-mix(in srgb, var(--module-accent-deep, #0A0F12) 55%, #0A0F12) 0%, #0A0F12 70%);
  border-bottom: 1px solid color-mix(in srgb, var(--module-accent, #00FFE0) 22%, transparent);
}
/* 紧贴在 .page-hero 下方的 section 取消顶部 padding，与 page-hero 底部只留 --gap-heading-content 间距
   （按用户反馈：标题栏和下面的块之间间隔 8） */
.page-hero + .section { padding-top: 0; }
.page-hero::before {
  content: ""; position: absolute; inset: 0; opacity: .35; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse at 80% 18%, #000, transparent 72%);
  -webkit-mask-image: radial-gradient(ellipse at 80% 18%, #000, transparent 72%);
}
.ph-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.ph-glow {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(circle at 78% 28%, color-mix(in srgb, var(--module-accent, #00FFE0) 42%, transparent), transparent 52%);
  animation: phPulse 6s ease-in-out infinite;
}
/* 标题内容：相对 canvas/grid 之上 */
.page-hero-inner {
  position: relative; z-index: 2; max-width: 1080px; margin: 0 auto;
}
.page-hero-inner .hero-badge { /* 复用首页 hero 的毛玻璃徽章 */
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 16px; border-radius: var(--radius-pill);
  font-size: 12px; font-weight: 600; letter-spacing: 1px;
  background: color-mix(in srgb, var(--module-accent, #00FFE0) 1F, transparent);
  color: var(--module-accent, #00FFE0);
  border: 1px solid color-mix(in srgb, var(--module-accent, #00FFE0) 80, transparent);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  margin-bottom: 20px;
  /* 移动端兜底：徽章是 inline-flex，默认不换行且不收缩到内容宽度以下，
     栏目名/英文名较长时（如超长无空格英文）会把整页撑出横向滚动。
     允许收缩 + 任意位置断行，max-width 保证不超出容器。 */
  max-width: 100%;
  flex-wrap: wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.page-hero-inner h1 {
  font-size: clamp(34px, 5vw, 52px); font-weight: 800;
  color: var(--text-primary); margin-bottom: 12px; letter-spacing: -0.5px;
}
.page-hero-inner p {
  font-size: clamp(15px, 1.6vw, 18px); color: var(--text-secondary);
  max-width: 640px; margin: 0 auto;
}
/* 徽章脉冲指示灯小圆点（继承首页徽章设计语言） */
.page-hero-inner .hero-badge-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--module-accent, #00FFE0);
  box-shadow: 0 0 8px var(--module-accent, #00FFE0), 0 0 16px color-mix(in srgb, var(--module-accent, #00FFE0) 50%, transparent);
  animation: phPulse 2s ease-in-out infinite;
}

.section-header { text-align: center; margin-bottom: 0; }
.section-badge {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 16px; border-radius: var(--radius-pill);
  font-size: 13px; font-weight: 600; letter-spacing: 0.5px;
  background: color-mix(in srgb, var(--module-accent, #00FFE0) 12%, transparent);
  color: var(--module-accent, var(--neon-cyan));
  border: 1px solid color-mix(in srgb, var(--module-accent, #00FFE0) 32%, transparent);
  margin-bottom: 16px;
  /* 同.hero-badge：inline-flex 默认不换行，长英文/无空格串会撑破移动端视口 */
  max-width: 100%;
  flex-wrap: wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.section-title {
  font-size: 32px; font-weight: 800; color: var(--text-primary);
  margin-bottom: 10px; letter-spacing: -0.5px;
}
.section-subtitle {
  font-size: 14px; color: var(--text-secondary); max-width: 600px; margin: 0 auto;
}

/* ============================================================
   1. 浮动导航栏
   ============================================================ */
.navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: 72px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 48px;
  background: var(--bg-glass);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border-subtle);
  transition: var(--transition);
}
.navbar.scrolled {
  background: rgba(10, 15, 18, 0.95);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.nav-logo { display: flex; align-items: center; gap: 12px; }
.nav-logo img { height: 48px; width: auto; }
.nav-logo .brand { font-size: 20px; font-weight: 700; color: #fff; }

.nav-links { display: flex; align-items: center; gap: 8px; }
.nav-item { position: relative; }
.nav-link {
  position: relative;
  padding: 8px 16px; font-size: 15px; font-weight: 500; color: var(--text-secondary);
  border-radius: var(--radius-sm); transition: var(--transition);
  display: flex; align-items: center; gap: 4px;
}
.nav-link:hover, .nav-link.active { color: var(--neon-cyan); background: rgba(0, 255, 224, 0.08); }
/* 对齐后台侧边栏的 accent 语言：active/hover 时底部浮现青色指示条 */
.nav-link::after {
  content: ""; position: absolute; left: 16px; right: 16px; bottom: 3px; height: 2px;
  background: var(--neon-cyan); border-radius: 2px;
  transform: scaleX(0); transform-origin: center; transition: transform 0.25s ease;
}
.nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }
.nav-link .arrow { font-size: 10px; transition: transform 0.3s; }
.nav-item:hover .nav-link .arrow { transform: rotate(180deg); }

/* 树形折叠按钮：PC 默认全局隐藏（mobile modal 才显示用，由 .mmo-list 段覆盖） */
.nav-tree-toggle { display: none; }

/* 二级菜单 */
.nav-dropdown {
  position: absolute; top: 100%; left: 0; min-width: 200px;
  background: rgba(15, 22, 32, 0.95); backdrop-filter: blur(20px);
  border: 1px solid var(--border-subtle); border-radius: var(--radius-md);
  padding: 8px; opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: var(--transition); box-shadow: var(--shadow-card);
}
.nav-item:hover .nav-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-dropdown a {
  position: relative;
  display: flex; align-items: center; gap: 8px;
  padding: 10px 16px 10px 14px; font-size: 14px; color: var(--text-secondary);
  border-radius: var(--radius-sm); transition: var(--transition);
  border-left: 2px solid transparent;
}
/* 对齐后台侧边栏「左侧 accent 指示」语言；--sub-accent 取该二级栏目在后台配置的主题色 */
.nav-dropdown a:hover {
  color: var(--neon-cyan); background: rgba(0, 255, 224, 0.08);
  border-left-color: var(--sub-accent, var(--neon-cyan));
}
.nav-dropdown a.nav-dropdown-home {
  font-weight: 600; color: var(--text-primary);
  border-bottom: 1px solid var(--border-subtle); border-left-color: transparent !important;
  border-radius: 0; margin-bottom: 4px;
}
.nav-dropdown a.nav-dropdown-home:hover { background: transparent; color: var(--text-primary); }
.nav-dropdown-item .nav-dropdown-dot {
  width: 6px; height: 6px; border-radius: 50%; flex: none;
  background: var(--sub-accent, var(--neon-cyan));
  box-shadow: 0 0 6px var(--sub-accent, var(--neon-cyan));
}

.nav-right { display: flex; align-items: center; gap: 12px; min-width: 0; }
/* 放大镜：顶栏最左侧（原会员首字头像位）。40px 见方满足移动端触摸目标 */
.nav-search {
  width: 40px; height: 40px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
  color: var(--text-secondary); transition: var(--transition);
  -webkit-tap-highlight-color: transparent;
}
.nav-search:hover { background: rgba(255, 255, 255, 0.08); color: var(--neon-cyan); }
.nav-login {
  padding: 8px 20px; font-size: 14px; font-weight: 600; color: var(--text-primary);
  border: 1px solid var(--border-glow); border-radius: var(--radius-sm); transition: var(--transition);
}
.nav-login:hover { border-color: var(--neon-cyan); color: var(--neon-cyan); }
.nav-cta {
  padding: 8px 24px; font-size: 14px; font-weight: 700; color: #0A0F12;
  background: var(--gradient-cyan-blue); border-radius: var(--radius-sm);
  transition: var(--transition); box-shadow: var(--shadow-glow-cyan);
  white-space: nowrap; flex: none; text-decoration: none;
}
.nav-cta:hover { transform: translateY(-2px); box-shadow: 0 0 40px rgba(0, 255, 224, 0.4); }

.mobile-toggle { display: none; font-size: 24px; color: #fff; }

/* ===== 论坛会员登录态（右上角） ===== */
.nav-login-btn {
  padding: 8px 20px; font-size: 14px; font-weight: 600; color: var(--text-primary);
  border: 1px solid var(--border-glow); border-radius: var(--radius-sm);
  background: transparent; cursor: pointer; font-family: inherit; transition: var(--transition);
}
.nav-login-btn:hover { border-color: var(--neon-cyan); color: var(--neon-cyan); }
.nav-admin-link {
  font-size: 13px; color: var(--text-muted); text-decoration: none; padding: 6px 2px; white-space: nowrap;
}
.nav-admin-link:hover { color: var(--neon-cyan); }

.nav-member { position: relative; display: flex; align-items: center; min-width: 0; }
.nav-member-main {
  display: flex; align-items: center; gap: 8px; text-decoration: none;
  padding: 4px 8px; border-radius: var(--radius-sm); transition: var(--transition);
  min-width: 0;
}
.nav-member-main:hover { background: rgba(255, 255, 255, 0.06); }
/* 会员名/等级：长名截断而非撑破顶栏（顶栏 flex 容器 min-width:0 已就位） */
.nav-member-meta { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.nav-member-name {
  font-size: 14px; font-weight: 600; color: var(--text-primary);
  max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.nav-member-level {
  font-size: 11px; font-weight: 600; color: var(--neon-cyan); letter-spacing: .3px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nav-member-caret {
  background: transparent; border: none; color: var(--text-secondary); cursor: pointer;
  padding: 4px 5px; font-size: 11px;
}
.nav-member-caret:hover { color: var(--neon-cyan); }
.nav-member-menu {
  position: absolute; top: calc(100% + 10px); right: 0; min-width: 162px;
  background: #0d1419; border: 1px solid var(--border-subtle); border-radius: 12px;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.5); padding: 6px; display: none; z-index: 200;
}
.nav-member-menu.show { display: block; animation: navMemberFade .15s ease; }
@keyframes navMemberFade { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.nav-member-menu a, .nav-member-menu button {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  padding: 10px 12px; font-size: 13.5px; color: var(--text-secondary);
  background: transparent; border: none; border-radius: 8px; text-decoration: none;
  cursor: pointer; font-family: inherit;
}
.nav-member-menu a:hover, .nav-member-menu button:hover { background: rgba(0, 255, 224, 0.1); color: var(--neon-cyan); }
.nav-member-menu i { width: 16px; text-align: center; }

@media (max-width: 768px) {
  .nav-admin-link { display: none; }
  .nav-member-name { font-size: 13px; max-width: 92px; }
  .nav-member-level { font-size: 10px; }
  .nav-login-btn { padding: 7px 14px; font-size: 13px; }
}

/* ============================================================
   2. Hero 轮播
   ============================================================ */
.hero-carousel {
  position: relative; width: 100%;
  height: 100vh; height: 100svh;
  min-height: 100vh; min-height: 100svh;
  overflow: hidden; background: var(--bg-primary);
}
.hero-slide {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  opacity: 0; transition: opacity 1s ease-in-out;
  display: block;
  pointer-events: none;
}
.hero-slide.active { opacity: 1; z-index: 2; pointer-events: auto; }
.hero-slide-bg {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background-size: cover; background-position: center; background-repeat: no-repeat;
  background-color: #0A0F12;
  z-index: 0;
  transform: scale(1.02);
  filter: brightness(0.55) saturate(1.15);
  transition: transform 6s ease-out, filter 1s ease;
}
.hero-slide.active .hero-slide-bg { transform: scale(1); }
.hero-slide-overlay {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, rgba(2, 3, 8, 0.6) 0%, rgba(0, 5, 15, 0.35) 50%, rgba(0, 15, 40, 0.45) 100%);
  z-index: 1;
}
.hero-slide-glow {
  position: absolute; width: 600px; height: 600px; border-radius: 50%;
  filter: blur(80px); opacity: 0.3; z-index: 1; pointer-events: none;
}
/* ============================================================
   动态底纹（位于 hero 文字下方）
   - 透视网格地板（perspective grid floor）向后滚动
   - 上升粒子（rising particles）随主题色
   - 数据流光带（data flow line）横向扫过
   ============================================================ */
.hero-dynamic-bg {
  position: absolute; inset: 0;
  pointer-events: none; z-index: 2; overflow: hidden;
}
/* 照搬参考站 hero 动态底纹：全屏 canvas 粒子 + 主题色光晕脉冲（canvas 由 JS 注入） */
.hero-dynamic-bg .ph-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.hero-dynamic-bg .ph-glow {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(circle at 78% 30%, color-mix(in srgb, var(--theme-color, #00FFE0) 45%, transparent), transparent 52%);
  animation: phPulse 6s ease-in-out infinite;
}
.hero-grid-floor {
  position: absolute; left: -15%; right: -15%; bottom: -25%; height: 90%;
  background-image:
    linear-gradient(to right, color-mix(in srgb, var(--theme-color, #00FFE0) 32%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in srgb, var(--theme-color, #00FFE0) 32%, transparent) 1px, transparent 1px);
  background-size: 72px 72px;
  transform: perspective(520px) rotateX(62deg);
  transform-origin: center bottom;
  animation: heroGridScroll 6s linear infinite;
  opacity: 1;
}
@keyframes heroGridScroll {
  0%   { background-position: 0 0; }
  100% { background-position: 0 72px; }
}
.hero-particles { position: absolute; inset: 0; }
.hero-particles span {
  position: absolute; bottom: 4%;
  border-radius: 50%;
  background: var(--theme-color, #00FFE0);
  box-shadow: 0 0 8px var(--theme-color, #00FFE0), 0 0 18px color-mix(in srgb, var(--theme-color, #00FFE0) 50%, transparent);
  opacity: 0;
  animation-name: heroParticleRise;
  animation-timing-function: ease-in;
  animation-iteration-count: infinite;
}
@keyframes heroParticleRise {
  0%   { transform: translate(0, 0); opacity: 0; }
  8%   { opacity: 0.95; }
  50%  { transform: translate(18px, -200px); opacity: 0.85; }
  92%  { opacity: 0.35; }
  100% { transform: translate(-12px, -400px); opacity: 0; }
}
.hero-data-line {
  position: absolute; left: -20%; right: -20%;
  top: 38%; height: 1px;
  background: linear-gradient(to right, transparent 0%, var(--theme-color, #00FFE0) 50%, transparent 100%);
  box-shadow: 0 0 10px var(--theme-color, #00FFE0);
  opacity: 0;
  animation: heroDataFlow 5.5s ease-in-out infinite;
  animation-delay: 1.2s;
}
@keyframes heroDataFlow {
  0%   { transform: translateX(-25%); opacity: 0; }
  15%  { opacity: 0.75; }
  85%  { opacity: 0.75; }
  100% { transform: translateX(25%); opacity: 0; }
}
/* ============================================================
   Hero 内容定位核心：
   - 用 position:absolute + inset:0 让 hero-content 自身撑满 hero-slide
   - 完全不依赖父容器高度是否正确（即使 hero-carousel 高度被某处覆盖，hero-content 仍然居中）
   - flex column + justify-content:center 保证内容垂直居中
   - padding-top: 80px (=navbar 72px + 8px 缓冲) 给 fixed navbar 让位
   - padding-bottom: 120px 给底部缩略图条 + 左右箭头让位
   ============================================================ */
.hero-content {
  position: absolute; inset: 0;
  z-index: 3;
  max-width: 1440px; margin: 0 auto; left: 0; right: 0;
  padding: 88px 80px 120px;
  display: flex; flex-direction: column; justify-content: center;
}
.hero-badge {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 16px; border-radius: var(--radius-pill);
  font-size: 12px; font-weight: 600; letter-spacing: 1px;
  margin-bottom: 24px;
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  align-self: flex-start;     /* column flex 下不被拉伸，宽度贴合内容 */
  width: fit-content;         /* 双保险：fit-content 跟随内容 */
  max-width: 100%;            /* 不超过父容器 */
  /* 移动端兜底：原先 white-space:nowrap 会让长英文栏目名/无空格串把整页撑出横向滚动。
     改为允许断行；overflow-wrap:anywhere 保证无空格长串也能断。 */
  white-space: normal;
  flex-wrap: wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.hero-badge-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 6px currentColor, 0 0 12px currentColor;
  flex-shrink: 0;
  animation: heroBadgePulse 2s ease-in-out infinite;
}
@keyframes heroBadgePulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.5; transform: scale(0.75); }
}
.hero-title {
  font-size: 72px; font-weight: 900; line-height: 1.1; margin-bottom: 16px;
  letter-spacing: -2px; color: #fff;
}
.hero-subtitle {
  font-size: 48px; font-weight: 700; margin-bottom: 20px; letter-spacing: -1px;
}
.hero-description {
  font-size: 17px; color: var(--text-secondary); max-width: 560px;
  line-height: 1.7; margin-bottom: 36px;
}
.hero-actions { display: flex; gap: 16px; margin-bottom: 48px; }
.btn-primary {
  padding: 14px 36px; font-size: 16px; font-weight: 700; color: #0A0F12;
  background: var(--gradient-cyan-blue); border-radius: var(--radius-md);
  transition: var(--transition); display: inline-flex; align-items: center; gap: 8px;
}
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 8px 32px rgba(0, 255, 224, 0.35); }
.btn-outline {
  padding: 14px 36px; font-size: 16px; font-weight: 600; color: #fff;
  background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--radius-md); transition: var(--transition);
  display: inline-flex; align-items: center; gap: 8px;
}
.btn-outline:hover { border-color: var(--neon-cyan); background: rgba(0, 255, 224, 0.08); }

/* 轮播控件 */
.hero-progress {
  width: 200px; height: 3px; background: rgba(255, 255, 255, 0.15);
  border-radius: 2px; overflow: hidden; margin-bottom: 16px;
}
.hero-progress-bar {
  height: 100%; width: 0; border-radius: 2px;
  background: var(--gradient-cyan-blue);
  transition: width 0.1s linear;
}
.hero-counter {
  font-size: 14px; color: var(--text-secondary); margin-bottom: 20px;
  font-variant-numeric: tabular-nums;
}
.hero-counter .current { font-size: 24px; font-weight: 800; color: #fff; }
.hero-thumbnails { display: flex; gap: 12px; }
.hero-thumb {
  width: 80px; height: 50px; border-radius: var(--radius-sm);
  background-size: cover; background-position: center; background-repeat: no-repeat;
  cursor: pointer; opacity: 0.4;
  border: 2px solid transparent; transition: var(--transition);
}
.hero-thumb.active { opacity: 1; border-color: var(--neon-cyan); }

.hero-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; border-radius: 50%; z-index: 10;
  background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 20px; transition: var(--transition);
}
.hero-arrow:hover { background: var(--neon-cyan); color: #0A0F12; border-color: var(--neon-cyan); }
.hero-arrow.prev { left: 32px; }
.hero-arrow.next { right: 32px; }

/* 装饰网格线（已隐藏：去除首页横线/光晕竖线） */

/* ============================================================
   3. 孵化流程
   ============================================================ */
.incubation-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.incubation-card {
  background: var(--bg-card); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg); padding: 32px 24px; text-align: center;
  transition: var(--transition); position: relative; overflow: hidden;
}
.incubation-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--card-color, var(--neon-cyan)); opacity: 0; transition: var(--transition);
}
.incubation-card:hover { transform: translateY(-8px); border-color: var(--card-color, var(--neon-cyan)); }
.incubation-card:hover::before { opacity: 1; }
.incubation-icon {
  width: 56px; height: 56px; border-radius: var(--radius-md); margin: 0 auto 20px;
  display: flex; align-items: center; justify-content: center; font-size: 24px;
  background: var(--card-color-bg, rgba(0, 255, 224, 0.1));
  color: var(--card-color, var(--neon-cyan));
}
.incubation-number {
  position: absolute; top: 16px; right: 20px; font-size: 48px; font-weight: 900;
  color: rgba(255, 255, 255, 0.04); line-height: 1;
}
.incubation-card h3 { font-size: 20px; font-weight: 700; margin-bottom: 10px; }
.incubation-card p { font-size: 14px; color: var(--text-secondary); line-height: 1.6; }

/* ============================================================
   4. 核心板块
   ============================================================ */
.core-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px;
}
.core-card {
  background: var(--bg-card); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg); padding: 40px; transition: var(--transition);
  position: relative; overflow: hidden; min-height: 200px;
}
.core-card:hover { border-color: var(--card-color, var(--neon-cyan)); transform: translateY(-4px); }
.core-card::after {
  content: ''; position: absolute; bottom: 0; right: 0; width: 120px; height: 120px;
  border-radius: 50%; filter: blur(40px); opacity: 0.08;
  background: var(--card-color, var(--neon-cyan)); transition: var(--transition);
}
.core-card:hover::after { opacity: 0.15; }
.core-card-header { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.core-card-icon {
  width: 48px; height: 48px; border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center; font-size: 22px;
  background: var(--card-color-bg, rgba(0, 255, 224, 0.1));
  color: var(--card-color, var(--neon-cyan));
}
.core-card h3 { font-size: 22px; font-weight: 700; }
.core-card p { font-size: 14px; color: var(--text-secondary); line-height: 1.7; margin-bottom: 16px; }
.core-card-link { font-size: 14px; font-weight: 600; color: var(--card-color, var(--neon-cyan)); }
.core-card-link:hover { opacity: 0.8; }

/* ----------------------------------------------------------------
   核心板块 · 紧凑列表版（凤城论道 / 本地服务 专用）
   仅作用于 .core-card.cc-list，替换原 <p>description</p>，保留头部与底部进入链接
   移动端自适应：核心 grid 已在 line 922 处切到单列
---------------------------------------------------------------- */
.core-grid > .core-card.cc-list {
  /* 让卡片比其他两张更高一些（6 行列表自然撑高），通过 min-height 与其他保持一致的 baseline */
  align-self: start;
}
.cc-list-items {
  list-style: none;
  margin: 4px 0 16px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  /* 关键：flex item 默认 min-width:auto 会让内容宽度把 flex container 撑开；
     这里强制 min-width:0，让 1fr 标题列能正常收缩并被卡片宽度约束 */
  min-width: 0;
}
.cc-list-item {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-top: 1px dashed var(--border-subtle, rgba(255,255,255,0.07));
  font-size: 13.5px;
  transition: background-color .15s ease;
  min-width: 0; /* grid container 收缩约束 */
}
.cc-list-item:first-child { border-top: none; padding-top: 4px; }
.cc-list-item:hover { background: rgba(255,255,255,0.02); }
.cc-list-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 6px;
  background: rgba(255, 107, 216, 0.14); /* 凤城论道默认粉色，让 services 卡用行内 style 覆盖 */
  color: #FF6BD8;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.5px;
  white-space: nowrap;
}
.cc-list-title {
  color: var(--text-primary, #fff);
  text-decoration: none;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  position: relative;
  z-index: 2; /* 高于 .cc-card-overlay，列表项的内部链接优先触发 */
}
.cc-list-title:hover { color: var(--card-color, var(--neon-cyan)); }
.cc-list-date {
  font-size: 12px;
  color: var(--text-muted, #8b97a3);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.cc-list-empty {
  list-style: none;
  padding: 18px 0;
  text-align: center;
  color: var(--text-muted, #8b97a3);
  font-size: 13px;
}
.cc-list-empty i { margin-right: 6px; opacity: 0.6; }
/* cc-list 系列 · 凤城/服务 紧凑列表版（深色背景：覆盖 cc-dark 子类） */
.core-card.cc-list { display: flex; flex-direction: column; padding: 28px; }
.core-card.cc-list.cc-dark {
  background: linear-gradient(160deg, color-mix(in srgb, var(--card-color, #FF6BD8) 18%, #0c1018) 0%, #0c1018 80%);
  border-color: color-mix(in srgb, var(--card-color, #FF6BD8) 30%, transparent);
}
.cc-list.cc-dark .cc-list-head h3 { color: #fff; }
.cc-list.cc-dark .cc-list-title { color: rgba(255,255,255,0.92); }
.cc-list.cc-dark .cc-list-title:hover { color: var(--card-color, #FF6BD8); }
.cc-list.cc-dark .cc-list-item { border-top-color: rgba(255,255,255,0.08); }
.cc-list.cc-dark .cc-list-item:hover { background: color-mix(in srgb, var(--card-color, #FF6BD8) 8%, transparent); }
.cc-list.cc-dark .cc-list-date { color: rgba(255,255,255,0.55); }

/* cc-list 头部行：图标块 + 大标题（深色卡片专用，与浅色保持协调但更醒目） */
.cc-list-head {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 16px;
}
.cc-list-head-icon {
  width: 48px; height: 48px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; color: #fff;
  background: linear-gradient(135deg, var(--card-color, #FF6BD8) 0%, color-mix(in srgb, var(--card-color) 55%, #000) 100%);
  box-shadow: 0 6px 18px color-mix(in srgb, var(--card-color) 25%, transparent);
}
.cc-list-head h3 { font-size: 22px; font-weight: 700; margin: 0; line-height: 1.2; }

/* cc-list 底部 CTA：进入板块（带箭头动画） */
.cc-card-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 600;
  color: var(--card-color, #FF6BD8);
  text-decoration: none;
  margin-top: auto; padding-top: 14px;
  position: relative; z-index: 3; /* 高于 .cc-card-overlay */
}
.cc-card-cta i { transition: transform .2s ease; }
.cc-card-cta:hover i { transform: translateX(4px); }
.cc-list.cc-dark .cc-card-cta { color: var(--card-color, #FF6BD8); }

/* ----------------------------------------------------------------
   核心板块 · 特性版 cc-feature（活动/信息 专用 · 左大图 + 右 5 条）
   数据来自：第 1 条作 hero，第 2-6 条作右侧列表
---------------------------------------------------------------- */
.core-card.cc-feature {
  padding: 28px;
  display: flex; flex-direction: column; gap: 16px;
}
.cc-feature-head {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 12px;
  border-bottom: 1px solid color-mix(in srgb, var(--card-color, #c41e3a) 18%, transparent);
  cursor: default;
}
.cc-feature-title {
  display: flex; align-items: baseline; gap: 10px;
  font-size: 20px; font-weight: 700; margin: 0; line-height: 1.2;
}
.cc-feature-bar {
  display: inline-block; width: 4px; height: 18px;
  border-radius: 2px;
  background: var(--card-color, #c41e3a);
  align-self: center;
}
.cc-feature-title-en {
  font-size: 11.5px; font-weight: 500; letter-spacing: 1.2px;
  color: var(--text-muted, #8b97a3); text-transform: uppercase;
}
.cc-feature-top-badge {
  display: inline-block; padding: 5px 14px; border-radius: 12px;
  background: color-mix(in srgb, var(--card-color, #c41e3a) 18%, transparent);
  color: var(--card-color, #c41e3a);
  font-size: 12px; font-weight: 600;
  border: 1px solid color-mix(in srgb, var(--card-color, #c41e3a) 35%, transparent);
}

/* cc-feature 主体：1.15fr + 1fr（左图稍窄，把宽度让给右侧 8 条列表） */
.cc-feature-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 18px;
  min-height: 340px;
}

/* 左侧大图（直链 article.php?id=...，强化点击命中） */
.cc-feature-hero {
  position: relative; display: block; overflow: hidden;
  border-radius: 12px;
  min-height: 340px;
  text-decoration: none; color: #fff;
  background: linear-gradient(135deg, color-mix(in srgb, var(--card-color, #c41e3a) 65%, transparent) 0%, #0c1018 100%);
  isolation: isolate;
  cursor: pointer;
  z-index: 2;
}
.cc-feature-hero-image {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
}
.cc-feature-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg,
    rgba(0,0,0,0) 30%,
    rgba(0,0,0,0.4) 55%,
    rgba(0,0,0,0.88) 100%);
  z-index: 1;
}
.cc-feature-hero-badge {
  position: absolute; top: 14px; left: 14px;
  padding: 5px 14px; border-radius: 14px;
  background: var(--card-color, #c41e3a); color: #fff;
  font-size: 12px; font-weight: 700;
  box-shadow: 0 6px 14px rgba(0,0,0,0.35);
  z-index: 2;
}
.cc-feature-hero-text {
  position: absolute; left: 20px; right: 20px; bottom: 18px;
  z-index: 2;
}
.cc-feature-hero-title {
  font-size: 18px; font-weight: 700; line-height: 1.4;
  margin-bottom: 6px; color: #fff;
  text-shadow: 0 2px 6px rgba(0,0,0,0.5);
  display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden;
}
.cc-feature-hero-desc {
  font-size: 12.5px; line-height: 1.6;
  color: rgba(255,255,255,0.85);
  margin-bottom: 12px;
  display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden;
}
.cc-feature-hero-more {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: 600;
  color: #fff;
  background: var(--card-color, #c41e3a);
  padding: 6px 14px; border-radius: 6px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.cc-feature-hero:hover .cc-feature-hero-more {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px color-mix(in srgb, var(--card-color, #c41e3a) 40%, transparent);
}

/* 右侧 5 条 */
.cc-feature-side { display: flex; flex-direction: column; min-width: 0; }
.cc-feature-side-head {
  display: flex; align-items: baseline; gap: 8px;
  padding: 4px 0 10px;
  border-bottom: 1px dashed color-mix(in srgb, var(--card-color, #c41e3a) 22%, transparent);
  margin-bottom: 4px;
}
.cc-feature-side-name { font-size: 14px; font-weight: 700; }
.cc-feature-side-en {
  font-size: 10.5px; color: var(--text-muted, #8b97a3);
  letter-spacing: 1px; text-transform: uppercase;
}
.cc-feature-side .cc-list-items { flex: 1; }
.cc-feature-side .cc-list-item { padding: 5px 0; line-height: 1.45; }
.cc-feature-side .cc-list-title { font-size: 12.5px; }

/* cc-feature 底部"查看更多" */
.cc-feature-more-link {
  display: inline-flex; align-items: center; gap: 4px;
  margin-top: 0; padding-top: 4px;
  font-size: 13px; font-weight: 600;
}
.cc-feature-more-link i { transition: transform .2s ease; }
.cc-feature-more-link:hover i { transform: translateX(3px); }

/* cc-feature 卡片遮罩链接层级（确保 hero 链接高于 overlay） */
.cc-feature .cc-card-overlay { z-index: 3; } /* 高于 hero（内部 a 标签自身可点） */
.cc-feature .cc-feature-hero { z-index: 2; }
.cc-feature .cc-feature-side .cc-list-title { z-index: 4; }

/* 移动端：左大图上下堆叠 */
@media (max-width: 768px) {
  .cc-feature-grid { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .cc-feature-hero { min-height: 220px; }
  .cc-feature-head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .cc-feature-hero-title { font-size: 16px; }
  .cc-feature { padding: 20px; }
}
@media (max-width: 480px) {
  .cc-feature-title { font-size: 18px; }
  .cc-feature-top-badge { font-size: 11px; padding: 4px 10px; }
}

/* 覆盖整卡的可点链接：用于凤城/本地两张列表卡（外层是 <div>，通过覆盖链接实现整卡跳转） */
.cc-card-overlay {
  position: absolute;
  inset: 0;
  z-index: 1; /* 低于内部列表项链接（z-index:2）、高于 ::after 光晕 */
  text-indent: -9999px; /* 隐藏文字，仅留可点区域 */
  overflow: hidden;
  border-radius: inherit;
}
.core-card.cc-list { position: relative; /* 确保 overlay 定位正确 */ }
.core-card.cc-list .core-card-link { position: relative; z-index: 3; } /* "进入板块"链接最高层，永远能点 */

/* 移动端：标签列更窄 */
@media (max-width: 768px) {
  .cc-list-item { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 8px; padding: 10px 0; }
  .cc-list-tag { font-size: 11px; padding: 0 6px; }
}

/* ============================================================
   5. 数据统计
   ============================================================ */
.stats-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.stat-card {
  text-align: center; padding: 40px 20px;
  background: var(--bg-card); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg); transition: var(--transition);
}
.stat-card:hover { border-color: var(--card-color, var(--neon-cyan)); transform: translateY(-4px); }
.stat-icon {
  width: 48px; height: 48px; border-radius: 50%; margin: 0 auto 16px;
  display: flex; align-items: center; justify-content: center; font-size: 20px;
  background: var(--card-color-bg, rgba(0, 255, 224, 0.1));
  color: var(--card-color, var(--neon-cyan));
}
.stat-value {
  font-size: 48px; font-weight: 900; line-height: 1; margin-bottom: 8px;
  color: #fff; font-variant-numeric: tabular-nums;
}
.stat-value .suffix { font-size: 32px; font-weight: 700; }
.stat-label { font-size: 14px; color: var(--text-secondary); }

/* ============================================================
   6. BBS 社区
   ============================================================ */
.bbs-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
.bbs-card {
  background: var(--bg-card); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg); padding: 28px; transition: var(--transition);
  border-top: 3px solid var(--card-color, var(--neon-cyan));
}
.bbs-card:hover { transform: translateY(-4px); border-color: var(--card-color, var(--neon-cyan)); }
.bbs-card-category {
  display: inline-block; padding: 4px 12px; border-radius: var(--radius-pill);
  font-size: 12px; font-weight: 600; margin-bottom: 16px;
  background: var(--card-color-bg, rgba(0, 255, 224, 0.1));
  color: var(--card-color, var(--neon-cyan));
}
.bbs-card h3 { font-size: 17px; font-weight: 700; margin-bottom: 12px; line-height: 1.5; }
.bbs-card h3 a:hover { color: var(--card-color, var(--neon-cyan)); }
.bbs-card-preview { font-size: 14px; color: var(--text-secondary); margin-bottom: 20px; line-height: 1.6; }
.bbs-card-meta {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 13px; color: var(--text-muted);
}
.bbs-card-author { display: flex; align-items: center; gap: 8px; }
.bbs-card-avatar {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--card-color, var(--neon-cyan)); color: #0A0F12;
  display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700;
}
.bbs-card-stats { display: flex; gap: 16px; }

/* ============================================================
   6.B BBS 数据看板 + 各分类列表 + 活跃会员（bbs.php 专用）
   ============================================================ */
.bbs-dashboard-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 20px; margin-top: 12px;
}
.bbs-stat-card {
  position: relative; padding: 28px 24px 24px;
  background: linear-gradient(180deg, var(--bg-card, #14181F) 0%, var(--bg-secondary, #0F1218) 100%);
  border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
  border-radius: var(--radius-lg, 16px);
  overflow: hidden; transition: var(--transition, all .3s ease);
}
.bbs-stat-card::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--card-color, #FFB060), transparent);
  opacity: .55;
}
.bbs-stat-card:hover { transform: translateY(-4px); border-color: var(--card-color, #FFB060); }
.bbs-stat-icon {
  width: 44px; height: 44px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; margin-bottom: 14px;
  background: var(--card-color-bg, rgba(255,176,96,0.1));
  color: var(--card-color, #FFB060);
}
.bbs-stat-value { display: flex; align-items: baseline; gap: 4px; margin-bottom: 6px; line-height: 1; }
.bbs-stat-num {
  font-size: 36px; font-weight: 900; color: #fff;
  font-variant-numeric: tabular-nums; letter-spacing: -0.02em;
}
.bbs-stat-suffix { font-size: 20px; font-weight: 700; color: var(--card-color, #FFB060); }
.bbs-stat-label { font-size: 13px; color: var(--text-secondary, #999); letter-spacing: 0.04em; }

.bbs-main { padding-top: 16px; padding-bottom: 64px; }
.bbs-main-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 320px;
  gap: 32px; align-items: start;
}
.bbs-boards-col { min-width: 0; }
.bbs-members-col { position: sticky; top: 24px; }

.bbs-section-head { margin-bottom: 24px; }
.bbs-section-head h2 {
  font-size: 24px; font-weight: 800; margin-top: 14px;
  background: linear-gradient(135deg, #fff 0%, var(--text-secondary, #aaa) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.bbs-section-head .hero-badge { background: rgba(255,176,96,0.1); color: var(--neon-orange, #FFB060); border-color: rgba(255,176,96,0.3); }

/* 各分类面板 */
.bbs-board {
  background: var(--bg-card, #14181F); border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
  border-radius: var(--radius-lg, 16px); padding: 22px 22px 12px; margin-bottom: 20px;
  border-left: 3px solid var(--card-color, #00FFE0);
  transition: border-color .3s ease;
}
.bbs-board:hover { border-left-color: var(--card-color, #00FFE0); }
.bbs-board-head {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 14px; margin-bottom: 8px;
  border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
}
.bbs-board-title { display: flex; align-items: center; gap: 10px; }
.bbs-board-title i { color: var(--card-color, #00FFE0); font-size: 18px; }
.bbs-board-title h3 { font-size: 17px; font-weight: 700; color: #fff; }
.bbs-board-count {
  display: inline-block; padding: 2px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 700;
  background: var(--card-color-bg, rgba(0,255,224,0.08)); color: var(--card-color, #00FFE0);
}
.bbs-board-more {
  font-size: 13px; color: var(--text-secondary, #aaa); text-decoration: none;
  display: flex; align-items: center; gap: 6px; transition: color .2s ease;
}
.bbs-board-more:hover { color: var(--card-color, #00FFE0); }
.bbs-board-list { list-style: none; padding: 0; margin: 0; }
.bbs-board-empty {
  padding: 28px 0; text-align: center; color: var(--text-muted, #777); font-size: 13px;
}
.bbs-board-item {
  display: flex; align-items: center; gap: 14px; padding: 12px 0;
  border-bottom: 1px dashed var(--border-subtle, rgba(255,255,255,0.05));
}
.bbs-board-item:last-child { border-bottom: none; }
.bbs-board-item.is-pinned .bbs-board-rank { color: var(--neon-orange, #FFB060); }
.bbs-board-rank {
  flex: 0 0 24px; height: 24px; display: flex; align-items: center; justify-content: center;
  border-radius: 6px; font-size: 13px; font-weight: 700; color: var(--text-muted, #888);
  background: var(--card-color-bg, rgba(255,255,255,0.04)); font-variant-numeric: tabular-nums;
}
.bbs-board-link {
  flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; color: inherit; text-decoration: none;
}
.bbs-board-name {
  flex: 1; min-width: 0; font-size: 14px; font-weight: 600; color: #e5e7eb;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  transition: color .2s ease;
}
.bbs-board-link:hover .bbs-board-name { color: var(--card-color, #00FFE0); }
.bbs-board-meta {
  flex: 0 0 auto; display: flex; align-items: center; gap: 16px;
  font-size: 12px; color: var(--text-muted, #888);
}
.bbs-board-author { display: flex; align-items: center; gap: 6px; }
.bbs-board-stats { display: flex; gap: 10px; }
.bbs-board-stats i { margin-right: 3px; }
.bbs-mini-avatar {
  width: 20px; height: 20px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; color: #0A0F12;
  background: var(--card-color, #00FFE0);
}

/* 活跃会员侧栏 */
.bbs-members-card {
  background: var(--bg-card, #14181F); border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
  border-radius: var(--radius-lg, 16px); padding: 20px;
}
.bbs-members-list { list-style: none; padding: 0; margin: 0; counter-reset: bbs-m; }
.bbs-member-item {
  display: flex; align-items: center; gap: 12px; padding: 10px 0;
  border-bottom: 1px dashed var(--border-subtle, rgba(255,255,255,0.05));
}
.bbs-member-item:last-child { border-bottom: none; }
.bbs-member-rank {
  flex: 0 0 24px; height: 24px; display: flex; align-items: center; justify-content: center;
  border-radius: 6px; font-size: 12px; font-weight: 700;
  background: var(--card-color-bg, rgba(255,255,255,0.05));
  color: var(--text-muted, #888); font-variant-numeric: tabular-nums;
}
.bbs-member-item:nth-child(1) .bbs-member-rank { background: rgba(255,176,96,0.15); color: #FFB060; }
.bbs-member-item:nth-child(2) .bbs-member-rank { background: rgba(91,155,255,0.15); color: #5B9BFF; }
.bbs-member-item:nth-child(3) .bbs-member-rank { background: rgba(91,229,160,0.15); color: #5BE5A0; }
.bbs-member-avatar {
  flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 800; color: #0A0F12;
}
.bbs-member-name { flex: 1; min-width: 0; font-size: 14px; font-weight: 600; color: #e5e7eb; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bbs-member-posts { font-size: 12px; color: var(--text-muted, #888); }

.bbs-join-card {
  margin-top: 20px; text-align: center; padding: 32px 24px;
  background: linear-gradient(135deg, rgba(255,176,96,0.08) 0%, rgba(91,155,255,0.05) 100%);
  border: 1px solid rgba(255,176,96,0.25); border-radius: var(--radius-lg, 16px);
}
.bbs-join-icon {
  width: 56px; height: 56px; margin: 0 auto 16px;
  display: flex; align-items: center; justify-content: center; font-size: 24px;
  border-radius: 50%; background: rgba(255,176,96,0.15); color: #FFB060;
  box-shadow: 0 0 24px rgba(255,176,96,0.3);
}
.bbs-join-card h3 { font-size: 17px; font-weight: 700; margin-bottom: 6px; color: #fff; }
.bbs-join-card p { font-size: 13px; color: var(--text-secondary, #aaa); margin-bottom: 18px; }
.bbs-join-btn {
  display: inline-block; padding: 9px 22px; border-radius: 999px;
  font-size: 14px; font-weight: 700; color: #0A0F12;
  background: linear-gradient(135deg, #FFB060, #FF8A30);
  text-decoration: none; transition: transform .2s ease, box-shadow .2s ease;
}
.bbs-join-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(255,176,96,0.4); }

/* 分类筛选条与全部话题列表 */
.bbs-cats-bar { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 24px; }
.bbs-cats-bar .page-btn { display: inline-flex; align-items: center; gap: 6px; }
.bbs-cats-bar .page-btn.active {
  border-color: var(--btn-color, var(--neon-orange, #FFB060));
  color: var(--btn-color, var(--neon-orange, #FFB060));
  background: color-mix(in srgb, var(--btn-color, #FFB060) 10%, transparent);
}
.bbs-list { display: flex; flex-direction: column; gap: 16px; }
.bbs-list .bbs-card {
  display: block; text-decoration: none; color: inherit;
  border-top: 3px solid var(--card-color, var(--neon-orange, #FFB060));
}
.bbs-empty {
  text-align: center; padding: 80px 0;
  color: var(--text-muted, #888);
}
.bbs-empty i { font-size: 56px; opacity: 0.3; margin-bottom: 18px; display: block; }
.bbs-empty p { font-size: 16px; }

/* 响应式 */
@media (max-width: 1100px) {
  .bbs-main-grid { grid-template-columns: minmax(0, 1fr); }
  .bbs-members-col { position: static; }
}
@media (max-width: 880px) {
  .bbs-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bbs-stat-num { font-size: 28px; }
}
@media (max-width: 560px) {
  .bbs-dashboard-grid { grid-template-columns: minmax(0, 1fr); }
  .bbs-board-meta { display: none; }
  .bbs-board-meta .bbs-board-stats { display: flex; }
  .bbs-mini-avatar { width: 22px; height: 22px; }
  .bbs-board-link { gap: 8px; }
}

/* ============================================================
   7. CTA 行动号召
   ============================================================ */
.cta-section {
  position: relative; text-align: center; padding: 80px 64px; overflow: hidden;
  background: linear-gradient(135deg, rgba(2, 4, 10, 1) 0%, rgba(4, 8, 20, 1) 50%, rgba(2, 4, 10, 1) 100%);
}
.cta-glow {
  position: absolute; width: 800px; height: 500px; top: -150px; left: 50%;
  transform: translateX(-50%); border-radius: 50%; filter: blur(100px);
  background: radial-gradient(circle, rgba(0, 255, 224, 0.15) 0%, transparent 100%);
  pointer-events: none;
}
.cta-badge {
  display: inline-flex; padding: 6px 16px; border-radius: var(--radius-pill);
  font-size: 13px; font-weight: 600; margin-bottom: 20px;
  background: rgba(0, 255, 224, 0.12); color: var(--neon-cyan);
  border: 1px solid rgba(0, 255, 224, 0.4);
}
.cta-title { font-size: 42px; font-weight: 800; margin-bottom: 16px; position: relative; z-index: 1; }
.cta-subtitle { font-size: 17px; color: var(--text-secondary); margin-bottom: 36px; position: relative; z-index: 1; }
.cta-buttons { display: flex; gap: 20px; justify-content: center; position: relative; z-index: 1; }

/* ============================================================
   8. Footer
   ============================================================ */
.footer {
  background: #F5F7FA; color: #1A1F2E; padding: 0;
}
.footer-top {
  display: flex; justify-content: space-between; gap: 64px;
  padding: 56px 64px 40px;
}
.footer-left { max-width: 340px; }
.footer-logo { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.footer-logo img { height: 48px; width: auto; }
.footer-tagline { font-size: 13px; color: #6B7280; margin-bottom: 8px; }
.footer-contact { font-size: 13px; color: #9CA3AF; }
.footer-cols { display: flex; gap: 64px; }
.footer-col h4 { font-size: 14px; font-weight: 700; margin-bottom: 12px; color: #1A1F2E; }
.footer-col a { display: block; font-size: 13px; color: #6B7280; padding: 4px 0; transition: var(--transition); }
.footer-col a:hover { color: var(--neon-cyan); }
.footer-bottom {
  height: 56px; display: flex; align-items: center; justify-content: center;
  background: #E8EAEE; font-size: 12px; color: #9CA3AF;
}

/* ============================================================
   文章列表页  (标题区已迁移为 .page-hero，参见上方 .page-hero / .page-hero.theme-xxx)
   ============================================================ */

.article-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
/* 最新动态板块：桌面 4 列 / 平板 2 列 / 手机 1 列 */
.latest-news-grid, #latest-news-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px;
}
.article-card {
  background: var(--bg-card); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg); overflow: hidden; transition: var(--transition);
}
.article-card:hover { transform: translateY(-4px); border-color: var(--neon-cyan); }
.article-card-cover { width: 100%; height: 200px; object-fit: cover; }
.article-card-body { padding: 24px; }
.article-card-category {
  display: inline-block; padding: 4px 12px; border-radius: var(--radius-pill);
  font-size: 12px; font-weight: 600; margin-bottom: 12px;
  background: rgba(0, 255, 224, 0.1); color: var(--neon-cyan);
}
.article-card h3 { font-size: 18px; font-weight: 700; margin-bottom: 8px; line-height: 1.4; }
.article-card h3 a:hover { color: var(--neon-cyan); }
.article-card-summary { font-size: 14px; color: var(--text-secondary); margin-bottom: 16px; line-height: 1.6; }
.article-card-meta { display: flex; justify-content: space-between; font-size: 13px; color: var(--text-muted); }

/* 文章详情页底部「相关文章」专用修饰类
   关键修复：align-items:start 避免 grid 默认 stretch 把卡片统一拉到最高那张
   响应式：电脑/平板 3 列水平排列，手机 1 列竖向排列 */
.article-related {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  align-items: start;          /* 修复拉伸：每张卡片只到自己内容高度 */
}
.article-related .article-card {
  display: block;               /* 覆盖原 article-card 隐式行内行为 */
  height: auto;
  min-height: 0;
}
.article-related .article-card-cover {
  height: 130px;                /* 比默认 200px 紧凑，让卡片高度合理 */
  display: block;
}
.article-related .article-card-body {
  padding: 14px 16px 16px;
}
.article-related .article-card-body h3 {
  font-size: 14px;
  line-height: 1.45;
  margin-bottom: 10px;
  /* 限制为 3 行省略，避免长标题把卡片撑高失衡 */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.article-related .article-card-meta {
  font-size: 12px;
  padding-top: 8px;
  border-top: 1px solid var(--border-subtle);
}

/* 文章详情：宽度与全站 .container（1440）一致，左右 padding 同步容器断点 */
.article-detail {
  /* 通栏横幅负 margin 的唯一来源：改这里，横幅自动同步（--ad-pad-x 与 padding 同值）
     档位由下方两条 max-width 断点切换，值与padding 物理同源，不会失配 */
  --ad-pad-x: 64px;
  max-width: 1440px; margin: 0 auto; padding: 60px var(--ad-pad-x) 80px;
}
.article-detail-header {
  /* 通栏横幅。原来的 width:100vw + margin-left:calc(50% - 50vw) 是经典「打破容器」写法，
     但 100vw 含纵向滚动条宽度（Chrome 约 15px），而 50% 取自含 padding 的容器，
     两者基准不一致 → 元素左右各多出几px，整页被撑出横向滚动。
     现改为按容器自身 padding 反向外扩：不依赖 vw，彻底消除溢出。
     ⚠️ 负 margin 已由 calc(-1 * var(--ad-pad-x)) 自动派生，
        无需（也不应）再在各断点手工重复 margin 值。*/
  width: auto;
  margin-left: calc(-1 * var(--ad-pad-x));
  margin-right: calc(-1 * var(--ad-pad-x));
  margin-bottom: 48px;
  height: 240px;
  padding: 90px 5vw 30px;
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
  position: relative;
  background: linear-gradient(135deg, rgba(10,15,18,0.92) 0%, rgba(0,255,224,0.18) 100%);
  border-bottom: 1px solid rgba(0,255,224,0.2);
  box-shadow: 0 8px 32px rgba(0,0,0,0.35);
}
.article-detail h1 {
  font-size: 36px;
  font-weight: 800;
  margin: 0 0 16px;
  line-height: 1.3;
  color: #fff;
}
.article-detail-meta {
  display: flex; justify-content: center; flex-wrap: wrap;
  margin-top: auto;
  margin-bottom: 0;
  gap: 24px;
  font-size: 14px;
  color: var(--text-muted);
}

/* 面包屑：移到 hero 外，正文板块上方、与正文左对齐；三级：首页 / 一级栏目 / 二级栏目 */
.article-breadcrumb {
  /* 不再需要 z-index:2（已脱离 hero 层叠上下文），保留 relative 防意外 */
  position: relative;
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 28px;     /* 顶部贴 hero 底缘（hero margin-bottom:48）；底部距封面/摘要 28 */
  font-size: 13px;
  line-height: 1.4;
  color: var(--text-muted, rgba(255,255,255,.65));
}
.article-breadcrumb a {
  color: inherit;
  text-decoration: none;
  opacity: .8;
  transition: opacity .2s, color .2s;
}
.article-breadcrumb a:hover { opacity: 1; color: var(--neon-cyan, #00FFE0); }
.article-breadcrumb .bc-sep {
  opacity: .35; font-weight: 300;
  user-select: none;
}
.article-breadcrumb .bc-current {
  color: var(--text-primary, #fff);
  opacity: .9;
  font-weight: 500;
  max-width: 360px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.article-detail-cover { width: 100%; height: 400px; object-fit: cover; border-radius: var(--radius-lg); margin-bottom: 40px; }
.article-detail-content { font-size: 16px; line-height: 1.8; color: var(--text-secondary); }
.article-detail-content p { margin-bottom: 20px; }
.article-detail-content h2, .article-detail-content h3 { color: var(--text-primary); margin: 32px 0 16px; }
.article-detail-content img { border-radius: var(--radius-md); margin: 24px 0; }
.article-detail-content ul, .article-detail-content ol { margin: 16px 0 16px 24px; }
.article-detail-content li { margin-bottom: 8px; }

/* 分页 */
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.page-btn {
  padding: 8px 16px; font-size: 14px; color: var(--text-secondary);
  border: 1px solid var(--border-subtle); border-radius: var(--radius-sm);
  transition: var(--transition);
}
.page-btn:hover, .page-btn.active { background: var(--neon-cyan); color: #0A0F12; border-color: var(--neon-cyan); }

/* ============================================================
   响应式
   ============================================================ */
@media (max-width: 1200px) {
  .container { padding: 0 32px; }
  .article-detail { --ad-pad-x: 32px; }
  .hero-title { font-size: 56px; }
  .hero-subtitle { font-size: 36px; }
  .incubation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .latest-news-grid, #latest-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 768px) {
  .container { padding: 0 20px; }
  .article-detail { --ad-pad-x: 20px; }
  /* 移动端断行长串兜底：URL / 无空格英文 / 连续编号等min-content 大的文本，
     若祖先未逐个处理，会把 flex/grid 轨道撑破导致整页横向滚动。
     anywhere 比 break-word 更激进，能在任意字符间断行（含中文长串与长串数字）。
     桌面端不加，避免影响正常排版与断词位置。*/
  .page-hero-inner, .page-hero-inner h1, .page-hero-inner p,
  .section-header, .section-title, .section-subtitle {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .navbar { padding: 0 16px; height: 64px; gap: 8px; }
  .nav-logo img { height: 36px; }
  .nav-links { display: none; }
  .mobile-toggle { display: block; }
  /* 顶栏右侧：gap 收到 6px，四个元素（放大镜 / 会员名 / 加入我们 / 汉堡）总宽收进 320px */
  .nav-right { gap: 6px; flex-shrink: 0; }
  /* 触摸目标放大到 42px（原 40px 偏小），去掉 padding 覆盖以免挤掉图标 */
  .nav-search { width: 42px; height: 42px; }
  .nav-login { display: none; }
  .nav-cta { padding: 7px 13px; font-size: 13px; }
  .mobile-toggle {
    width: 42px; height: 42px; border-radius: 50%; flex: none;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; background: rgba(0, 255, 224, 0.08);
    border: 1px solid rgba(0, 255, 224, 0.2);
    -webkit-tap-highlight-color: transparent;
  }
  /* 会员名在移动端进一步收紧，配合 ellipsis 保证不换行、不撑破 */
  .nav-member-name { max-width: 78px; }
  .nav-member-caret { padding: 6px 4px; font-size: 11px; }
  /* 超窄屏（iPhone SE / 小安卓）：顶栏最后收口，保证 4 元素不溢出。
     写在 768px 块之后 → 同特异度下窄屏值胜出，无需 !important。*/
  @media (max-width: 400px) {
    .navbar { padding: 0 12px; gap: 6px; }
    .nav-logo img { height: 32px; }
    .nav-right { gap: 4px; }
    .nav-search { width: 38px; height: 38px; font-size: 14px; }
    .mobile-toggle { width: 38px; height: 38px; font-size: 18px; }
    .nav-cta { padding: 6px 10px; font-size: 12px; }
    .nav-member-main { padding: 4px 5px; }
    .nav-member-name { max-width: 62px; }
    .nav-member-level { font-size: 9px; }
  }
  .hero-title { font-size: 32px; }
  .hero-subtitle { font-size: 22px; }
  .hero-description { font-size: 14px; }
  .hero-content { padding: 76px 24px 96px; }
  .hero-thumbnails { display: none; }
  .hero-arrow { width: 40px; height: 40px; }
  .hero-arrow.prev { left: 12px; }
  .hero-arrow.next { right: 12px; }
  /*移动端统一收口：单列一律用minmax(0,1fr) 而非 1fr。
    1fr 的最小尺寸默认是 auto（=子元素min-content 宽度），长英文/URL/宽表格/
    nowrap 标签等min-content 大的子元素会把这一轨撑到超过视口 → 整页横向溢出。
    minmax(0,1fr) 允许轨道收缩到 0，溢出由内容自身断行/滚动吸收。*/
  .core-grid, .bbs-grid, .article-list { grid-template-columns: minmax(0, 1fr); }
  /* ▼▼▼ 移动端菜单（JS 动态注入 body：半透明遮罩 + 毛玻璃悬浮面板，高度由树形内容完全撑开，无内部滚动条）▼▼▼ */
  .mobile-menu-overlay {
    position: fixed; inset: 0;
    z-index: 99999;                  /* 高于 .navbar 的 1000 与页面所有层 */
    display: flex; align-items: flex-start; justify-content: center;
    padding: 11vh 16px 24px;          /* 顶部留呼吸空间，让面板悬浮在屏幕中上方 */
    background: rgba(2, 6, 12, 0.55);  /* 半透明遮罩，点空白处可关闭 */
    backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
    opacity: 0; visibility: hidden;
    transition: opacity 0.26s ease, visibility 0s linear 0.26s;
    overscroll-behavior: contain;
    -webkit-tap-highlight-color: transparent;
    /* 极端情况菜单高于视口时允许滚动以触达全部内容，但隐藏滚动条（无任何可见滚动条） */
    overflow-y: auto;
    scrollbar-width: none;            /* Firefox */
    -ms-overflow-style: none;         /* 旧 Edge/IE */
  }
  .mobile-menu-overlay::-webkit-scrollbar { display: none; }  /* Chrome/Safari 隐藏滚动条 */
  .mobile-menu-overlay.show {
    opacity: 1; visibility: visible;
    transition: opacity 0.26s ease, visibility 0s linear 0s;
  }
  /* 面板：毛玻璃半透明卡片，宽度自适应内容（受 max-width 约束），高度完全由菜单内容撑开（无 max-height 限制、无内部滚动条） */
  .mmo-panel {
    width: min(340px, 92vw);
    display: flex; flex-direction: column;
    background: rgba(13, 22, 36, 0.82);
    backdrop-filter: blur(22px) saturate(140%); -webkit-backdrop-filter: blur(22px) saturate(140%);
    border: 1px solid rgba(0, 255, 224, 0.18);
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.04);
    overflow: visible;                /* 高度由内容撑开，不做内部滚动裁切 */
    transform: translateY(-18px) scale(0.97);
    opacity: 0;
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.26s ease;
  }
  .mobile-menu-overlay.show .mmo-panel {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
  /* 头部条：站点名 + 关闭按钮 */
  .mmo-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 16px 14px;
    border-bottom: 1px solid rgba(0, 255, 224, 0.12);
    flex-shrink: 0;
  }
  .mmo-title {
    font-size: 16px; font-weight: 600;
    color: var(--neon-cyan);
    letter-spacing: 0.5px;
    display: flex; align-items: center; gap: 10px;
  }
  .mmo-title::before {
    content: "";
    display: inline-block; width: 4px; height: 18px;
    background: linear-gradient(180deg, var(--neon-cyan), rgba(0, 255, 224, 0.4));
    border-radius: 2px;
  }
  .mmo-close {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: rgba(0, 255, 224, 0.08);
    border: 1px solid rgba(0, 255, 224, 0.2);
    color: var(--neon-cyan);
    font-size: 17px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: all 0.22s ease;
    -webkit-tap-highlight-color: transparent;
    padding: 0;
  }
  .mmo-close:hover, .mmo-close:active {
    background: rgba(0, 255, 224, 0.18);
    border-color: var(--neon-cyan);
    transform: rotate(90deg);
  }
  /* 列表区：高度由内容（树形展开/收缩）完全撑开，不出现内部滚动条 */
  .mmo-list {
    list-style: none; margin: 0;
    padding: 6px 0 10px;
    display: flex; flex-direction: column;
    overflow: visible;
  }
  .mmo-list .nav-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    position: relative;
  }
  .mmo-list .nav-item:last-child { border-bottom: none; }
  .mmo-list > .nav-item > .nav-link {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%;
    padding: 16px 18px;
    font-size: 16px; font-weight: 500;
    color: rgba(255, 255, 255, 0.92);
    text-decoration: none;
    background: transparent !important;
  }
  .mmo-list > .nav-item > .nav-link::after { display: none; }
  .mmo-list > .nav-item > .nav-link.active { color: var(--neon-cyan); }
  .mmo-list > .nav-item > .nav-link:hover { background: rgba(0, 255, 224, 0.06) !important; color: var(--neon-cyan); }
  .mmo-list > .nav-item > .nav-link .arrow { display: none; }
  /* 树形折叠按钮 */
  .mmo-list .nav-tree-toggle {
    position: absolute; top: 0; right: 0;
    width: 52px; height: 100%;
    padding: 0;
    background: transparent; border: 0;
    color: rgba(255, 255, 224, 0.55);
    font-size: 14px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.2s ease;
  }
  .mmo-list .nav-tree-toggle:active { color: var(--neon-cyan); }
  .mmo-list .nav-tree-toggle > i { transition: transform 0.22s ease; }
  .mmo-list .nav-item.expanded > .nav-tree-toggle { color: var(--neon-cyan); }
  .mmo-list .nav-item.expanded > .nav-tree-toggle > i { transform: rotate(180deg); }
  /* dropdown 默认折叠 */
  .mmo-list .nav-dropdown {
    display: none;
    background: rgba(0, 0, 0, 0.30);
    border-left: 2px solid var(--neon-cyan);
    border-radius: 0;
    padding: 4px 0 10px;
    margin: 0;
    min-width: 0;
    box-shadow: none;
    position: static; opacity: 1; visibility: visible; transform: none;
    pointer-events: auto;
  }
  .mmo-list .nav-item.expanded > .nav-dropdown {
    display: block;
    animation: treeExpand 0.2s ease-out;
  }
  @keyframes treeExpand {
    from { opacity: 0; max-height: 0; }
    to   { opacity: 1; max-height: 600px; }
  }
  .mmo-list .nav-dropdown-home, .mmo-list .nav-dropdown-item {
    display: flex; align-items: center;
    padding: 11px 18px 11px 34px;
    font-size: 14px; color: rgba(255, 255, 255, 0.72);
    border-radius: 0;
    text-decoration: none;
    line-height: 1.45;
  }
  .mmo-list .nav-dropdown-home {
    color: var(--neon-cyan);
    font-weight: 500;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
    padding: 12px 18px 12px 34px;
  }
  .mmo-list .nav-dropdown-item:hover, .mmo-list .nav-dropdown-home:hover {
    background: rgba(0, 255, 224, 0.08); color: var(--neon-cyan);
  }
  .mmo-list .nav-dropdown-dot { margin-right: 8px; flex-shrink: 0; }
  /* 打开菜单时锁定背景滚动 */
  body.menu-locked { overflow: hidden; }
  .stats-grid, .incubation-grid { grid-template-columns: minmax(0, 1fr); }
  .latest-news-grid, #latest-news-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .article-card-cover { height: 160px; }
  .article-card-body { padding: 18px; }
  .article-card h3 { font-size: 16px; }
  .article-card-summary { font-size: 13px; }
  /* 手机下：相关文章改为 1 列竖向排列（图放大、标题 3 行省略放宽至 4 行） */
  .article-related { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .article-related .article-card-cover { height: 180px; }
  .article-related .article-card-body { padding: 16px 18px 18px; }
  .article-related .article-card-body h3 { font-size: 15px; -webkit-line-clamp: 4; }
  /* flex/grid 子项默认 min-width:auto（=min-content），长标题/长URL 会把整行撑破视口。
     统一允许收缩并断行：min-width:0 让轨道/行可压缩，overflow-wrap:anywhere 让
     无空格长串在任意字符处换行。仅移动端生效，桌面端排版不受影响。*/
  .cc-feature-title, .bbs-board-title h3, .subcat-detail-count,
  .bbs-board-count, .bbs-board-more, .article-related h3,
  .subcat-detail-section h3, .subcat-text-item h3, .article-card-body h3,
  .bbs-board-title, .info-channel-name {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .cc-feature-title, .bbs-board-title h3, .subcat-detail-section h3 { flex: 1 1 auto; }
  .footer-top { flex-direction: column; padding: 40px 20px; }
  .footer-cols { flex-wrap: wrap; gap: 32px; }
  .section { padding: 48px 0; }
  .section-title { font-size: 28px; }
  .cta-title { font-size: 28px; }
  .cta-buttons { flex-direction: column; }
}

/* ====== 动画 ====== */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
.fade-in-up { animation: fadeInUp 0.8s ease-out forwards; }
.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }
.delay-4 { animation-delay: 0.4s; }

/* ============================================================
   8. 关于我们 (about.php) - 统一子模块范式
   沿用 .section.theme-xxx / .section-header / .container，
   每个 section 都用首页对应色系，与其他子模块（list/bbs/article）保持一致
   ============================================================ */

/* === 8.1 关于我们 - 介绍 + 4 个特征卡 === */
.about-prose {
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: 40px;
  position: relative; overflow: hidden;
  transition: var(--transition);
}
.about-prose::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 4px; background: var(--module-accent, #00FFE0);
  opacity: 0.85;
}
.about-prose h2 {
  font-size: 28px; font-weight: 800; margin-bottom: 16px;
  letter-spacing: -0.5px; color: var(--text-primary);
}
.about-prose p {
  font-size: 15px; color: var(--text-secondary); line-height: 1.85;
  margin-bottom: 14px;
}
.about-prose p:last-child { margin-bottom: 0; }

.about-features-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
  margin-top: 32px;
}
.about-feature-card {
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: 28px 24px;
  transition: var(--transition);
  position: relative; overflow: hidden;
}
.about-feature-card::after {
  content: ''; position: absolute; bottom: -40px; right: -40px;
  width: 120px; height: 120px; border-radius: 50%;
  background: var(--card-color, var(--module-accent, #00FFE0));
  filter: blur(50px); opacity: 0.10; transition: var(--transition);
}
.about-feature-card:hover {
  border-color: var(--card-color, var(--module-accent, #00FFE0));
  transform: translateY(-4px);
}
.about-feature-card:hover::after { opacity: 0.22; }
.about-feature-icon {
  width: 48px; height: 48px; border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; margin-bottom: 16px;
  background: var(--card-color-bg, rgba(0,255,224,0.10));
  color: var(--card-color, var(--module-accent, #00FFE0));
}
.about-feature-card h3 {
  font-size: 17px; font-weight: 700; margin-bottom: 8px; color: var(--text-primary);
}
.about-feature-card p {
  font-size: 13px; color: var(--text-secondary); line-height: 1.65; margin: 0;
}

/* === 8.2 关于我们 - 水平时间线（发展历程） === */
.about-timeline-horizontal {
  position: relative; padding: 24px 0 8px;
  margin-top: 8px;
}
.about-timeline-track {
  position: absolute; left: 5%; right: 5%; top: 56px;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--module-accent, #5B9BFF) 12%,
    var(--module-accent, #5B9BFF) 88%,
    transparent 100%);
  opacity: 0.5;
}
.about-timeline-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
  position: relative;
}
.about-timeline-item {
  text-align: center; position: relative;
}
.about-timeline-dot {
  width: 16px; height: 16px; border-radius: 50%;
  margin: 48px auto 24px;
  background: var(--module-accent, #5B9BFF);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--module-accent, #5B9BFF) 18%, transparent),
              0 0 24px color-mix(in srgb, var(--module-accent, #5B9BFF) 60%, transparent);
  position: relative;
}
.about-timeline-year {
  font-size: 36px; font-weight: 900; line-height: 1;
  margin-bottom: 12px;
  color: var(--module-accent, #5B9BFF);
  font-variant-numeric: tabular-nums;
  letter-spacing: -1px;
}
.about-timeline-item h3 {
  font-size: 19px; font-weight: 700; margin-bottom: 10px; color: var(--text-primary);
}
.about-timeline-item p {
  font-size: 13px; color: var(--text-secondary); line-height: 1.7;
  max-width: 320px; margin: 0 auto;
}

/* === 8.3 关于我们 - 使命愿景网格（3 卡） === */
.about-mission-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
.about-mission-card {
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: 40px 32px;
  transition: var(--transition);
  position: relative; overflow: hidden;
  text-align: left;
}
.about-mission-card::before {
  content: ''; position: absolute; top: -60px; right: -60px;
  width: 180px; height: 180px; border-radius: 50%;
  background: var(--card-color, var(--module-accent, #FFB060));
  filter: blur(70px); opacity: 0.10;
}
.about-mission-card:hover {
  transform: translateY(-4px);
  border-color: var(--card-color, var(--module-accent, #FFB060));
}
.about-mission-icon {
  width: 56px; height: 56px; border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; margin-bottom: 20px;
  background: var(--card-color-bg, rgba(255,176,96,0.10));
  color: var(--card-color, var(--module-accent, #FFB060));
  position: relative; z-index: 1;
}
.about-mission-card h3 {
  font-size: 21px; font-weight: 700; margin-bottom: 12px;
  color: var(--text-primary); position: relative; z-index: 1;
}
.about-mission-card p {
  font-size: 14px; color: var(--text-secondary); line-height: 1.75;
  margin: 0; position: relative; z-index: 1;
}

/* === 8.4 关于我们 - 联系方式 4 卡 === */
.about-contact-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
.about-contact-card {
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: 28px 24px;
  display: flex; align-items: center; gap: 16px;
  transition: var(--transition);
}
.about-contact-card:hover {
  border-color: var(--card-color, var(--module-accent, #5BE5A0));
  transform: translateY(-3px);
}
.about-contact-icon {
  width: 48px; height: 48px; border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; flex-shrink: 0;
  background: var(--card-color-bg, rgba(91,229,160,0.10));
  color: var(--card-color, var(--module-accent, #5BE5A0));
}
.about-contact-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.about-contact-meta .label {
  font-size: 11px; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: 0.6px;
}
.about-contact-meta .value {
  font-size: 14px; font-weight: 600; color: var(--text-primary);
  word-break: break-all;
}

/* === 8.5 关于我们 - CTA 行动号招 === */
.about-cta {
  position: relative;
  background:
    radial-gradient(120% 130% at 82% 8%,
      color-mix(in srgb, var(--module-accent, #C41E3A) 30%, transparent),
      transparent 60%),
    linear-gradient(135deg,
      color-mix(in srgb, var(--module-accent-deep, #9E0B22) 35%, #0A0F12),
      #0A0F12 70%);
  border: 1px solid color-mix(in srgb, var(--module-accent, #C41E3A) 32%, transparent);
  border-radius: var(--radius-lg);
  padding: 56px 56px;
  text-align: center;
  overflow: hidden;
}
.about-cta::before {
  content: ''; position: absolute; inset: 0; opacity: .28;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(circle at 50% 0%, #000, transparent 70%);
  -webkit-mask-image: radial-gradient(circle at 50% 0%, #000, transparent 70%);
  pointer-events: none;
}
.about-cta h2 {
  font-size: 36px; font-weight: 900; letter-spacing: -1px;
  margin-bottom: 14px; color: #fff; position: relative;
}
.about-cta p {
  font-size: 16px; color: var(--text-secondary); margin-bottom: 32px;
  max-width: 600px; margin-left: auto; margin-right: auto;
  position: relative;
}
.about-cta-buttons {
  display: flex; gap: 16px; justify-content: center; position: relative;
  flex-wrap: wrap;
}
.about-cta-btn {
  padding: 14px 36px; font-size: 15px; font-weight: 700;
  border-radius: var(--radius-md); transition: var(--transition);
  display: inline-flex; align-items: center; gap: 8px;
}
.about-cta-btn.primary {
  background: var(--module-accent, #C41E3A); color: #fff;
  box-shadow: 0 4px 16px color-mix(in srgb, var(--module-accent, #C41E3A) 35%, transparent);
}
.about-cta-btn.primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 32px color-mix(in srgb, var(--module-accent, #C41E3A) 55%, transparent);
}
.about-cta-btn.outline {
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.about-cta-btn.outline:hover {
  border-color: var(--module-accent, #C41E3A);
  background: color-mix(in srgb, var(--module-accent, #C41E3A) 10%, transparent);
}

/* === 8.6 about 响应式 === */
@media (max-width: 1100px) {
  .about-features-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-mission-grid { grid-template-columns: minmax(0, 1fr); }
  .about-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .about-prose { padding: 28px 24px; }
  .about-prose h2 { font-size: 22px; }
  .about-features-grid { grid-template-columns: minmax(0, 1fr); }
  .about-timeline-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .about-timeline-track { display: none; }
  .about-timeline-year { font-size: 30px; }
  .about-mission-card { padding: 28px 24px; }
  .about-contact-grid { grid-template-columns: minmax(0, 1fr); }
  .about-cta { padding: 40px 24px; }
  .about-cta h2 { font-size: 26px; }
  .about-cta-buttons { flex-direction: column; }
  .about-cta-btn { width: 100%; justify-content: center; }
}

@keyframes glow-pulse {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.5; }
}

/* ============================================================
   9. 列表页杂志风版式（左大图特色卡 + 右 6 条紧凑列表）
   ============================================================ */
.article-magazine {
  display: grid;
  grid-template-columns: 1.42fr 1fr;
  gap: 24px;
  align-items: stretch;
}

/* === 9.1 左侧特色大图卡 === */
.article-feature-card {
  position: relative;
  display: block;
  border-radius: 20px;
  overflow: hidden;
  min-height: 480px;
  background: #0A0F12;
  isolation: isolate;
  text-decoration: none;
  color: inherit;
  border: 1px solid color-mix(in srgb, var(--module-accent, #00FFE0) 18%, rgba(255,255,255,0.08));
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.article-feature-card:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--module-accent, #00FFE0) 55%, transparent);
  box-shadow: 0 18px 48px -16px color-mix(in srgb, var(--module-accent, #00FFE0) 45%, transparent);
}
.article-feature-cover {
  width: 100%; height: 100%; min-height: 480px;
  object-fit: cover; display: block;
  transition: transform 1.2s ease;
}
.article-feature-card:hover .article-feature-cover { transform: scale(1.04); }
.article-feature-cover--placeholder {
  background:
    radial-gradient(120% 80% at 30% 20%, color-mix(in srgb, var(--module-accent, #00FFE0) 22%, transparent), transparent 60%),
    linear-gradient(135deg, #141B28 0%, #0A0F12 100%);
}
.article-feature-mask {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(10,15,18,0) 35%, rgba(10,15,18,0.55) 65%, rgba(10,15,18,0.92) 100%),
    linear-gradient(90deg, rgba(10,15,18,0.35) 0%, transparent 35%);
}
.article-feature-body {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: 32px 36px 36px;
  color: #fff;
}
.article-feature-pills {
  display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap;
}
.article-feature-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px; border-radius: 999px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.5px;
  background: linear-gradient(135deg, #FFB060 0%, #FF9A45 100%);
  color: #2A1503;
  box-shadow: 0 4px 14px rgba(255,154,69,0.35);
}
.article-feature-pill--soft {
  background: rgba(255,255,255,0.14);
  color: rgba(255,255,255,0.92);
  box-shadow: none;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.article-feature-title {
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 800; line-height: 1.25;
  margin-bottom: 12px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.article-feature-summary {
  font-size: 14px; line-height: 1.65;
  color: rgba(255,255,255,0.82);
  margin-bottom: 18px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.article-feature-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  border-top: 1px solid rgba(255,255,255,0.12); padding-top: 16px;
}
.article-feature-date {
  font-size: 12px; color: rgba(255,255,255,0.55);
  display: inline-flex; align-items: center; gap: 6px;
  font-variant-numeric: tabular-nums;
}
.article-feature-cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 700;
  color: var(--module-accent, #00FFE0);
  transition: gap .25s ease, transform .25s ease;
}
.article-feature-card:hover .article-feature-cta { gap: 12px; }

/* === 9.2 右侧紧凑列表卡 === */
.article-news-card {
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  padding: 26px 28px;
  display: flex; flex-direction: column;
  position: relative;
  overflow: hidden;
}
.article-news-card::before {
  content: '';
  position: absolute; left: 0; top: 26px; bottom: 26px;
  width: 4px;
  background: linear-gradient(180deg, var(--module-accent, #00FFE0), color-mix(in srgb, var(--module-accent, #00FFE0) 35%, transparent));
  border-radius: 0 4px 4px 0;
  opacity: .85;
}
.article-news-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--border-subtle);
  margin-bottom: 8px;
}
.article-news-title-block {
  display: flex; align-items: center; gap: 12px;
}
.article-news-bar {
  display: none; /* 占位：左竖条由 .article-news-card::before 提供 */
}
.article-news-title-block h3 {
  font-size: 22px; font-weight: 800; letter-spacing: 1px;
  color: var(--text-primary);
}
.article-news-sub-en {
  font-size: 11px; font-weight: 700; letter-spacing: 1.5px;
  color: var(--module-accent, #00FFE0);
  text-transform: uppercase;
  font-family: 'Inter', sans-serif;
  padding: 4px 10px; border-radius: 999px;
  background: color-mix(in srgb, var(--module-accent, #00FFE0) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--module-accent, #00FFE0) 28%, transparent);
}
.article-news-list {
  list-style: none; padding: 0; margin: 0;
  flex: 1;
}
.article-news-item {
  border-bottom: 1px dashed color-mix(in srgb, var(--module-accent, #00FFE0) 18%, rgba(255,255,255,0.08));
  transition: background .25s ease;
}
.article-news-item:last-child { border-bottom: none; }
.article-news-item:hover {
  background: color-mix(in srgb, var(--module-accent, #00FFE0) 8%, transparent);
}
.article-news-link {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 4px;
  text-decoration: none; color: inherit;
}
.article-news-date {
  flex-shrink: 0;
  font-size: 13px; font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, var(--module-accent, #00FFE0) 70%, var(--text-secondary));
  padding: 3px 8px; border-radius: 6px;
  background: color-mix(in srgb, var(--module-accent, #00FFE0) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--module-accent, #00FFE0) 22%, transparent);
  min-width: 60px; text-align: center;
}
.article-news-title {
  flex: 1; min-width: 0; /* 关键：让 ellipsis 在 flex 容器里生效 */
  font-size: 15px; font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color .2s ease;
}
.article-news-link:hover .article-news-title {
  color: var(--module-accent, #00FFE0);
}
.article-news-empty {
  padding: 32px 0; text-align: center;
  color: var(--text-muted); font-size: 13px;
}
.article-news-more {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 16px;
  font-size: 13px; font-weight: 700;
  color: var(--module-accent, #00FFE0);
  text-decoration: none;
  align-self: flex-end;
  transition: gap .25s ease;
}
.article-news-more:hover { gap: 10px; }

/* === 9.3 列表页杂志风版式 — 响应式 === */
@media (max-width: 1100px) {
  .article-magazine { grid-template-columns: minmax(0, 1fr); }
  .article-feature-card { min-height: 380px; }
  .article-feature-cover { min-height: 380px; }
}
@media (max-width: 768px) {
  .article-feature-card, .article-feature-cover { min-height: 300px; }
  .article-feature-body { padding: 22px 22px 24px; }
  .article-feature-title { font-size: 22px; }
  .article-news-card { padding: 22px 18px; }
  .article-news-head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .article-news-title-block h3 { font-size: 20px; }
  .article-news-link { gap: 10px; }
  .article-news-date { min-width: 52px; font-size: 12px; padding: 2px 6px; }
  .article-news-title { font-size: 14px; }
}

.glow-pulse { animation: glow-pulse 3s ease-in-out infinite; }

/* ============================================================
 * 凤城论道 · BBS 登录/激活弹窗 + 登录栏
 * ============================================================ */
.fa-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(8, 12, 16, 0.72);
  display: none; align-items: center; justify-content: center;
  backdrop-filter: blur(4px);
}
.fa-overlay.show { display: flex; }
.fa-modal {
  position: relative; width: 380px; max-width: 92vw;
  background: var(--bg-card, #12181d); border: 1px solid var(--border-subtle, #2a323b);
  border-radius: 16px; padding: 28px 28px 24px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.5);
  animation: fa-pop .22s ease;
}
@keyframes fa-pop { from { transform: translateY(12px) scale(.97); opacity: 0; } to { transform: none; opacity: 1; } }
.fa-close {
  position: absolute; top: 12px; right: 14px; width: 30px; height: 30px;
  border: none; background: transparent; color: var(--text-muted, #8b97a3);
  font-size: 24px; line-height: 1; cursor: pointer; border-radius: 8px;
}
.fa-close:hover { background: rgba(255,255,255,.06); color: #fff; }
.fa-tabs { display: flex; gap: 6px; margin-bottom: 18px; }
.fa-tab {
  flex: 1; padding: 10px; border: none; cursor: pointer; border-radius: 10px;
  background: var(--bg-tertiary, #1a222a); color: var(--text-muted, #8b97a3);
  font-size: 14px; font-weight: 600; font-family: inherit; transition: .15s;
}
.fa-tab.active { background: var(--neon-cyan, #00ffe0); color: #0A0F12; }
.fa-form .fa-field { margin-bottom: 14px; }
.fa-form label { display: block; font-size: 12px; color: var(--text-secondary, #b6c0c9); margin-bottom: 6px; }
.fa-form input {
  width: 100%; padding: 11px 13px; box-sizing: border-box;
  background: var(--bg-tertiary, #1a222a); border: 1px solid var(--border-subtle, #2a323b);
  border-radius: 9px; color: #fff; font-size: 14px; font-family: inherit;
}
.fa-form input:focus { outline: none; border-color: var(--neon-cyan, #00ffe0); }
.fa-error { color: #ff6b88; font-size: 12.5px; min-height: 16px; margin-bottom: 8px; }
.fa-btn {
  width: 100%; padding: 12px; border: none; cursor: pointer; border-radius: 10px;
  background: linear-gradient(135deg, #00ffe0, #5b9bff); color: #06222b;
  font-size: 15px; font-weight: 700; font-family: inherit; letter-spacing: 2px;
}
.fa-btn:hover { filter: brightness(1.08); }
.fa-hint { font-size: 11.5px; color: var(--text-muted, #8b97a3); margin: 12px 0 0; line-height: 1.6; }

/* 登录栏 */
.forum-login-bar {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-bottom: 24px; padding: 12px 18px;
  background: var(--bg-card, #12181d); border: 1px solid var(--border-subtle, #2a323b);
  border-radius: 12px;
}
.flb-user { font-size: 14px; font-weight: 600; color: #fff; display: inline-flex; align-items: center; gap: 6px; }
.flb-user .flb-pts { font-style: normal; font-size: 12px; color: var(--neon-cyan, #00ffe0); margin-left: 4px; }
.flb-link { font-size: 13px; color: var(--neon-blue, #5b9bff); text-decoration: none; }
.flb-link:hover { text-decoration: underline; }
.flb-login, .flb-logout {
  padding: 8px 18px; border-radius: 8px; cursor: pointer; font-size: 13px; font-weight: 600;
  font-family: inherit; border: 1px solid var(--border-subtle, #2a323b); background: var(--bg-tertiary, #1a222a); color: #fff;
}
.flb-login { background: linear-gradient(135deg, #00ffe0, #5b9bff); color: #06222b; border: none; }
.flb-logout:hover { border-color: #ff6b88; color: #ff6b88; }

/* BBS 内容区操作按钮（本人可见） */
.bbs-own-actions { display: inline-flex; gap: 8px; margin-top: 10px; }
.bbs-own-btn {
  font-size: 12px; padding: 5px 12px; border-radius: 7px; cursor: pointer; border: 1px solid var(--border-subtle,#2a323b);
  background: var(--bg-tertiary,#1a222a); color: var(--text-secondary,#b6c0c9); font-family: inherit;
}
.bbs-own-btn:hover { border-color: var(--neon-cyan,#00ffe0); color: #fff; }
.bbs-own-btn.danger:hover { border-color: #ff6b88; color: #ff6b88; }

/* ============================================================
   list.php 全栏目总览（2026-08-25 重构）
   结构: 2 列 grid，每卡片 = 色系标题行 + 顶图特写 + 9 条紧凑列表 = 共 10 条
   主题色: 由 --ch-color 注入（来自 categories.theme_color）
   ============================================================ */
.info-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}
@media (max-width: 960px) {
  .info-overview-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}

.info-channel {
  background: var(--bg-card, #0F1620);
  border: 1px solid var(--border, rgba(255,255,255,0.06));
  border-radius: var(--r-card, 14px);
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.18);
  transition: border-color .2s, box-shadow .2s, transform .2s;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.info-channel:hover {
  border-color: color-mix(in srgb, var(--ch-color) 55%, transparent);
  box-shadow: 0 6px 24px color-mix(in srgb, var(--ch-color) 18%, transparent);
  transform: translateY(-2px);
}

/* ---- 标题行 ---- */
.info-channel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border, rgba(255,255,255,0.06));
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--ch-color) 8%, transparent) 0%, transparent 100%);
}
.info-channel-head-title {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.info-channel-bar {
  width: 6px;
  height: 22px;
  border-radius: 3px;
  background: var(--ch-color);
  box-shadow: 0 0 8px color-mix(in srgb, var(--ch-color) 60%, transparent);
  flex-shrink: 0;
}
.info-channel-name {
  font-size: 18px;
  font-weight: 700;
  color: var(--ch-color);
  letter-spacing: 0.5px;
  white-space: nowrap;
}
.info-channel-desc {
  font-size: 12px;
  color: var(--text-muted, #94a3b8);
  margin-left: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 240px;
}
@media (max-width: 640px) {
  .info-channel-desc { display: none; }
}
.info-channel-more {
  color: var(--ch-color);
  text-decoration: none;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  opacity: 0.85;
  transition: opacity .15s, transform .15s;
}
.info-channel-more:hover { opacity: 1; transform: translateX(2px); }

/* ---- 大图特写（图 + 标题摘要） ---- */
.info-channel-hero {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 14px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--border, rgba(255,255,255,0.05));
  text-decoration: none;
  color: inherit;
  min-width: 0;
  transition: background .15s;
}
.info-channel-hero:hover { background: color-mix(in srgb, var(--ch-color) 5%, transparent); }
.info-channel-hero-img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  border-radius: 8px;
  background: var(--bg-tertiary, #0a0f12);
  display: block;
}
.info-channel-hero-body { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.info-channel-hero-title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--text-primary, #f8fafc);
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.info-channel-hero:hover .info-channel-hero-title {
  color: var(--ch-color);
}
.info-channel-hero-summary {
  font-size: 13px;
  line-height: 1.7;
  color: var(--text-muted, #94a3b8);
  margin-bottom: 10px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.info-channel-hero-meta {
  font-size: 12px;
  color: var(--text-muted, #94a3b8);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.info-channel-hero-meta i { margin-right: 3px; }

@media (max-width: 720px) {
  .info-channel-hero { grid-template-columns: minmax(0, 1fr); }
}

/* ---- 9 条紧凑列表 ---- */
.info-channel-list {
  list-style: none;
  padding: 6px 18px 16px;
  margin: 0;
  flex: 1;
}
.info-channel-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px dashed color-mix(in srgb, var(--ch-color) 10%, transparent);
  font-size: 14px;
  min-width: 0;
}
.info-channel-list li:last-child { border-bottom: 0; }
.info-channel-list-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ch-color);
  flex-shrink: 0;
  opacity: 0.85;
}
.info-channel-list-title {
  flex: 1;
  color: var(--text-primary, #e2e8f0);
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  transition: color .15s;
}
.info-channel-list-title:hover { color: var(--ch-color); }
.info-channel-list-feat {
  margin-left: 6px;
  color: var(--neon-orange, #FBB040);
  font-size: 11px;
  vertical-align: middle;
}
.info-channel-list-date {
  color: var(--text-muted, #94a3b8);
  font-size: 12px;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}

/* ---- 空状态（forum 等无 articles 数据的频道） ---- */
.info-channel-empty {
  padding: 40px 18px;
  text-align: center;
  color: var(--text-muted, #94a3b8);
}
.info-channel-empty i {
  font-size: 36px;
  opacity: 0.35;
  margin-bottom: 12px;
  display: block;
  color: var(--ch-color);
}
.info-channel-empty p { margin: 0 0 14px; font-size: 14px; }
.info-channel-empty-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  background: color-mix(in srgb, var(--ch-color) 15%, transparent);
  color: var(--ch-color);
  border: 1px solid color-mix(in srgb, var(--ch-color) 55%, transparent);
  border-radius: 999px;
  text-decoration: none;
  font-size: 13px;
  transition: background .15s;
}
.info-channel-empty-btn:hover {
  background: color-mix(in srgb, var(--ch-color) 30%, transparent);
}

/* ====================================================================
   新版全分类总览：4 个 1 级段，每段内嵌 2 级卡片 4 列 grid
   ==================================================================== */
.info-overview-stack {
  padding: 60px 0 80px;
  display: flex;
  flex-direction: column;
  gap: 56px;
}

/* --- 1 级段 --- */
.info-segment {
  position: relative;
  --ch-color: #5B9BFF;
}

/* 栏目底图横幅 —— 仿 BBS hero 三段式：英文小字 + 大字标题 + 副标题 */
.info-segment-banner {
  position: relative;
  min-height: 180px;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 22px;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ch-color) 45%, transparent),
              0 10px 24px -10px color-mix(in srgb, var(--ch-color) 35%, transparent),
              0 4px 14px rgba(10, 15, 18, 0.08);
  isolation: isolate;
}
.info-segment-banner::after {
  /* 浅光线（仿 hero 装饰） */
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 320px at 0% 0%, color-mix(in srgb, var(--ch-color) 28%, transparent) 0%, transparent 60%),
    radial-gradient(700px 280px at 100% 100%, color-mix(in srgb, var(--ch-color) 20%, transparent) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.info-segment-banner-inner {
  position: relative;
  z-index: 1;
  padding: 22px 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: inherit;
  gap: 6px;
}
.info-segment-banner-en {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 4px;
  color: color-mix(in srgb, var(--ch-color) 70%, #fff);
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}
.info-segment-banner-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--ch-color) 60%, #fff);
  box-shadow: 0 0 8px color-mix(in srgb, var(--ch-color) 70%, transparent);
}
.info-segment-banner-sep {
  opacity: 0.55;
  font-weight: 400;
}
.info-segment-banner-short {
  letter-spacing: 6px;
  color: color-mix(in srgb, var(--ch-color) 60%, #fff);
}
.info-segment-banner-title {
  margin: 4px 0 0;
  font-size: 38px;
  font-weight: 800;
  letter-spacing: 3px;
  color: #fff;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
}
.info-segment-banner-sub {
  margin: 4px 0 0;
  font-size: 13px;
  color: color-mix(in srgb, #fff 78%, transparent);
  letter-spacing: 1.5px;
  max-width: 80%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
}
@media (max-width: 768px) {
  .info-segment-banner { min-height: 140px; border-radius: 12px; }
  .info-segment-banner-inner { padding: 16px 18px; }
  .info-segment-banner-en { font-size: 11px; letter-spacing: 3px; }
  .info-segment-banner-title { font-size: 26px; letter-spacing: 3px; }
  .info-segment-banner-sub { font-size: 12px; max-width: 92%; }
}

.info-segment-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 0 18px;
  border-bottom: 1px solid color-mix(in srgb, var(--ch-color) 18%, transparent);
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.info-segment-bar {
  display: inline-block;
  width: 6px;
  height: 28px;
  border-radius: 3px;
  background: var(--ch-color);
  box-shadow: 0 0 12px color-mix(in srgb, var(--ch-color) 60%, transparent);
  flex-shrink: 0;
}

.info-segment-title {
  font-size: 22px;
  font-weight: 700;
  color: #0a2540;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  /* flex 子项默认 min-width:auto，长栏目名会把整行撑破视口；允许收缩 + 断行 */
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.info-segment-title i {
  color: var(--ch-color);
  font-size: 20px;
}

.info-segment-desc {
  flex: 1 1 200px;
  font-size: 13px;
  color: #6b7280;
  line-height: 1.5;
}

.info-segment-more {
  font-size: 13px;
  font-weight: 600;
  color: var(--ch-color);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ch-color) 8%, transparent);
  transition: all .2s;
  flex-shrink: 0;
}
.info-segment-more:hover {
  background: color-mix(in srgb, var(--ch-color) 18%, transparent);
  transform: translateX(2px);
}
.info-segment-more i {
  transition: transform .2s;
}
.info-segment-more:hover i {
  transform: translateX(3px);
}

/* --- BBS 引导卡 --- */
.info-bbs-prompt {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 32px 36px;
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--ch-color) 14%, #fff),
    color-mix(in srgb, var(--ch-color) 4%, #fff) 60%,
    #fff);
  border: 1px solid color-mix(in srgb, var(--ch-color) 28%, transparent);
  border-radius: 16px;
  position: relative;
  overflow: hidden;
}
.info-bbs-prompt::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at right top,
    color-mix(in srgb, var(--ch-color) 25%, transparent) 0%,
    transparent 60%);
  pointer-events: none;
}
.info-bbs-prompt > * { position: relative; }
.info-bbs-icon {
  width: 64px;
  height: 64px;
  border-radius: 16px;
  background: color-mix(in srgb, var(--ch-color) 22%, #fff);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  color: var(--ch-color);
  flex-shrink: 0;
}
.info-bbs-body h3 {
  margin: 0 0 6px;
  font-size: 18px;
  color: #0a2540;
}
.info-bbs-body p {
  margin: 0;
  font-size: 14px;
  color: #4b5563;
  line-height: 1.6;
}
.info-bbs-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  padding: 8px 18px;
  background: var(--ch-color);
  color: #fff;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  font-size: 13px;
  transition: all .2s;
}
.info-bbs-cta:hover {
  transform: translateX(3px);
  box-shadow: 0 6px 16px color-mix(in srgb, var(--ch-color) 35%, transparent);
}

/* --- 段内空状态（无 2 级栏目） --- */
.info-segment-empty {
  text-align: center;
  padding: 60px 20px;
  background: #f9fafb;
  border: 1px dashed #d1d5db;
  border-radius: 12px;
  color: #6b7280;
}
.info-segment-empty i {
  font-size: 36px;
  color: color-mix(in srgb, var(--ch-color) 50%, #d1d5db);
  margin-bottom: 12px;
}
.info-segment-empty p {
  margin: 6px 0 14px;
  font-size: 14px;
}
.info-segment-empty a {
  color: var(--ch-color);
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}

/* --- 2 级卡片 grid --- */
.subcat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.subcat-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px 16px 14px;
  display: flex;
  flex-direction: column;
  transition: all .25s;
  position: relative;
  --sub-color: #5B9BFF;
}
.subcat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  border-color: color-mix(in srgb, var(--sub-color) 35%, #e5e7eb);
}

.subcat-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dashed color-mix(in srgb, var(--sub-color) 22%, transparent);
}
.subcat-card-bar {
  display: inline-block;
  width: 4px;
  height: 16px;
  border-radius: 2px;
  background: var(--sub-color);
  flex-shrink: 0;
}
.subcat-card-header h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #0a2540;
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.subcat-card-more {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--sub-color) 8%, transparent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--sub-color);
  text-decoration: none;
  font-size: 11px;
  transition: all .2s;
  flex-shrink: 0;
}
.subcat-card-more:hover {
  background: var(--sub-color);
  color: #fff;
  transform: translateX(2px);
}

/* --- 2 级列表 --- */
.subcat-list {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  flex: 1;
  min-height: 130px;
}

.subcat-item {
  border-bottom: 1px dashed color-mix(in srgb, var(--sub-color) 12%, #e5e7eb);
}
.subcat-item:last-child {
  border-bottom: none;
}
.subcat-item a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  color: #374151;
  text-decoration: none;
  font-size: 13px;
  line-height: 1.4;
  transition: color .15s;
}
.subcat-item a:hover {
  color: var(--sub-color);
}
.subcat-item a:hover .subcat-title {
  color: var(--sub-color);
}

.subcat-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--sub-color);
  flex-shrink: 0;
  opacity: .65;
}

.subcat-title {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color .15s;
}

.subcat-date {
  flex-shrink: 0;
  color: #9ca3af;
  font-size: 11px;
  font-family: 'SF Mono', Consolas, monospace;
}

.subcat-empty {
  padding: 16px 0;
  text-align: center;
  color: #9ca3af;
  font-size: 12px;
  list-style: none;
}
.subcat-empty i {
  margin-right: 6px;
  font-size: 11px;
}

.subcat-card-link {
  display: block;
  text-align: center;
  font-size: 12px;
  color: var(--sub-color);
  text-decoration: none;
  font-weight: 600;
  padding: 8px 0;
  border-top: 1px dashed color-mix(in srgb, var(--sub-color) 15%, transparent);
  margin: 0 -16px -14px;
  background: color-mix(in srgb, var(--sub-color) 4%, transparent);
  border-radius: 0 0 12px 12px;
  transition: all .2s;
}
.subcat-card-link:hover {
  background: color-mix(in srgb, var(--sub-color) 14%, transparent);
  letter-spacing: .5px;
}

/* --- 响应式 --- */
@media (max-width: 1100px) {
  .subcat-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 820px) {
  .subcat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .info-segment-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}
@media (max-width: 540px) {
  .subcat-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .info-bbs-prompt {
    flex-direction: column;
    text-align: center;
    padding: 24px 20px;
  }
  .info-overview-stack {
    gap: 36px;
  }
}

/* ==========================================================================
   一级栏目页面 — 2 级子栏目新布局（左大图特写 + 右侧 6 列表 = 7 条 / 子栏目）
   取代旧的 4 列 .subcat-grid 单列列表布局（旧样式保留以兼容其他页签）
   ========================================================================== */

/* --- 整段流（一级栏目下所有的子栏目垂直堆叠） --- */
.subcat-feature-stack {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

/* --- 单个子栏目行（白卡片 + 圆角 + 阴影） --- */
.subcat-feature-row {
  position: relative;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  border: 1px solid #eef0f3;
  transition: all 0.25s;
}
.subcat-feature-row:hover {
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.10);
  transform: translateY(-2px);
}

/* --- 子栏目标题行 --- */
.subcat-feature-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 22px 14px;
  border-bottom: 1px solid #f1f3f6;
}
.subcat-feature-bar {
  display: inline-block;
  width: 6px;
  height: 22px;
  border-radius: 3px;
  background: var(--sub-color, #5B9BFF);
  box-shadow: 0 0 8px color-mix(in srgb, var(--sub-color, #5B9BFF) 50%, transparent);
  flex-shrink: 0;
}
.subcat-feature-header h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #111827;
  display: flex;
  align-items: center;
  gap: 8px;
}
.subcat-feature-header h3 i {
  color: var(--sub-color, #5B9BFF);
  font-size: 16px;
}
.subcat-feature-more {
  margin-left: auto;
  color: var(--sub-color, #5B9BFF);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px solid color-mix(in srgb, var(--sub-color, #5B9BFF) 25%, transparent);
  background: color-mix(in srgb, var(--sub-color, #5B9BFF) 6%, #fff);
  transition: all 0.2s;
}
.subcat-feature-more:hover {
  background: var(--sub-color, #5B9BFF);
  color: #fff;
  transform: translateX(2px);
}

/* --- 核心 grid：左大图特写 + 右 6 列表 --- */
.subcat-feature-grid {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(0, 1.15fr);
  gap: 0;
  min-height: 320px;
}

/* --- 左侧大图特写 --- */
.subcat-feature-main {
  display: flex;
  flex-direction: column;
  border-right: 1px solid #f1f3f6;
  text-decoration: none;
  color: inherit;
  transition: background 0.2s;
}
.subcat-feature-main:hover {
  background: color-mix(in srgb, var(--sub-color, #5B9BFF) 4%, #fff);
}
.subcat-feature-main--empty {
  pointer-events: none;
}
.subcat-feature-img {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-color: #1f2937;
  background-size: cover;
  background-position: center;
}
.subcat-feature-img--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
}
.subcat-feature-tag {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 5px 12px;
  background: rgba(0, 0, 0, 0.62);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  border-radius: 4px;
  backdrop-filter: blur(4px);
  text-transform: uppercase;
}
.subcat-feature-main-body {
  padding: 18px 22px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.subcat-feature-main-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.45;
  color: #111827;
  /* 最多 2 行 */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.subcat-feature-main-summary {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  color: #4b5563;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.subcat-feature-main-meta {
  margin-top: auto;
  padding-top: 6px;
  font-size: 12px;
  color: #6b7280;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* --- 右侧 6 条列表 --- */
.subcat-feature-list {
  list-style: none;
  margin: 0;
  padding: 8px 0;
  display: flex;
  flex-direction: column;
}
.subcat-feature-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 22px;
  border-bottom: 1px dashed #eef0f3;
  transition: background 0.2s;
}
.subcat-feature-item:last-child {
  border-bottom: none;
}
.subcat-feature-item:hover {
  background: color-mix(in srgb, var(--sub-color, #5B9BFF) 5%, #fff);
}
.subcat-feature-item > a {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-decoration: none;
  color: inherit;
}
.subcat-feature-item-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  color: #1f2937;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.2s;
}
.subcat-feature-item:hover .subcat-feature-item-title {
  color: var(--sub-color, #5B9BFF);
}
.subcat-feature-item-sub {
  font-size: 12px;
  line-height: 1.5;
  color: #6b7280;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.subcat-feature-item-date {
  font-size: 11px;
  color: #9ca3af;
  white-space: nowrap;
  flex-shrink: 0;
  padding-top: 2px;
}
.subcat-feature-empty {
  padding: 32px 22px;
  text-align: center;
  color: #9ca3af;
  font-size: 13px;
}
.subcat-feature-empty i {
  margin-right: 6px;
}

/* --- 响应式：平板降级 2 列 → 1 列；窄屏整体缩为单列堆叠 --- */
@media (max-width: 1100px) {
  .subcat-feature-grid {
    grid-template-columns: minmax(0, 1fr);
    min-height: auto;
  }
  .subcat-feature-main {
    border-right: none;
    border-bottom: 1px solid #f1f3f6;
  }
}
@media (max-width: 640px) {
  .subcat-feature-header h3 { font-size: 16px; }
  .subcat-feature-main-body { padding: 14px 16px 16px; }
  .subcat-feature-main-title { font-size: 16px; }
  .subcat-feature-item { padding: 12px 16px; }
}

/* ============================================================
   7. BBS 回帖树形（楼中楼 / 退后递进）
   ============================================================ */
.bbs-reply-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bbs-reply {
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 18px 20px;
}
.bbs-reply-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.bbs-reply-avatar {
  width: 34px; height: 34px;
  border-radius: 50%;
  color: #0A0F12;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 15px;
  flex: 0 0 auto;
}
.bbs-reply-meta {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.bbs-reply-name {
  font-weight: 600;
  font-size: 14px;
  color: var(--text-primary, #fff);
}
.bbs-reply-floor {
  font-size: 12px;
  color: var(--neon-cyan, #00FFE0);
  font-weight: 700;
}
.bbs-reply-time {
  font-size: 12px;
  color: var(--text-muted);
}
.bbs-reply-body {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.7;
  white-space: pre-wrap;
  word-break: break-word;
}
/* 富文本渲染（回复 / 话题正文共用） */
.bbs-reply-body > :first-child,
.bbs-topic-content > :first-child { margin-top: 0; }
.bbs-reply-body > :last-child,
.bbs-topic-content > :last-child { margin-bottom: 0; }
.bbs-reply-body p,
.bbs-topic-content p { margin: 0 0 10px; }
.bbs-reply-body ul, .bbs-reply-body ol,
.bbs-topic-content ul, .bbs-topic-content ol { margin: 0 0 10px; padding-left: 22px; }
.bbs-reply-body li,
.bbs-topic-content li { margin: 4px 0; }
.bbs-reply-body a,
.bbs-topic-content a { color: var(--neon-cyan, #00FFE0); text-decoration: underline; }
.bbs-reply-body blockquote,
.bbs-topic-content blockquote {
  margin: 0 0 10px; padding: 8px 14px;
  border-left: 3px solid var(--neon-cyan, #00FFE0);
  background: rgba(0, 255, 224, 0.06);
  color: var(--text-muted); border-radius: 0 8px 8px 0;
}
.bbs-reply-body code,
.bbs-topic-content code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
  background: rgba(255, 255, 255, 0.06); padding: 1px 6px; border-radius: 4px;
  font-size: 0.92em; color: #ffd479;
}
.bbs-reply-body pre,
.bbs-topic-content pre {
  background: rgba(0, 0, 0, 0.35); padding: 12px 14px; border-radius: 8px;
  overflow-x: auto; margin: 0 0 10px;
}
.bbs-reply-body pre code,
.bbs-topic-content pre code { background: transparent; padding: 0; color: #e6e6e6; }
.bbs-topic-content {
  font-size: 16px;
  color: var(--text-secondary);
  line-height: 1.8;
  white-space: pre-wrap;
  word-break: break-word;
}
.bbs-reply-actions {
  margin-top: 12px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.bbs-reply-btn {
  background: transparent;
  border: none;
  color: var(--text-muted);
  font-size: 13px;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all .15s;
}
.bbs-reply-btn:hover {
  color: var(--neon-cyan, #00FFE0);
  background: rgba(0, 255, 224, 0.08);
}
.bbs-own-actions {
  display: inline-flex;
  gap: 10px;
}
.bbs-own-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 13px;
  padding: 4px 8px;
  border-radius: 6px;
}
.bbs-own-btn.danger { color: #FF6B6B; }
.bbs-own-btn.danger:hover { background: rgba(255, 107, 107, 0.1); }

/* 楼中楼缩进容器：左侧竖线 + 递进缩进 */
.bbs-reply-children {
  margin-top: 14px;
  margin-left: 20px;
  padding-left: 18px;
  border-left: 2px solid color-mix(in srgb, var(--neon-cyan, #00FFE0) 32%, var(--border-subtle, #20303A));
  display: flex;
  flex-direction: column;
  gap: 14px;
}
/* 深度 ≥ 3 层时收窄缩进，避免卡片过窄 */
.bbs-reply-children .bbs-reply-children .bbs-reply-children {
  margin-left: 8px;
  padding-left: 14px;
}

/* 内联楼中楼回复框 */
.bbs-inline-reply {
  margin-top: 14px;
  background: var(--bg-tertiary, #0E161C);
  border: 1px solid var(--border-subtle, #20303A);
  border-radius: 10px;
  padding: 14px;
}
.bbs-inline-text {
  width: 100%;
  padding: 10px 12px;
  background: var(--bg-card);
  border: 1px solid var(--border-subtle, #20303A);
  border-radius: 8px;
  color: #fff;
  font-size: 14px;
  font-family: inherit;
  resize: vertical;
  box-sizing: border-box;
}
.bbs-inline-text:focus {
  outline: none;
  border-color: var(--neon-cyan, #00FFE0);
  box-shadow: 0 0 0 2px rgba(0, 255, 224, 0.18);
}

/* =====================================================================
   二级栏目详情页：左 5 图文 + 右 15 列表
   ===================================================================== */

/* 面包屑 */
.subcat-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  color: var(--text-muted, #6B7C85);
  margin: 24px 0 var(--gap-heading-content);
  padding: 12px 16px;
  background: var(--bg-card, #fff);
  border: 1px solid var(--border-subtle, #20303A);
  border-radius: var(--radius-md, 12px);
  box-shadow: 0 4px 14px rgba(10, 15, 18, 0.04);
}
.subcat-breadcrumb a {
  color: var(--text-secondary, #4A5860);
  text-decoration: none;
  transition: color var(--transition, 0.2s ease);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.subcat-breadcrumb a:hover { color: var(--sub-color, #5B9BFF); }
.subcat-breadcrumb-sep {
  color: color-mix(in srgb, var(--sub-color, #5B9BFF) 50%, transparent);
  user-select: none;
}
.subcat-breadcrumb-current {
  color: var(--sub-color, #5B9BFF);
  font-weight: 600;
}

/* 双栏布局 */
.subcat-detail-layout {
  display: grid;
  grid-template-columns: 2fr 3fr;
  gap: 28px;
  align-items: start;
}

/* 节段标题 */
.subcat-detail-section {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border-subtle, #20303A);
}
.subcat-detail-bar {
  width: 4px;
  height: 20px;
  border-radius: 2px;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--sub-color, #5B9BFF) 100%, transparent),
    color-mix(in srgb, var(--sub-color, #5B9BFF) 40%, transparent));
  box-shadow: 0 0 8px color-mix(in srgb, var(--sub-color, #5B9BFF) 55%, transparent);
}
.subcat-detail-section h3 {
  flex: 1;
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary, #18191C);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.subcat-detail-section h3 i {
  color: var(--sub-color, #5B9BFF);
  font-size: 14px;
}
.subcat-detail-count {
  font-size: 12px;
  color: var(--text-muted, #6B7C85);
  background: color-mix(in srgb, var(--sub-color, #5B9BFF) 12%, transparent);
  color: color-mix(in srgb, var(--sub-color, #5B9BFF) 70%, #2A3A42);
  padding: 2px 10px;
  border-radius: 999px;
  font-weight: 500;
}

/* 左侧：5 图文卡片 */
.subcat-detail-left,
.subcat-detail-right {
  background: var(--bg-card, #fff);
  border: 1px solid var(--border-subtle, #20303A);
  border-radius: var(--radius-md, 12px);
  padding: 22px 24px;
  box-shadow: 0 4px 18px rgba(10, 15, 18, 0.05);
}
.subcat-figure-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.subcat-figure-item { margin: 0; }
.subcat-figure-item a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  transition: transform var(--transition, 0.2s ease);
}
.subcat-figure-item a:hover { transform: translateY(-2px); }
.subcat-figure-img {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  background-color: #1f2a30;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sub-color, #5B9BFF) 25%, transparent);
  display: flex;
  align-items: flex-end;
  padding: 10px 12px;
}
.subcat-figure-img--placeholder {
  /* linear-gradient 由 inline style 给 */
  align-items: center;
  justify-content: center;
}
.subcat-figure-tag {
  position: absolute;
  top: 10px;
  left: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #fff;
  background: color-mix(in srgb, var(--sub-color, #5B9BFF) 80%, transparent);
  padding: 3px 10px;
  border-radius: 999px;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
}
.subcat-figure-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.subcat-figure-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary, #18191C);
  line-height: 1.4;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--transition, 0.2s ease);
}
.subcat-figure-item a:hover .subcat-figure-title {
  color: color-mix(in srgb, var(--sub-color, #5B9BFF) 90%, #18191C);
}
.subcat-figure-summary {
  font-size: 13px;
  color: var(--text-secondary, #4A5860);
  line-height: 1.55;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.subcat-figure-meta {
  font-size: 12px;
  color: var(--text-muted, #6B7C85);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.subcat-figure-meta i {
  color: color-mix(in srgb, var(--sub-color, #5B9BFF) 70%, transparent);
}

/* 右侧：15 列表 */
.subcat-text-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.subcat-text-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 4px;
  border-bottom: 1px dashed color-mix(in srgb, var(--border-subtle, #20303A) 80%, transparent);
  transition: background var(--transition, 0.2s ease);
}
.subcat-text-item:last-child { border-bottom: none; }
.subcat-text-item:hover {
  background: color-mix(in srgb, var(--sub-color, #5B9BFF) 6%, transparent);
}
.subcat-text-item a {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--text-primary, #18191C);
  min-width: 0;
}
.subcat-text-bullet {
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--sub-color, #5B9BFF) 50%, transparent);
  transition: all var(--transition, 0.2s ease);
}
.subcat-text-item:hover .subcat-text-bullet {
  background: var(--sub-color, #5B9BFF);
  box-shadow: 0 0 6px var(--sub-color, #5B9BFF);
  transform: scale(1.4);
}
.subcat-text-title {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--text-secondary, #4A5860);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color var(--transition, 0.2s ease);
}
.subcat-text-item:hover .subcat-text-title {
  color: color-mix(in srgb, var(--sub-color, #5B9BFF) 90%, #18191C);
}
.subcat-text-date {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--text-muted, #6B7C85);
  font-variant-numeric: tabular-nums;
}
/* 二级栏目名前缀：[栏目名]-文章标题 */
.subcat-text-sub {
  font-size: 12px;
  font-weight: 600;
  color: color-mix(in srgb, var(--sub-color, #5B9BFF) 80%, #18191C);
  background: color-mix(in srgb, var(--sub-color, #5B9BFF) 14%, transparent);
  border-radius: 4px;
  padding: 1px 5px;
  margin-right: 6px;
  flex-shrink: 0;
  white-space: nowrap;
}

/* 空状态 */
.subcat-detail-empty {
  text-align: center;
  padding: 48px 20px;
  color: var(--text-muted, #6B7C85);
  font-size: 14px;
}
.subcat-detail-empty i {
  display: block;
  font-size: 36px;
  margin-bottom: 12px;
  opacity: 0.4;
  color: color-mix(in srgb, var(--sub-color, #5B9BFF) 40%, transparent);
}

/* 分页降级（disabled）*/
.pagination .page-btn.disabled {
  pointer-events: none;
  opacity: 0.4;
  background: transparent;
}


/* 响应式 */
@media (max-width: 1024px) {
  .subcat-detail-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  /* 平板下相关文章依旧保持 3 列水平排列（与 desktop 一致），仅缩小卡内图、标题字号 */
  .article-related { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .article-related .article-card-cover { height: 110px; }
  .article-related .article-card-body h3 { font-size: 13px; -webkit-line-clamp: 2; }
}
@media (max-width: 640px) {
  .subcat-breadcrumb { font-size: 12px; padding: 10px 12px; }
  .subcat-detail-left, .subcat-detail-right { padding: 18px 16px; }
  .subcat-figure-title { font-size: 15px; }
  .subcat-figure-summary { -webkit-line-clamp: 1; }
  .subcat-text-item { padding: 10px 4px; gap: 8px; }
}

/* ============================================================
 * 富文本编辑器（RTE）· 论坛发帖 / 回帖
 * ========================================================== */
.rte {
  border: 1px solid var(--border-subtle, rgba(255,255,255,0.12));
  border-radius: 8px;
  background: var(--bg-tertiary, #12181d);
  overflow: hidden;
}
.rte-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px;
  padding: 6px 8px;
  background: rgba(255, 255, 255, 0.03);
  border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.12));
}
.rte-btn {
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: none; border-radius: 6px;
  color: var(--text-secondary, #c7d0d8); font-size: 14px; cursor: pointer;
  transition: all .15s;
}
.rte-btn:hover { background: rgba(0, 255, 224, 0.1); color: var(--neon-cyan, #00ffe0); }
.rte-btn.active { background: rgba(0, 255, 224, 0.16); color: var(--neon-cyan, #00ffe0); }
.rte-sep { width: 1px; height: 20px; background: var(--border-subtle, rgba(255,255,255,0.12)); margin: 0 4px; }
.rte-area {
  min-height: 160px;
  max-height: 420px;
  overflow-y: auto;
  padding: 14px 16px;
  color: #fff;
  font-size: 14px;
  line-height: 1.7;
  font-family: inherit;
  outline: none;
}
.rte-area:empty:before {
  content: attr(data-placeholder);
  color: var(--text-muted, #8a949c);
  pointer-events: none;
}
.rte-area p { margin: 0 0 10px; }
.rte-area ul, .rte-area ol { margin: 0 0 10px; padding-left: 22px; }
.rte-area blockquote {
  margin: 0 0 10px; padding: 6px 12px;
  border-left: 3px solid var(--neon-cyan, #00ffe0);
  background: rgba(0, 255, 224, 0.06); color: var(--text-muted, #8a949c);
  border-radius: 0 8px 8px 0;
}
.rte-area code {
  font-family: 'SFMono-Regular', Consolas, monospace;
  background: rgba(255,255,255,0.06); padding: 1px 6px; border-radius: 4px; font-size: 0.92em; color: #ffd479;
}
/* 楼中楼内联编辑器（窄一些） */
.bbs-inline-reply .rte { margin-top: 10px; }
.bbs-inline-reply .rte-area { min-height: 90px; }
.bbs-inline-reply .rte-toolbar .rte-btn { width: 28px; height: 28px; font-size: 13px; }

/* 未登录：块状登录提示 */
.forum-login-bar--block {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  background: var(--bg-card, #12181d);
  border: 1px solid var(--border-subtle, rgba(255,255,255,0.12));
  border-radius: var(--radius-lg, 14px);
  padding: 18px 24px;
  margin-bottom: 24px;
}
.forum-login-bar--block .flb-tip { font-size: 14px; color: var(--text-secondary, #c7d0d8); flex: 1 1 auto; }

/* 发帖 / 回帖面板基础间距 */
.forum-post-panel .rte,
.forum-reply-panel .rte { margin-bottom: 16px; }
.bbs-inline-btns {
  margin-top: 10px;
  display: flex;
  gap: 10px;
}
.bbs-inline-submit,
.bbs-inline-cancel {
  padding: 8px 20px;
  font-size: 13px;
  cursor: pointer;
  border-radius: 8px;
  border: 1px solid transparent;
}
@media (max-width: 640px) {
  .bbs-reply { padding: 14px 14px; }
  .bbs-reply-children { margin-left: 10px; padding-left: 12px; }
  .bbs-reply-children .bbs-reply-children { margin-left: 6px; padding-left: 10px; }
}

/* ====== 全站目录树形菜单（sitemap.php）—— 按截图样式：青蓝方块 + 横线 + 虚线缩进 ====== */
.sitemap-page {
  padding: 32px 16px 60px;
  background: linear-gradient(180deg, #f5f7fa 0%, #eef1f5 100%);
  min-height: calc(100vh - 64px);
}
.tree-menu {
  max-width: 820px;
  margin: 0 auto;
  padding: 30px 36px 38px;
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid #e3e7ec;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
               "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}
.tree-menu-title {
  margin: 0 0 6px;
  font-size: 24px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: 0.5px;
}
.tree-menu-subtitle {
  margin: 0 0 24px;
  color: #64748b;
  font-size: 14px;
  line-height: 1.7;
}
.tree-hint { color: #94a3b8; }
.tree-toggler-inline {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 14px; height: 14px;
  background: var(--neon-cyan, #00d4d4);
  color: #fff;
  border-radius: 3px;
  font-size: 12px; font-weight: 600;
  vertical-align: -2px;
}
.tree-empty {
  padding: 40px;
  text-align: center;
  color: #94a3b8;
  font-size: 15px;
}
.tree, .tree-branch {
  list-style: none;
  padding: 0;
  margin: 0;
}
/* 子层向左连接父层：虚线 */
.tree-branch {
  position: relative;
  padding-left: 30px;
  margin-top: 4px;
  margin-left: 9px;
  border-left: 1px dashed #cbd5e1;
}
/* 折叠按钮（青蓝实心方块 + 横线 "−"） */
.tree-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
  min-height: 30px;
}
.tree-toggler {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--neon-cyan, #00d4d4);
  color: #ffffff;
  border: 0;
  border-radius: 3px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  padding: 0;
  transition: background-color 0.18s ease, transform 0.18s ease;
}
.tree-toggler:hover { background: #00b8b8; }
.tree-toggler:active { transform: scale(0.92); }
.tree-toggler:focus-visible { outline: 2px solid #00d4d4; outline-offset: 2px; }
.tree-toggler-icon {
  display: inline-block;
  width: 9px;
  height: 2px;
  background: #ffffff;
  border-radius: 1px;
}
/* 子节点折叠后切换图标位置模拟 "− ↔ +" */
.tree-node.collapsed > .tree-row > .tree-toggler .tree-toggler-icon {
  position: relative;
}
.tree-node.collapsed > .tree-row > .tree-toggler .tree-toggler-icon::after {
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: 9px;
  height: 2px;
  background: #ffffff;
  border-radius: 1px;
  transform: rotate(90deg);
}
/* 叶子节点占位方块（不可点击） */
.tree-toggler-leaf {
  cursor: default;
  opacity: 0.55;
}
.tree-toggler-leaf:hover { background: var(--neon-cyan, #00d4d4); }
.tree-toggler-leaf .tree-toggler-icon { background: #ffffff; opacity: 0.5; }
/* 节点文字 */
.tree-label {
  color: #1f2937;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 4px;
  transition: color 0.18s ease, background-color 0.18s ease;
}
.tree-label:hover {
  color: #00a3a3;
  background: rgba(0, 212, 212, 0.08);
}
.tree-level-1 > .tree-row > .tree-label {
  font-size: 17px;
  font-weight: 700;
  color: #0f172a;
}
.tree-level-2 > .tree-row > .tree-label { font-weight: 500; }
.tree-level-3 > .tree-row > .tree-label { font-weight: 400; color: #475569; }
.tree-level-4 > .tree-row > .tree-label { font-weight: 400; color: #64748b; font-size: 14px; }
.tree-node { position: relative; }
/* 折叠状态 */
.tree-node.collapsed > .tree-branch { display: none; }
/* 一级节点竖向分隔（截图每个一级之间有自然空隙） */
.tree > .tree-node + .tree-node {
  margin-top: 14px;
}
/* 鼠标 hover 自动展开 / 鼠标移开自动收起（鼠标响应式核心） */
@media (hover: hover) {
  .tree-row:hover .tree-label { color: #00a3a3; background: rgba(0, 212, 212, 0.08); }
  .tree-row:hover .tree-toggler:not(.tree-toggler-leaf) { background: #00b8b8; }
  /* 移出节点时折叠。注意：用 :hover 控制显示，对鼠标设备才生效 */
  .tree-node:hover > .tree-branch,
  .tree-node:focus-within > .tree-branch { display: block; }
}
/* 移动端：hover 不触发、不启用自动展开收起，仅点击 toggler 折叠 */
@media (hover: none) {
  .tree-row { padding: 12px 0; min-height: 44px; }
  .tree-toggler { width: 24px; height: 24px; }
  .tree-branch { padding-left: 26px; margin-left: 11px; }
}
@media (max-width: 640px) {
  .sitemap-page { padding: 20px 12px 40px; }
  .tree-menu { padding: 22px 20px 28px; }
  .tree-menu-title { font-size: 20px; }
}
