/* 马甲弹窗内联CSS（从hv_inline.min.css迁移，绕过浏览器缓存） */
.hv-alt-modal-overlay{z-index:calc(var(--hv-z-modal) + 3);display:none !important}
.hv-alt-modal-overlay.show,.hv-alt-modal-overlay.closing{display:flex !important}
.hv-alt-modal-overlay.show{animation:hvAltBackdropIn .3s ease-out}
.hv-alt-modal-overlay.closing{animation:hvAltBackdropOut .2s ease-in forwards}
@keyframes hvAltBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes hvAltBackdropOut{from{opacity:1}to{opacity:0}}
.hv-alt-modal-card{width:90%;max-width:420px;max-height:min(80vh,520px);box-shadow:0 16px 48px rgba(0,0,0,.25);overflow:hidden}
.hv-alt-modal-overlay.show .hv-alt-modal-card{will-change:transform,opacity;animation:hvAltCardIn .35s cubic-bezier(.34,1.56,.64,1)}
.hv-alt-modal-overlay.closing .hv-alt-modal-card{animation:hvAltCardOut .2s ease-in forwards}
@keyframes hvAltCardIn{from{transform:translateY(30px) scale(.94);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes hvAltCardOut{from{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(16px) scale(.97);opacity:0}}
.hv-alt-staggered .hv-alt-header{animation:hvAltFadeIn .3s ease-out .05s both}
.hv-alt-staggered .hv-alt-search-wrap{animation:hvAltFadeIn .3s ease-out .1s both}
.hv-alt-staggered .hv-alt-list{animation:hvAltFadeIn .3s ease-out .15s both}
@keyframes hvAltFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.hv-alt-modal-overlay .hv-alt-header{padding:16px 18px;background:linear-gradient(135deg,var(--hv-primary-bg),rgba(27,58,95,.04));border-bottom:1px solid rgba(0,0,0,.04)}
.hv-alt-modal-overlay .hv-alt-header-title{font-size:16px;font-weight:600;color:var(--hv-primary-text, var(--hv-primary))}
.hv-alt-header-actions{display:flex;align-items:center;gap:6px}
.hv-alt-modal-overlay .hv-alt-random-btn{padding:4px 12px;font-size:12px;border-radius:var(--hv-radius-lg)}
/* .hv-alt-modal-close 已由 .hv-modal-close 共享基类统一控制 */
.hv-alt-modal-overlay .hv-alt-search-wrap{padding:10px 14px;position:relative;flex-shrink:0;border-bottom:1px solid rgba(0,0,0,.04)}
.hv-alt-modal-overlay .hv-alt-search{padding:8px 36px 8px 12px;font-size:13px;border-radius:var(--hv-radius-sm-plus);width:100%;box-sizing:border-box;border:1px solid var(--hv-border);outline:none}
.hv-alt-modal-overlay .hv-alt-search:focus{border-color:var(--hv-primary)}
.hv-alt-search-clear{position:absolute;right:22px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:none;background:var(--hv-bg-hover);border-radius:var(--hv-radius-full);font-size:14px;color:var(--hv-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;transition:background .2s var(--hv-ease-smooth),color .2s var(--hv-ease-smooth)}
.hv-alt-modal-overlay .hv-alt-list{flex:1;min-height:0;max-height:50vh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;overscroll-behavior:contain}
.hv-alt-modal-overlay .hv-alt-list::-webkit-scrollbar{width:5px}
.hv-alt-modal-overlay .hv-alt-list::-webkit-scrollbar-thumb{background:var(--hv-border);border-radius:var(--hv-radius-2xs)}
.hv-alt-modal-overlay .hv-alt-list::-webkit-scrollbar-track{background:transparent}
.hv-alt-modal-overlay .hv-alt-item{display:flex;align-items:center;gap:10px;padding:10px 14px;margin:2px 6px;cursor:pointer;transition:background .2s var(--hv-ease-smooth),transform .1s var(--hv-ease-smooth);border-radius:var(--hv-radius-sm-plus);overflow:hidden}
.hv-alt-modal-overlay .hv-alt-item:hover{background:var(--hv-primary-bg)}
.hv-alt-modal-overlay .hv-alt-item:active{transform:scale(.98)}
.hv-alt-modal-overlay .hv-alt-item.kb-active{background:var(--hv-primary-bg);box-shadow:inset 3px 0 0 var(--hv-primary)}
.hv-alt-modal-overlay .hv-alt-item.active{background:linear-gradient(135deg,var(--hv-primary-bg),rgba(27,58,95,.04))}
.hv-alt-modal-overlay .hv-alt-item.active::after{content:'\2713';font-size:16px;color:var(--hv-primary-text, var(--hv-primary));font-weight:700;flex-shrink:0;margin-left:auto}
.hv-alt-modal-overlay .hv-alt-item img,.hv-alt-modal-overlay .hv-alt-item-self{width:36px;height:36px;border-radius:var(--hv-radius-full);object-fit:cover;flex-shrink:0;border:1.5px solid rgba(27,58,95,.08)}
.hv-alt-modal-overlay .hv-alt-item-name{font-size:14px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hv-alt-modal-overlay .hv-alt-group-label{padding:10px 14px 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-left:3px solid var(--hv-border);background:linear-gradient(90deg,rgba(0,0,0,.02),transparent);margin:4px 6px 0;border-radius:0 6px 6px 0;display:flex;align-items:center}
.hv-alt-modal-overlay .hv-alt-group-count{font-size:10px;color:var(--hv-text-muted);margin-left:6px;font-weight:400;background:var(--hv-bg-hover);padding:0 6px;border-radius:var(--hv-radius-sm);line-height:16px}
.hv-alt-modal-overlay .hv-alt-empty{padding:40px 16px;text-align:center;font-size:13px;color:var(--hv-text-muted)}

/* ============================================
   v3.0 Design Tokens — 内联定义，不依赖外部CSS文件
   解决根因：浏览器缓存旧版CSS → var()变量不存在 → 内联样式全部失效
   ============================================ */
:root {
  --hv-primary: #1B3A5F;
  --hv-primary-dark: #0F2A47;
  --hv-primary-light: #2A5283;
  --hv-primary-bg: rgba(27,58,95,.07);
  --hv-primary-border: rgba(27,58,95,.18);
  --hv-accent: #C9A84C;
  --hv-accent-light: #DBC56E;
  --hv-accent-dark: #B89535;
  --hv-accent-ink: #806418;   /* 金字前景专用：#B89535 压白卡仅 2.84，#806418 白卡 5.60、最差的暖灰胶囊底 4.99。accent-dark 另有 6 处当渐变色标（配 gold-cta-ink 深墨字），不能一起压暗 */
  --hv-accent-border: rgba(201,168,76,.22);
  --hv-accent-bg: rgba(201,168,76,.08);
  --hv-danger: #EF4444;
  --hv-danger-bg: rgba(239,68,68,.07);
  --hv-danger-border: rgba(239,68,68,.18);
  --hv-bg-page: #F4F6FA;
  --hv-bg-card: #FFFFFF;
  --hv-bg-hover: #F8FAFC;
  --hv-bg-dark: #0D2540;
  --hv-text-primary: #1F2937;
  --hv-text-muted: #666666;   /* AA 倒逼：白卡最浅合法灰为 #6B7280，但本页还有 #EFF1F2 / #E8EBEF 等浅灰面，要全底达标必须不浅于 #666，故与 --hv-text-body 合流 */
  --hv-text-light: var(--hv-text-muted); /* 原 #9CA3AF 压白卡仅 2.54；亮色已无更浅又全底达标的灰，指向 muted 保留语义分层（暗色仍由 hv-dark.css 独立取色） */
  --hv-border: #E5EAF1;
  --hv-border-light: #F1F5F9;
  --hv-radius-2xs: 2px;
  --hv-radius-xs: 4px;
  --hv-radius-xs-plus: 6px;
  --hv-radius-sm: 8px;
  --hv-radius-sm-plus: 10px;
  --hv-radius-md: 12px;
  --hv-radius-lg: 16px;
  --hv-radius-full: 9999px;
  --hv-shadow-sm: 0 1px 2px rgba(15,42,67,.04), 0 1px 3px rgba(15,42,67,.05);
  --hv-shadow-img: 0 2px 8px rgba(15,42,67,.06);
  --hv-shadow-md: 0 4px 12px rgba(15,42,67,.06), 0 8px 28px rgba(27,58,95,.08);
  --hv-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --hv-font-mono: 'Fira Code', 'Source Code Pro', Consolas, monospace;
  --hv-ease-smooth: cubic-bezier(.4,0,.2,1);
  --hv-ease-bounce: cubic-bezier(.34,1.56,.64,1);
  --hv-anim-fast: .15s cubic-bezier(.4,0,.2,1);
  --hv-anim-normal: .25s cubic-bezier(.4,0,.2,1);
  --hv-anim-slow: .4s cubic-bezier(.4,0,.2,1);
  --hv-sidebar-w: 300px;
  --hv-sidebar-w-narrow: 240px;
  --hv-wrap-w: 1200px;
  --hv-content-max: 920px;
  --hv-content-read: 720px;
  --hv-space-3xs: 2px;
  --hv-space-xs: 8px;
  --hv-space-sm: 12px;
  --hv-space-md: 16px;
  --hv-space-lg: 24px;
  --hv-space-xl: 32px;
  --hv-space-2xl: 48px;
  --hv-text-xs: clamp(10px, .8vw, 11px);
  --hv-text-sm: clamp(12px, 1vw, 13px);
  --hv-text-base: clamp(14px, 1.2vw, 16px);
  --hv-text-md: clamp(15px, 1.5vw, 17px);
  --hv-text-lg: clamp(17px, 2vw, 20px);
  --hv-text-xl: clamp(19px, 2.5vw, 24px);
  --hv-text-2xl: clamp(22px, 3.5vw, 30px);
  --hv-text-3xl: clamp(26px, 4.5vw, 38px);
  --hv-z-base: 1;
  --hv-z-dropdown: 100;
  --hv-z-sticky: 200;
  --hv-z-overlay: 1000;
  --hv-z-modal: 10000;
  --hv-z-tooltip: 10002;
  /* v4.0 扩展令牌 */
  --hv-grad-primary: linear-gradient(135deg, var(--hv-primary-light) 0%, var(--hv-primary) 100%);
  --hv-grad-gold: linear-gradient(135deg, var(--hv-accent-light) 0%, var(--hv-accent) 50%, var(--hv-accent-dark) 100%);
  --hv-grad-hero: linear-gradient(135deg, #0D2540 0%, #142E4D 30%, #1B3A5F 60%, #2A5283 100%);
  --hv-grad-card: linear-gradient(135deg, var(--hv-bg-card) 0%, rgba(27,58,95,.02) 100%);
  --hv-glow-primary: 0 0 20px rgba(27,58,95,.15);
  --hv-glow-accent: 0 0 16px rgba(201,168,76,.25);
  --hv-shadow-lg: 0 8px 24px rgba(15,42,67,.08), 0 16px 48px rgba(27,58,95,.10);
  --hv-shadow-glow: 0 4px 16px rgba(201,168,76,.15), 0 8px 32px rgba(27,58,95,.12);
  --hv-space-2xs: 4px;
  --hv-ease-elastic: cubic-bezier(.68,-.55,.27,1.55);

  /* v5.0 UX 性能增强令牌 */
  --hv-tap-highlight: transparent;
  --hv-scroll-behavior: smooth;

  /* v5.0 侧边栏优先级系统令牌 */
  --hv-card-p0-bg: linear-gradient(135deg, var(--hv-bg-card) 0%, rgba(27,58,95,.04) 100%);
  --hv-card-p1-bg: linear-gradient(135deg, var(--hv-bg-card) 0%, rgba(27,58,95,.03) 100%);
  --hv-card-p2-bg: linear-gradient(135deg, var(--hv-bg-card) 0%, rgba(27,58,95,.02) 100%);
  --hv-card-p3-bg: linear-gradient(135deg, var(--hv-bg-card) 0%, rgba(27,58,95,.01) 100%);

  /* v5.0 卡片层级阴影系统 */
  --hv-shadow-l1: 0 1px 3px rgba(15,42,67,.04);
  --hv-shadow-l2: 0 2px 8px rgba(15,42,67,.06), 0 4px 16px rgba(27,58,95,.04);
  --hv-shadow-l3: 0 8px 24px rgba(15,42,67,.08), 0 16px 48px rgba(27,58,95,.10);

  /* v5.0 毛玻璃效果 */
  --hv-glass-bg: rgba(255,255,255,.72);
  --hv-glass-blur: blur(8px) saturate(160%);

  /* v6.0 排版与头像令牌 */
  --hv-text-post: 15px;
  --hv-avatar-xl: 44px;
  --hv-avatar-lg: 40px;
  --hv-avatar-md: 36px;
  --hv-avatar-sm: 30px;
  --hv-letter-spacing: .01em;

  /* v6.1 气泡设计令牌 */
  --hv-bubble-bg: rgba(255,255,255,.92);
  --hv-bubble-border: var(--hv-border);
  --hv-bubble-radius: 2px 14px 14px 14px;
  --hv-bubble-shadow: 0 1px 4px rgba(15,42,67,.06);
  --hv-bubble-shadow-hover: 0 3px 12px rgba(15,42,67,.10);
  --hv-bubble-admin-bg: linear-gradient(135deg, rgba(201,168,76,.10) 0%, rgba(201,168,76,.04) 60%, var(--hv-bg-card) 100%);
  --hv-bubble-admin-border: rgba(201,168,76,.28);
  --hv-bubble-admin-shadow: 0 2px 10px rgba(201,168,76,.08);
}

/* ============================================
   v5.0 UX 性能增强全局规则
   - smooth scroll: 锁点导航平滑滚动
   - tap-highlight: 移除移动端点击高亮
   - overscroll-behavior: 防止滚动链式传播
   - touch-action: 消除 300ms 点击延迟
   ============================================ */
html { scroll-behavior: var(--hv-scroll-behavior); }
body { -webkit-tap-highlight-color: var(--hv-tap-highlight); overscroll-behavior-y: none; }
.hv-post-action, .hv-tb-btn, .hv-share-btn, .hv-fontsize-btn, .hv-floor-nav-btn, .hv-back-top, .hv-filter-btn { touch-action: manipulation; }

/* ============================================
   弹窗系统共享基类 — 统一遮罩/卡片/头部/标题/关闭按钮
   三套弹窗（alt-modal/reply-modal/mod-card）通过分组选择器共享属性
   各弹窗仅保留特有属性，消除重复声明
   ============================================ */
.hv-modal-overlay, .hv-alt-modal-overlay, .hv-reply-modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.5); display: none; align-items: center; justify-content: center; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.hv-modal-card, .hv-reply-modal, .hv-alt-modal-card, .hv-mod-card { background: var(--hv-bg-card); border-radius: var(--hv-radius-lg); display: flex; flex-direction: column; box-sizing: border-box; }
.hv-modal-header, .hv-reply-modal-header, .hv-alt-modal-overlay .hv-alt-header { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
.hv-modal-title, .hv-reply-modal-title, .hv-alt-modal-overlay .hv-alt-header-title { display: flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 600; color: var(--hv-primary-text, var(--hv-primary)); }
.hv-modal-close, .hv-reply-modal-close, .hv-alt-modal-close { width: 30px; height: 30px; border: none; background: transparent; font-size: 22px; color: var(--hv-text-muted); cursor: pointer; border-radius: var(--hv-radius-full);; display: flex; align-items: center; justify-content: center; transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth), transform .1s var(--hv-ease-smooth); line-height: 1; padding: 0; }
.hv-modal-close:hover, .hv-reply-modal-close:hover, .hv-alt-modal-close:hover { background: var(--hv-bg-hover); color: var(--hv-primary-text, var(--hv-primary)); }
.hv-modal-close:active, .hv-reply-modal-close:active, .hv-alt-modal-close:active { transform: scale(.9); }

/* ============================================
   v3.0 核心布局 CSS — 内联定义，不依赖外部CSS文件
   ============================================ */
/* 页面容器 */
.hv-wrap {
  max-width: var(--hv-wrap-w);
  margin: 0 auto;
  padding: 0 20px;
}
/* CSS Grid 双栏布局 */
.hv-layout {
  display: grid;
  grid-template-columns: 1fr var(--hv-sidebar-w);
  grid-template-areas: "main sidebar";
  gap: 28px;
  align-items: start;
  margin-top: 16px;
}
.hv-main { grid-area: main; min-width: 0; }
.hv-sidebar {
  grid-area: sidebar;
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: sticky;
  top: 70px;
  max-height: calc(100vh - 90px);
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--hv-border) transparent;
  -ms-overflow-style: none;
  padding-right: 8px;
  contain: layout style; /* 侧边栏布局隔离，提升滚动性能 */
}
.hv-sidebar::-webkit-scrollbar { width: 4px; }
.hv-sidebar::-webkit-scrollbar-thumb {
  background: var(--hv-border);
  border-radius:var(--hv-radius-md)
}
.hv-sidebar::-webkit-scrollbar-track { background: transparent; }
/* 平板 1024px */

/* 手机 768px — 抽屉式布局 */

/* 移动端浮动按钮 (FAB) */
.hv-sidebar-fab {
  display: none;
}

/* 移动端抽屉遮罩 */
.hv-sidebar-overlay {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,.4);
  z-index: var(--hv-z-overlay);
  opacity: 0;
  transition: opacity .3s var(--hv-ease-smooth);
}
.hv-sidebar-overlay.hv-show {
  opacity: 1;
}

/* 超小屏 480px — 极简模式 */

/* 帖子卡片基础 */
.hv-post-card {
  background: var(--hv-bg-card);
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-lg);
  padding: 24px;
  margin-bottom: 20px;
  transition: box-shadow .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth);
  scroll-margin-top: 72px;
  position: relative;
}
/* 帖子卡片顶部渐变条（OP=金色，普通=品牌蓝） */
.hv-post-card::before {
  content: '';
  position: absolute;
  top: 0; left: 16px; right: 16px;
  height: 3px;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-primary-light), transparent);
  border-radius: 0 0 2px 2px;
  opacity: 0;
  transition: opacity .3s var(--hv-ease-smooth);
}
.hv-post-card:hover::before { opacity: .6; }
.hv-post-card.op::before {
  background: linear-gradient(90deg, var(--hv-accent), var(--hv-accent-light), transparent);
  opacity: .4;
}
/* 帖子卡片滚动入场动画 */
@keyframes hvPostCardIn {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.hv-post-card.hv-animate-in {
  animation: hvPostCardIn .45s var(--hv-ease-smooth) both;
}
/* 帖子用户栏 */
.hv-post-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.hv-post-avatar { flex-shrink: 0; position: relative; }
.hv-post-avatar img { width: var(--hv-avatar-xl); height: var(--hv-avatar-xl); border-radius: var(--hv-radius-full);; transition: box-shadow .3s var(--hv-ease-smooth), transform .3s var(--hv-ease-smooth); }
/* 头像光环：hover 时发光 + OP/管理员差异化配色 */
.hv-post-card:hover .hv-post-avatar img { box-shadow: 0 0 0 3px var(--hv-primary-bg), 0 0 12px rgba(27,58,95,.12); transform: scale(1.05); }
.hv-post-card.op:hover .hv-post-avatar img { box-shadow: 0 0 0 3px var(--hv-accent-bg), 0 0 14px rgba(201,168,76,.18); }
.hv-post-card.hv-admin-reply:hover .hv-post-avatar img { box-shadow: 0 0 0 3px rgba(201,168,76,.15), 0 0 14px rgba(201,168,76,.2); }
.hv-post-userinfo { flex: 1; min-width: 0; }
.hv-post-username {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  font-size: 14px;
}
.hv-post-username a { color: var(--hv-text-title); text-decoration: none; }
.hv-post-username a:hover { text-decoration: underline; }
.hv-post-userlevel {
  font-size: 11px;
  color: var(--hv-text-muted);
  background: var(--hv-border-light);
  padding: 1px 6px;
  border-radius: var(--hv-radius-xs);
  font-weight: 400;
}
/* OP 两层布局：第一层=身份+帖数据（竖线分两区），第二层=会员统计胶囊 */
.hv-post-card.op .hv-post-username { flex-wrap: wrap; row-gap: 4px; }
.hv-post-threadmeta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  margin-left: 4px;
  padding-left: 10px;
  border-left: 1px solid var(--hv-border);
  font-size: 12px;
  font-weight: 400;
  color: var(--hv-text-muted);
}
.hv-post-threadmeta b { color: var(--hv-primary-text, var(--hv-primary)); font-weight: 700; }
.hv-post-threadmeta > span + span::before {
  content: '';
  display: inline-block;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: var(--hv-border);
  margin-right: 10px;
  vertical-align: 2px;
}
/* OP 会员统计行（第二层）：胶囊化分组展示 */
.hv-post-userstats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
}
.hv-post-userstats .hv-op-badge { margin: 0; }
.hv-stat-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  font-size: 11px;
  color: var(--hv-text-muted);
  background: var(--hv-bg-hover);
  border: 1px solid var(--hv-border-light);
  border-radius: var(--hv-radius-full);
  line-height: 1.5;
  white-space: nowrap;
}
.hv-stat-chip b { color: var(--hv-primary-text, var(--hv-primary)); font-weight: 700; }
.hv-stat-chip.hv-stat-accent { background: var(--hv-accent-bg); border-color: var(--hv-accent-border); }
.hv-stat-chip.hv-stat-accent b { color: var(--hv-accent-ink); }
/* 回复卡片不使用统计行（防御） */
.hv-post-card:not(.op) .hv-post-userstats { display: none; }
/* 移动端统计行自适应 */
@media (max-width: 480px) {
  .hv-post-userstats { gap: 4px; }
  .hv-stat-chip { padding: 2px 8px; font-size: 10px; }
}
.hv-post-floor {
  flex-shrink: 0;
  font-size: 13px;
  color: var(--hv-text-muted);
}
/* 帖子正文 */
.hv-post-body {
  font-size: var(--hv-text-post);
  line-height: 1.75;
  color: var(--hv-text-title);
  word-wrap: break-word;
  overflow-wrap: break-word;
  letter-spacing: var(--hv-letter-spacing);
  text-wrap: pretty;
}
.hv-post-body img { max-width: 100%; height: auto; border-radius: var(--hv-radius-sm-plus); box-shadow: var(--hv-shadow-img); }
.hv-post-body a { color: var(--hv-primary-text, var(--hv-primary)); text-decoration: none; transition: color .2s var(--hv-ease-smooth); }
.hv-post-body a:hover { color: var(--hv-primary-light); text-decoration: underline; }
.hv-post-body blockquote {
  display: block;
  position: relative;
  margin: 16px 0;
  padding: 14px 18px 14px 22px;
  background: linear-gradient(135deg, var(--hv-accent-bg) 0%, rgba(201,168,76,.03) 100%);
  border-left: 4px solid var(--hv-accent);
  border-radius: 0 var(--hv-radius-sm-plus) var(--hv-radius-sm-plus) 0;
  color: var(--hv-text-primary);
  font-size: var(--hv-text-base);
  line-height: 1.7;
  box-shadow: 0 1px 3px rgba(201,168,76,.08), 0 2px 8px rgba(15,42,67,.04);
}
/* 引用块容器：覆盖 Discuz 默认 .quote{width:585px;overflow:hidden;...} */
.hv-post-body .quote { width: auto !important; max-width: 100% !important; margin: 16px 0; padding: 1px 0; overflow: visible; background: none; }
/* .quote 内的 blockquote：覆盖 Discuz 默认 display:inline-block */
.hv-post-body .quote > blockquote { display: block; }
/* 帖子底部操作栏 */
.hv-post-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--hv-border-light);
}
.hv-post-foot-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.hv-post-action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 12px;
  font-size: 13px;
  font-weight: 500;
  color: var(--hv-text-body);
  background: var(--hv-bg-hover);
  border: 1px solid transparent;
  border-radius: var(--hv-radius-full);;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth), box-shadow .2s var(--hv-ease-smooth), transform .2s var(--hv-ease-smooth);
}
.hv-post-action:hover {
  background: var(--hv-primary-bg);
  color: var(--hv-primary-text, var(--hv-primary));
  border-color: var(--hv-primary-border);
  box-shadow: 0 2px 8px rgba(27,58,95,.08);
  transform: translateY(-1px);
}
.hv-post-action:active {
  transform: translateY(0) scale(.96);
  box-shadow: 0 1px 3px rgba(27,58,95,.06);
  transition: transform .08s var(--hv-ease-smooth);
}
/* 回复按钮主操作色 */
.hv-reply-btn { color: var(--hv-accent) !important; }
.hv-reply-btn:hover { color: var(--hv-accent-ink) !important; background: var(--hv-accent-bg) !important; border-color: var(--hv-accent-border) !important; }
/* 侧栏卡片 */
.hv-side-card {
  background: linear-gradient(135deg, var(--hv-bg-card) 0%, rgba(27,58,95,.03) 100%);
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-lg);
  padding: 18px;
  margin-bottom: 0;
  box-shadow: var(--hv-shadow-sm);
  position: relative;
  overflow: hidden;
  contain: layout style;
  content-visibility: auto;
  contain-intrinsic-size: auto 200px;
  flex-shrink: 0;
  transition: box-shadow .3s var(--hv-ease-smooth), border-color .3s var(--hv-ease-smooth), transform .3s var(--hv-ease-smooth);
}
/* backdrop-filter 降级：不支持毛玻璃的浏览器使用纯色背景 */
@supports not (backdrop-filter: blur(2px)) {
  .hv-side-card { background: var(--hv-bg-card); }
}
.hv-side-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent), var(--hv-primary));
  opacity: 0;
  transition: opacity .3s var(--hv-ease-smooth);
}
.hv-side-card:hover {
  box-shadow: 0 4px 12px rgba(15,42,67,.06), 0 8px 28px rgba(27,58,95,.08), 0 0 0 1px rgba(201,168,76,.08);
  border-color: var(--hv-accent-border);
  transform: translateY(-2px);
}
.hv-side-card:hover::before { opacity: 1; }
.hv-side-card:last-child {
  margin-bottom: 0 !important;
}

/* ===== 侧边栏广告位 ===== */
.hv-ad-slot {
  margin: 12px 0 !important;
}
.hv-ad-slot .hv-side-title {
  display: none !important; /* 广告隐藏标题 */
}
.hv-ad-slot .hv-side-card-body {
  padding: 8px !important;
  overflow: hidden !important;
}
.hv-ad-slot::before { opacity: 0 !important; } /* 去除装饰线 */

/* v5.0 卡片优先级系统 */
.hv-side-card-p0 {
  background: var(--hv-glass-bg);
  backdrop-filter: var(--hv-glass-blur);
  -webkit-backdrop-filter: var(--hv-glass-blur);
  border-color: var(--hv-primary-border);
  box-shadow: var(--hv-shadow-l2);
}
.hv-side-card-p0::before { opacity: 1; }
.hv-side-card-p1 { background: var(--hv-card-p1-bg); }
.hv-side-card-p2 { background: var(--hv-card-p2-bg); }
.hv-side-card-p3 { background: var(--hv-card-p3-bg); }
.hv-side-card-p4 {
  background: var(--hv-glass-bg);
  backdrop-filter: var(--hv-glass-blur);
  -webkit-backdrop-filter: var(--hv-glass-blur);
  border-color: var(--hv-accent-border);
  box-shadow: var(--hv-shadow-l2);
}
.hv-side-card-p4::before { opacity: 1; }

/* P0 精简指标条: 迷你进度条 */
.hv-floor-progress-mini { padding: 6px 8px; margin-bottom: 0; }
.hv-floor-progress-mini .hv-floor-progress-bar { height: 4px; }

/* 不可折叠卡片: 隐藏折叠按钮 */
.hv-side-card[data-nocollapse] .hv-side-collapse-btn { display: none !important; }

.hv-side-title {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 12px;
  color: var(--hv-primary-text, var(--hv-primary));
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  padding-left: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--hv-border-light);
}
.hv-side-title::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 16px;
  border-radius: var(--hv-radius-md);
  background: linear-gradient(180deg, var(--hv-primary), var(--hv-accent));
  box-shadow: 0 0 6px rgba(201,168,76,.25);
}
/* 侧栏指标网格 */
.hv-side-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 12px;
}
.hv-side-metric { 
  text-align: center; 
  padding: 10px 8px;
  background: linear-gradient(135deg, var(--hv-bg-hover) 0%, rgba(27,58,95,.01) 100%);
  border: 1px solid transparent;
  border-radius: var(--hv-radius-sm);
  transition: background .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth);
  cursor: default;
  min-width: 0;
  overflow: hidden;
}
.hv-side-metric:hover {
  background: var(--hv-primary-bg);
  border-color: var(--hv-accent-border);
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(27,58,95,.08), 0 0 0 1px rgba(201,168,76,.06);
}
.hv-side-metric-num { 
  display: block; 
  font-size: 20px; 
  font-weight: 800; 
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-accent));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  line-height: 1.3;
  filter: drop-shadow(0 1px 2px rgba(201,168,76,.15));
  overflow: visible;
  word-break: break-word;
}
.hv-side-metric span { 
  font-size: 11px; 
  color: var(--hv-text-muted);
  font-weight: 500;
  display: block;
  margin-top: 4px;
}
/* 面包屑 — 统一定义（合并去重） */
.hv-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--hv-text-muted);
  margin-bottom: 12px;
  flex-wrap: wrap;
  padding: 10px 16px;
  background: linear-gradient(135deg, var(--hv-bg-card) 0%, rgba(27,58,95,.03) 100%);
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-sm);
  box-shadow: 0 2px 6px rgba(15,42,67,.04), 0 4px 12px rgba(27,58,95,.03);
  transition: border-color .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth);
}
.hv-breadcrumb:hover {
  border-color: var(--hv-primary-border);
  box-shadow: 0 4px 10px rgba(15,42,67,.05), 0 8px 20px rgba(27,58,95,.04);
}
.hv-breadcrumb a {
  color: var(--hv-text-body);
  text-decoration: none;
  transition: color .2s var(--hv-ease-smooth), text-shadow .2s var(--hv-ease-smooth);
}
.hv-breadcrumb a:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  text-shadow: 0 0 8px rgba(27,58,95,.12);
}
.hv-breadcrumb .hv-sep {
  color: var(--hv-accent);
  opacity: .45;
  font-weight: 700;
}
.hv-breadcrumb .hv-current {
  color: var(--hv-primary-text, var(--hv-primary));
  font-weight: 600;
}
/* ===== 快速操作卡片增强 ===== */
/* 卡片初始淡入动画 */
@keyframes hvCardFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.hv-side-card {
  animation: hvCardFadeIn .4s var(--hv-ease-smooth) backwards; /* backwards 而非 both：forwards 会在动画结束后永久保留末帧 transform，使卡片成为常驻 containing block，劫持卡内 position:fixed 后代（如广告购买弹窗）的定位 */
}
.hv-side-card:nth-child(1) { animation-delay: .05s; }
.hv-side-card:nth-child(2) { animation-delay: .1s; }
.hv-side-card:nth-child(3) { animation-delay: .15s; }
.hv-side-card:nth-child(4) { animation-delay: .2s; }
.hv-side-card:nth-child(5) { animation-delay: .25s; }

/* 折叠按钮样式 - 优化版 */
.hv-side-collapse-btn {
  color: var(--hv-text-muted);
  border: 1px solid var(--hv-border);
  background: transparent;
  border-radius: var(--hv-radius-full);;
  width: 24px;
  height: 24px;
  padding: 0;
  cursor: pointer;
  transition: background .25s var(--hv-ease-smooth), color .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth);
  flex-shrink: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin-left: auto;
}
.hv-side-collapse-btn:hover {
  background: var(--hv-primary-bg);
  color: var(--hv-primary-text, var(--hv-primary));
  border-color: var(--hv-primary-border);
  transform: scale(1.15);
  box-shadow: 0 2px 6px rgba(27,58,95,.1);
}
.hv-side-collapse-btn:active {
  transform: scale(1.05);
}
/* CSS Tooltip — 定位于按钮下方避免被 sidebar overflow 裁切 */
.hv-side-collapse-btn::after {
  content: attr(data-tooltip);
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px) scale(0);
  transform-origin: top center;
  background: var(--hv-bg-dark);
  color: #fff;
  padding: 4px 10px;
  border-radius: var(--hv-radius-xs-plus);
  font-size: 11px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: transform .2s var(--hv-ease-smooth), opacity .2s var(--hv-ease-smooth);
  z-index: 1000;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.hv-side-collapse-btn:hover::after {
  transform: translateX(-50%) translateY(4px) scale(1);
  opacity: 1;
}
/* CSS 绘制 chevron 图标 — 比 Unicode 字符更清晰可缩放 */
.hv-side-collapse-btn::before {
  content: '';
  width: 6px;
  height: 6px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  display: block;
  transition: transform .3s var(--hv-ease-bounce);
  margin-top: -2px;
}
/* 折叠状态：chevron 朝上指示可展开 */
.hv-side-card.hv-collapsed .hv-side-collapse-btn::before {
  transform: rotate(-45deg);
  margin-top: 2px;
}
/* 折叠状态按钮背景微调 */
.hv-side-card.hv-collapsed .hv-side-collapse-btn {
  background: var(--hv-accent-bg);
  border-color: var(--hv-accent-border);
  color: var(--hv-accent-ink);
}

/* ===== 增强动画系统 ===== */
/* 增强折叠动画 */
.hv-side-card-body {
  overflow: hidden;
  transition: max-height .35s var(--hv-ease-smooth), opacity .2s var(--hv-ease-smooth), transform .2s var(--hv-ease-smooth);
}
.hv-side-card.hv-collapsed .hv-side-card-body {
  max-height: 0 !important;
  opacity: 0;
  transform: translateY(-10px);
}

/* 卡片 hover 微交互 */
.hv-side-action-btn, .hv-side-action-main, .hv-side-forum-link {
  position: relative;
  overflow: hidden;
}
.hv-side-action-btn::after, .hv-side-action-main::after, .hv-side-forum-link::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 0; height: 0;
  border-radius: var(--hv-radius-full);
  background: rgba(255,255,255,.3);
  transform: translate(-50%, -50%);
  transition: width .5s var(--hv-ease-smooth), height .5s var(--hv-ease-smooth);
  pointer-events: none;
}
.hv-side-action-btn:active::after, .hv-side-action-main:active::after, .hv-side-forum-link:active::after {
  width: 300px; height: 300px;
  transition: width 0s, height 0s;
}

/* 按钮入场动画（错开延迟） */
@keyframes hvBtnSlideIn {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}
.hv-side-card-body > * {
  animation: hvBtnSlideIn .35s var(--hv-ease-smooth) both;
}
.hv-side-card-body > *:nth-child(1) { animation-delay: .1s; }
.hv-side-card-body > *:nth-child(2) { animation-delay: .15s; }
.hv-side-card-body > *:nth-child(3) { animation-delay: .2s; }

/* 折叠时按钮退场动画 */
@keyframes hvBtnSlideOut {
  from { opacity: 1; transform: translateX(0); }
  to { opacity: 0; transform: translateX(-20px); }
}
.hv-side-card.hv-collapsed .hv-side-card-body > * {
  animation: hvBtnSlideOut .15s ease-in forwards;
}

/* 主按钮脉冲呼吸效果 */
@keyframes hvPulse {
  0%, 100% { box-shadow: 0 2px 8px rgba(27,58,95,.15); }
  50% { box-shadow: 0 4px 16px rgba(27,58,95,.25), 0 0 0 3px rgba(27,58,95,.08); }
}
.hv-side-action-main {
  animation: hvPulse 3s ease-in-out infinite;
}

/* 主题色切换面板 */
.hv-theme-switcher {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 0;
  border-top: 1px dashed var(--hv-border);
  margin-top: 8px;
}
.hv-theme-switcher-label {
  font-size: 11px;
  color: var(--hv-text-muted);
  font-weight: 500;
  flex-shrink: 0;
}
.hv-theme-dot {
  width: 18px;
  height: 18px;
  border-radius: var(--hv-radius-full);
  cursor: pointer;
  border: 2px solid transparent;
  transition: transform .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth);
  flex-shrink: 0;
  position: relative;
}
.hv-theme-dot:hover {
  transform: scale(1.2);
}
.hv-theme-dot.active {
  border-color: var(--hv-text-primary);
  transform: scale(1.15);
}
.hv-theme-dot.active::after {
  content: '\2713';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-size: 9px;
  color: #fff;
  font-weight: 700;
}
.hv-theme-navy { background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark)); }
.hv-theme-emerald { background: linear-gradient(135deg, #0F6B5E, #0A4D44); }
.hv-theme-royal { background: linear-gradient(135deg, #4B2E83, #2D1B5E); }
.hv-theme-sunset { background: linear-gradient(135deg, #C04A2E, #8B3A1F); }

/* 尊重用户动画偏好 */

/* 徽章 */
.hv-badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  font-size: 11px;
  font-weight: 600;
  border-radius: var(--hv-radius-full);;
}
/* 标签 */
.hv-thread-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.hv-thread-tags span {
  display: inline-block;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  border-radius: var(--hv-radius-xs)
}
/* 阅读进度条：渐变+光晕 */
.hv-read-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent), var(--hv-accent-light));
  background-size: 200% 100%;
  z-index: var(--hv-z-tooltip);
  transition: width .1s linear;
  box-shadow: 0 0 8px rgba(201,168,76,.3), 0 0 16px rgba(201,168,76,.1);
  border-radius: 0 2px 2px 0;
}
/* 吸顶栏 */
.hv-sticky-bar {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: var(--hv-z-sticky);
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--hv-border);
  box-shadow: var(--hv-shadow-img);
  transform: translateY(-100%);
  transition: transform .3s var(--hv-ease-smooth);
  contain: layout style; /* 吸顶栏布局隔离，减少 backdrop-filter 重绘范围 */
}
.hv-sticky-bar.show { transform: translateY(0); }
/* 返回顶部：渐变+进度环+悬浮动画 */
.hv-back-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 44px;
  height: 44px;
  border-radius: var(--hv-radius-full);;
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-light));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: var(--hv-z-sticky);
  opacity: 0;
  transform: translateY(20px) scale(.9);
  transition: opacity .35s var(--hv-ease-smooth), transform .35s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth);
  box-shadow: 0 4px 12px rgba(27,58,95,.15), 0 0 0 0 rgba(27,58,95,.1);
}
.hv-back-top.show { opacity: 1; transform: translateY(0) scale(1); }
.hv-back-top:hover {
  box-shadow: 0 6px 20px rgba(27,58,95,.25), 0 0 0 4px rgba(27,58,95,.06);
  transform: translateY(-3px) scale(1.05);
}
.hv-back-top:active { transform: translateY(0) scale(.95); box-shadow: 0 2px 8px rgba(27,58,95,.15); }
/* 合规提示 */
.hv-compliance-wrap { margin: 20px 0; }
.hv-compliance-tip {
  padding: 10px 16px;
  background: rgba(201,168,76,.06);
  border: 1px solid var(--hv-accent-border);
  border-radius: var(--hv-radius-sm);
  font-size: 13px;
  color: var(--hv-text-muted);
  line-height: 1.6;
}

/* 页面背景：深海蓝+鎏金三径向渐变（增强层次感） */
.hv-page, .hv-portal {
  background: radial-gradient(ellipse 800px 400px at 50% -10%, rgba(27,58,95,.07) 0%, transparent 55%),
              radial-gradient(ellipse 600px 350px at 100% 0%, rgba(201,168,76,.05) 0%, transparent 45%),
              radial-gradient(ellipse 500px 300px at -5% 100%, rgba(27,58,95,.03) 0%, transparent 50%),
              var(--hv-bg-page) !important;
}
/* 头部：毛玻璃效果 */
.hv-header {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: blur(12px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(180%) !important;
  box-shadow: 0 1px 0 rgba(27,58,95,.08), 0 2px 12px rgba(15,42,67,.06) !important;
  contain: layout style; /* 头部布局隔离，减少毛玻璃重绘开销 */
}
.hv-header::after {
  content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-primary-light) 30%, var(--hv-accent) 70%, var(--hv-accent-light) 100%) !important;
  opacity: .55;
}
/* 导航激活态：渐变胶囊 */
.hv-nav-item.active {
  background: linear-gradient(135deg, var(--hv-primary-bg), rgba(201,168,76,.08)) !important;
  border-radius: var(--hv-radius-full) !important;
}
.hv-nav-item.active::after { display: none !important; }
/* Logo渐变文字 */
.hv-logo-text {
  background: linear-gradient(135deg, var(--hv-primary) 0%, var(--hv-primary-light) 50%, #3a6ba5 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
/* 帖子标题：渐变文字 */
.hv-thread-header .hv-thread-title {
  background: linear-gradient(135deg, var(--hv-primary) 0%, var(--hv-primary-light) 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-size: clamp(20px, 4vw, 28px) !important;
  font-weight: 800 !important;
  text-wrap: balance !important;
}
/* 帖子标题区：品牌渐变背景 */
.hv-thread-header {
  background: linear-gradient(135deg, var(--hv-bg-card) 0%, rgba(27,58,95,.03) 100%) !important;
  border: 1px solid var(--hv-border) !important;
  border-radius: var(--hv-radius-lg) !important;
  box-shadow: var(--hv-shadow-sm) !important;
  padding: 20px 24px !important;
}
/* 帖子标题区顶部光带 */
.hv-thread-header::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent)) !important;
  border-radius: var(--hv-radius-lg) var(--hv-radius-lg) 0 0;
}
/* 楼主楼层：鎏金顶部光带 */
.hv-post-card.op {
  position: relative; overflow: hidden;
  border: 1px solid var(--hv-accent-border) !important;
}
.hv-post-card.op::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--hv-accent), var(--hv-accent-light) 50%, var(--hv-accent)) !important;
  border-radius: var(--hv-radius-lg) var(--hv-radius-lg) 0 0;
  z-index: 1;
}
/* 楼层卡片：hover光感（使用 --hv-shadow-md 令牌） */
.hv-post-card:hover {
  box-shadow: var(--hv-shadow-md) !important;
  border-color: var(--hv-primary-border) !important;
}
/* 楼主徽章：鎏金渐变 */
.hv-badge-primary {
  background: linear-gradient(135deg, var(--hv-primary-light), var(--hv-primary)) !important;
  box-shadow: 0 2px 6px rgba(27,58,95,.18) !important;
}
/* 楼层号：品牌色胶囊 */
.hv-post-floor {
  background: var(--hv-primary-bg) !important;
  color: var(--hv-primary-text, var(--hv-primary)) !important;
  border-radius: var(--hv-radius-full) !important;
  padding: 2px 10px !important;
  font-weight: 700 !important;
}
/* 工具栏：卡片化渐变背景 */
.hv-thread-toolbar {
  background: linear-gradient(135deg, var(--hv-bg-card) 0%, rgba(27,58,95,.03) 100%) !important;
  border: 1px solid var(--hv-border) !important;
  border-radius: var(--hv-radius-lg) !important;
  box-shadow: 0 2px 8px rgba(15,42,67,.05), 0 4px 16px rgba(27,58,95,.04) !important;
  transition: box-shadow .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth);
}
.hv-thread-toolbar:hover {
  border-color: var(--hv-primary-border) !important;
  box-shadow: 0 4px 12px rgba(15,42,67,.06), 0 8px 24px rgba(27,58,95,.05) !important;
}
/* 工具栏激活态 */
.hv-filter-btn.active {
  background: linear-gradient(135deg, var(--hv-primary-light), var(--hv-primary)) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(27,58,95,.20) !important;
}
/* 主按钮渐变 */
.hv-btn-primary {
  background: linear-gradient(135deg, var(--hv-primary-light) 0%, var(--hv-primary) 100%) !important;
}
.hv-btn-primary:hover {
  background: linear-gradient(135deg, var(--hv-primary) 0%, var(--hv-primary-dark) 100%) !important;
  box-shadow: 0 6px 20px rgba(27,58,95,.25) !important;
}
/* 侧栏标题：已移除竖条装饰 */
/* 侧栏卡片：hover品牌光感（已由上方基础样式统一控制） */
/* 侧栏操作主按钮 */
.hv-side-action-main {
  display: block;
  text-align: center;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 600;
  border: none;
  border-radius: var(--hv-radius-sm);
  text-decoration: none;
  color: #fff;
  background: linear-gradient(135deg, var(--hv-primary-light), var(--hv-primary));
  transition: background .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth), transform .3s var(--hv-ease-smooth);
  box-shadow: 0 2px 8px rgba(27,58,95,.15);
  margin-top: 6px;
}
.hv-side-action-main:hover {
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark));
  box-shadow: 0 4px 14px rgba(27,58,95,.25);
  transform: translateY(-1px);
}
.hv-side-action-main:active {
  transform: translateY(0);
  box-shadow: 0 1px 4px rgba(27,58,95,.1);
}

/* 侧栏操作按钮网格 */
.hv-side-actions-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-top: 8px;
}

/* 侧栏操作按钮 */
.hv-side-action-btn { 
  text-align: center; 
  padding: 10px 8px; 
  font-size: 13px;
  font-weight: 500;
  border: 1px solid var(--hv-border); 
  border-radius: var(--hv-radius-sm); 
  text-decoration: none; 
  color: var(--hv-text-body); 
  background: var(--hv-bg-card);
  transition: background .25s var(--hv-ease-smooth), color .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth);
  box-shadow: var(--hv-shadow-sm);
  cursor: pointer;
}
.hv-side-action-btn:hover { 
  background: linear-gradient(135deg, var(--hv-primary-bg) 0%, rgba(201,168,76,.03) 100%); 
  color: var(--hv-primary-text, var(--hv-primary));
  border-color: var(--hv-accent-border);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(27,58,95,.1), 0 0 0 1px rgba(201,168,76,.06);
}
.hv-side-action-btn:active {
  transform: translateY(0);
  box-shadow: var(--hv-shadow-sm);
}

/* 吸顶栏：毛玻璃 */
.hv-sticky-bar {
  background: rgba(255,255,255,.85) !important;
  backdrop-filter: blur(12px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(180%) !important;
}
/* 阅读进度条：品牌渐变+发光 */
.hv-read-progress {
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent)) !important;
  box-shadow: 0 0 8px rgba(201,168,76,.4) !important;
}
/* 返回顶部：渐变按钮 */
.hv-float-btn {
  background: linear-gradient(135deg, var(--hv-primary-light), var(--hv-primary)) !important;
  box-shadow: 0 4px 14px rgba(27,58,95,.22) !important;
}
.hv-float-btn:hover {
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark)) !important;
  box-shadow: 0 6px 20px rgba(27,58,95,.30) !important;
  transform: translateY(-2px) !important;
}
/* 相关推荐卡片：hover品牌光带 */
.hv-related-card {
  position: relative; overflow: hidden; transition: border-color .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth), transform .3s var(--hv-ease-smooth), background .3s var(--hv-ease-smooth) !important;
}
.hv-related-card::before {
  content: ""; position: absolute; top: 0; left: 0; width: 3px; height: 100%;
  background: linear-gradient(180deg, var(--hv-primary), var(--hv-accent)) !important;
  opacity: 0; transition: opacity .3s var(--hv-ease-smooth);
}
.hv-related-card:hover {
  border-color: var(--hv-primary-border) !important;
  box-shadow: 0 4px 16px rgba(27,58,95,.08) !important;
  transform: translateY(-2px) !important;
}
.hv-related-card:hover::before { opacity: 1 !important; }

/* v4.0 Hero Banner 花哨层已删（2026-08-27）：hero-bg 节点与伪元素已亡、极简层全面接管，详见文件尾部极简覆盖段 */
/* Hero Meta Row/作者光环/统计胶囊 CSS 已删：v3.2 起相应节点已并入楼主帖用户栏，类名全站零使用 */

/* 面包屑样式已统一定义于 line 609，此处不再重复 */
/* Post Card 左侧渐变条 */
.hv-post-card {
  position: relative;
  border-left: 3px solid transparent !important;
}
.hv-post-card.op { border: none !important; background: transparent !important; padding: 12px 0 !important; margin-bottom: 8px !important; }
.hv-post-card.op .hv-post-head { margin-bottom: 8px !important; }
/* 楼层间分隔线（OP与回复之间） */
#postlist > article.op + article {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
/* 帖子统计栏渐变 */
.hv-post-stats {
  background: linear-gradient(135deg, var(--hv-primary-bg) 0%, rgba(201,168,76,.06) 100%) !important;
  border-radius: var(--hv-radius-md) !important;
  border-left: 3px solid var(--hv-accent) !important;
  padding: 12px 16px !important;
  box-shadow: 0 2px 8px rgba(201,168,76,.06) !important;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--hv-text-muted);
}
.hv-post-stats b { color: var(--hv-primary-text, var(--hv-primary)); font-weight: 700; }
.hv-text-accent { color: var(--hv-accent-ink) !important; font-weight: 700; }
.hv-op-badge { font-weight: 600 !important; color: var(--hv-accent-ink) !important; }
/* 用户头像圆环 */
.hv-post-avatar img, .hv-post-avatar a {
  border-radius: var(--hv-radius-full) !important;
}
.hv-post-avatar {
  border: 2px solid var(--hv-border) !important;
  border-radius: var(--hv-radius-full) !important;
  overflow: hidden;
  transition: border-color .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth), transform .3s var(--hv-ease-smooth);
}
.hv-post-card.op .hv-post-avatar {
  border-color: var(--hv-accent) !important;
  box-shadow: 0 0 0 2px var(--hv-bg-card), 0 0 0 3px var(--hv-accent-light), 0 0 12px rgba(201,168,76,.15);
}
.hv-post-card.op .hv-post-avatar:hover {
  box-shadow: 0 0 0 2px var(--hv-bg-card), 0 0 0 3px var(--hv-accent), 0 0 20px rgba(201,168,76,.3);
  transform: scale(1.05);
}

/* ============================================
   v4.0 楼层导航 CSS（统一浅色风格）
   ============================================ */
.hv-floor-nav-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin-bottom: 10px;
  contain: layout style; /* 楼层导航网格布局隔离 */
}
.hv-floor-nav-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 4px;
  background: linear-gradient(135deg, var(--hv-bg-hover) 0%, rgba(27,58,95,.01) 100%);
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-sm-plus);
  transition: background .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth);
  cursor: pointer;
  text-decoration: none;
}
.hv-floor-nav-btn:hover {
  background: linear-gradient(135deg, var(--hv-primary-bg) 0%, rgba(201,168,76,.04) 100%);
  border-color: var(--hv-accent-border);
  transform: translateY(-4px);
  box-shadow: 0 6px 16px rgba(27,58,95,.1), 0 0 0 1px rgba(201,168,76,.08);
}
.hv-floor-nav-btn:hover .hv-floor-nav-num {
  animation: hvNavNumBounce .4s var(--hv-ease-elastic);
}
@keyframes hvNavNumBounce {
  0% { transform: scale(1); }
  40% { transform: scale(1.15); }
  100% { transform: scale(1); }
}
.hv-floor-nav-num {
  font-size: 16px;
  font-weight: 800;
  color: var(--hv-primary-text, var(--hv-primary));
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.hv-floor-nav-btn:hover .hv-floor-nav-num {
  color: var(--hv-primary-dark);
}
.hv-floor-nav-label {
  font-size: 11px;
  color: var(--hv-text-muted);
}
.hv-floor-progress {
  padding: 10px;
  background: linear-gradient(135deg, var(--hv-border-light) 0%, rgba(27,58,95,.02) 100%);
  border-radius: var(--hv-radius-sm-plus);
  margin-bottom: 10px;
}
.hv-floor-progress-label {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
  font-size: 11px;
  color: var(--hv-text-muted);
}
.hv-floor-progress-val {
  color: var(--hv-primary-text, var(--hv-primary)) !important;
  font-weight: 700;
}
.hv-floor-progress-bar {
  height: 5px;
  background: linear-gradient(90deg, var(--hv-border) 0%, var(--hv-border-light) 100%);
  border-radius: var(--hv-radius-full);
  overflow: hidden;
  position: relative;
}
.hv-floor-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent), var(--hv-primary)) !important;
  background-size: 200% 100%;
  border-radius: var(--hv-radius-full);
  transition: width .3s var(--hv-ease-smooth);
  box-shadow: 0 0 10px rgba(201,168,76,.3);
  position: relative;
  overflow: hidden;
  animation: hvProgressShimmer 2.5s linear infinite;
}
@keyframes hvProgressShimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.hv-floor-progress-fill::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
  animation: hvProgressShine 2s linear infinite;
}
@keyframes hvProgressShine {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}
/* ============================================
   v4.0 侧栏 Tab 切换 CSS（纯CSS radio实现）
   ============================================ */
.hv-side-tabs input[type="radio"] { display: none !important; }
.hv-side-tab-labels {
  display: flex;
  margin-bottom: 14px;
  border-bottom: 2px solid var(--hv-border-light);
  position: relative;
}
.hv-side-tab-label {
  flex: 1;
  text-align: center;
  padding: 10px 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--hv-text-muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color .25s var(--hv-ease-smooth), background .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth);
  margin-bottom: -2px;
  position: relative;
  user-select: none;
}
.hv-side-tab-label::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 20%;
  right: 20%;
  height: 2px;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent));
  border-radius: var(--hv-radius-md);
  transform: scaleX(0);
  transition: transform .3s var(--hv-ease-bounce);
}
.hv-side-tab-label:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
  border-radius: var(--hv-radius-sm) var(--hv-radius-sm) 0 0;
}
.hv-side-tab-panel { display: none; }
#hv_tab_hot:checked ~ .hv-side-tab-labels label[for="hv_tab_hot"],
#hv_tab_new:checked ~ .hv-side-tab-labels label[for="hv_tab_new"],
#hv_tab_recent:checked ~ .hv-side-tab-labels label[for="hv_tab_recent"] {
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-accent));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
#hv_tab_hot:checked ~ .hv-side-tab-labels label[for="hv_tab_hot"]::after,
#hv_tab_new:checked ~ .hv-side-tab-labels label[for="hv_tab_new"]::after,
#hv_tab_recent:checked ~ .hv-side-tab-labels label[for="hv_tab_recent"]::after {
  transform: scaleX(1);
}
#hv_tab_hot:checked ~ .hv-side-tab-hot {
  display: block;
  animation: hvTabFadeIn .3s var(--hv-ease-smooth);
}
#hv_tab_new:checked ~ .hv-side-tab-new {
  display: block;
  animation: hvTabFadeIn .3s var(--hv-ease-smooth);
}
#hv_tab_recent:checked ~ .hv-side-tab-recent {
  display: block;
  animation: hvTabFadeIn .3s var(--hv-ease-smooth);
}
@keyframes hvTabFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
/* v4.0 进入版块链接 */
.hv-side-forum-link {
  display: block;
  text-align: center;
  padding: 10px 16px;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
  border: 1px solid var(--hv-primary-border);
  border-radius: var(--hv-radius-sm);
  text-decoration: none;
  transition: background .3s var(--hv-ease-smooth), color .3s var(--hv-ease-smooth), border-color .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth), transform .3s var(--hv-ease-smooth);
  box-shadow: var(--hv-shadow-sm);
}
.hv-side-forum-link:hover {
  background: linear-gradient(135deg, var(--hv-primary-light), var(--hv-primary));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 14px rgba(27,58,95,.2);
  transform: translateY(-1px);
}
.hv-side-forum-link:active {
  transform: translateY(0);
}

/* 底部快速回复区已移除（改为楼层内联回复框） */

/* ============================================
   v3.0 相关推荐 + 上下帖导航 CSS
   ============================================ */
.hv-section-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--hv-text-title) !important;
  line-height: 1.2 !important;
  gap: 6px !important;
  margin-top: 24px !important;
  margin-bottom: 16px !important;
}
.hv-section-title::before {
  width: 4px !important;
  height: 20px !important;
  border-radius: var(--hv-radius-2xs) !important;
}
.hv-related-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
  margin-top: 8px;
}
.hv-related-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px !important;
  border: 1px solid var(--hv-border) !important;
  border-radius: var(--hv-radius-md) !important;
  transition: border-color .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth), transform .3s var(--hv-ease-smooth), background .3s var(--hv-ease-smooth) !important;
  position: relative;
  overflow: hidden;
  background: var(--hv-bg-card);
  text-decoration: none;
  box-shadow: var(--hv-shadow-sm);
  contain: layout style;
  content-visibility: auto;
  contain-intrinsic-size: auto 120px;
}
.hv-related-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent, var(--hv-primary), var(--hv-accent)) !important;
  opacity: 0;
  transition: opacity .3s var(--hv-ease-smooth);
}
.hv-related-card:hover {
  border-color: var(--hv-primary-border) !important;
  box-shadow: 0 8px 24px rgba(15,42,67,.12) !important;
  transform: translateY(-4px);
  background: linear-gradient(to bottom, var(--hv-bg-card) 0%, var(--hv-primary-bg) 100%) !important;
}
.hv-related-card:hover::before { opacity: 1; }
.hv-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 8px;
}
.hv-post-nav-item {
  padding: 16px 20px !important;
  border: 1px solid var(--hv-border) !important;
  border-radius: var(--hv-radius-md) !important;
  transition: border-color .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth), transform .3s var(--hv-ease-smooth) !important;
  position: relative;
  overflow: hidden;
  background: var(--hv-bg-card);
  box-shadow: var(--hv-shadow-sm);
}
.hv-post-nav-item:hover {
  border-color: var(--hv-primary-border) !important;
  box-shadow: 0 8px 24px rgba(15,42,67,.1) !important;
  transform: translateY(-2px);
}
.hv-post-nav-prev { 
  text-align: left; 
}
.hv-post-nav-prev::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 0; width: 3px;
  background: linear-gradient(180deg, var(--hv-primary), transparent) !important;
}
.hv-post-nav-next { 
  text-align: right; 
}
.hv-post-nav-next::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; right: 0; width: 3px;
  background: linear-gradient(180deg, var(--hv-accent), transparent) !important;
}

/* ============================================
   v3.1 全元素统一样式 — 从JS注入器迁移至内联
   消除运行时CSS注入，避免FOUC，提升加载性能
   ============================================ */

/* 帖子统计栏 */
.hv-post-stats { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hv-post-stats span { font-size: 12px; color: #888; }
.hv-post-stats b { color: var(--hv-primary-text, var(--hv-primary)); font-weight: 700; }
.hv-text-accent { color: var(--hv-accent); }

/* OP头像渐变环 */
.hv-op-avatar {
  display: inline-block;
  position: relative;
  padding: 3px;
  border-radius: var(--hv-radius-full);
  background: linear-gradient(135deg, var(--hv-accent), var(--hv-primary));
  transition: transform .25s var(--hv-ease-bounce), box-shadow .25s;
  box-shadow: 0 0 0 1px rgba(201,168,76,.15), 0 0 12px rgba(201,168,76,.1);
}
.hv-op-avatar:hover { transform: scale(1.08); box-shadow: 0 0 0 2px rgba(201,168,76,.25), 0 0 20px rgba(201,168,76,.2); }
.hv-op-avatar img {
  width: 46px;
  height: 46px;
  border-radius: var(--hv-radius-full);
  display: block;
  border: 2px solid var(--hv-bg-card);
  object-fit: cover;
}

/* 楼主信息卡 */
.hv-op-card {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px dashed var(--hv-border-light);
}
.hv-op-card-left {
  flex-shrink: 0;
}
.hv-op-card-right {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hv-op-name {
  font-size: var(--hv-text-base);
  font-weight: 700;
  color: var(--hv-primary-text, var(--hv-primary));
  text-decoration: none;
  transition: color .2s var(--hv-ease-smooth);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.hv-op-name:hover { color: var(--hv-primary-dark); }
.hv-op-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: var(--hv-radius-full);;
  background: linear-gradient(135deg, var(--hv-accent-bg), var(--hv-primary-bg));
  color: var(--hv-accent-ink);
  border: 1px solid var(--hv-accent-border);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  width: fit-content;
}

/* 楼主指标小尺寸 */
.hv-side-metrics-sm .hv-side-metric {
  padding: 8px 4px;
}
.hv-side-metrics-sm .hv-side-metric-num {
  font-size: 17px;
}
.hv-side-metrics-sm .hv-side-metric span {
  font-size: 10px;
}

/* 楼主其他发帖（v5a：复用侧栏行式设计令牌，零新增查询） */
.hv-op-threads {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--hv-border);
}
.hv-op-threads-tt {
  font-size: 11px;
  font-weight: 600;
  color: var(--hv-text-muted);
  letter-spacing: .02em;
  padding: 0 2px 4px;
}
.hv-op-thread-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: 0;
}
.hv-op-thread-list li { list-style: none; }
.hv-op-thread-list .hv-side-link {
  padding: 6px 8px;
  border-radius: var(--hv-radius-sm);
}
.hv-op-thread-list .hv-side-link:hover { background: var(--hv-primary-bg); transform: none; }
.hv-op-thread-list .hv-side-text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hv-op-thread-date {
  flex-shrink: 0;
  font-size: 11px;
  color: var(--hv-text-light);
}

/* 平台返佣入口卡（v5d：与正文推广互补去重，explicit 命中时整卡静默） */
.hv-brk-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
}
.hv-brk-list li { list-style: none; }
.hv-brk-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-md);
  background: var(--hv-bg-card);
  text-decoration: none;
  transition: border-color .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth), background .25s var(--hv-ease-smooth);
}
.hv-brk-row:hover {
  border-color: var(--hv-primary-border);
  box-shadow: var(--hv-shadow-sm);
  background: var(--hv-primary-bg);
}
.hv-brk-side-logo { flex-shrink: 0; display: inline-flex; }
.hv-brk-side-logo img { width: 26px; height: 26px; border-radius: var(--hv-radius-xs); object-fit: cover; display: block; }
.hv-brk-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hv-brk-name { font-size: 13px; font-weight: 600; color: var(--hv-text-primary); line-height: 1.2; }
.hv-brk-selling { font-style: normal; font-size: 11px; color: var(--hv-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hv-brk-go { flex-shrink: 0; font-style: normal; font-size: 11px; font-weight: 600; color: #fff; background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark)); padding: 4px 10px; border-radius: var(--hv-radius-full); }
.hv-brk-more { display: block; margin-top: 8px; text-align: center; font-size: 12px; color: var(--hv-primary-text, var(--hv-primary)); text-decoration: none; }
.hv-brk-more:hover { text-decoration: underline; }

/* AI 速读卡（v5e：懒生成 + 缓存直出，四态切换） */
/* 折叠体系会在初始化时把当时的 loading 态高度写死为 inline max-height，
   异步填充后会被裁切；这里让本卡展开态恒为自适应，仅保留 hv-collapsed 收起能力 */
.hv-ai-card > .hv-side-card-body { max-height: none !important; }
.hv-ai-card.hv-collapsed > .hv-side-card-body { max-height: 0 !important; }
.hv-ai-state { display: none; }
.hv-ai-card.is-empty .hv-ai-empty,
.hv-ai-card.is-loading .hv-ai-loading,
.hv-ai-card.is-done .hv-ai-done,
.hv-ai-card.is-fail .hv-ai-fail { display: block; }
.hv-ai-gen, .hv-ai-retry {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
  border: 1px solid var(--hv-primary-border);
  border-radius: var(--hv-radius-full);
  padding: 7px 14px;
  cursor: pointer;
  transition: box-shadow .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth);
}
.hv-ai-gen:hover { box-shadow: var(--hv-shadow-sm); transform: translateY(-1px); }
.hv-ai-hint { display: block; margin-top: 6px; font-size: 11px; color: var(--hv-text-light); }
.hv-ai-loading { font-size: 12px; color: var(--hv-text-muted); }
.hv-ai-spin {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 6px;
  vertical-align: -2px;
  border: 2px solid var(--hv-border);
  border-top-color: var(--hv-primary);
  border-radius: 50%;
  animation: hv-ai-spin .8s linear infinite;
}
@keyframes hv-ai-spin { to { transform: rotate(360deg); } }
.hv-ai-summary { margin: 0 0 8px; font-size: 13px; line-height: 1.65; color: var(--hv-text-primary); }
.hv-ai-points {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.hv-ai-points li {
  position: relative;
  padding-left: 16px;
  font-size: 12px;
  line-height: 1.55;
  color: var(--hv-text-muted);
}
.hv-ai-points li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: .58em;
  width: 6px;
  height: 6px;
  border-radius: 2px;
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark));
}
.hv-ai-src { margin-top: 8px; font-size: 11px; color: var(--hv-text-light); text-align: right; }

/* 楼主操作按钮 */
.hv-op-btns {
  display: flex;
  gap: 8px;
  margin-top: 4px;
}
.hv-op-btn {
  flex: 1;
  text-align: center;
  padding: 9px 0;
  font-size: 13px;
  font-weight: 500;
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-sm);
  text-decoration: none;
  color: var(--hv-text-body);
  background: var(--hv-bg-card);
  transition: background .25s var(--hv-ease-smooth), color .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth);
  box-shadow: var(--hv-shadow-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.hv-op-btn:hover {
  background: var(--hv-primary-bg);
  color: var(--hv-primary-text, var(--hv-primary));
  border-color: var(--hv-primary-border);
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(27,58,95,.1);
}
.hv-op-btn:active {
  transform: translateY(0);
  box-shadow: var(--hv-shadow-sm);
}
.hv-op-btn-primary {
  background: linear-gradient(135deg, var(--hv-primary-light), var(--hv-primary));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 2px 8px rgba(27,58,95,.15);
}
.hv-op-btn-primary:hover {
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark));
  color: #fff;
  box-shadow: 0 4px 14px rgba(27,58,95,.25);
}

/* 侧栏信息行 */
.hv-side-body { padding-top: 4px; }
.hv-side-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 13px; color: var(--hv-text-body); }
.hv-side-row b { color: var(--hv-primary-text, var(--hv-primary)); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex-shrink: 1; }

/* 侧栏热门列表 */
.hv-side-list { list-style: none; padding: 0; margin: 0; }
.hv-side-list li {
  padding: 10px 10px;
  border-bottom: 1px dashed var(--hv-border-light);
  transition: background .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), padding .25s var(--hv-ease-smooth);
  border-radius: var(--hv-radius-sm);
  margin: 0 -10px;
  padding-left: 10px;
  padding-right: 10px;
  border-left: 3px solid transparent;
}
.hv-side-list li:last-child { border-bottom: none; }
.hv-side-list li:hover {
  background: linear-gradient(135deg, var(--hv-primary-bg) 0%, rgba(201,168,76,.02) 100%);
  border-left-color: var(--hv-accent);
  padding-left: 14px;
}
.hv-side-link {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  transition: transform .2s var(--hv-ease-smooth);
}
.hv-side-link:hover { transform: translateX(2px); }
.hv-side-rank {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: var(--hv-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  transition: transform .2s var(--hv-ease-bounce);
}
.hv-side-list li:hover .hv-side-rank { transform: scale(1.15); }
.hv-side-rank-1 { background: linear-gradient(135deg, #FF6B6B, #EE4444); box-shadow: 0 0 8px rgba(255,107,107,.3); }
.hv-side-rank-2 { background: linear-gradient(135deg, #FFA94D, #FF922B); box-shadow: 0 0 8px rgba(255,169,77,.3); }
.hv-side-rank-3 { background: linear-gradient(135deg, var(--hv-accent-light), var(--hv-accent)); box-shadow: 0 0 8px rgba(201,168,76,.3); }
.hv-side-rank:not(.hv-side-rank-1):not(.hv-side-rank-2):not(.hv-side-rank-3) { background: var(--hv-border); color: var(--hv-text-muted); }
.hv-side-text {
  font-size: 13px;
  color: var(--hv-text-title);
  line-height: 1.4;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  -webkit-box-align: start;
  word-break: break-word;
  transition: color .2s var(--hv-ease-smooth);
}
.hv-side-link:hover .hv-side-text { color: var(--hv-primary-text, var(--hv-primary)); }
.hv-side-stat {
  font-size: 11px;
  color: var(--hv-text-muted);
  margin-top: 5px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  padding-left: 32px;
}
.hv-side-stat-tag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 7px;
  border-radius: var(--hv-radius-full);;
  background: var(--hv-primary-bg);
  font-size: 10px;
  line-height: 1.5;
  transition: background .25s var(--hv-ease-smooth);
}
.hv-side-stat-tag b {
  font-weight: 700;
  color: var(--hv-primary-text, var(--hv-primary));
  font-variant-numeric: tabular-nums;
  font-size: 11px;
}
.hv-side-list li:hover .hv-side-stat-tag {
  background: var(--hv-accent-bg);
}
.hv-side-list li:hover .hv-side-stat-tag b {
  color: var(--hv-accent);
}
.hv-side-stat-time {
  font-size: 10px;
  color: var(--hv-text-muted);
  opacity: .7;
}

/* 侧栏回复列表 */
.hv-side-reply-list { list-style: none; padding: 0; margin: 0; }
.hv-side-reply-list li {
  padding: 10px 8px;
  border-bottom: 1px dashed var(--hv-border-light);
  transition: background .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), padding .25s var(--hv-ease-smooth);
  border-radius: var(--hv-radius-sm);
  margin: 0 -8px;
  padding-left: 8px;
  padding-right: 8px;
  border-left: 3px solid transparent;
}
.hv-side-reply-list li:last-child { border-bottom: none; }
.hv-side-reply-list li:hover { 
  background: linear-gradient(135deg, var(--hv-primary-bg) 0%, rgba(201,168,76,.02) 100%); 
  border-left-color: var(--hv-accent);
  padding-left: 12px;
}
.hv-side-reply {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  text-decoration: none;
  transition: transform .2s var(--hv-ease-smooth);
}
.hv-side-reply:hover { transform: translateX(2px); }
.hv-side-reply-ava {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: var(--hv-radius-full);
  overflow: hidden;
  background: var(--hv-border-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: box-shadow .2s var(--hv-ease-smooth);
}
.hv-side-reply-list li:hover .hv-side-reply-ava {
  box-shadow: 0 0 0 2px var(--hv-accent-border), 0 0 8px rgba(201,168,76,.15);
}
.hv-side-reply-ava img { width: 30px; height: 30px; border-radius: var(--hv-radius-full);; object-fit: cover; }
.hv-side-reply-main { flex: 1; min-width: 0; }
.hv-side-reply-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 3px;
}
.hv-side-reply-author {
  font-size: 12px;
  font-weight: 600;
  color: var(--hv-primary-text, var(--hv-primary));
  transition: color .2s var(--hv-ease-smooth);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  flex: 1;
}
.hv-side-reply-time {
  font-size: 11px;
  color: var(--hv-text-muted);
  flex-shrink: 0;
  margin-left: 8px;
}
.hv-side-reply-text {
  font-size: 12px;
  color: var(--hv-text-body);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.4;
  word-break: break-word;
  transition: color .2s var(--hv-ease-smooth);
}
.hv-side-reply:hover .hv-side-reply-text { color: var(--hv-primary-text, var(--hv-primary)); }

/* 楼主信息卡 - 由 v4.1 增强版样式统一控制 */
/* 侧栏操作按钮定义已合并至上方统一区块（避免重复） */

/* 帖子正文可读性增强 */
.hv-post-body { color: var(--hv-text-title); }
.hv-post-body p { margin: 0 0 1em; }
.hv-post-body p:last-child { margin-bottom: 0; }
.hv-post-body h2 { font-size: 1.3em; font-weight: 700; margin: 1.2em 0 .6em; color: var(--hv-primary-text, var(--hv-primary)); }
.hv-post-body h3 { font-size: 1.15em; font-weight: 600; margin: 1em 0 .5em; color: var(--hv-primary-text, var(--hv-primary)); }
.hv-post-body ul, .hv-post-body ol { margin: .5em 0 1em; padding-left: 1.5em; }
.hv-post-body li { margin-bottom: .3em; }
/* .hv-post-body a 样式已统一定义于 line 424 */
/* .hv-post-body blockquote 样式已统一定义于 line 374 */
.hv-post-body pre { background: #1a1a2e; color: #e0e0e0; padding: 12px 16px; border-radius: var(--hv-radius-sm); overflow-x: auto; font-size: 13px; position: relative; }
.hv-post-body code { font-family: 'Fira Code', Consolas, monospace; }
.hv-post-body pre code { background: none; padding: 0; }

/* 帖子底部操作栏 — 状态样式（基础样式定义于 line 445） */
.hv-post-action.hv-like-btn.liked, .hv-post-action.hv-recommend-btn.recommended { background: var(--hv-accent-bg); color: var(--hv-accent); }
.hv-post-floor-num { cursor: pointer; font-size: 13px; color: var(--hv-text-muted); transition: color .2s var(--hv-ease-smooth); flex-shrink: 0; white-space: nowrap; }
.hv-post-floor-num:hover { color: var(--hv-primary-text, var(--hv-primary)); }
/* 楼层号标签（嵌套回复专用） */
.hv-post-floor-tag { display: none; }
.hv-nested-reply .hv-post-floor-tag {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  color: var(--hv-text-muted);
  background: var(--hv-bg-hover);
  padding: 1px 6px;
  border-radius: var(--hv-radius-xs);
  margin-left: 4px;
  line-height: 1.4;
  white-space: nowrap;
}
.hv-nested-reply .hv-post-floor-tag:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
}
.hv-nested-reply.hv-admin-reply .hv-post-floor-tag,
.hv-nested-reply:has(.hv-admin-reply-tag) .hv-post-floor-tag {
  color: var(--hv-accent-ink);
  background: var(--hv-accent-bg);
}
.hv-foot-sep { width: 1px; height: 16px; background: var(--hv-border); display: inline-block; margin: 0 4px; }

/* 编辑器工具栏 */
.hv-tb-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 6px; border: 1px solid transparent; border-radius: var(--hv-radius-xs-plus); font-size: 13px; color: var(--hv-text-body); text-decoration: none; cursor: pointer; transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth); }
.hv-tb-btn:hover { background: var(--hv-primary-bg); color: var(--hv-primary-text, var(--hv-primary)); }
.hv-tb-sep { width: 1px; height: 20px; background: var(--hv-border); margin: 0 4px; display: inline-block; }

/* 回复区 */
.hv-reply-body { display: flex; gap: 12px; padding: 16px; }
.hv-reply-avatar img { width: var(--hv-avatar-md); height: var(--hv-avatar-md); border-radius: var(--hv-radius-full);; }
.hv-reply-avatar { flex-shrink: 0; }
.hv-reply-editor { flex: 1; min-width: 0; }
.hv-reply-textarea { width: 100%; min-height: 80px; padding: 10px 14px; border: 1px solid var(--hv-border); border-radius: var(--hv-radius-sm-plus); font-size: 14px; line-height: 1.6; resize: vertical; outline: none; transition: border-color .2s var(--hv-ease-smooth); font-family: inherit; box-sizing: border-box; }
.hv-reply-textarea:focus { border-color: var(--hv-primary); box-shadow: 0 0 0 3px var(--hv-primary-bg); }
.hv-reply-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; }
.hv-reply-footer-left { display: flex; align-items: center; gap: 8px; }
.hv-reply-footer-right { display: flex; align-items: center; gap: 8px; }
.hv-char-count { font-size: 12px; color: var(--hv-text-muted); }
.hv-char-max { color: var(--hv-text-placeholder); }
/* 底部快速回复区相关样式已移除 */

/* 合规提示增强 */
.hv-compliance-tip { border-left: 3px solid var(--hv-accent); background: linear-gradient(90deg, var(--hv-accent-bg) 0%, rgba(27,58,95,.03) 100%); }
.hv-compliance-danger { border-left-color: var(--hv-danger) !important; background: linear-gradient(90deg, var(--hv-danger-bg) 0%, rgba(239,68,68,.03) 100%) !important; }
.hv-compliance-icon { margin-right: 4px; }

/* 工具栏布局 — 卡片化背景 + 微阴影提升视觉分离 */
.hv-thread-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 18px; margin-bottom: 16px; flex-wrap: nowrap;
  background: var(--hv-grad-card);
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-md);
  box-shadow: var(--hv-shadow-sm);
  transition: box-shadow .3s var(--hv-ease-smooth);
}
.hv-thread-toolbar:hover { box-shadow: var(--hv-shadow-md); }
.hv-toolbar-left { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; flex-shrink: 0; }
.hv-toolbar-right { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; min-width: 0; justify-content: flex-end; }
.hv-toolbar-sep { width: 1px; height: 20px; background: var(--hv-border); display: inline-block; flex-shrink: 0; opacity: .6; }
.hv-filter-btn { display: inline-flex; align-items: center; padding: 4px 12px; font-size: 13px; border: 1px solid var(--hv-border); border-radius: var(--hv-radius-full);; color: var(--hv-text-body); text-decoration: none; transition: background .25s var(--hv-ease-smooth), color .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth); }
.hv-filter-btn:hover { background: var(--hv-primary-bg); color: var(--hv-primary-text, var(--hv-primary)); border-color: var(--hv-primary-border); box-shadow: 0 2px 8px rgba(27,58,95,.1); transform: translateY(-1px); }
.hv-floor-jump { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--hv-text-muted); }
.hv-floor-jump input { width: 50px; padding: 2px 6px; border: 1px solid var(--hv-border); border-radius: var(--hv-radius-xs-plus); font-size: 13px; text-align: center; outline: none; }
.hv-floor-jump input:focus { border-color: var(--hv-primary); }
.hv-share-btn { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; font-size: 13px; color: var(--hv-text-body); text-decoration: none; border: 1px solid transparent; border-radius: var(--hv-radius-full);; cursor: pointer; transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth), box-shadow .2s var(--hv-ease-smooth), transform .2s var(--hv-ease-smooth); }
.hv-share-btn:hover { background: var(--hv-primary-bg); color: var(--hv-primary-text, var(--hv-primary)); border-color: var(--hv-primary-border); box-shadow: 0 2px 8px rgba(27,58,95,.1); transform: translateY(-1px); }
.hv-fontsize-ctrl { display: inline-flex; align-items: center; gap: 2px; }
.hv-fontsize-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 4px; border: 1px solid var(--hv-border); border-radius: var(--hv-radius-xs-plus); background: var(--hv-bg-card); color: var(--hv-text-body); cursor: pointer; font-size: 12px; font-weight: 600; transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth), box-shadow .2s var(--hv-ease-smooth); }
.hv-fontsize-btn:hover { background: var(--hv-primary-bg); color: var(--hv-primary-text, var(--hv-primary)); box-shadow: 0 1px 4px rgba(27,58,95,.08); }
.hv-fontsize-btn.active { background: var(--hv-primary); color: #fff; border-color: transparent; }

/* 帖子Meta */
.hv-thread-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.hv-meta-sep { width: 1px; height: 14px; background: var(--hv-border); display: inline-block; }
.hv-meta-stat { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: #888; }
.hv-thread-author { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.hv-thread-avatar { width: 28px; height: 28px; border-radius: var(--hv-radius-full);; }
.hv-thread-author-name { color: var(--hv-primary-text, var(--hv-primary)); font-weight: 600; font-size: 13px; }
.hv-thread-avatar-fallback { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--hv-radius-full);; background: var(--hv-border-light); font-size: 14px; }

/* 按钮基础 */
.hv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 6px 16px; border: 1px solid var(--hv-border); border-radius: var(--hv-radius-full);; font-size: 14px; text-decoration: none; cursor: pointer; transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth), box-shadow .2s var(--hv-ease-smooth); }
.hv-btn-primary { background: linear-gradient(135deg, var(--hv-primary-light), var(--hv-primary)); color: #fff; border-color: transparent; }
.hv-btn-primary:hover { background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark)); box-shadow: 0 6px 20px rgba(27,58,95,.25); }
.hv-btn-outline { background: transparent; color: var(--hv-primary-text, var(--hv-primary)); border-color: var(--hv-primary-border); }
.hv-btn-outline:hover { background: var(--hv-primary-bg); }
.hv-btn-sm { padding: 4px 10px; font-size: 12px; }

/* 附件列表 */
.hv-attach-list { margin: 12px 0; display: grid; gap: 8px; }
.hv-attach-item { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border: 1px solid var(--hv-border); border-radius: var(--hv-radius-sm-plus); background: var(--hv-bg-hover); }
.hv-attach-info { display: flex; align-items: center; gap: 10px; }
.hv-attach-icon { font-size: 20px; }
.hv-attach-name { font-size: 13px; font-weight: 600; color: var(--hv-text-title); }
.hv-attach-size { font-size: 11px; color: var(--hv-text-muted); }
.hv-attach-actions { display: flex; align-items: center; gap: 8px; }
.hv-attach-price { font-size: 12px; color: var(--hv-accent); font-weight: 600; }
.hv-attach-denied { font-size: 12px; color: var(--hv-text-muted); }

/* 图片灯箱 */
.hv-img-lightbox { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.92); z-index: calc(var(--hv-z-modal) + 1); display: none; align-items: center; justify-content: center; padding: 40px; cursor: zoom-out; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.hv-img-lightbox.show { display: flex; animation: hvLightboxIn .2s ease-out; }
.hv-img-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--hv-radius-sm); box-shadow: 0 8px 32px rgba(0,0,0,.5); }
@keyframes hvLightboxIn { from { opacity: 0; } to { opacity: 1; } }

/* 代码复制按钮 */
.hv-code-copy { position: absolute; top: 8px; right: 8px; display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border: 1px solid rgba(255,255,255,.15); border-radius: var(--hv-radius-xs-plus); background: rgba(255,255,255,.08); color: rgba(255,255,255,.7); font-size: 11px; cursor: pointer; transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth); }
.hv-code-copy:hover { background: rgba(255,255,255,.15); color: #fff; }
.hv-code-copy.copied { color: #6ee7b7; border-color: rgba(110,231,183,.3); }

/* 涟漪效果 */
@keyframes hvRipple { to { transform: scale(2.5); opacity: 0; } }
.hv-ripple { position: relative; overflow: hidden; }
.hv-ripple-effect { position: absolute; border-radius: var(--hv-radius-full);; background: rgba(255,255,255,.3); transform: scale(0); animation: hvRipple .5s ease-out; pointer-events: none; }

/* 点赞动画 */
@keyframes hvLikePop { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-30px) scale(1.5); opacity: 0; } }

/* 楼层高亮 */
@keyframes hvFloorHighlight { 0% { box-shadow: 0 0 0 0 rgba(201,168,76,.4); } 50% { box-shadow: 0 0 0 6px rgba(201,168,76,.2); } 100% { box-shadow: 0 0 0 0 rgba(201,168,76,0); } }
.hv-floor-highlight { animation: hvFloorHighlight 1.7s ease-out; }

/* ===== 回复区 ===== */
/* 回复区标题已移除（改为楼主帖内联回复框默认展开） */

/* 作者标签 */
.hv-badge-author { display: inline-flex; align-items: center; padding: 1px 6px; font-size: 11px; font-weight: 500; color: var(--hv-primary-text, var(--hv-primary)); background: var(--hv-primary-bg); border: 1px solid var(--hv-primary-border); border-radius: var(--hv-radius-xs); line-height: 1.4; }

/* ===== 非楼主帖布局 - 独立卡片式设计 ===== */
.hv-post-card:not(.op) {
  background: var(--hv-bg-card) !important;
  border: 1px solid var(--hv-border) !important;
  border-radius: var(--hv-radius-md) !important;
  padding: 16px 18px !important;
  margin: 0 0 14px 0 !important;
  border-bottom: 1px solid var(--hv-border) !important;
  box-shadow: 0 1px 3px rgba(15,42,67,.04);
  transition: box-shadow .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth);
}
.hv-post-card:not(.op):hover {
  background: var(--hv-bg-card) !important;
  border-color: var(--hv-primary-border) !important;
  box-shadow: 0 4px 12px rgba(15,42,67,.08), 0 2px 4px rgba(15,42,67,.04);
  transform: translateY(-1px);
}
.hv-post-card:not(.op):last-child { margin-bottom: 0 !important; }
.hv-post-card:not(.op) .hv-post-head { gap: 8px; margin-bottom: 4px; align-items: flex-start; }
.hv-post-card:not(.op) .hv-post-avatar img { width: var(--hv-avatar-lg) !important; height: var(--hv-avatar-lg) !important; }
.hv-post-card:not(.op) .hv-post-avatar { width: var(--hv-avatar-lg); height: var(--hv-avatar-lg); }
.hv-post-card:not(.op) .hv-post-username { font-size: 14px; flex-wrap: wrap; margin-left: 12px; line-height: 17px; font-weight: 500; }
.hv-post-card:not(.op) .hv-post-username a { color: var(--hv-text-title); }
.hv-post-card:not(.op) .hv-post-inline-time { display: none; }
.hv-post-card:not(.op) .hv-post-userlevel { display: none; }
.hv-post-card:not(.op) .hv-post-usermeta { display: none; }
.hv-post-card:not(.op) .hv-post-threadmeta { display: none; }
.hv-post-card:not(.op) .hv-post-floor { display: none; }
.hv-post-card:not(.op) .hv-post-body { font-size: var(--hv-text-base) !important; line-height: var(--hv-leading-snug) !important; color: var(--hv-text-title); margin-left: 60px; word-break: break-word; }
.hv-post-card:not(.op) .hv-post-foot { margin-top: 4px; padding-top: 0; border-top: none; display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-left: 60px; }
.hv-post-card:not(.op) .hv-post-foot-actions { gap: 6px; display: flex; align-items: center; }
.hv-post-card:not(.op) .hv-post-action { padding: 4px 8px; font-size: 12px; font-weight: 500; line-height: 16px; color: var(--hv-text-body); border: none !important; background: transparent !important; border-radius: var(--hv-radius-xs); display: inline-flex; align-items: center; justify-content: center; gap: 4px; transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth); }
.hv-post-card:not(.op) .hv-post-action:hover { background: var(--hv-bg-hover) !important; color: var(--hv-text-body) !important; }
.hv-post-card:not(.op) .hv-post-action:active { transform: scale(.92); transition: transform .08s ease-out; }
.hv-post-card:not(.op) .hv-foot-sep { display: none; }
.hv-post-card:not(.op) .hv-pm-btn,
.hv-post-card:not(.op) .hv-fav-btn,
.hv-post-card:not(.op) .hv-copy-link { display: none !important; }
/* OP帖也隐藏复制链接（吸顶栏已有） */
.hv-post-card.op .hv-copy-link { display: none !important; }
/* 吸顶栏精简：隐藏复制链接和收藏（保留分享） */
.hv-sticky-bar .hv-copy-link,
.hv-sticky-bar .hv-share-btn[href*="favorite"] { display: none !important; }
.hv-post-card:not(.op) .hy-econ-tip,
.hv-post-card:not(.op) .hy-econ-accept { display: none !important; }
.hv-post-card:not(.op) .hy-econ-action { padding: 2px 4px; font-size: 12px; font-weight: 500; line-height: 16px; border-radius: var(--hv-radius-xs); gap: 2px !important; }
.hv-post-card:not(.op) .hv-post-time { display: block !important; font-size: 12px; color: var(--hv-text-light); flex-shrink: 0; white-space: nowrap; margin-left: auto; padding-left: 8px; }
.hv-post-card:not(.op) .hv-post-floor-num { display: none; }
.hv-post-card:not(.op) .hv-post-action svg { width: 16px; height: 16px; display: inline-flex; flex-shrink: 0; }
.hv-post-card:not(.op) .hv-reply-btn { color: var(--hv-accent) !important; }
.hv-post-card:not(.op) .hv-reply-btn:hover { background: var(--hv-accent-bg) !important; color: var(--hv-accent-ink) !important; }
.hv-post-card:not(.op) .hv-reply-btn span { font-size: 12px; }

/* 嵌套回复连接线：渐变+微光效果 */
.hv-post-nested-replies { margin-top: 6px; margin-left: 38px; border-left: 2px solid transparent; padding-left: 12px; border-image: linear-gradient(180deg, var(--hv-border) 0%, var(--hv-border-light) 60%, transparent 100%) 1; position: relative; }
.hv-post-nested-replies::before { content: ''; position: absolute; left: -2px; top: 0; width: 2px; height: 24px; background: linear-gradient(180deg, var(--hv-accent), transparent); border-radius: 1px; opacity: .3; }
/* 第一层回复（直接回复楼主）：移除左侧竖线装饰 */
.hv-post-card.op > .hv-post-nested-replies { border-left: none; padding-left: 0; }
.hv-post-card.op > .hv-post-nested-replies::before { display: none; }
/* 修复：grid 卡片内的嵌套回复容器未分配列，被自动放置进 42px 头像列导致正文塌缩成竖排 */
.hv-post-card:not(.op) > .hv-post-nested-replies { grid-column: 2; min-width: 0; }
.hv-post-nested-replies .hv-post-card { margin-bottom: 6px !important; padding: 8px 0 !important; background: transparent !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; }
.hv-post-nested-replies .hv-post-card:hover { background: transparent !important; }
.hv-post-nested-replies .hv-post-card:last-child { margin-bottom: 0 !important; }
.hv-nested-reply .hv-post-avatar img { width: var(--hv-avatar-sm); height: var(--hv-avatar-sm); }
.hv-nested-reply .hv-post-avatar { width: var(--hv-avatar-sm); height: var(--hv-avatar-sm); }
.hv-nested-reply .hv-post-head { gap: 8px; margin-bottom: 4px; align-items: flex-start; }
.hv-nested-reply .hv-post-username { font-size: 14px; margin-left: 0; line-height: 17px; font-weight: 500; }
.hv-nested-reply .hv-post-username a { color: var(--hv-text-title); }
.hv-nested-reply .hv-post-body { font-size: var(--hv-text-base) !important; line-height: var(--hv-leading-snug) !important; color: var(--hv-text-title); margin-left: 50px; word-break: break-word; }
.hv-nested-reply .hv-post-foot { margin-top: 4px; padding-top: 0; border-top: none; display: flex; align-items: center; justify-content: space-between; gap: 4px; margin-left: 50px; }
.hv-nested-reply .hv-post-action { padding: 2px 4px; font-size: 11px; font-weight: 500; line-height: 16px; color: var(--hv-text-body); border-radius: var(--hv-radius-xs); display: inline-flex; align-items: center; gap: 2px; transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth); }
.hv-nested-reply .hv-post-action:hover { background: var(--hv-bg-hover); color: var(--hv-text-body); }
.hv-nested-reply .hv-post-action:active { transform: scale(.92); transition: transform .08s ease-out; }
.hv-nested-reply .hv-post-action svg { width: 14px; height: 14px; display: inline-flex; flex-shrink: 0; }
.hv-nested-reply .hv-post-inline-time { display: none; }
.hv-nested-reply .hv-post-time { font-size: 11px; display: block; color: var(--hv-text-muted); flex-shrink: 0; white-space: nowrap; }
.hv-nested-reply .hv-post-foot-actions { min-width: 0; overflow: hidden; }
.hv-nested-reply .hv-post-floor-num { display: none; }

/* ===== 回复气泡样式（自适应宽度） ===== */
.hv-nested-reply .hv-post-body {
  position: relative;
  display: inline-block;
  vertical-align: top;
  min-width: 60px;
  max-width: min(600px, calc(100% - 52px));
  width: auto;
  background: var(--hv-bubble-bg) !important;
  border: 1px solid var(--hv-bubble-border) !important;
  border-radius: var(--hv-bubble-radius) !important;
  padding: 8px 14px !important;
  margin-left: 42px !important;
  box-sizing: border-box;
  box-shadow: var(--hv-bubble-shadow);
  transition: box-shadow .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth);
}
.hv-nested-reply .hv-post-body > div { width: 100%; }
.hv-nested-reply .hv-post-body:hover {
  box-shadow: var(--hv-bubble-shadow-hover);
  border-color: var(--hv-border) !important;
}
.hv-nested-reply .hv-post-foot { margin-left: 42px !important; max-width: min(600px, calc(100% - 52px)); overflow: hidden; }
/* 气泡尖角（指向头像方向） */
.hv-nested-reply .hv-post-body::before {
  content: '';
  position: absolute;
  top: 0;
  left: -6px;
  width: 0; height: 0;
  border: 6px solid transparent;
  border-right-color: var(--hv-bubble-border);
  border-left: 0;
  border-top: 0;
}
.hv-nested-reply .hv-post-body::after {
  content: '';
  position: absolute;
  top: 1px;
  left: -5px;
  width: 0; height: 0;
  border: 6px solid transparent;
  border-right-color: var(--hv-bubble-bg);
  border-left: 0;
  border-top: 0;
}

/* 管理员马甲气泡 */
.hv-nested-reply.hv-admin-reply .hv-post-body,
.hv-nested-reply:has(.hv-admin-reply-tag) .hv-post-body {
  background: var(--hv-bubble-admin-bg) !important;
  border-color: var(--hv-bubble-admin-border) !important;
  border-left: 3px solid var(--hv-accent) !important;
  box-shadow: var(--hv-bubble-admin-shadow) !important;
}
.hv-nested-reply.hv-admin-reply .hv-post-body:hover,
.hv-nested-reply:has(.hv-admin-reply-tag) .hv-post-body:hover {
  border-color: rgba(201,168,76,.45) !important;
  box-shadow: 0 3px 14px rgba(201,168,76,.12) !important;
}
.hv-nested-reply.hv-admin-reply .hv-post-body::before,
.hv-nested-reply:has(.hv-admin-reply-tag) .hv-post-body::before {
  border-right-color: var(--hv-bubble-admin-border);
}
.hv-nested-reply.hv-admin-reply .hv-post-body::after,
.hv-nested-reply:has(.hv-admin-reply-tag) .hv-post-body::after {
  border-right-color: rgba(201,168,76,.08);
}

/* 气泡响应式适配 */

/* ===== v6.1 顶层楼层正文气泡（非楼主、非嵌套回复） ===== */
/* 顶层正文气泡容器 */
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body {
  position: relative;
  margin-left: 0;
  background: var(--hv-bubble-bg);
  border: 1px solid var(--hv-bubble-border);
  border-radius: var(--hv-bubble-radius);
  padding: 14px 18px;
  box-shadow: var(--hv-bubble-shadow);
  transition: box-shadow .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth);
}
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body:hover {
  box-shadow: var(--hv-bubble-shadow-hover);
  border-color: var(--hv-border);
}
/* 顶层楼层操作栏对齐气泡（覆盖 margin-left:60px） */
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-foot {
  margin-left: 0;
  overflow: hidden;
}
/* OP帖操作栏防溢出 */
.hv-post-card.op .hv-post-foot { overflow: hidden; }
/* 气泡尖角（指向头像方向：向上） */
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body::before {
  content: '';
  position: absolute;
  top: -7px;
  left: 22px;
  width: 0; height: 0;
  border: 7px solid transparent;
  border-bottom-color: var(--hv-bubble-border);
  border-top: 0;
}
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body::after {
  content: '';
  position: absolute;
  top: -6px;
  left: 23px;
  width: 0; height: 0;
  border: 6px solid transparent;
  border-bottom-color: var(--hv-bubble-bg);
  border-top: 0;
}
/* 管理员马甲气泡（顶层） */
#postlist > .hv-post-card.hv-admin-reply:not(.op):not(.hv-nested-reply) > .hv-post-body,
#postlist > .hv-post-card:has(.hv-admin-reply-tag):not(.op):not(.hv-nested-reply) > .hv-post-body {
  background: var(--hv-bubble-admin-bg) !important;
  border-color: var(--hv-bubble-admin-border) !important;
  box-shadow: var(--hv-bubble-admin-shadow) !important;
}
#postlist > .hv-post-card.hv-admin-reply:not(.op):not(.hv-nested-reply) > .hv-post-body:hover,
#postlist > .hv-post-card:has(.hv-admin-reply-tag):not(.op):not(.hv-nested-reply) > .hv-post-body:hover {
  border-color: rgba(201,168,76,.45) !important;
  box-shadow: 0 3px 14px rgba(201,168,76,.12) !important;
}
#postlist > .hv-post-card.hv-admin-reply:not(.op):not(.hv-nested-reply) > .hv-post-body::before,
#postlist > .hv-post-card:has(.hv-admin-reply-tag):not(.op):not(.hv-nested-reply) > .hv-post-body::before {
  border-bottom-color: var(--hv-bubble-admin-border);
}
#postlist > .hv-post-card.hv-admin-reply:not(.op):not(.hv-nested-reply) > .hv-post-body::after,
#postlist > .hv-post-card:has(.hv-admin-reply-tag):not(.op):not(.hv-nested-reply) > .hv-post-body::after {
  border-bottom-color: rgba(201,168,76,.08);
}
/* 顶层气泡响应式适配 */

/* 折叠/展开更多回复 */
/* 嵌套回复简洁化：收紧间距与气泡内边距，全部默认展开 */
.hv-post-nested-replies .hv-post-card { margin-bottom: 4px !important; padding: 6px 0 !important; }
.hv-post-card:not(.op).hv-nested-reply .hv-post-head { margin-bottom: 2px !important; }
.hv-nested-reply .hv-post-body { padding: 6px 12px !important; }
.hv-post-card:not(.op).hv-nested-reply .hv-post-foot { margin-top: 2px !important; }

/* 跨页回复标记 */
.hv-reply-to-badge { display: inline-block; margin-bottom: 6px; padding: 2px 8px; font-size: 12px; color: var(--hv-text-muted); background: var(--hv-bg-hover); border-radius: var(--hv-radius-xs); }
.hv-reply-to-badge a { color: var(--hv-primary-text, var(--hv-primary)); text-decoration: none; }
.hv-reply-to-badge a:hover { text-decoration: underline; }

/* 回复区结束标记 */
/* THE END 标记已移除 */

/* 引用块增强 */
.hv-quote-header { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--hv-accent-ink); margin-bottom: 8px; font-weight: 600; padding-bottom: 6px; border-bottom: 1px solid var(--hv-accent-border); }
/* header 在 blockquote 内时，用负 margin 让分隔线穿透 padding 延伸至全宽 */
.hv-post-body blockquote > .hv-quote-header { margin-left: -22px; margin-right: -18px; padding-left: 22px; padding-right: 18px; }
.hv-quote-author { color: var(--hv-accent-ink); text-decoration: none; transition: color .2s var(--hv-ease-smooth); }
.hv-quote-author:hover { color: var(--hv-accent); text-decoration: underline; }

/* 非楼主帖引用块：单行折叠 + 省略号 */
.hv-post-card:not(.op) .hv-post-body blockquote,
.hv-post-card:not(.op) .hv-post-body .quote {
  margin: 2px 0 6px !important;
  padding: 4px 8px !important;
  background: rgba(0,0,0,.02) !important;
  border-left: 2px solid var(--hv-border) !important;
  border-radius: 0 4px 4px 0 !important;
  font-size: 12px !important;
  color: var(--hv-text-muted) !important;
  line-height: 1.5 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 1 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
.hv-post-card:not(.op) .hv-post-body blockquote a,
.hv-post-card:not(.op) .hv-post-body .quote a {
  font-size: 11px !important;
  color: var(--hv-text-placeholder) !important;
}
.hv-post-card:not(.op) .hv-quote-header {
  display: none !important;
}

/* OP帖引用块：隐藏blockquote内的重复header（外层.quote已有header） */
.hv-post-body .quote > blockquote > .hv-quote-header {
  display: none !important;
}

/* 嵌套回复引用块：完全隐藏（回复链已提供上下文） */
.hv-nested-reply .hv-post-body blockquote,
.hv-nested-reply .hv-post-body .quote {
  display: none !important;
}
.hv-nested-reply .hv-quote-header {
  display: none !important;
}
/* 嵌套回复：隐藏“回复...的帖子”陈旧文本（嵌套结构已提供上下文） */
.hv-nested-reply .hv-post-body > div > font,
.hv-nested-reply .hv-post-body > div > br + br {
  display: none !important;
}

/* 侧栏折叠 - 统一由上方增强版样式控制 */
.hv-side-card.hv-collapsed > *:not(.hv-side-title) { display: none; }

/* Toast */
.hv-toast { position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); padding: 8px 20px; border-radius: var(--hv-radius-full);; font-size: 13px; z-index: calc(var(--hv-z-modal) + 5); opacity: 0; transition: opacity .3s, transform .3s; pointer-events: none; }
.hv-toast.show { opacity: 1; transform: translateX(-50%) translateY(-10px); }
.hv-toast.success { background: linear-gradient(135deg, #10b981, #059669); color: #fff; }
.hv-toast.error { background: linear-gradient(135deg, #ef4444, #dc2626); color: #fff; }

/* 吸顶栏内部 */
.hv-sticky-inner { display: flex; align-items: center; justify-content: space-between; max-width: var(--hv-wrap-w); margin: 0 auto; padding: 8px 20px; gap: 12px; }
.hv-sticky-info { display: flex; align-items: center; gap: 6px; min-width: 0; flex: 1; }
.hv-sticky-forum { color: var(--hv-primary-text, var(--hv-primary)); text-decoration: none; font-size: 13px; font-weight: 600; white-space: nowrap; }
.hv-sticky-sep { color: var(--hv-text-light); font-size: 12px; }
.hv-sticky-title { font-size: 14px; font-weight: 600; color: var(--hv-text-title); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hv-sticky-stats { display: flex; gap: 12px; font-size: 12px; color: var(--hv-text-muted); }
.hv-sticky-actions { display: flex; gap: 4px; }
.hv-sticky-btn { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: var(--hv-radius-full);; color: var(--hv-text-body); text-decoration: none; transition: background .2s, color .2s; }
.hv-sticky-btn:hover { background: var(--hv-primary-bg); color: var(--hv-primary-text, var(--hv-primary)); }

/* 举报/批量管理弹窗（统一风格） */
.hv-reply-modal-overlay { z-index: calc(var(--hv-z-modal) + 4); }
.hv-reply-modal-overlay.show { display: flex; animation: hvModalBackdropIn .25s ease-out; }
.hv-reply-modal-overlay.show .hv-reply-modal { animation: hvModalCardIn .3s cubic-bezier(.34,1.56,.64,1); }
@keyframes hvModalBackdropIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes hvModalCardIn { from { transform: translateY(20px) scale(.96); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }
.hv-reply-modal { max-width: 90vw; width: 480px; max-height: 80vh; overflow: hidden; box-shadow: 0 16px 48px rgba(0,0,0,.25); }
.hv-reply-modal-header { padding: 16px 20px; border-bottom: 1px solid var(--hv-border-light); }
.hv-reply-modal-title { display: flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 600; color: var(--hv-primary-text, var(--hv-primary)); }
/* .hv-reply-modal-close 已由 .hv-modal-close 共享基类统一控制 */
.hv-reply-modal-body { padding: 16px 20px; overflow-y: auto; }
.hv-report-reasons { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.hv-report-reason { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--hv-text-title); cursor: pointer; padding: 6px 8px; border-radius: var(--hv-radius-xs); transition: background .15s var(--hv-ease-smooth); }
.hv-report-reason:hover { background: var(--hv-primary-bg); }
.hv-report-reason input[type="radio"] { width: 15px; height: 15px; accent-color: var(--hv-primary); flex-shrink: 0; }
.hv-report-reason span { font-weight: 500; }
.hv-report-reason small { font-size: 12px; color: var(--hv-text-muted); }
.hv-report-reason:has(input:checked) { background: var(--hv-primary-bg); }
.hv-report-reason:has(input:checked) span { color: var(--hv-primary-text, var(--hv-primary)); }
.hv-reply-modal-textarea { width: 100%; min-height: 60px; padding: 8px 12px; border: 1px solid var(--hv-border); border-radius: var(--hv-radius-sm); font-size: 13px; resize: vertical; outline: none; font-family: inherit; box-sizing: border-box; }
.hv-reply-modal-footer { display: flex; align-items: center; justify-content: space-between; padding: 12px 20px; border-top: 1px solid var(--hv-border-light); }
.hv-reply-modal-hint { font-size: 12px; color: var(--hv-text-muted); }
/* ===== 自动折叠（举报阈值达到） ===== */
.hv-post-card.hv-post-collapsed > .hv-post-body { max-height: 120px; overflow: hidden; position: relative; }
.hv-post-card.hv-post-collapsed > .hv-post-body::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 40px; background: linear-gradient(180deg, transparent 0%, var(--hv-bubble-bg, #f7f8fa) 80%); pointer-events: none; }
.hv-post-card.hv-post-collapsed > .hv-post-foot { position: relative; }
.hv-post-collapse-notice { display: none; align-items: center; gap: 6px; padding: 6px 12px; margin: 0 0 4px; font-size: 12px; color: var(--hv-danger, #dc3545); background: rgba(220,53,69,.06); border-radius: var(--hv-radius-xs); }
.hv-post-card.hv-post-collapsed .hv-post-collapse-notice { display: flex; }
.hv-post-collapse-notice svg { width: 14px; height: 14px; flex-shrink: 0; }
.hv-post-collapse-toggle { margin-left: auto; color: var(--hv-primary-text, var(--hv-primary)); cursor: pointer; font-weight: 500; text-decoration: underline; font-size: 12px; }
.hv-reply-modal-actions { display: flex; align-items: center; gap: 8px; }
.hv-reply-modal-msg { font-size: 12px; color: var(--hv-danger); opacity: 0; transition: opacity .2s var(--hv-ease-smooth); }
.hv-reply-modal-msg.show { opacity: 1; }

/* 相关推荐内容 */
.hv-related-title { font-size: 15px !important; font-weight: 600 !important; color: var(--hv-text-body) !important; line-height: 1.5 !important; margin-bottom: 2px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hv-related-meta { font-size: 13px !important; color: var(--hv-text-muted) !important; line-height: var(--hv-leading-snug) !important; }
.hv-related-card:hover .hv-related-title { color: var(--hv-primary-text, var(--hv-primary)) !important; }

/* 相关推荐：序号 + 箭头视觉引导 */
.hv-related-list { counter-reset: hvrel; }
.hv-related-card { counter-increment: hvrel; }
.hv-related-title::before {
  content: counter(hvrel, decimal-leading-zero);
  font-size: 20px;
  font-weight: 800;
  color: var(--hv-text-muted);
  opacity: .5;
  margin-right: 8px;
  vertical-align: -2px;
  font-variant-numeric: tabular-nums;
}
.hv-related-card::after {
  content: '→';
  position: absolute;
  right: 14px; top: 16px;
  color: var(--hv-text-muted);
  font-size: 14px;
  transition: transform .25s var(--hv-ease-smooth), color .25s var(--hv-ease-smooth);
}
.hv-related-card:hover::after { transform: translateX(4px); color: var(--hv-primary-text, var(--hv-primary)); }

/* 帖尾 end-cap：渐变细线 + 回复转化胶囊 */
.hv-end-cap { display: flex; align-items: center; gap: 14px; padding: 26px 0 4px; }
.hv-end-line { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--hv-border)); }
.hv-end-line:last-child { background: linear-gradient(90deg, var(--hv-border), transparent); }
.hv-end-text { font-size: 11px; color: var(--hv-text-muted); letter-spacing: 3px; font-weight: 600; }
.hv-end-cta-wrap { text-align: center; padding: 10px 0 6px; }
.hv-end-cta {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 18px;
  font-size: 13px;
  color: var(--hv-text-body);
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-full);
  text-decoration: none;
  transition: color .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth), background .2s var(--hv-ease-smooth), transform .2s var(--hv-ease-smooth);
}
.hv-end-cta:hover { color: var(--hv-primary-text, var(--hv-primary)); border-color: var(--hv-primary-border); background: var(--hv-primary-bg); transform: translateY(-1px); }

/* 上下帖导航内容 */
.hv-post-nav-label { display: block; font-size: 13px; color: var(--hv-text-muted); margin-bottom: 2px; }
.hv-post-nav-title { display: block; font-size: 15px; font-weight: 600; color: var(--hv-primary-text, var(--hv-primary)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hv-post-nav-item:hover .hv-post-nav-title { color: var(--hv-primary-dark); }

/* 浮动工具 */
.hv-float-tools { position: fixed; bottom: 94px; right: 31px; z-index: var(--hv-z-sticky); }
.hv-float-btn { width: 44px; height: 44px; border-radius: var(--hv-radius-full);; background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-light)); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(27,58,95,.22); opacity: 0; transform: translateY(20px); transition: opacity .3s var(--hv-ease-bounce), transform .3s, box-shadow .3s, background .3s; text-decoration: none; }
.hv-float-btn.show { opacity: 1; transform: translateY(0); }
.hv-float-btn:hover { background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark)); box-shadow: 0 6px 20px rgba(27,58,95,.30); transform: translateY(-2px); }

/* 移动端底部栏 */
.hv-mobile-tabbar { position: fixed; bottom: 0; left: 0; right: 0; display: flex; background: rgba(255,255,255,.95); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--hv-border); z-index: 200; padding: 4px 0; padding-bottom: env(safe-area-inset-bottom, 0); }
.hv-mobile-tab-item { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 0; color: var(--hv-text-muted); text-decoration: none; font-size: 10px; transition: color .2s var(--hv-ease-smooth); }
.hv-mobile-tab-item svg { width: 20px; height: 20px; }
.hv-mobile-tab-item.active { color: var(--hv-primary-text, var(--hv-primary)); }

/* 移动端响应式增强 */

/* ============================================
   v6.0 P1-5 可访问性：focus-visible 焦点轮廓
   ============================================ */
.hv-post-action:focus-visible,
.hv-side-action-btn:focus-visible,
.hv-side-action-main:focus-visible,
.hv-filter-btn:focus-visible,
.hv-share-btn:focus-visible,
.hv-side-forum-link:focus-visible,
.hv-op-btn:focus-visible,
.hv-floor-nav-btn:focus-visible,
.hv-side-tab-label:focus-visible,
.hv-sticky-btn:focus-visible,
.hv-back-top:focus-visible,
.hv-float-btn:focus-visible {
  outline: 2px solid var(--hv-primary);
  outline-offset: 2px;
  border-radius: var(--hv-radius-sm);
}
.hv-reply-form-submit:focus-visible,
.hv-reply-form-cancel:focus-visible,
.hv-alt-trigger:focus-visible,
.hv-reply-form-upload-btn:focus-visible,
.hv-side-collapse-btn:focus-visible {
  outline: 2px solid var(--hv-primary);
  outline-offset: 2px;
}

/* ============================================
   v6.0 P3-15 骨架屏样式
   ============================================ */
.hv-skeleton {
  background: linear-gradient(90deg, var(--hv-border-light) 25%, var(--hv-border) 37%, var(--hv-border-light) 63%);
  background-size: 400% 100%;
  animation: hvSkeletonShimmer 1.4s ease infinite;
  border-radius: var(--hv-radius-sm);
}
.hv-skeleton-line { height: 14px; margin-bottom: 8px; border-radius: var(--hv-radius-xs); }
.hv-skeleton-line:last-child { margin-bottom: 0; width: 60%; }
.hv-skeleton-avatar { width: 44px; height: 44px; border-radius: var(--hv-radius-full);; flex-shrink: 0; }
.hv-skeleton-post { padding: 20px; margin-bottom: 16px; border: 1px solid var(--hv-border); border-radius: var(--hv-radius-lg); }
.hv-skeleton-head { display: flex; gap: 12px; margin-bottom: 16px; }
.hv-skeleton-body { padding-left: 0; }
@keyframes hvSkeletonShimmer {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}

/* ============================================
   v6.0 P3-16 空状态样式
   ============================================ */
.hv-empty-state {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 48px 20px; text-align: center;
}
.hv-empty-icon {
  font-size: 48px; color: var(--hv-border); margin-bottom: 12px;
  line-height: 1;
}
.hv-empty-text {
  font-size: 14px; color: var(--hv-text-muted); line-height: 1.6;
}
.hv-empty-action {
  margin-top: 16px;
  padding: 8px 24px;
  font-size: 13px; font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, var(--hv-primary-light), var(--hv-primary));
  border: none; border-radius: var(--hv-radius-full);;
  cursor: pointer;
  transition: background .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth);
}
.hv-empty-action:hover {
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark));
  box-shadow: 0 4px 14px rgba(27,58,95,.25); transform: translateY(-1px);
}

/* ============================================
   v6.0 P3-17 代码块滚动条美化
   ============================================ */
pre[class*="language-"], .hv-post-body pre {
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.2) transparent;
}
pre[class*="language-"]::-webkit-scrollbar,
.hv-post-body pre::-webkit-scrollbar { width: 6px; height: 6px; }
pre[class*="language-"]::-webkit-scrollbar-track,
.hv-post-body pre::-webkit-scrollbar-track { background: transparent; }
pre[class*="language-"]::-webkit-scrollbar-thumb,
.hv-post-body pre::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.15); border-radius: var(--hv-radius-2xs);
}
pre[class*="language-"]::-webkit-scrollbar-thumb:hover,
.hv-post-body pre::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,.3);
}

/* ============================================
   v6.0 P3-18 ::selection 选中色
   ============================================ */
::selection {
  background: rgba(27,58,95,.15);
  color: var(--hv-primary-text, var(--hv-primary));
}
::selection:root {
  background: rgba(201,168,76,.2);
  color: var(--hv-accent-ink);
}
.hv-post-body ::selection {
  background: rgba(201,168,76,.18);
  color: var(--hv-text-title);
}

/* ============================================
   v7.0 视觉增强系统
   ============================================ */

/* v7.0-1: OP 卡片背景渐变增强 */
.hv-post-card.op > .hv-post-body {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  border: none !important;
}
/* OP 楼主徽章升级为鎏金渐变胶囊 */
.hv-post-card.op .hv-badge-author,
.hv-post-card.op .hv-op-badge {
  background: linear-gradient(135deg, var(--hv-accent-light), var(--hv-accent)) !important;
  color: var(--hv-gold-cta-ink) !important;
  border-color: transparent !important;
  box-shadow: 0 2px 8px rgba(201,168,76,.3);
  padding: 2px 10px !important;
  font-weight: 600 !important;
}

/* v7.0-2: 楼层编号浮动胶囊（非OP帖，用 data-floor 属性） */
.hv-post-card:not(.op) {
  position: relative;
}
/* 右上角楼层标记已移除（与 #N 标签重复，且位置被裁切） */
.hv-post-card:not(.op)::after { display: none !important; }

/* v7.0-3: 帖子正文段落排版增强 */
.hv-post-body p { margin: 14px 0; }
.hv-post-body p:first-child { margin-top: 0; }
.hv-post-body p:last-child { margin-bottom: 0; }

/* v7.0-4: OP 首段 Drop Cap 首字母放大 */
.hv-post-card.op > .hv-post-body > p:first-child::first-letter {
  font-size: 2.8em;
  font-weight: 800;
  float: left;
  line-height: 1;
  margin: 4px 8px 0 0;
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-accent));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* v7.0-5: 引用块装饰引号（position:relative 已在 line 374 定义） */
.hv-post-body blockquote::before {
  content: "\201D";
  position: absolute;
  top: 2px;
  left: 10px;
  font-size: 40px;
  font-weight: 800;
  font-family: Georgia, 'Times New Roman', serif;
  color: var(--hv-accent);
  opacity: .15;
  line-height: 1;
  pointer-events: none;
}
.hv-post-body blockquote blockquote {
  margin: 8px 0;
  border-left-color: var(--hv-primary-light);
  background: var(--hv-primary-bg);
}
.hv-post-body blockquote blockquote::before {
  color: var(--hv-primary-text, var(--hv-primary));
  opacity: .12;
}

/* v7.0-6: 操作栏按钮图标增强（非OP帖） */
.hv-post-card:not(.op) .hv-post-action[href*="reply"]::before {
  content: "\1F4AC";
  font-size: 13px;
  margin-right: 2px;
}
.hv-post-card:not(.op) .hv-post-action[href*="favorite"]::before,
.hv-post-card:not(.op) .hv-post-action[onclick*="fav"]::before {
  content: "\2B50";
  font-size: 13px;
  margin-right: 2px;
}
.hv-post-card:not(.op) .hv-post-action[href*="share"]::before,
.hv-post-card:not(.op) .hv-post-action[onclick*="share"]::before {
  content: "\1F517";
  font-size: 13px;
  margin-right: 2px;
}

/* v7.0-7: 代码块完整美化 */
.hv-post-body pre,
.hv-post-body .blockcode {
  background: #1a1a2e !important;
  color: #e0e0e0 !important;
  border-radius: var(--hv-radius-sm-plus) !important;
  padding: 14px 16px !important;
  margin: 12px 0 !important;
  overflow-x: auto !important;
  font-family: var(--hv-font-mono) !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  position: relative;
}
.hv-post-body pre code,
.hv-post-body .blockcode li {
  color: #e0e0e0 !important;
  background: transparent !important;
}
.hv-post-body .blockcode ol {
  padding-left: 32px !important;
  counter-reset: codeline;
}
.hv-post-body .blockcode li::before {
  counter-increment: codeline;
  content: counter(codeline);
  position: absolute;
  left: 0;
  width: 24px;
  text-align: right;
  color: rgba(255,255,255,.25);
  font-size: 11px;
}

/* v7.0-8: 字号控制器连体胶囊组 */
.hv-fontsize-ctrl {
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-full);;
  overflow: hidden;
  padding: 0;
}
.hv-fontsize-btn {
  border: none !important;
  border-radius: 0 !important;
  min-width: 32px;
  height: 26px;
  background: transparent;
}
.hv-fontsize-btn + .hv-fontsize-btn {
  border-left: 1px solid var(--hv-border) !important;
}
.hv-fontsize-btn.active {
  background: var(--hv-grad-gold) !important;
  color: #fff !important;
}

/* lightbox 已统一为 .hv-img-lightbox（JS 动态创建），旧 .hv-lightbox 已删除 */

/* v7.0-10: 暗色模式 */

/* v7.0-11: 图片懒加载占位 */
.hv-post-body img { transition: opacity .3s var(--hv-ease-smooth); }
.hv-post-body img[data-src] { opacity: .3; }
.hv-post-body img[data-src].loaded { opacity: 1; }

/* ===== 管理员操作UI ===== */
/* 主题管理下拉菜单 */
.hv-mod-dropdown { position: relative; display: inline-flex; }
.hv-mod-toggle { cursor: pointer; }
.hv-mod-toggle svg:last-of-type { transition: transform .2s var(--hv-ease-smooth); }
.hv-mod-dropdown:hover .hv-mod-toggle svg:last-of-type { transform: rotate(180deg); }
.hv-mod-menu {
  position: absolute; top: 100%; right: 0; margin-top: 6px;
  background: var(--hv-bg-card, #fff); border: 1px solid var(--hv-border-light, rgba(0,0,0,.08));
  border-radius: var(--hv-radius-sm-plus); box-shadow: 0 8px 24px rgba(0,0,0,.12);
  padding: 6px; min-width: 140px; z-index: var(--hv-z-dropdown);
  display: none; flex-direction: column; gap: 2px;
}
.hv-mod-dropdown:hover .hv-mod-menu { display: flex; }
/* 透明桥接：填补按钮与菜单间 6px hover 死区，防止鼠标移入途中菜单消失 */
.hv-mod-menu::before { content: ''; position: absolute; top: -7px; left: 0; right: 0; height: 7px; }
.hv-mod-menu a {
  padding: 7px 14px; font-size: 13px; color: var(--hv-text-primary, #1b3a5f);
  border-radius: var(--hv-radius-xs-plus); text-decoration: none; transition: background .15s var(--hv-ease-smooth), color .15s var(--hv-ease-smooth);
  white-space: nowrap;
}
.hv-mod-menu a:hover { background: var(--hv-primary-bg, rgba(27,58,95,.07)); }
.hv-mod-menu a.hv-mod-danger { color: var(--hv-danger, #dc3545); }
.hv-mod-menu a.hv-mod-danger:hover { background: rgba(220,53,69,.08); }
/* 帖子管理按钮 */
.hv-edit-btn, .hv-delete-btn { color: var(--hv-text-muted, #6b7280); }
.hv-edit-btn:hover { color: var(--hv-primary, #1B3A5F); }
.hv-delete-btn:hover { color: var(--hv-danger, #dc3545); }
/* 批量管理勾选框 */
.hv-mod-check {
  display: inline-flex; align-items: center; gap: 4px;
  cursor: pointer; font-size: 12px; color: var(--hv-text-muted, #6b7280);
  user-select: none;
}
.hv-mod-check input[type="checkbox"] {
  width: 14px; height: 14px; cursor: pointer; accent-color: var(--hv-primary, #1B3A5F);
}
/* 批量管理浮窗（定位容器，不设display:none，由JS控制显隐）
   覆盖 forum_moderator.css 中 #mdly 的旧样式（width:250px;height:100px;overflow:hidden）
   forum_moderator.css 由 JS 动态加载（晚于内联CSS），需用高特异性选择器+!important 覆盖
   .pg_viewthread #mdly 特异性(1,1,0) → 用 body #mdly.hv-mod-batch 特异性(1,1,1) 覆盖 */
body #mdly.hv-mod-batch, .pg_viewthread #mdly.hv-mod-batch { z-index: calc(var(--hv-z-modal) + 2) !important; width: max-content !important; max-width: 90vw !important; height: auto !important; max-height: none !important; overflow: visible !important; padding: 0 !important; margin: 0 !important; background: none !important; border: none !important; line-height: normal !important; position: fixed !important; right: auto !important; }
.hv-mod-batch .hv-mod-card { width: 420px; max-width: 90vw; max-height: none !important; height: auto !important; overflow: visible !important; box-shadow: 0 8px 32px rgba(0,0,0,.2); }
.hv-mod-card .hv-reply-modal-header { padding: 14px 18px; border-bottom: 1px solid var(--hv-border-light); }
.hv-mod-card .hv-reply-modal-title { font-size: 15px; }
.hv-mod-card-body { display: flex; flex-wrap: wrap; gap: 10px; padding: 14px 18px; overflow: visible !important; min-height: auto; }
/* 批量管理弹窗按钮 */
.hv-mod-action-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 8px 18px; font-size: 14px; border-radius: var(--hv-radius-sm);
  background: var(--hv-primary-bg, rgba(27,58,95,.07));
  color: var(--hv-primary, #1B3A5F); text-decoration: none; white-space: nowrap;
  transition: background .15s var(--hv-ease-smooth), color .15s var(--hv-ease-smooth); cursor: pointer; border: none;
}
.hv-mod-action-btn:hover { background: var(--hv-primary, #1B3A5F); color: #fff; }
.hv-mod-action-btn.hv-action-danger { color: var(--hv-danger, #dc3545); background: rgba(220,53,69,.08); }
.hv-mod-action-btn.hv-action-danger:hover { background: var(--hv-danger, #dc3545); color: #fff; }
/* 移动端适配 */

/* ============================================
   ITCSS Overrides: Responsive + Accessibility
   所有 @media 查询合并至此（按断点从大到小排列）
   ============================================ */

/* ===== @media (max-width: 1024px) and (min-width: 769px) ===== */
@media (max-width: 1024px) and (min-width: 769px) {
.hv-layout { grid-template-columns: 1fr var(--hv-sidebar-w-narrow); gap: 20px; }
  /* 窄侧栏文字适配 */
  .hv-side-metric-num { font-size: 18px; }
  .hv-side-metric { padding: 8px 6px; }
  .hv-side-metric span { font-size: 10px; }
  .hv-side-text { font-size: 12px; }
  .hv-side-reply-text { font-size: 11px; }
  .hv-side-reply-author { font-size: 11px; }
}

/* ===== @media (max-width: 768px) ===== */
@media (max-width: 768px) {
.hv-layout {
    grid-template-columns: 1fr;
    grid-template-areas: "main";
  }
  .hv-sidebar { 
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s var(--hv-ease-smooth);
    z-index: var(--hv-z-modal); /* 高于遮罩(--hv-z-overlay=1000)：遮罩 DOM 靠后同层级会盖住抽屉，抽屉内点击全部被拦截、广告弹窗无法唤起 */
    background: var(--hv-bg-card);
    border-radius: var(--hv-radius-lg) var(--hv-radius-lg) 0 0;
    box-shadow: 0 -8px 32px rgba(15,42,67,.15);
    padding: 0 16px 16px;
    gap: 12px;
    scrollbar-width: thin;
  }
  .hv-sidebar.hv-sidebar-open {
    max-height: 70vh;
    overflow-y: auto;
    padding-top: 16px;
  }
  .hv-sidebar::-webkit-scrollbar { width: 3px; }
  .hv-side-card { 
    flex: 1 1 100%;
    margin-bottom: 0 !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  /* P0/P4 移动端移除毛玻璃 */
  .hv-side-card-p0, .hv-side-card-p4 {
    background: var(--hv-bg-card);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  /* 移动端禁用 sticky */
  .hv-sticky-bar { position: relative; top: 0; }
  /* 平板侧边栏底部化：增加顶部分隔 */
  .hv-sidebar {
    border-top: 1px solid var(--hv-border);
    padding-top: 20px;
    margin-top: 8px;
  }
  /* 隐藏返回顶部按钮（移动端不需要） */
  .hv-back-top { display: none !important; }
  /* 移动端优化按钮布局 */
  .hv-side-actions-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
  }
  .hv-side-action-btn {
    font-size: 12px !important;
    padding: 8px 6px !important;
  }
  /* 移动端 OP 指标缩小 */
  .hv-side-metrics-sm .hv-side-metric-num { font-size: var(--hv-text-base); }
  /* 移动端折叠按钮缩小 */
  .hv-side-collapse-btn { width: 20px; height: 20px; font-size: 10px; }
  .hv-sidebar-fab {
    display: flex;
    position: fixed;
    bottom: 67px;
    right: 15px;
    width: 48px;
    height: 48px;
    border-radius: var(--hv-radius-full);
    background: var(--hv-grad-primary);
    color: #fff;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: var(--hv-z-sticky);
    box-shadow: var(--hv-shadow-md);
    transition: transform .25s var(--hv-ease-bounce);
    border: none;
    padding: 0;
  }
  .hv-sidebar-fab:hover { transform: scale(1.1); }
  .hv-sidebar-fab:active { transform: scale(.95); }
  .hv-thread-meta-row { flex-direction: column; align-items: flex-start; gap: 10px; }
  .hv-meta-divider { display: none; }
  .hv-meta-right { flex-wrap: wrap; }
  .hv-thread-hero .hv-thread-header { padding: 20px 22px 24px !important; }
  .hv-thread-hero .hv-thread-title { font-size: clamp(18px, 5.5vw, 24px) !important; }
  .hv-thread-hero .hv-hero-newthread { padding: 7px 16px; font-size: 13px; }
  .hv-post-nav { grid-template-columns: 1fr; }
  .hv-related-list { grid-template-columns: 1fr; }
  /* Followme 覆盖层以 .hv-post-card:not(.op) .hv-post-body/foot（0-3-0 + !important）强压 48px 缩进，
     移动端须以更高特异性选择器反击，否则嵌套气泡仅剩 ~175px 塌缩成竖排 */
  .hv-post-card:not(.op).hv-nested-reply .hv-post-body { margin-left: 0 !important; padding: 6px 10px !important; max-width: 100%; }
  .hv-post-card:not(.op).hv-nested-reply .hv-post-foot { margin-left: 0 !important; max-width: 100%; overflow: hidden; }
  /* 移动端收窄嵌套容器缩进，把宽度还给气泡 */
  .hv-post-nested-replies { margin-left: 10px !important; padding-left: 8px !important; }
  .hv-nested-reply .hv-post-body::before, .hv-nested-reply .hv-post-body::after { display: none; }
  #postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body {
    padding: 10px 14px;
  }
  .hv-thread-toolbar { flex-direction: column; align-items: stretch; gap: 8px; }
  .hv-toolbar-left, .hv-toolbar-right { justify-content: center; }
  .hv-toolbar-sep { display: none; }
  .hv-toolbar-group { background: none; padding: 0; }
  .hv-floor-jump { background: none; }
  /* .hv-post-body 字体已由全局 !important 规则统一控制 */
  .hv-post-card { padding: 16px !important; margin-bottom: 12px !important; }
  /* 768px 触控目标优化：操作按钮最小 44px */
  .hv-post-card.op .hv-post-action { min-height: 36px; padding: 8px 16px; }
  .hv-post-card:not(.op) .hv-post-action { min-height: 32px; padding: 4px 10px; }
  .hv-floor-nav-btn { min-height: 44px; padding: 10px 6px; }
  .hv-side-action-btn { min-height: 40px; padding: 10px 8px !important; }
  .hv-side-action-main { min-height: 44px; }
  .hv-sticky-stats { display: none; }
  .hv-sticky-inner { flex-wrap: wrap; }
  /* 移动端右缘悬浮栈：避开底部 Tab 栏，自下而上 = 侧栏FAB → 客服 → 回顶 → 签到 */
  .hv-float-tools { bottom: 187px; right: 17px; }
  /* 插件 CSS 在文档末尾注入，需 !important 覆盖 */
  #hy_cs_fab { bottom: 127px !important; right: 14px !important; }
  .hy_ck_float { bottom: 241px; right: 17px; }
  /* body 带 .hv-page 类且模板内 .hv-page{padding:0}，类选择器优先级更高，此处用同类名覆盖 */
  .hv-page { padding-bottom: calc(55px + env(safe-area-inset-bottom, 0px)); }
  .hv-compliance-wrap { margin: 12px 0; }
  .hv-breadcrumb { padding: 10px 14px !important; }
  /* 移动端引用块优化 */
  .hv-post-body blockquote {
    margin: 12px 0;
    padding: 12px 14px 12px 16px;
    font-size: 14px;
  }
  .hv-post-body blockquote::before {
    font-size: 32px;
    top: 0;
  }
  .hv-post-body .quote { margin: 12px 0; }
}

/* ===== @media(max-width:600px) ===== */
@media(max-width:600px) {
.hv-alt-modal-card{width:100%;max-width:100%;max-height:90vh;border-radius:var(--hv-radius-lg) var(--hv-radius-lg) 0 0}
.hv-alt-modal-overlay.show .hv-alt-modal-card{animation:hvAltSheetIn .3s cubic-bezier(.16,1,.3,1)}
.hv-alt-modal-overlay.closing .hv-alt-modal-card{animation:hvAltSheetOut .2s ease-in forwards}
@keyframes hvAltSheetIn{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes hvAltSheetOut{from{transform:translateY(0)}to{transform:translateY(100%)}}
.hv-alt-modal-overlay{align-items:flex-end !important;justify-content:center}
.hv-alt-modal-overlay .hv-alt-list{max-height:60vh}
  .hv-mod-menu { right: -20px; min-width: 120px; }
  .hv-mod-action-btn { padding: 6px 14px; font-size: 13px; }
  .hv-mod-batch .hv-mod-card { max-width: calc(100vw - 20px) !important; }
}

/* ===== @media (max-width: 480px) ===== */
@media (max-width: 480px) {
.hv-wrap { padding: 0 12px; }
  .hv-side-card { flex: 1 1 100%; padding: 14px; }
  .hv-side-title { font-size: 13px; }
  .hv-side-metrics { grid-template-columns: repeat(3, 1fr); gap: 4px; }
  .hv-side-metric { padding: 8px 4px; }
  .hv-side-metric-num { font-size: 16px; }
  .hv-floor-nav-grid { gap: 4px; }
  .hv-floor-nav-btn { padding: 6px 2px; }
  .hv-side-actions-grid { grid-template-columns: 1fr !important; }
  .hv-sidebar.hv-sidebar-open { max-height: 75vh; }
  .hv-nested-reply .hv-post-body { margin-left: 0 !important; border-radius: var(--hv-radius-sm-plus) !important; max-width: 100%; }
  .hv-nested-reply .hv-post-foot { margin-left: 0 !important; }
  #postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body {
    border-radius: var(--hv-radius-sm-plus);
    padding: 8px 12px;
  }
  .hv-wrap { padding: 0 12px; }
  .hv-post-card.op > .hv-post-body { font-size: 14px; }
  .hv-post-card { padding: 14px !important; }
  .hv-thread-hero .hv-thread-header { padding: 14px 16px !important; }
  .hv-thread-hero .hv-thread-title { font-size: 16px !important; }
  .hv-fontsize-ctrl { display: none; }
  .hv-share-btn span, .hv-filter-btn span { display: none; }
  .hv-breadcrumb { padding: 8px 12px !important; font-size: 12px; }
}

/* ===== @media (max-width: 640px) ===== */
@media (max-width: 640px) {
.hv-post-card { padding: 14px !important; margin-bottom: 10px !important; }
  .hv-post-card.op .hv-post-action { padding: 6px 12px; font-size: 12px; }
  .hv-post-card.op .hv-post-action span { font-size: 12px; }
  .hv-thread-toolbar { padding: 10px 14px; }
  .hv-side-card { padding: 14px; }
  .hv-floor-nav-btn { padding: 8px 4px; min-height: 40px; }
  .hv-floor-nav-num { font-size: 13px; }
  .hv-floor-nav-label { font-size: 10px; }
  .hv-post-card.op::after { top: 14px; bottom: 14px; }
  .hv-related-list { grid-template-columns: 1fr; }
  .hv-post-nav { grid-template-columns: 1fr; }
}

/* ===== @media (prefers-reduced-motion: reduce) ===== */
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
  .hv-side-card,
  .hv-side-card-body > *,
  .hv-side-action-main {
    animation: none !important;
  }
  .hv-side-card-body,
  .hv-side-collapse-btn,
  .hv-side-collapse-btn::before,
  .hv-side-action-btn,
  .hv-side-forum-link,
  .hv-side-metric,
  .hv-floor-nav-btn,
  .hv-floor-progress-fill,
  .hv-floor-progress-fill::after,
  .hv-sidebar,
  .hv-sidebar-fab,
  .hv-sidebar-overlay {
    transition: none !important;
  }
  .hv-floor-progress-fill::after { animation: none !important; }
  .hv-side-card:hover { transform: none !important; }
  .hv-side-metric:hover { transform: none !important; }
  .hv-floor-nav-btn:hover { transform: none !important; }
  .hv-skeleton { animation: none; }
  /* 新增元素减少动画适配 */
  .hv-post-card { animation: none !important; }
  .hv-post-action { animation: none !important; }
  .hv-post-action > span { animation: none !important; }
  .hv-post-card::before { transition: none !important; }
  .hv-post-card:hover::before { opacity: .6 !important; }
  .hv-post-card.op::before { opacity: .4 !important; }
  .hv-post-avatar img { transition: none !important; }
  .hv-post-card:hover .hv-post-avatar img { transform: none !important; box-shadow: none !important; }
  .hv-read-progress { transition: none !important; }
  .hv-back-top { transition: none !important; }
  .hv-back-top:hover { transform: none !important; }
  /* 新增元素减少动画适配 */
  .hv-side-card::after { transition: none !important; }
  .hv-side-card:hover::after { opacity: .5 !important; }
  .hv-side-metric:hover { transition: none !important; transform: none !important; }
  .hv-side-list li { transition: none !important; }
  .hv-side-list li:hover { padding-left: 10px !important; }
  .hv-post-nav-item { transition: none !important; }
  .hv-post-nav-item:hover { transform: none !important; }
  .hv-post-action::after { display: none !important; }
  /* 操作栏减少动画适配 */
  .hv-post-card.op .hv-post-action svg { transition: none !important; }
  .hv-post-card.op .hv-post-action:hover svg { transform: none !important; }
  .hv-post-card.op .hv-reply-btn { transition: none !important; }
  .hv-post-card.op .hv-reply-btn:hover { transform: none !important; }
  .hv-post-card:not(.op) .hv-post-action svg { transition: none !important; }
  .hv-post-card:not(.op) .hv-post-action:hover svg { transform: none !important; }
  /* 视觉层次减少动画适配 */
  .hv-post-card.op::after { transition: none !important; }
  .hv-post-card.op:hover::after { opacity: .5 !important; }
  .hv-post-card:not(.op):not(.hv-nested-reply) { transition: none !important; }
  .hv-floor-nav-btn { transition: none !important; }
  .hv-floor-nav-btn:hover { transform: none !important; }
  .hv-reply-form-container.hv-bottom-form .hv-reply-form-inner { transition: none !important; }
}

/* ===== 内容与排版增强 ===== */
/* 段落间距优化：提升长文阅读舒适度 */
.hv-post-body p { margin: 0 0 12px; }
.hv-post-body p:last-child { margin-bottom: 0; }
/* 引用块美化：渐变背景 + 左侧渐变条 + 图标 */
.hv-post-body blockquote {
  margin: 10px 0;
  padding: 12px 16px 12px 20px;
  background: linear-gradient(135deg, var(--hv-primary-bg) 0%, rgba(27,58,95,.02) 100%);
  border-left: 3px solid transparent;
  border-image: linear-gradient(180deg, var(--hv-primary) 0%, var(--hv-primary-light) 60%, transparent 100%) 1;
  border-radius: 0 var(--hv-radius-sm) var(--hv-radius-sm) 0;
  color: var(--hv-text-body);
  font-size: 13.5px;
  line-height: 1.7;
  position: relative;
}
.hv-post-body blockquote::before {
  content: '\201C';
  position: absolute;
  top: 4px; left: 8px;
  font-size: 28px;
  color: var(--hv-primary-text, var(--hv-primary));
  opacity: .15;
  font-family: Georgia, serif;
  line-height: 1;
}
/* 代码块美化：语言标签 + 行号条纹 + 更好的视觉层次 */
.hv-post-body pre {
  background: linear-gradient(180deg, #1a2332 0%, #0d1b2a 100%);
  color: #e2e8f0;
  padding: 14px 16px;
  border-radius: var(--hv-radius-sm-plus);
  overflow-x: auto;
  font-size: 13px;
  line-height: 1.65;
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 2px 8px rgba(13,27,42,.15), inset 0 1px 0 rgba(255,255,255,.04);
  position: relative;
}
.hv-post-body pre::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent), var(--hv-primary-light));
  border-radius: var(--hv-radius-sm-plus) var(--hv-radius-sm-plus) 0 0;
}
.hv-post-body pre code { background: none; padding: 0; font-family: var(--hv-font-mono); }
/* 行内代码增强 */
.hv-post-body code {
  background: rgba(27,58,95,.06);
  padding: 2px 6px;
  border-radius: var(--hv-radius-xs);
  font-size: .88em;
  font-family: var(--hv-font-mono);
  border: 1px solid rgba(27,58,95,.08);
  color: var(--hv-primary-dark);
}
/* 分隔线美化 */
.hv-post-body hr {
  border: none;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--hv-border), var(--hv-primary-border), var(--hv-border), transparent);
  margin: 16px 0;
}
/* 列表间距优化 */
.hv-post-body ul, .hv-post-body ol { padding-left: 20px; margin: 8px 0; }
.hv-post-body li { margin-bottom: 4px; line-height: 1.7; }
/* 图片加载占位美化 */
.hv-post-body img {
  background: linear-gradient(135deg, var(--hv-bg-hover) 0%, var(--hv-border-light) 100%);
  border-radius: var(--hv-radius-xs);
}

/* ===== 侧边栏精化 ===== */
/* 侧边栏卡片顶部装饰线 */
.hv-side-card {
  position: relative;
}
.hv-side-card::after {
  content: '';
  position: absolute;
  top: 0; left: 20px; right: 20px;
  height: 2px;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent), transparent);
  border-radius: 0 0 2px 2px;
  opacity: 0;
  transition: opacity .35s var(--hv-ease-smooth);
}
.hv-side-card:hover::after { opacity: .5; }
/* 侧边栏统计卡hover发光 */
.hv-side-metric:hover {
  border-color: var(--hv-accent-border);
  box-shadow: 0 2px 8px rgba(201,168,76,.08), 0 0 0 1px rgba(201,168,76,.04);
  background: linear-gradient(135deg, var(--hv-accent-bg) 0%, rgba(27,58,95,.02) 100%);
}
/* 侧边栏标题图标间距 */
.hv-side-title {
  letter-spacing: .02em;
}
/* 侧边栏列表项hover */
.hv-side-list li {
  transition: background .2s var(--hv-ease-smooth), padding-left .2s var(--hv-ease-smooth);
  border-radius: var(--hv-radius-xs);
}
.hv-side-list li:hover {
  background: var(--hv-primary-bg);
  padding-left: 14px;
}
/* 侧栏信息行分隔线 */
.hv-side-row + .hv-side-row {
  border-top: 1px dashed var(--hv-border-light);
}

/* ===== 上下帖导航卡片化 ===== */
.hv-post-nav-item {
  position: relative;
  padding: 14px 18px;
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-md);
  background: var(--hv-grad-card);
  text-decoration: none;
  transition: border-color .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth), transform .3s var(--hv-ease-smooth);
  overflow: hidden;
}
.hv-post-nav-item::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent));
  opacity: 0;
  transition: opacity .3s var(--hv-ease-smooth);
}
.hv-post-nav-item:hover {
  border-color: var(--hv-primary-border);
  box-shadow: var(--hv-shadow-md);
  transform: translateY(-2px);
}
.hv-post-nav-item:hover::before { opacity: 1; }
.hv-post-nav-item:last-child { text-align: right; }
.hv-post-nav-item:last-child::before { background: linear-gradient(90deg, var(--hv-accent), var(--hv-primary)); }

/* ===== 吸顶栏底部光晕 ===== */
.hv-sticky-bar {
  border-bottom: 1px solid transparent;
  border-image: linear-gradient(90deg, transparent, var(--hv-primary-border), var(--hv-accent-border), transparent) 1;
}

/* ===== 帖子底部操作区分组 ===== */
.hv-post-foot {
  position: relative;
}
.hv-post-foot::before {
  content: '';
  position: absolute;
  top: -1px; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--hv-border), transparent);
}
/* 帖子操作按钮图标微动效 */
.hv-post-action {
  position: relative;
  overflow: hidden;
}
.hv-post-action::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 0; height: 0;
  border-radius: var(--hv-radius-full);;
  background: rgba(27,58,95,.06);
  transform: translate(-50%, -50%);
  transition: width .4s var(--hv-ease-smooth), height .4s var(--hv-ease-smooth);
  pointer-events: none;
}
.hv-post-action:hover::after { width: 60px; height: 60px; }

/* ===== 合规提示精化 ===== */
.hv-compliance-tip {
  position: relative;
  padding-left: 36px;
}
.hv-compliance-tip::before {
  content: '\26A0\FE0E';
  position: absolute;
  left: 12px; top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  opacity: .6;
}
.hv-compliance-danger::before { content: '\1F6AB'; }

/* ============================================
   操作栏重新设计
   ============================================ */
/* --- OP帖操作栏：增强视觉层级 --- */
.hv-post-card.op .hv-post-foot {
  padding-top: 16px;
  gap: 12px;
}
.hv-post-card.op .hv-post-foot-actions {
  gap: 6px;
}
/* OP帖操作按钮基础增强 */
.hv-post-card.op .hv-post-action {
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 500;
  border-radius: var(--hv-radius-full);;
  position: relative;
  overflow: hidden;
}
.hv-post-card.op .hv-post-action svg {
  width: 15px;
  height: 15px;
  transition: transform .25s var(--hv-ease-bounce);
}
.hv-post-card.op .hv-post-action:hover svg {
  transform: scale(1.15);
}
/* 回复按钮：主操作CTA（金色渐变背景） */
.hv-post-card.op .hv-reply-btn {
  background: linear-gradient(135deg, var(--hv-accent), var(--hv-accent-dark)) !important;
  color: var(--hv-gold-cta-ink) !important;
  border-color: transparent !important;
  box-shadow: 0 2px 8px rgba(201,168,76,.25);
  font-weight: 600;
}
.hv-post-card.op .hv-reply-btn:hover {
  background: linear-gradient(135deg, var(--hv-accent-dark), var(--hv-accent)) !important;
  color: var(--hv-gold-cta-ink) !important;
  box-shadow: 0 4px 14px rgba(201,168,76,.35);
  transform: translateY(-1px);
}
/* 推荐/点赞按钮：品牌蓝调 */
.hv-post-card.op .hv-recommend-btn {
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
  border-color: var(--hv-primary-border);
}
.hv-post-card.op .hv-recommend-btn:hover {
  background: var(--hv-primary);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(27,58,95,.25);
}
.hv-post-card.op .hv-recommend-btn.recommended {
  background: linear-gradient(135deg, var(--hv-primary), var(--hv-primary-dark));
  color: #fff;
  border-color: transparent;
}
/* 点赞数徽章 */
.hv-post-card.op .hv-like-count {
  font-weight: 700;
  font-size: 12px;
  min-width: 18px;
  text-align: center;
}
/* 收藏按钮 */
.hv-post-card.op .hv-fav-btn:hover {
  color: var(--hv-accent-ink);
  background: var(--hv-accent-bg);
  border-color: var(--hv-accent-border);
}
/* 私信按钮 */
.hv-post-card.op .hv-pm-btn:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
  border-color: var(--hv-primary-border);
}
/* 编辑按钮 */
.hv-post-card.op .hv-edit-btn:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
  border-color: var(--hv-primary-border);
}
/* 打赏/分享按钮 */
.hv-post-card.op .hy-econ-action:hover {
  color: var(--hv-accent-ink);
  background: var(--hv-accent-bg);
  border-color: var(--hv-accent-border);
}
/* 分隔线精化：渐变竖线 */
.hv-post-card.op .hv-foot-sep {
  width: 1px;
  height: 20px;
  background: linear-gradient(180deg, transparent, var(--hv-border), transparent);
  margin: 0 6px;
}
/* 楼层号样式 */
.hv-post-card.op .hv-post-floor-num {
  font-size: 12px;
  font-weight: 600;
  color: var(--hv-text-light);
  background: var(--hv-bg-hover);
  padding: 2px 8px;
  border-radius: var(--hv-radius-full);;
  letter-spacing: .02em;
}
.hv-post-card.op .hv-post-floor-num:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
}

/* --- 回复帖操作栏：紧凑图标优先 --- */
.hv-post-card:not(.op) .hv-post-foot {
  padding-top: 6px;
  gap: 8px;
}
.hv-post-card:not(.op) .hv-post-action {
  padding: 3px 8px;
  border-radius: var(--hv-radius-sm);
  position: relative;
}
.hv-post-card:not(.op) .hv-post-action svg {
  width: 15px;
  height: 15px;
  transition: transform .2s var(--hv-ease-bounce);
}
.hv-post-card:not(.op) .hv-post-action:hover svg {
  transform: scale(1.1);
}
/* 回复帖回复按钮：金色文字 */
.hv-post-card:not(.op) .hv-reply-btn {
  color: var(--hv-accent) !important;
  font-weight: 600;
}
.hv-post-card:not(.op) .hv-reply-btn:hover {
  background: var(--hv-accent-bg) !important;
  color: var(--hv-accent-ink) !important;
  box-shadow: 0 1px 4px rgba(201,168,76,.1);
}
/* 回复帖点赞按钮 */
.hv-post-card:not(.op) .hv-support-btn:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg) !important;
}
/* 回复帖删除按钮：红色危险区 */
.hv-post-card:not(.op) .hv-action-danger:hover,
.hv-post-card:not(.op) .hv-delete-btn:hover {
  color: var(--hv-danger) !important;
  background: var(--hv-danger-bg) !important;
  border-color: var(--hv-danger-border) !important;
  box-shadow: 0 1px 4px rgba(239,68,68,.1);
}
/* 回复帖管理勾选 */
.hv-post-card:not(.op) .hv-mod-check:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
}
/* 回复帖时间戳 */
.hv-post-card:not(.op) .hv-post-time {
  font-size: 11px;
  opacity: .7;
  transition: opacity .2s;
}
.hv-post-card:not(.op) .hv-post-foot:hover .hv-post-time {
  opacity: 1;
}

/* --- 嵌套回复操作栏：最紧凑 --- */
.hv-nested-reply .hv-post-action svg {
  width: 13px;
  height: 13px;
}
.hv-nested-reply .hv-post-action span {
  font-size: 10px;
}


/* ============================================
   Task 1: 视觉层次优化
   ============================================ */
/* L1: OP帖左侧金色渐变锚点条 */
.hv-post-card.op::after {
  content: '';
  position: absolute;
  left: 0; top: 20px; bottom: 20px;
  width: 3px;
  background: linear-gradient(180deg, var(--hv-accent), var(--hv-accent-light), transparent);
  border-radius: 0 2px 2px 0;
  opacity: .5;
  transition: opacity .3s var(--hv-ease-smooth);
  pointer-events: none;
}
.hv-post-card.op:hover::after { opacity: .8; }
/* L2: 顶层回复独立卡片（覆盖早期微弱背景） */
.hv-post-card:not(.op):not(.hv-nested-reply) {
  background: var(--hv-bg-card) !important;
  border-radius: var(--hv-radius-md) !important;
  padding: 16px 18px !important;
  margin-left: 0;
  margin-right: 0;
  transition: box-shadow .25s var(--hv-ease-smooth), border-color .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth);
}
.hv-post-card:not(.op):not(.hv-nested-reply):hover {
  background: var(--hv-bg-card) !important;
}
/* L3: 嵌套回复缩进微调 */
.hv-post-nested-replies { margin-left: 34px; }
/* 区域渐隐分隔线 */
.hv-thread-toolbar { margin-top: 4px; }
#postlist { position: relative; }
#postlist::before {
  content: '';
  display: block;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--hv-border-light), transparent);
  margin-bottom: 4px;
}
/* 工具栏视觉降级 */
.hv-thread-toolbar {
  background: linear-gradient(135deg, rgba(255,255,255,.7) 0%, rgba(27,58,95,.015) 100%);
  box-shadow: 0 1px 2px rgba(15,42,67,.03);
}
.hv-thread-toolbar:hover {
  box-shadow: 0 2px 6px rgba(15,42,67,.05);
}
/* 侧边栏视觉降级 */
.hv-side-card {
  box-shadow: 0 1px 2px rgba(15,42,67,.03);
}
.hv-side-card:hover {
  box-shadow: 0 2px 8px rgba(15,42,67,.05), 0 4px 16px rgba(27,58,95,.04), 0 0 0 1px rgba(201,168,76,.06);
}

/* ============================================
   Task 5: 交互区域优化
   ============================================ */
/* 底部回复表单卡片包裹 */
.hv-reply-form-container.hv-bottom-form .hv-reply-form-inner {
  border: 1px solid var(--hv-border);
  box-shadow: 0 2px 8px rgba(15,42,67,.04), 0 4px 16px rgba(27,58,95,.03);
  transition: border-color .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth);
}
.hv-reply-form-container.hv-bottom-form:focus-within .hv-reply-form-inner {
  border-color: var(--hv-accent-border);
  box-shadow: 0 4px 16px rgba(15,42,67,.06), 0 8px 24px rgba(27,58,95,.04), 0 0 0 3px rgba(201,168,76,.1), 0 0 32px rgba(201,168,76,.08);
}
/* 提交按钮触控面积增大 */
.hv-reply-form-submit {
  min-height: 36px;
  padding: 8px 22px;
}
/* 楼层导航按钮增大 */
.hv-floor-nav-btn {
  padding: 10px 6px;
  min-height: 40px;
}
.hv-floor-nav-num {
  font-size: 17px;
}
/* 楼层导航当前页高亮 */
.hv-floor-nav-btn.hv-floor-current {
  background: linear-gradient(135deg, var(--hv-primary-bg) 0%, rgba(201,168,76,.04) 100%);
  border-color: var(--hv-primary-border);
  box-shadow: 0 2px 6px rgba(27,58,95,.08);
}
.hv-floor-nav-btn.hv-floor-current .hv-floor-nav-num {
  color: var(--hv-accent-ink);
}
/* 快速回复框最小高度 */
.hv-reply-form-textarea {
  min-height: 56px;
}
/* textarea 聚焦边框更醒目 */
.hv-reply-form-textarea:focus {
  outline: none;
}
.hv-reply-form-container:focus-within .hv-reply-form-textarea {
  caret-color: var(--hv-accent);
}
/* OP帖操作按钮桌面端触控面积 */
.hv-post-card.op .hv-post-action {
  min-height: 34px;
}

/* ============================================
   布局大改：显著视觉变化
   ============================================ */
/* --- OP帖统计栏改为醒目彩色头部带 --- */
.hv-post-card.op .hv-post-stats {
  background: linear-gradient(135deg, var(--hv-primary) 0%, var(--hv-primary-light) 50%, var(--hv-primary) 100%) !important;
  color: rgba(255,255,255,.85) !important;
  border-left: none !important;
  border-radius: var(--hv-radius-md) !important;
  padding: 14px 20px !important;
  margin: -8px -8px 16px -8px;
  box-shadow: 0 4px 12px rgba(27,58,95,.2) !important;
  font-size: 13px;
}
.hv-post-card.op .hv-post-stats span { color: rgba(255,255,255,.75); }
.hv-post-card.op .hv-post-stats b { color: #fff; font-weight: 700; }
.hv-post-card.op .hv-post-stats .hv-text-accent { color: var(--hv-accent-light) !important; }
.hv-post-card.op .hv-post-stats .hv-op-badge {
  background: rgba(255,255,255,.15);
  color: var(--hv-accent-light);
  border: 1px solid rgba(255,255,255,.2);
  padding: 2px 10px;
  border-radius: var(--hv-radius-full);;
  font-size: 11px;
  font-weight: 600;
}
/* OP帖正文区域增加左边距对齐 */
.hv-post-card.op > .hv-post-body { padding-left: 4px; }
.hv-post-card.op .hv-post-foot { padding-left: 4px; }

/* --- Hero区域更大更醒目 --- */
.hv-thread-hero {
  margin-bottom: 20px;
  border-radius: var(--hv-radius-lg);
}
.hv-thread-hero .hv-thread-header {
  padding: 28px 24px !important;
}
.hv-thread-hero .hv-thread-title {
  font-size: clamp(22px, 3.2vw, 32px) !important;
  letter-spacing: .02em;
}
.hv-thread-hero .hv-thread-sub {
  font-size: 14px;
  margin-top: 8px;
}
/* --- 侧边栏卡片彩色标题栏 --- */
.hv-side-title {
  background: linear-gradient(135deg, var(--hv-primary-bg) 0%, rgba(201,168,76,.04) 100%);
  margin: -18px -18px 12px -18px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--hv-border-light);
  border-radius: var(--hv-radius-lg) var(--hv-radius-lg) 0 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--hv-primary-text, var(--hv-primary));
  letter-spacing: .03em;
}
/* 侧边栏卡片hover时标题栏变色 */
.hv-side-card:hover .hv-side-title {
  background: linear-gradient(135deg, rgba(27,58,95,.06) 0%, rgba(201,168,76,.06) 100%);
  border-bottom-color: var(--hv-accent-border);
}

/* --- 嵌套回复气泡更突出 --- */
.hv-nested-reply .hv-post-body {
  box-shadow: 0 2px 6px rgba(15,42,67,.06);
}
.hv-nested-reply .hv-post-body:hover {
  box-shadow: 0 4px 12px rgba(15,42,67,.1);
}

/* --- 回复帖卡片内用户栏更紧凑 --- */
.hv-post-card:not(.op) .hv-post-head {
  padding-bottom: 8px;
  border-bottom: 1px solid var(--hv-border-light);
  margin-bottom: 10px;
}
/* 回复帖卡片内头像微调 */
.hv-post-card:not(.op) .hv-post-avatar img {
  border: 2px solid var(--hv-border-light);
}
.hv-post-card:not(.op):hover .hv-post-avatar img {
  border-color: var(--hv-primary-border);
}


/* ============================================
   Followme 极简风格覆盖层
   灰底 + 白卡 + 灰气泡 + 零装饰 + 大量留白
   ============================================ */
/* --- 页面背景：纯净浅灰 --- */
.hv-page, .hv-portal {
  background: #EFF1F2 !important;
}
/* --- 主内容区：白色大卡片 --- */
.hv-main {
  background: #fff;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
/* --- Hero：去除所有装饰，简化为干净标题区 --- */
.hv-thread-hero {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  margin-bottom: 0;
  border-radius: 0;
}
/* v3.1: hero-bg 背景层节点已自模板移除；同步清除 v4.0 遗留的顶部光带与底部渐变雾层伪元素 */
.hv-thread-hero::before,
.hv-thread-hero::after { content: none !important; }
.hv-thread-hero .hv-thread-header {
  background: none !important;
  padding: 0 0 20px 0 !important;
  /* v3.8: 标题区全面去边框——border:none!important（高特异性）反压主定义的四边框盒（var(--hv-border)），旧 border-bottom 分隔线一并移除，与下方内容的间距由 padding-bottom 承担 */
  border: none !important;
  /* v3.2: 标题与标签胶囊同层同行——标题占主轴靠左，胶囊收缩贴右 */
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
/* v3.9: 标题行右侧"发新帖"主操作入口——复刻 forumdisplay banner hv-btn-action 鎏金渐变胶囊视觉（✎前导符同源），与标签胶囊同层右挂；未登录态文案换"登录发帖"指向登录页（HTML 条件见模板 hero 区） */
.hv-thread-hero .hv-hero-newthread {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
  padding: 8px 20px;
  border-radius: var(--hv-radius-full);
  background: linear-gradient(135deg, var(--hv-accent), var(--hv-accent-light));
  color: var(--hv-gold-cta-ink) !important;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(201,168,76,.3);
  transition: box-shadow .2s var(--hv-ease-smooth), transform .2s var(--hv-ease-smooth);
}
.hv-thread-hero .hv-hero-newthread::before { content: '\270E'; font-size: 15px; }
.hv-thread-hero .hv-hero-newthread:hover { box-shadow: 0 4px 16px rgba(201,168,76,.4); transform: translateY(-1px); }
.hv-thread-hero .hv-thread-title {
  font-size: clamp(20px, 2.8vw, 28px) !important;
  color: #1a1a1a !important;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  -webkit-text-fill-color: #1a1a1a !important;
  /* 覆盖主定义的 text-wrap:balance：中文长标题均分换行会导致首行右侧大片空白，改为自然填满 */
  text-wrap: wrap !important;
  /* v3.1: 归零 v4.0 遗留的标题下边距，与分隔线的间距交由容器 padding-bottom 控制 */
  margin-bottom: 0 !important;
  /* v3.2: 同层主轴项——吃满剩余宽度把胶囊推向右侧；min-width 保证极窄幅时标题整体落行、胶囊退到下一行 */
  flex: 1 1 auto;
  min-width: 260px;
}
/* v3.2: 标签容器随标题同层——归零 v4.0 行距且不可被压缩换行 */
.hv-thread-hero .hv-thread-tags {
  margin-bottom: 0 !important;
  flex-shrink: 0;
}
.hv-thread-hero .hv-thread-sub {
  color: var(--hv-text-body) !important;
  font-size: 13px;
  margin-top: 6px;
}
/* v3.7 Hero标签：语义分色胶囊+前置色点锚点（取 currentColor 随语义自动同色），13px 贴近大标题比例；v3.8 全系去边框扁平化（默认规则 border:none 统一兕底）；连 hover 态一并锁定以封锁 v4.0 遗留的金色背景闪变与位移；v4.1 排除热度徽章（hy_threadheat）——徽章渐变底色由服务端内联 style 提供，不能被灰底 !important 覆盖 */
.hv-thread-hero .hv-thread-tags span:not(.hv-heat-badge),
.hv-thread-hero .hv-thread-tags span:not(.hv-heat-badge):hover {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #F3F4F5 !important;
  color: #666 !important;
  font-size: 13px;
  line-height: 1;
  padding: 4px 12px;
  border-radius: 999px;
  font-weight: 600;
  border: none !important;
  box-shadow: none !important;
  transform: none !important;
}
/* 前导色点：6px 圆点取 currentColor，六种语义自动同色 */
.hv-thread-hero .hv-thread-tags span:not(.hv-heat-badge)::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex: none;
}
/* 热度徽章（hy_threadheat 详情页）：渐变底色/阴影与文字色 --hv-heat-ink 均由内联 style 提供
   （文字色由 class_heat::badge_palette 按 WCAG 对比度实时选定，兜底白字），此处仅约束胶囊形态与内容排版；v4.1 恢复重构时丢失的详情页徽章 */
.hv-thread-hero .hv-thread-tags span.hv-heat-badge,
.hv-thread-hero .hv-thread-tags span.hv-heat-badge:hover {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  line-height: 1.5;
  padding: 4px 12px;
  border-radius: 999px;
  font-weight: 700;
  color: var(--hv-heat-ink, #fff);
  white-space: nowrap;
  border: none;
}
.hv-thread-hero .hv-thread-tags span.hv-heat-badge svg { flex: none; }
.hv-thread-hero .hv-thread-tags span.hv-heat-badge .hv-heat-num { font-weight: 800; }
/* 热帖：橙红渐变实底白字——热度主视觉焦点 */
.hv-thread-hero .hv-thread-tags span.hv-tag-hot,
.hv-thread-hero .hv-thread-tags span.hv-tag-hot:hover {
  background: linear-gradient(135deg, #F0692F, #E8451D) !important;
  color: #fff !important;
}
/* 神帖：鎏金渐变实底配深墨字（白字压金底仅 2.3:1，不达标） */
.hv-thread-hero .hv-thread-tags span.hv-tag-popular,
.hv-thread-hero .hv-thread-tags span.hv-tag-popular:hover {
  background: linear-gradient(135deg, #C9A84C, #AD8B2E) !important;
  color: var(--hv-gold-cta-ink) !important;
}
/* 精华：米金浅底深金字（v3.8 去边框扁平化） */
.hv-thread-hero .hv-thread-tags span.hv-tag-essence,
.hv-thread-hero .hv-thread-tags span.hv-tag-essence:hover {
  background: #FBF3DC !important;
  color: #8A6914 !important;
}
/* 置顶：品牌蓝浅底（v3.8 去边框扁平化） */
.hv-thread-hero .hv-thread-tags span.hv-tag-pin,
.hv-thread-hero .hv-thread-tags span.hv-tag-pin:hover {
  background: #EDF2F8 !important;
  color: #1B3A5F !important;
}
/* 曝光：警示红浅底（v3.8 去边框扁平化） */
.hv-thread-hero .hv-thread-tags span.hv-tag-warn,
.hv-thread-hero .hv-thread-tags span.hv-tag-warn:hover {
  background: #FDECEC !important;
  color: #C0392B !important;
}
/* 新帖：发布24小时内（与论坛首页列表同口径）——浅翠绿底+深绿字，冷清帖的可亮信号（v3.8 去边框扁平化） */
.hv-thread-hero .hv-thread-tags span.hv-tag-new,
.hv-thread-hero .hv-thread-tags span.hv-tag-new:hover {
  background: #E8F7EE !important;
  color: #047857 !important;
}
/* v3.7: 新帖前导点 1.8s 呼吸（opacity+scale）传递「新鲜/活跃」；动画只作用于闲置态 ::before，不触碰 hover 锁定契约；系统减弱动态时静止 */
@keyframes hvTagNewBreath {
  0%, 100% { opacity: .3; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1); }
}
.hv-thread-hero .hv-thread-tags span.hv-tag-new::before {
  animation: hvTagNewBreath 1.8s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .hv-thread-hero .hv-thread-tags span.hv-tag-new::before { animation: none; }
}
/* --- Hero meta 区适配扁平化设计（修复白字白底不可见问题） --- */
.hv-thread-hero .hv-thread-author .hv-thread-avatar {
  width: 32px !important; height: 32px !important;
  border: 2px solid #E8EAEC !important;
  box-shadow: none !important;
}
.hv-thread-hero .hv-thread-author:hover .hv-thread-avatar {
  border-color: #1B3A5F !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
  transform: scale(1.05);
}
.hv-thread-hero .hv-thread-author .hv-thread-author-name {
  color: #1B3A5F !important;
  text-shadow: none !important;
  font-weight: 600 !important;
}
.hv-thread-hero .hv-thread-author:hover .hv-thread-author-name {
  color: #0F2A47 !important;
}
.hv-meta-divider {
  background: #E0E3E6 !important;
}
.hv-meta-time {
  color: var(--hv-text-body) !important;
}
.hv-meta-time svg { opacity: .5; }
.hv-meta-right .hv-meta-stat {
  color: #888 !important;
  background: #F7F8F9 !important;
  border: 1px solid #EBEDEF !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.hv-meta-right .hv-meta-stat:hover {
  background: #F0F2F3 !important;
  border-color: #D5D8DB !important;
  box-shadow: 0 2px 6px rgba(0,0,0,.04) !important;
  transform: translateY(-1px);
}
.hv-meta-right .hv-meta-stat svg { opacity: .55; }
.hv-meta-right .hv-meta-stat:hover svg { opacity: .75; }
/* Hero meta 行：通栏信息条适配扁平化（白底上主定义的半透明白背景不可见） */
.hv-thread-meta-row {
  background: #F7F8F9;
  border-color: #EFF0F2;
}
.hv-thread-meta-row .hv-meta-stat {
  background: #fff !important;
}
.hv-thread-meta-row .hv-meta-stat:hover {
  background: #fff !important;
  border-color: #D5D8DB !important;
}
/* --- 工具栏：融入内容区，无独立卡片 --- */
.hv-thread-toolbar {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 12px 0 !important;
  margin-bottom: 0 !important;
  border-bottom: 1px solid #EBEDEF;
  border-radius: 0;
}
.hv-thread-toolbar:hover { box-shadow: none !important; }
.hv-filter-btn {
  background: #F3F4F5 !important;
  border: none !important;
  color: #666 !important;
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 15px;
  box-shadow: none !important;
}
.hv-filter-btn:hover {
  background: #EBEDEF !important;
  color: #333 !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-share-btn {
  color: var(--hv-text-body) !important;
  border: none !important;
  box-shadow: none !important;
}
.hv-share-btn:hover {
  background: #F3F4F5 !important;
  color: #666 !important;
  box-shadow: none !important;
  transform: none !important;
}
/* v5.0 工具栏分组增强 */
.hv-toolbar-group {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px 6px;
  border-radius: var(--hv-radius-full);;
  background: rgba(0,0,0,.025);
  transition: background .2s var(--hv-ease-smooth);
}
.hv-toolbar-group:hover { background: rgba(0,0,0,.045); }
/* 分隔线渐变美化 */
.hv-toolbar-sep {
  background: linear-gradient(to bottom, transparent, var(--hv-border), transparent) !important;
  height: 24px !important;
  opacity: 1 !important;
}
/* 楼层跳转胶囊化 */
.hv-floor-jump {
  background: rgba(0,0,0,.025);
  padding: 3px 10px 3px 8px !important;
  border-radius: var(--hv-radius-full);;
  transition: background .2s var(--hv-ease-smooth);
}
.hv-floor-jump:focus-within { background: rgba(0,0,0,.045); }
/* 按钮高度统一 */
.hv-filter-btn, .hv-share-btn {
  min-height: 30px;
  box-sizing: border-box;
}
/* --- 工具栏单行显示：窄宽两级渐进收缩为纯图标 --- */
@media (max-width: 1280px) {
  .hv-toolbar-right .hv-share-btn span { display: none; }
  .hv-toolbar-right .hv-share-btn { gap: 0; padding: 4px 8px; }
  .hv-toolbar-right { gap: 6px; }
}
@media (max-width: 1024px) {
  .hv-toolbar-left .hv-filter-btn span { display: none; }
  .hv-toolbar-left .hv-filter-btn { gap: 0; padding: 4px 8px; }
  .hv-floor-jump input { width: 40px; }
  .hv-thread-toolbar { gap: 8px; padding: 10px 14px; }
}
/* --- 面包屑：极简 --- */
.hv-breadcrumb {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 0 12px 0 !important;
  margin-bottom: 0;
  border-bottom: none;
  font-size: 12px;
}
.hv-breadcrumb:hover { box-shadow: none !important; border-color: transparent !important; }
.hv-breadcrumb a { color: var(--hv-text-body) !important; }
.hv-breadcrumb a:hover { color: #1B3A5F !important; text-shadow: none !important; }
.hv-breadcrumb .hv-sep { color: var(--hv-text-body) !important; }
.hv-breadcrumb .hv-current { color: #333 !important; }
/* --- 帖子列表分隔线去除 --- */
#postlist::before { display: none !important; }
/* --- OP帖：透明背景，去掉渐变锚点/顶部条 --- */
.hv-post-card.op {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 20px 0 !important;
  margin-bottom: 0 !important;
  border-bottom: 1px solid #EBEDEF !important;
  contain: none;
  content-visibility: visible;
}
.hv-post-card.op::before { display: none !important; }
.hv-post-card.op::after { display: none !important; }
.hv-post-card.op:hover { box-shadow: none !important; border-color: #EBEDEF !important; }
/* OP帖统计栏：透明背景 */
.hv-post-card.op .hv-post-stats {
  background: transparent !important;
  color: #666 !important;
  border-left: none !important;
  border-radius: 0 !important;
  padding: 6px 0 !important;
  margin: 0 0 12px 0 !important;
  box-shadow: none !important;
  font-size: 12px;
}
.hv-post-card.op .hv-post-stats span { color: var(--hv-text-body); }
.hv-post-card.op .hv-post-stats b { color: #333; font-weight: 600; }
.hv-post-card.op .hv-post-stats .hv-text-accent { color: #1B3A5F !important; }
.hv-post-card.op .hv-post-stats .hv-op-badge {
  background: transparent;
  color: #666;
  border: none;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 500;
}
/* OP帖头像光环去除 */
.hv-post-card.op:hover .hv-post-avatar img {
  box-shadow: none !important;
  transform: none !important;
}
/* OP帖正文字号 */
.hv-post-card.op > .hv-post-body {
  font-size: 16px;
  color: #333;
  line-height: 1.8;
  padding-left: 0;
}
/* OP帖操作栏：去掉渐变分隔线 */
.hv-post-card.op .hv-post-foot {
  border-top: none !important;
  padding-left: 0;
  margin-top: 14px;
  padding-top: 12px;
}
.hv-post-card.op .hv-post-foot::before { display: none !important; }
/* --- 回复帖：透明背景，简洁清爽 --- */
.hv-post-card:not(.op):not(.hv-nested-reply) {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 14px 0 !important;
  margin: 0 0 10px 0 !important;
  border-bottom: none !important;
  transition: background .2s ease;
  contain: none;
  content-visibility: visible;
}
.hv-post-card:not(.op):not(.hv-nested-reply):hover {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-post-card:not(.op):not(.hv-nested-reply)::before { display: none !important; }
/* 回复帖用户栏：去掉底部分隔线 */
.hv-post-card:not(.op) .hv-post-head {
  border-bottom: none !important;
  padding-bottom: 0 !important;
  margin-bottom: 6px !important;
}
/* 回复帖头像：去掉边框 */
.hv-post-card:not(.op) .hv-post-avatar img {
  border: none !important;
}
.hv-post-card:not(.op):hover .hv-post-avatar img {
  border-color: transparent !important;
}
/* 回复帖正文 */
.hv-post-card:not(.op) .hv-post-body {
  margin-left: 48px !important;
  font-size: 15px !important;
  color: #333 !important;
  line-height: 1.7 !important;
}
/* 回复帖操作栏 */
.hv-post-card:not(.op) .hv-post-foot {
  margin-left: 48px !important;
  margin-top: 6px !important;
  padding-top: 0 !important;
}
.hv-post-card:not(.op) .hv-post-foot::before { display: none !important; }
/* ===== v6.3 顶层楼层恢复完整卡片形态：一楼回复平铺为独立楼层卡，去除聊天气泡的折叠感 ===== */
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) {
  background: var(--hv-bg-card) !important;
  border: 1px solid #EBEDEF !important;
  border-radius: var(--hv-radius-lg) !important;
  box-shadow: var(--hv-shadow-sm) !important;
  padding: 18px 20px !important;
  margin: 0 0 14px 0 !important;
}
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body {
  margin-left: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body::before,
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body::after { display: none !important; }
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-foot { margin-left: 0 !important; }
/* 内联回复框在 grid 楼层卡中跨整行，避免被自动放置进 42px 头像列导致弹出空白 */
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-reply-form-container {
  grid-column: 1 / -1;
  grid-row: auto;
  margin-left: 0;
  max-width: 100%;
}
/* 楼层号重新显示（2楼/3楼…），强化独立楼层感 */
#postlist > .hv-post-card:not(.op):not(.hv-nested-reply) .hv-post-floor { display: block !important; position: absolute; top: 16px; right: 18px; margin: 0; }
/* 管理员马甲楼层保留金色气泡底色（加内边距成卡片内强调块） */
#postlist > .hv-post-card.hv-admin-reply:not(.op):not(.hv-nested-reply) > .hv-post-body,
#postlist > .hv-post-card:has(.hv-admin-reply-tag):not(.op):not(.hv-nested-reply) > .hv-post-body {
  background: var(--hv-bubble-admin-bg) !important;
  border: 1px solid var(--hv-bubble-admin-border) !important;
  border-radius: var(--hv-bubble-radius) !important;
  padding: 12px 16px !important;
  box-shadow: var(--hv-bubble-admin-shadow) !important;
}
/* 回复帖操作按钮：纯图标+文字，透明背景 */
.hv-post-card:not(.op) .hv-post-action {
  background: transparent !important;
  border: none !important;
  color: var(--hv-text-body) !important;
  font-size: 12px;
  padding: 2px 6px;
  min-height: 28px;
}
.hv-post-card:not(.op) .hv-post-action:hover {
  background: rgba(0,0,0,.04) !important;
  color: #666 !important;
  box-shadow: none !important;
}
.hv-post-card:not(.op) .hv-post-action span { color: var(--hv-text-body); }
.hv-post-card:not(.op) .hv-post-action:hover span { color: #666; }
/* 回复按钮保持品牌蓝 */
.hv-post-card:not(.op) .hv-reply-btn { color: #1B3A5F !important; }
.hv-post-card:not(.op) .hv-reply-btn:hover { color: #0F2A47 !important; background: rgba(27,58,95,.06) !important; }
.hv-post-card:not(.op) .hv-reply-btn span { color: #1B3A5F; }
.hv-post-card:not(.op) .hv-reply-btn:hover span { color: #0F2A47; }
/* --- 嵌套回复：透明背景 --- */
.hv-nested-reply .hv-post-body {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.hv-nested-reply .hv-post-body:hover {
  box-shadow: none !important;
  border-color: transparent !important;
}
.hv-nested-reply .hv-post-body::before,
.hv-nested-reply .hv-post-body::after { display: none !important; }
/* 嵌套回复连接线简化 */
.hv-post-nested-replies {
  border-left: 1px solid #EBEDEF !important;
  border-image: none !important;
}
.hv-post-nested-replies::before { display: none !important; }
/* --- 侧边栏：极简白卡 --- */
.hv-sidebar { gap: 12px; }
.hv-side-card {
  background: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.04) !important;
  padding: 16px !important;
  contain: none;
  content-visibility: visible;
}
.hv-side-card::before,
.hv-side-card::after { display: none !important; }
.hv-side-card:hover {
  box-shadow: 0 2px 6px rgba(0,0,0,.06) !important;
  border-color: transparent !important;
  transform: none !important;
}
/* 侧边栏标题：极简 */
.hv-side-title {
  background: none !important;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  border-bottom: none !important;
  font-size: 13px;
  font-weight: 600;
  color: #333;
  letter-spacing: 0;
  border-radius: 0;
}
.hv-side-card:hover .hv-side-title {
  background: none !important;
  border-bottom-color: transparent !important;
}
/* 极简标题已去掉左侧内边距，基础规则里的装饰金条会压住首字，故此处关闭 */
.hv-side-title::before { display: none !important; }
/* 侧边栏统计数字：去掉渐变文字 */
.hv-side-metric-num {
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  -webkit-text-fill-color: #1a1a1a !important;
  font-size: 18px;
  font-weight: 700;
}
.hv-side-metric {
  background: #F7F8F9 !important;
  border: none !important;
  border-radius: 6px !important;
}
.hv-side-metric:hover {
  background: #F3F4F5 !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
.hv-side-metric span { color: var(--hv-text-body); font-size: 11px; }
/* 侧边栏列表 */
.hv-side-list li {
  border-bottom: 1px solid #F3F4F5 !important;
}
.hv-side-list li:hover {
  background: #F7F8F9 !important;
  padding-left: 10px !important;
}
/* 侧边栏按钮 */
.hv-side-action-btn {
  background: #F3F4F5 !important;
  border: none !important;
  color: #666 !important;
  box-shadow: none !important;
}
.hv-side-action-btn:hover {
  background: #EBEDEF !important;
  color: #333 !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-side-action-main {
  background: #1B3A5F !important;
  color: #fff !important;
  box-shadow: none !important;
  animation: none !important;
}
.hv-side-action-main:hover {
  background: #0F2A47 !important;
  box-shadow: none !important;
  transform: none !important;
}
/* 楼层导航 */
.hv-floor-nav-btn {
  background: #F7F8F9 !important;
  border: none !important;
  box-shadow: none !important;
}
.hv-floor-nav-btn:hover {
  background: #F3F4F5 !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-floor-nav-num { color: #333; }
.hv-floor-nav-btn:hover .hv-floor-nav-num { color: #1B3A5F; animation: none !important; }
.hv-floor-nav-label { color: var(--hv-text-body); }
/* 楼层进度条 */
.hv-floor-progress-fill {
  background: #1B3A5F !important;
  animation: none !important;
}
.hv-floor-progress-fill::after { display: none !important; }
/* --- 操作按钮（OP帖）：极简 --- */
.hv-post-card.op .hv-post-action {
  background: transparent !important;
  border: none !important;
  color: var(--hv-text-body) !important;
  box-shadow: none !important;
  min-height: 32px;
}
.hv-post-card.op .hv-post-action:hover {
  background: rgba(0,0,0,.04) !important;
  color: #666 !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-post-card.op .hv-post-action svg { transition: none !important; }
.hv-post-card.op .hv-post-action:hover svg { transform: none !important; }
/* 回复按钮：品牌蓝文字 */
.hv-post-card.op .hv-reply-btn {
  background: transparent !important;
  color: #1B3A5F !important;
  border: none !important;
  box-shadow: none !important;
  font-weight: 600;
}
.hv-post-card.op .hv-reply-btn:hover {
  background: rgba(27,58,95,.06) !important;
  color: #0F2A47 !important;
  box-shadow: none !important;
  transform: none !important;
}
/* 推荐按钮 */
.hv-post-card.op .hv-recommend-btn {
  background: transparent !important;
  color: var(--hv-text-body) !important;
  border: none !important;
}
.hv-post-card.op .hv-recommend-btn:hover {
  background: rgba(0,0,0,.04) !important;
  color: #1B3A5F !important;
  box-shadow: none !important;
}
.hv-post-card.op .hv-recommend-btn.recommended {
  background: rgba(27,58,95,.06) !important;
  color: #1B3A5F !important;
}
/* 收藏按钮 */
.hv-post-card.op .hv-fav-btn:hover {
  background: rgba(0,0,0,.04) !important;
  color: #1B3A5F !important;
  box-shadow: none !important;
}
/* 楼层号 */
.hv-post-card.op .hv-post-floor-num {
  background: transparent !important;
  color: var(--hv-text-body) !important;
  font-weight: 500;
}
.hv-post-card.op .hv-post-floor-num:hover {
  background: rgba(0,0,0,.04) !important;
  color: #666 !important;
}
/* 分隔线 */
.hv-post-card.op .hv-foot-sep {
  background: #EBEDEF !important;
  height: 16px;
}
/* --- 阅读进度条 --- */
.hv-read-progress {
  background: #1B3A5F !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
/* --- 返回顶部 --- */
.hv-back-top {
  background: #fff !important;
  border: 1px solid #EBEDEF !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
  color: #666 !important;
}
.hv-back-top:hover {
  background: #F3F4F5 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,.1) !important;
  color: #333 !important;
  transform: none !important;
}
/* --- 吸顶栏 --- */
.hv-sticky-bar {
  background: rgba(255,255,255,.95) !important;
  border-bottom: 1px solid #EBEDEF !important;
  border-image: none !important;
  backdrop-filter: blur(8px) !important;
}
/* --- 相关推荐卡片 --- */
.hv-related-card {
  background: #F7F8F9 !important;
  border: none !important;
  box-shadow: none !important;
}
.hv-related-card:hover {
  background: #F3F4F5 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-related-card::before { display: none !important; }
/* --- 上下帖导航 --- */
.hv-post-nav-item {
  background: #F7F8F9 !important;
  border: none !important;
  box-shadow: none !important;
}
.hv-post-nav-item:hover {
  background: #F3F4F5 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-post-nav-item::before { display: none !important; }
/* --- 回复表单 --- */
.hv-reply-form-container.hv-bottom-form {
  border-top: 1px solid #EBEDEF !important;
}
.hv-reply-form-container.hv-bottom-form .hv-reply-form-inner {
  border: none !important;
  box-shadow: none !important;
}
.hv-reply-form-container.hv-bottom-form:focus-within .hv-reply-form-inner {
  border-color: transparent !important;
  box-shadow: 0 0 0 2px rgba(27,58,95,.1) !important;
}
.hv-reply-form-inner {
  border: 1px solid #EBEDEF !important;
  box-shadow: none !important;
}
.hv-reply-form-inner::before { display: none !important; }
.hv-reply-form-container:focus-within .hv-reply-form-inner {
  border-color: #1B3A5F !important;
  box-shadow: 0 0 0 2px rgba(27,58,95,.08) !important;
}
.hv-reply-form-submit {
  background: #1B3A5F !important;
  box-shadow: none !important;
}
.hv-reply-form-submit:hover {
  background: #0F2A47 !important;
  box-shadow: none !important;
  transform: none !important;
}
/* --- 代码块 --- */
.hv-post-body pre {
  background: #F7F8F9 !important;
  border: 1px solid #EBEDEF !important;
  box-shadow: none !important;
  color: #333 !important;
}
.hv-post-body pre::before { display: none !important; }
.hv-post-body pre code { color: #333; }
.hv-post-body code {
  background: #F3F4F5 !important;
  border: none !important;
  color: #1B3A5F !important;
}
/* --- 引用块 --- */
.hv-post-body blockquote {
  background: #F7F8F9 !important;
  border-left: 2px solid #ddd !important;
  border-image: none !important;
}
.hv-post-body blockquote::before { display: none !important; }
/* --- 分隔线 --- */
.hv-post-body hr {
  background: #EBEDEF !important;
}
/* --- 合规提示 --- */
.hv-compliance-tip {
  background: #F7F8F9 !important;
  border-left: 2px solid #ddd !important;
  border-image: none !important;
}
.hv-compliance-tip::before { display: none !important; }
.hv-compliance-danger {
  background: rgba(239,68,68,.04) !important;
  border-left-color: var(--hv-danger) !important;
}
/* --- 骨架屏 --- */
.hv-skeleton { animation: none !important; }
.hv-skeleton-post { border-color: #EBEDEF !important; }
/* --- 楼层号：极简灰色小字 --- */
.hv-post-floor {
  background: none !important;
  color: var(--hv-text-body) !important;
  border-radius: 0 !important;
  padding: 0 !important;
  font-weight: 400 !important;
  font-size: 12px;
}
/* --- OP徽章：极简灰底 --- */
.hv-op-badge {
  background: var(--hv-bg-hover) !important;
  color: var(--hv-text-muted) !important;
  border: none !important;
  box-shadow: none !important;
  font-weight: 500 !important;
  padding: 2px 8px !important;
  border-radius: 4px !important;
  font-size: 11px;
}
.hv-post-card.op .hv-op-badge {
  background: var(--hv-bg-hover) !important;
  color: var(--hv-text-muted) !important;
  border: none !important;
  box-shadow: none !important;
}
/* --- Hero顶部金色渐变线隐藏 --- */
.hv-thread-hero::before { display: none !important; }
/* --- Hero底部金色渐变线隐藏 --- */
.hv-thread-hero::after { display: none !important; }
/* --- 用户名胶囊去背景 --- */
.hv-post-username a {
  background: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
/* 字体灰度层级（一律走语义令牌，亮色取值与原有 hex 等值，暗色由 hv-dark.css 接管）*/
.hv-text-primary { color: var(--hv-text-primary) !important; }
.hv-text-title { color: var(--hv-text-title) !important; }
.hv-text-body { color: var(--hv-text-body) !important; }
.hv-text-muted { color: var(--hv-text-muted) !important; }
.hv-text-light { color: var(--hv-text-light) !important; }

/* --- 楼层号：极简灰色小字 --- */
.hv-post-floor {
  background: none !important;
  color: var(--hv-text-body) !important;
  border-radius: 0 !important;
  padding: 0 !important;
  font-weight: 400 !important;
  font-size: 12px;
}
/* 此处原有 27 行与上方「OP徽章 / Hero 渐变线 / 用户名胶囊」三段逐字重复，属复制粘贴冗余，已合并为单一定义 */
/* --- 站点头部金色渐变线隐藏（仅限帖子页） --- */
.hv-header::after { display: none !important; }
/* --- 导航活跃项金色下划线改为品牌蓝 --- */
.hv-nav-item.active::after {
  background: #1B3A5F !important;
  height: 2px !important;
}
/* --- 用户等级/头衔胶囊去背景 --- */
.hv-post-userlevel {
  background: none !important;
  padding: 0 !important;
}
/* --- 作者徽章：极简灰底 --- */
.hv-badge-author {
  background: var(--hv-bg-hover) !important;
  color: var(--hv-text-muted) !important;
  border: none !important;
  box-shadow: none !important;
  font-weight: 500 !important;
  padding: 2px 8px !important;
  border-radius: 4px !important;
}
.hv-post-card.op .hv-badge-author {
  background: var(--hv-bg-hover) !important;
  color: var(--hv-text-muted) !important;
  border: none !important;
  box-shadow: none !important;
}
/* --- 楼主徽章：极简灰底 --- */
.hv-badge-primary {
  background: var(--hv-bg-hover) !important;
  color: var(--hv-text-muted) !important;
  border: none !important;
  box-shadow: none !important;
  font-weight: 500 !important;
  padding: 2px 8px !important;
  border-radius: 4px !important;
}
/* --- 所有徽章基础类：极简 --- */
.hv-badge {
  background: var(--hv-bg-hover) !important;
  color: var(--hv-text-muted) !important;
  border: none !important;
  box-shadow: none !important;
}

/* ============================================
   Followme 打磨第二轮：去暖色/简化气泡/推荐/表单
   ============================================ */
/* 补充缺失的文本变量（亮色模式） */
:root {
  --hv-text-title: #333;
  --hv-text-body: #666;
}
/* 注：气泡变量与嵌套/管理员气泡样式由「聊天气泡布局 v2」统一管理 */
/* 管理员标签 */
.hv-admin-reply-tag {
  background: var(--hv-border) !important;
  color: var(--hv-text-muted) !important;
  border: none !important;
  box-shadow: none !important;
}
/* --- 相关推荐卡片：极简灰底 --- */
.hv-related-card {
  background: #F7F8F9 !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 8px !important;
}
.hv-related-card:hover {
  background: #F3F4F5 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-related-card::before { display: none !important; }
.hv-related-card::after { display: none !important; }
.hv-related-title { color: #333 !important; font-weight: 500; }
.hv-related-title:hover { color: #1B3A5F !important; }
.hv-related-meta { color: var(--hv-text-body) !important; font-size: 12px; }
/* 相关推荐标题区域 */
.hv-related-header {
  border-bottom: 1px solid #EBEDEF !important;
  padding-bottom: 10px !important;
}
.hv-related-header .hv-side-title {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* --- 上下帖导航：极简 --- */
.hv-post-nav-item {
  background: #F7F8F9 !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 8px !important;
}
.hv-post-nav-item:hover {
  background: #F3F4F5 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-post-nav-item::before { display: none !important; }
.hv-post-nav-label { color: var(--hv-text-muted) !important; font-size: 12px; }
.hv-post-nav-title { color: var(--hv-text-title) !important; }
.hv-post-nav-title:hover { color: var(--hv-primary-text, var(--hv-primary)) !important; }
/* --- 底部回复表单：极简 --- */
.hv-reply-form-container.hv-bottom-form {
  border-top: 1px solid #EBEDEF !important;
  background: none !important;
}
.hv-reply-form-inner {
  border: 1px solid #EBEDEF !important;
  box-shadow: none !important;
  border-radius: 8px !important;
  background: #fff !important;
}
.hv-reply-form-inner::before { display: none !important; }
.hv-reply-form-container:focus-within .hv-reply-form-inner {
  border-color: #1B3A5F !important;
  box-shadow: 0 0 0 2px rgba(27,58,95,.08) !important;
}
.hv-reply-form-textarea {
  background: transparent !important;
  border: none !important;
  font-size: 15px;
  color: #333;
  line-height: 1.7;
}
.hv-reply-form-textarea:focus {
  outline: none !important;
  box-shadow: none !important;
}
.hv-reply-form-textarea::placeholder { color: var(--hv-text-body) !important; }
.hv-reply-form-submit {
  background: #1B3A5F !important;
  color: #fff !important;
  box-shadow: none !important;
  border-radius: 6px !important;
  font-weight: 600;
}
.hv-reply-form-submit:hover {
  background: #0F2A47 !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-reply-form-cancel {
  background: #F3F4F5 !important;
  color: #666 !important;
  border: none !important;
  box-shadow: none !important;
}
.hv-reply-form-cancel:hover {
  background: #EBEDEF !important;
  color: #333 !important;
  box-shadow: none !important;
}
/* 回复表单头部 */
.hv-reply-form-header {
  border-bottom: 1px solid #F3F4F5 !important;
  padding-bottom: 8px !important;
}
.hv-reply-form-title {
  color: #333 !important;
  font-size: 14px;
  font-weight: 600;
}
/* 回复表单目标提示 */
.hv-reply-target-tip {
  background: #F3F4F5 !important;
  border: none !important;
  color: #666 !important;
  border-radius: 4px !important;
}
/* --- 吸顶栏：白底极简 --- */
.hv-sticky-bar {
  background: rgba(255,255,255,.95) !important;
  border-bottom: 1px solid #EBEDEF !important;
  border-image: none !important;
  backdrop-filter: blur(8px) !important;
  box-shadow: none !important;
}
.hv-sticky-bar .hv-sticky-title { color: var(--hv-text-title) !important; }
.hv-sticky-bar .hv-sticky-forum { color: var(--hv-text-body) !important; }
.hv-sticky-bar .hv-sticky-stat { color: var(--hv-text-body) !important; }
.hv-sticky-bar .hv-sticky-reply-btn {
  background: #1B3A5F !important;
  color: #fff !important;
  box-shadow: none !important;
}
.hv-sticky-bar .hv-sticky-reply-btn:hover {
  background: #0F2A47 !important;
  box-shadow: none !important;
  transform: none !important;
}
/* --- 快速操作按钮 --- */
.hv-side-actions-grid .hv-side-action-btn {
  background: #F3F4F5 !important;
  border: none !important;
  color: #666 !important;
  box-shadow: none !important;
}
.hv-side-actions-grid .hv-side-action-btn:hover {
  background: #EBEDEF !important;
  color: #333 !important;
  box-shadow: none !important;
  transform: none !important;
}
.hv-side-actions-grid .hv-side-action-main {
  background: #1B3A5F !important;
  color: #fff !important;
  box-shadow: none !important;
  animation: none !important;
}
.hv-side-actions-grid .hv-side-action-main:hover {
  background: #0F2A47 !important;
  box-shadow: none !important;
  transform: none !important;
}
/* --- 返回顶部按钮 --- */
.hv-back-top {
  background: #fff !important;
  border: 1px solid #EBEDEF !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
  color: #666 !important;
}
.hv-back-top:hover {
  background: #F3F4F5 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,.1) !important;
  color: #333 !important;
  transform: none !important;
}
/* --- 阅读进度条 --- */
.hv-read-progress {
  background: #1B3A5F !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
/* --- 页面底部锚点 --- */
.hv-bottom-anchor {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}

/* ===== v9.0 剩余优化：统一灰色调 ===== */
/* P1: 侧边栏标签激活态 → 纯灰不用渐变 */
#hv_tab_hot:checked ~ .hv-side-tab-labels label[for="hv_tab_hot"],
#hv_tab_recent:checked ~ .hv-side-tab-labels label[for="hv_tab_recent"] {
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  -webkit-text-fill-color: unset !important;
  color: #111 !important;
  font-weight: 600 !important;
}

/* P2: 排名数字 → 统一灰色 */
.hv-side-rank-1, .hv-side-rank-2, .hv-side-rank-3 {
  background: #D1D5DB !important;
  box-shadow: none !important;
  color: #6B7280 !important;
}

/* P3: 主题色选择器 → 隐藏 */
.hv-theme-switcher { display: none !important; }

/* P5: 头像hover光环 → 灰色 */
.hv-post-card:hover .hv-post-avatar img {
  box-shadow: 0 0 0 2px #E5E7EB !important;
  transform: none !important;
}
.hv-post-card.op:hover .hv-post-avatar img {
  box-shadow: 0 0 0 2px #E5E7EB !important;
}

/* 侧边栏统计图标emoji → 隐藏 */
.hv-side-stat { font-size: 11px !important; color: #9CA3AF !important; }

/* 侧边栏标题emoji → 简化 */
.hv-side-title { font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; }

/* 快速操作标题 */
.hv-side-actions-title { font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; }

/* ===== 聊天气泡布局 v2（头像与气泡并排） ===== */
:root {
  --hv-bubble-bg: #EFF1F4;
  --hv-bubble-border: #E2E6EC;
  --hv-bubble-shadow: 0 1px 2px rgba(0,0,0,.04);
  --hv-bubble-shadow-hover: 0 2px 10px rgba(0,0,0,.07);
  --hv-bubble-admin-bg: linear-gradient(135deg, rgba(201,168,76,.10) 0%, rgba(201,168,76,.04) 50%, #fff 100%);
  --hv-bubble-admin-border: rgba(201,168,76,.30);
  --hv-bubble-admin-shadow: 0 2px 10px rgba(201,168,76,.08);
  --hv-bubble-op-bg: linear-gradient(135deg, rgba(201,168,76,.07) 0%, rgba(201,168,76,.02) 100%);
  --hv-bubble-op-border: rgba(201,168,76,.22);
  --hv-bubble-op-shadow: 0 1px 4px rgba(201,168,76,.05);
}

/* 卡片透明 */
.hv-post-card.op,
.hv-post-card:not(.op):not(.hv-nested-reply),
.hv-post-nested-replies .hv-post-card {
  background: transparent !important;
}
.hv-post-card.op .hv-post-stats,
.hv-post-card:not(.op) .hv-post-stats {
  background: transparent !important;
}

/* ============ 楼主帖(OP)：左侧气泡 ============ */
.hv-post-card.op > .hv-post-body {
  background: var(--hv-bubble-op-bg) !important;
  border: 1px solid var(--hv-bubble-op-border) !important;
  border-radius: 4px 16px 16px 16px !important;
  padding: 16px 20px !important;
  box-shadow: var(--hv-bubble-op-shadow) !important;
  position: relative;
}
.hv-post-card.op > .hv-post-body::before {
  content: ''; position: absolute;
  top: 14px; left: -7px;
  width: 0; height: 0;
  border: 7px solid transparent;
  border-right-color: var(--hv-bubble-op-border);
  border-left: 0; border-top: 0;
}
.hv-post-card.op > .hv-post-body::after {
  content: ''; position: absolute;
  top: 15px; left: -5px;
  width: 0; height: 0;
  border: 6px solid transparent;
  border-right-color: rgba(201,168,76,.05);
  border-left: 0; border-top: 0;
}

/* ============ 普通回复：左侧并排气泡 ============ */
/* CSS Grid：头像在左，内容在右 */
.hv-post-card:not(.op):not(.hv-nested-reply) {
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  grid-template-rows: auto auto auto !important;
  grid-template-areas: "avatar info" "avatar body" "avatar foot" !important;
  gap: 2px 10px !important;
  align-items: start !important;
  padding: 8px 0 !important;
  margin: 0 !important;
}
/* head 展开为 grid 子项 */
.hv-post-card:not(.op):not(.hv-nested-reply) .hv-post-head {
  display: contents !important;
}
.hv-post-card:not(.op):not(.hv-nested-reply) .hv-post-head .hv-post-avatar {
  grid-area: avatar !important;
  align-self: start !important;
  padding-top: 4px !important;
}
.hv-post-card:not(.op):not(.hv-nested-reply) .hv-post-head .hv-post-userinfo {
  grid-area: info !important;
  justify-self: start !important;
  text-align: left !important;
}
.hv-post-card:not(.op):not(.hv-nested-reply) .hv-post-username {
  justify-content: flex-start !important;
  margin-left: 0 !important;
}
.hv-post-card:not(.op):not(.hv-nested-reply) .hv-post-usermeta { text-align: left !important; }
.hv-post-card:not(.op):not(.hv-nested-reply) .hv-post-floor { display: none !important; }
/* 正文气泡 */
.hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body {
  grid-area: body !important;
  background: var(--hv-bubble-bg) !important;
  border: 1px solid var(--hv-bubble-border) !important;
  border-radius: 4px 16px 16px 16px !important;
  padding: 12px 16px !important;
  box-shadow: var(--hv-bubble-shadow) !important;
  max-width: 100% !important;
  margin: 0 !important;
  position: relative;
  transition: box-shadow .2s ease, border-color .2s ease;
}
.hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body:hover {
  box-shadow: var(--hv-bubble-shadow-hover) !important;
}
/* 气泡尾巴(左侧指向头像) */
.hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body::before {
  content: ''; position: absolute;
  top: 12px; left: -7px;
  width: 0; height: 0;
  border: 7px solid transparent;
  border-right-color: var(--hv-bubble-border);
  border-left: 0; border-top: 0;
}
.hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body::after {
  content: ''; position: absolute;
  top: 13px; left: -5px;
  width: 0; height: 0;
  border: 6px solid transparent;
  border-right-color: var(--hv-bubble-bg);
  border-left: 0; border-top: 0;
}
/* 操作栏 */
.hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-foot {
  grid-area: foot !important;
  margin: 0 !important;
  padding: 4px 0 0 0 !important;
  border-top: none !important;
  justify-content: flex-start !important;
}

/* ============ 作者回复：左侧并排气泡 ============ */
.hv-post-card.hv-author-reply:not(.op):not(.hv-nested-reply) {
  grid-template-columns: auto 1fr !important;
  grid-template-areas: "avatar info" "avatar body" "avatar foot" !important;
}
.hv-post-card.hv-author-reply:not(.op):not(.hv-nested-reply) .hv-post-head .hv-post-avatar {
  grid-area: avatar !important;
}
.hv-post-card.hv-author-reply:not(.op):not(.hv-nested-reply) .hv-post-head .hv-post-userinfo {
  grid-area: info !important;
  justify-self: start !important;
  text-align: left !important;
}
.hv-post-card.hv-author-reply:not(.op):not(.hv-nested-reply) .hv-post-username {
  justify-content: flex-start !important;
}
.hv-post-card.hv-author-reply:not(.op):not(.hv-nested-reply) .hv-post-usermeta { text-align: left !important; }
.hv-post-card.hv-author-reply:not(.op):not(.hv-nested-reply) > .hv-post-body {
  background: var(--hv-bubble-op-bg) !important;
  border: 1px solid var(--hv-bubble-op-border) !important;
  border-radius: 4px 16px 16px 16px !important;
  box-shadow: var(--hv-bubble-op-shadow) !important;
}
.hv-post-card.hv-author-reply:not(.op):not(.hv-nested-reply) > .hv-post-body::before {
  right: auto !important; left: -7px !important;
  border-left: 0 !important;
  border-right-color: var(--hv-bubble-op-border) !important;
}
.hv-post-card.hv-author-reply:not(.op):not(.hv-nested-reply) > .hv-post-body::after {
  right: auto !important; left: -5px !important;
  border-left: 0 !important;
  border-right-color: rgba(201,168,76,.05) !important;
}
.hv-post-card.hv-author-reply:not(.op):not(.hv-nested-reply) > .hv-post-foot {
  justify-content: flex-start !important;
}

/* ============ 管理员回复气泡 ============ */
.hv-post-card.hv-admin-reply:not(.op):not(.hv-nested-reply) > .hv-post-body {
  background: var(--hv-bubble-admin-bg) !important;
  border-color: var(--hv-bubble-admin-border) !important;
  box-shadow: var(--hv-bubble-admin-shadow) !important;
  border-left: 3px solid var(--hv-accent) !important;
}
.hv-post-card.hv-admin-reply:not(.op):not(.hv-nested-reply) > .hv-post-body::before {
  border-right-color: var(--hv-bubble-admin-border) !important;
}
.hv-post-card.hv-admin-reply:not(.op):not(.hv-nested-reply) > .hv-post-body::after {
  border-right-color: rgba(201,168,76,.08) !important;
}

/* ============ 嵌套回复气泡 ============ */
.hv-nested-reply .hv-post-body {
  background: var(--hv-bubble-bg) !important;
  border: 1px solid var(--hv-bubble-border) !important;
  border-radius: 4px 14px 14px 14px !important;
  box-shadow: var(--hv-bubble-shadow) !important;
}
.hv-nested-reply .hv-post-body::before,
.hv-nested-reply .hv-post-body::after { display: block !important; }
.hv-nested-reply.hv-admin-reply .hv-post-body,
.hv-nested-reply:has(.hv-admin-reply-tag) .hv-post-body {
  background: var(--hv-bubble-admin-bg) !important;
  border-color: var(--hv-bubble-admin-border) !important;
  box-shadow: var(--hv-bubble-admin-shadow) !important;
}

/* ============ 徽章恢复 ============ */
.hv-post-card.op .hv-op-badge,
.hv-post-card.op .hv-badge-author {
  background: linear-gradient(135deg, var(--hv-accent-light), var(--hv-accent)) !important;
  color: var(--hv-gold-cta-ink) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 2px 8px rgba(201,168,76,.25) !important;
}
.hv-badge-primary,
.hv-badge-author {
  background: var(--hv-primary-bg) !important;
  border: 1px solid var(--hv-primary-border) !important;
  color: var(--hv-primary-text, var(--hv-primary)) !important;
  box-shadow: none !important;
}

/* OP操作按钮 hover */
.hv-post-card.op .hv-post-action:hover,
.hv-post-card.op .hv-recommend-btn:hover,
.hv-post-card.op .hv-fav-btn:hover,
.hv-post-card.op .hv-post-floor-num:hover {
  background: rgba(0,0,0,.04) !important;
}

/* 楼主帖容器 */
.hv-main {
  background: var(--hv-bg-card) !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.04) !important;
}

/* ===== 移动端响应式 ===== */
@media (max-width: 768px) {
  .hv-post-card:not(.op):not(.hv-nested-reply) { gap: 2px 8px !important; }
  .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body { padding: 8px 12px !important; }
  .hv-post-card.op > .hv-post-body { padding: 12px 16px !important; }
}
@media (max-width: 480px) {
  .hv-post-card:not(.op):not(.hv-nested-reply) { gap: 1px 6px !important; }
  .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body {
    padding: 8px 11px !important;
    font-size: 14px !important;
  }
  .hv-post-card:not(.op):not(.hv-nested-reply) .hv-post-avatar img {
    width: 32px !important; height: 32px !important;
  }
  .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body::before,
  .hv-post-card:not(.op):not(.hv-nested-reply) > .hv-post-body::after {
    top: 10px;
  }
}

/* v4.0 右侧栏精简：楼层控制栏 & 新卡片间距 */
.hv-thread-nav-controls {
  margin-top: 12px;
  padding: 8px 0;
  border-top: 1px dashed var(--hv-border-color);
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: #666;
}
.hv-current-floor {
  flex-shrink: 0;
}
.hv-floor-btn {
  text-decoration: none;
  color: var(--hv-primary-text);
  padding: 4px 8px;
  border-radius: 3px;
  transition: all 0.2s;
}
.hv-floor-btn:hover {
  background: var(--hv-hover-bg);
  transform: translateX(2px);
}
.hv-related-card .hv-side-list li {
  margin-bottom: 8px;
}
.hv-related-card .hv-side-list li:last-child {
  margin-bottom: 0;
}

/* ============================================
   v2 右侧栏卡片重设计：扁平指标/胶囊跳楼/行式推荐/空广告隐藏
   ============================================ */
/* 空广告位隐藏（广告注入后自动显示） */
.hv-ad-slot:has(#hv-sidebar-ad-main:empty) { display: none; }

/* 卡片标题右侧信息槽（当前楼层胶囊） */
.hv-side-title .hv-current-floor {
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
  color: var(--hv-text-muted);
  background: var(--hv-bg-hover);
  border: 1px solid var(--hv-border-light);
  padding: 2px 8px;
  border-radius: var(--hv-radius-full);
  line-height: 1.5;
}
.hv-side-title .hv-current-floor b { color: var(--hv-primary-text, var(--hv-primary)); }

/* 扁平指标：去灰块，三列细竖线分隔，数字保留渐变 */
.hv-side-metrics-flat { gap: 0; margin-bottom: 10px; }
.hv-side-metrics-flat .hv-side-metric {
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 2px 0;
}
.hv-side-metrics-flat .hv-side-metric:hover { background: none !important; border-color: transparent !important; transform: none; box-shadow: none !important; }
.hv-side-metrics-flat .hv-side-metric + .hv-side-metric { border-left: 1px solid var(--hv-border-light) !important; }
.hv-side-metrics-flat .hv-side-metric-num { font-size: 18px; }

/* 楼层跳转：胶囊按钮行 */
.hv-thread-nav-controls {
  margin-top: 10px;
  padding: 8px 0 0;
  border-top: 1px dashed var(--hv-border);
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--hv-text-muted);
}
.hv-floor-btn {
  flex: 1;
  text-align: center;
  text-decoration: none;
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
  border: 1px solid transparent;
  padding: 5px 8px;
  border-radius: var(--hv-radius-full);
  font-size: 12px;
  font-weight: 500;
  transition: background .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth), transform .2s var(--hv-ease-smooth);
}
.hv-floor-btn:hover {
  background: var(--hv-primary-bg);
  border-color: var(--hv-primary-border);
  transform: translateY(-1px);
}

/* 相关推荐：行式列表，标签胶囊+两行截断+浏览数右置 */
.hv-sidebar .hv-related-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 0;
}
.hv-sidebar .hv-related-list li { list-style: none; }
.hv-sidebar .hv-related-list .hv-side-link {
  padding: 8px 10px;
  border-radius: var(--hv-radius-sm);
  align-items: flex-start;
}
.hv-sidebar .hv-related-list .hv-side-link:hover { background: var(--hv-primary-bg); transform: none; }
.hv-reason-tag {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 600;
  color: var(--hv-accent-ink);
  background: var(--hv-accent-bg);
  border: 1px solid var(--hv-accent-border);
  padding: 1px 6px;
  border-radius: var(--hv-radius-xs);
  line-height: 1.5;
  margin-top: 1px;
}
.hv-sidebar .hv-related-list .hv-side-text {
  flex: 1;
  min-width: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hv-side-meta {
  flex-shrink: 0;
  font-size: 11px;
  color: var(--hv-text-muted);
  margin-top: 2px;
}
.hv-side-meta b { color: var(--hv-primary-text, var(--hv-primary)); font-weight: 700; }
/* 侧栏推荐卡 hover 收敛：不整卡大幅抬升 */
.hv-sidebar .hv-related-card:hover { transform: none; box-shadow: var(--hv-shadow-sm); }

/* ===== G 滚动感知动态侧栏：三区段切换 ===== */
.hv-side-stage { display: none; }
.hv-sidebar.hv-stage-top .hv-side-stage[data-stage="top"],
.hv-sidebar.hv-stage-mid .hv-side-stage[data-stage="mid"],
.hv-sidebar.hv-stage-bottom .hv-side-stage[data-stage="bottom"] { display: contents; }
@keyframes hvStageIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
.hv-sidebar .hv-side-stage[data-stage] .hv-side-card {
  animation: hvStageIn .35s var(--hv-ease-smooth) both;
}

/* 楼层时间线：竖轴+节点行 */
.hv-floor-timeline { position: relative; display: flex; flex-direction: column; gap: 2px; }
.hv-floor-timeline::before {
  content: '';
  position: absolute;
  left: 5px; top: 10px; bottom: 10px;
  width: 2px;
  border-radius: 1px;
  background: var(--hv-border-light);
}
.hv-tl-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px 4px 0;
  border-radius: var(--hv-radius-sm);
  text-decoration: none;
  transition: background .2s var(--hv-ease-smooth);
}
.hv-tl-row:hover { background: var(--hv-primary-bg); }
.hv-tl-dot {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--hv-bg-card);
  border: 2px solid var(--hv-border);
  transition: border-color .2s var(--hv-ease-smooth), background .2s var(--hv-ease-smooth), box-shadow .2s var(--hv-ease-smooth);
}
.hv-tl-row.hv-tl-op .hv-tl-dot { border-color: var(--hv-accent); background: var(--hv-accent-bg); }
.hv-tl-row.hv-tl-cur .hv-tl-dot { border-color: var(--hv-primary); background: var(--hv-primary); box-shadow: 0 0 0 3px var(--hv-primary-bg); }
.hv-tl-floor { font-size: 11px; color: var(--hv-text-muted); font-weight: 600; min-width: 26px; }
.hv-tl-row.hv-tl-cur .hv-tl-floor { color: var(--hv-primary-text, var(--hv-primary)); }
.hv-tl-author {
  font-size: 12px;
  color: var(--hv-text-title);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hv-tl-more { font-size: 11px; color: var(--hv-text-muted); padding: 2px 0 2px 21px; }

/* 本帖活跃用户：行式+参与度量条 */
.hv-active-users { display: flex; flex-direction: column; gap: 8px; }
.hv-au-row {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  padding: 2px 0;
}
.hv-au-row img {
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 2px solid var(--hv-border-light);
  flex-shrink: 0;
  transition: border-color .2s var(--hv-ease-smooth);
}
.hv-au-row:hover img { border-color: var(--hv-primary-border); }
.hv-au-row.hv-au-top1 img { border-color: var(--hv-accent); }
.hv-au-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.hv-au-name {
  font-size: 12px;
  color: var(--hv-text-title);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color .2s var(--hv-ease-smooth);
}
.hv-au-row:hover .hv-au-name { color: var(--hv-primary-text, var(--hv-primary)); }
.hv-au-bar { display: block; height: 3px; background: var(--hv-border-light); border-radius: 2px; overflow: hidden; }
.hv-au-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent)); border-radius: 2px; }
.hv-au-num { font-size: 11px; color: var(--hv-text-muted); font-weight: 500; flex-shrink: 0; }
.hv-au-crown {
  display: inline-block;
  font-style: normal;
  font-size: 9px;
  font-weight: 700;
  color: var(--hv-accent-ink);
  background: var(--hv-accent-bg);
  border: 1px solid var(--hv-accent-border);
  border-radius: var(--hv-radius-full);
  padding: 0 5px;
  line-height: 1.5;
  margin-left: 5px;
  vertical-align: 1px;
}

/* 区段导航：分段胶囊（始终可见） */
.hv-stage-nav {
  display: flex;
  gap: 4px;
  padding: 4px;
  background: var(--hv-bg-hover);
  border: 1px solid var(--hv-border-light);
  border-radius: var(--hv-radius-full);
  flex-shrink: 0;
}
.hv-stage-dot {
  flex: 1;
  padding: 4px 0;
  border: none;
  background: transparent;
  font-size: 11px;
  font-weight: 600;
  color: var(--hv-text-muted);
  border-radius: var(--hv-radius-full);
  cursor: pointer;
  transition: background .25s var(--hv-ease-smooth), color .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth);
}
.hv-stage-dot:hover { color: var(--hv-primary-text, var(--hv-primary)); }
.hv-stage-dot.hv-on {
  background: var(--hv-bg-card);
  color: var(--hv-primary-text, var(--hv-primary));
  box-shadow: 0 1px 4px rgba(15,42,67,.12);
}
/* 短帖（≤2 楼）隐藏楼层段 */
.hv-stage-nav.hv-no-mid .hv-stage-dot[data-goto="mid"] { display: none; }
/* 全局阅读进度细线：嵌于导航胶囊底部，三区段始终可见 */
.hv-stage-nav { position: relative; }
.hv-stage-progress {
  position: absolute;
  left: 6px; right: 6px; bottom: 1px;
  height: 2px;
  background: var(--hv-border-light);
  border-radius: 1px;
  overflow: hidden;
  pointer-events: none;
}
.hv-stage-progress b {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--hv-primary), var(--hv-accent));
  border-radius: 1px;
}
/* 底段返回顶部：幽灵胶囊 */
.hv-side-backtop { color: var(--hv-text-muted); background: var(--hv-bg-hover); border-color: var(--hv-border-light); }
.hv-side-backtop:hover { color: var(--hv-primary-text, var(--hv-primary)); background: var(--hv-primary-bg); border-color: var(--hv-primary-border); }


.hv-sched-overlay{position:fixed;inset:0;z-index:calc(var(--hv-z-modal) + 2);background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s;}
.hv-sched-overlay.show{opacity:1;visibility:visible;}
.hv-sched-modal{width:520px;max-width:100%;max-height:86vh;background:var(--hv-card,#fff);border-radius:14px;box-shadow:0 16px 48px rgba(15,42,67,.25);display:flex;flex-direction:column;overflow:hidden;transform:translateY(14px) scale(.98);transition:transform .24s cubic-bezier(.2,.7,.3,1);}
.hv-sched-overlay.show .hv-sched-modal{transform:none;}
.hv-sched-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--hv-border-light,#EBEDEF);}
.hv-sched-title{font-size:15px;font-weight:700;color:var(--hv-primary,#17233B);display:flex;align-items:center;gap:6px;}
.hv-sched-close{width:30px;height:30px;border:none;background:var(--hv-primary-bg,#F1F5F9);border-radius:50%;font-size:18px;line-height:1;color:#64748B;cursor:pointer;}
.hv-sched-body{padding:14px 18px;overflow-y:auto;flex:1;}
.hv-sched-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.hv-sched-label{font-size:13px;font-weight:600;color:var(--hv-text-secondary,#475569);flex-shrink:0;width:64px;}
.hv-sched-altbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--hv-border,#E2E8F0);background:var(--hv-primary-bg,#F8FAFC);border-radius:99px;padding:5px 12px;font-size:13px;color:var(--hv-text,#17233B);cursor:pointer;max-width:100%;}
.hv-sched-altbtn img{width:20px;height:20px;border-radius:50%;object-fit:cover;}
.hv-sched-altbtn.active{border-color:var(--hv-accent-border,#C9A84C);background:rgba(201,168,76,.08);}
.hv-sched-altbtn .hv-sched-altname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px;}
.hv-sched-textarea{width:100%;box-sizing:border-box;min-height:110px;border:1px solid var(--hv-border,#E2E8F0);border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.6;color:var(--hv-text,#17233B);outline:none;resize:vertical;font-family:inherit;background:var(--hv-card,#fff);}
.hv-sched-textarea:focus{border-color:var(--hv-accent-border,#C9A84C);}
.hv-sched-time{border:1px solid var(--hv-border,#E2E8F0);border-radius:8px;padding:6px 10px;font-size:13px;color:var(--hv-text,#17233B);outline:none;background:var(--hv-card,#fff);flex:1;max-width:230px;}
.hv-sched-time:focus{border-color:var(--hv-accent-border,#C9A84C);}
.hv-sched-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px 74px;}
.hv-sched-chips button{border:1px solid var(--hv-border,#E2E8F0);background:none;border-radius:99px;padding:3px 10px;font-size:12px;color:var(--hv-text-secondary,#475569);cursor:pointer;}
.hv-sched-chips button:hover,.hv-sched-chips button.active{border-color:var(--hv-accent-border,#C9A84C);color:var(--hv-accent-ink);background:rgba(201,168,76,.08);}
.hv-sched-tip{font-size:12px;color:var(--hv-text-muted,#94A3B8);margin:0 0 10px;line-height:1.5;}
.hv-sched-tasks-title{font-size:13px;font-weight:600;color:var(--hv-text-secondary,#475569);margin:12px 0 6px;display:flex;align-items:center;justify-content:space-between;}
.hv-sched-tasks-title a{font-size:12px;font-weight:400;color:var(--hv-primary,#1E6FBE);cursor:pointer;text-decoration:none;}
.hv-sched-task{display:flex;align-items:center;gap:8px;border:1px solid var(--hv-border-light,#EBEDEF);border-radius:10px;padding:8px 10px;margin-bottom:6px;font-size:12px;color:var(--hv-text-secondary,#475569);}
.hv-sched-task img{width:22px;height:22px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.hv-sched-task-main{flex:1;min-width:0;}
.hv-sched-task-content{color:var(--hv-text,#17233B);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hv-sched-task-meta{display:flex;align-items:center;gap:6px;margin-top:2px;flex-wrap:wrap;}
.hv-sched-state{padding:1px 7px;border-radius:99px;font-size:11px;font-weight:600;}
.hv-sched-state.s0{background:rgba(229,184,11,.12);color:#9a7b0a;}
.hv-sched-state.s2{background:rgba(5,150,105,.1);color:#059669;}
.hv-sched-state.s3{background:rgba(220,38,38,.1);color:#DC2626;}
.hv-sched-task-cancel{border:1px solid rgba(220,38,38,.35);background:none;color:#DC2626;border-radius:99px;padding:2px 10px;font-size:12px;cursor:pointer;flex-shrink:0;}
.hv-sched-task-cancel:hover{background:rgba(220,38,38,.08);}
.hv-sched-task-edit{border:1px solid var(--hv-border,#E2E8F0);background:none;color:var(--hv-text-secondary,#475569);border-radius:99px;padding:2px 10px;font-size:12px;cursor:pointer;flex-shrink:0;}
.hv-sched-task-edit:hover{border-color:var(--hv-accent-border,#C9A84C);color:var(--hv-accent-ink);}
.hv-sched-empty{font-size:12px;color:var(--hv-text-muted,#94A3B8);padding:6px 0;}
.hv-sched-foot{display:flex;justify-content:flex-end;gap:10px;padding:12px 18px;border-top:1px solid var(--hv-border-light,#EBEDEF);}
.hv-sched-open{display:inline-flex;align-items:center;gap:4px;border:1px dashed var(--hv-accent-border,#C9A84C);background:rgba(201,168,76,.06);color:var(--hv-accent-ink);border-radius:99px;padding:3px 10px;font-size:12px;cursor:pointer;line-height:1.5;}
.hv-sched-open:hover{background:rgba(201,168,76,.14);}

/* ===== 每条回复的独立快捷回复框 v4.2 ===== */
.hv-reply-form-container {
  position: relative;
  margin-left: 76px;
  margin-top: 10px;
  margin-bottom: 0;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .28s var(--hv-ease-smooth), transform .28s var(--hv-ease-smooth), max-height .35s var(--hv-ease-smooth), margin .28s var(--hv-ease-smooth);
  max-width: calc(100% - 92px);
}
.hv-reply-form-container.show {
  max-height: 400px;
  opacity: 1;
  transform: translateY(0);
}
.hv-reply-form-container.is-admin.show {
  max-height: 450px;
}
/* 楼主帖回复框：无缩进，占满宽度 */
.hv-post-card.op > .hv-reply-form-container { margin-left: 0; max-width: 100%; }
/* 嵌套回复的回复框：对齐气泡左边 */
.hv-nested-reply > .hv-reply-form-container { margin-left: 42px; max-width: calc(100% - 52px); }
/* 底部新楼层表单：全宽，带顶部分隔线 */
.hv-reply-form-container.hv-bottom-form {
  margin-left: 0;
  max-width: 100%;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--hv-border-light);
}
.hv-reply-form-container.hv-bottom-form.show { max-height: 450px; }
.hv-reply-form-container.hv-bottom-form.is-admin.show { max-height: 500px; }
.hv-reply-form-newfloor {
  font-size: 13px;
  font-weight: 600;
  color: var(--hv-primary-text, var(--hv-primary));
  background: var(--hv-primary-bg);
  padding: 4px 12px;
  border-radius: var(--hv-radius-xs-plus);
}
/* 底部表单展开时 label 脉冲提示 */
.hv-bottom-form.show .hv-reply-form-newfloor {
  animation: hv-newfloor-pulse 1.5s ease-out 0.2s 2;
}
@keyframes hv-newfloor-pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(var(--hv-primary-rgb,30,111,190),0); }
  50% { box-shadow: 0 0 0 6px rgba(var(--hv-primary-rgb,30,111,190),.12); }
}
/* 新楼层插入动画：滑入+高亮渐退 */
.hv-post-card.hv-new-floor {
  animation: hv-floor-in 0.45s cubic-bezier(.22,.61,.36,1), hv-floor-flash 1.4s ease-out 0.3s;
}
@keyframes hv-floor-in {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes hv-floor-flash {
  0% { box-shadow: 0 0 0 2px var(--hv-primary), 0 4px 20px rgba(30,111,190,.12); }
  100% { box-shadow: 0 0 0 0 transparent, 0 1px 3px rgba(15,42,67,.04); }
}
.hv-reply-form-inner {
  position: relative;
  background: var(--hv-bg-card);
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-lg);
  padding: 0;
  box-shadow: 0 4px 16px rgba(15,42,67,.06), 0 8px 24px rgba(27,58,95,.04);
  overflow: hidden;
}
.hv-reply-form-inner::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--hv-primary), var(--hv-accent), var(--hv-primary));
  box-shadow: 0 0 6px rgba(201,168,76,.2);
}
/* 回复目标提示条 */
.hv-reply-form-target {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px 4px 14px;
  font-size: 12px;
  color: var(--hv-text-muted);
  background: var(--hv-bg-hover);
}
.hv-reply-form-target-name {
  color: var(--hv-primary-text, var(--hv-primary));
  font-weight: 600;
  text-decoration: none;
}
.hv-reply-form-target-name:hover { text-decoration: underline; }
.hv-reply-form-textarea {
  width: 100%;
  min-height: 44px;
  max-height: 140px;
  padding: 8px 12px 4px 14px;
  border: none;
  border-radius: 0;
  font-size: 14px;
  line-height: 1.5;
  resize: none;
  outline: none;
  font-family: inherit;
  color: var(--hv-text-primary);
  background: transparent;
}
.hv-reply-form-textarea::placeholder {
  color: var(--hv-text-light);
}
/* .hv-reply-form-textarea:focus 已统一定义于 line 6132 */
.hv-reply-form-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 10px 8px 14px;
  gap: 8px;
}
.hv-reply-form-hint {
  font-size: 11px;
  color: var(--hv-text-light);
  user-select: none;
}
.hv-reply-form-hint kbd {
  display: inline-block;
  padding: 1px 5px;
  font-size: 10px;
  font-family: inherit;
  color: var(--hv-text-muted);
  background: var(--hv-border-light);
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-2xs);
  line-height: 1.3;
}
.hv-reply-form-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}
.hv-reply-form-submit {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 18px;
  font-size: 13px;
  background: linear-gradient(135deg, var(--hv-accent-light), var(--hv-accent));
  color: var(--hv-gold-cta-ink);
  border: none;
  border-radius: var(--hv-radius-full);;
  font-weight: 600;
  cursor: pointer;
  transition: background .25s var(--hv-ease-smooth), box-shadow .25s var(--hv-ease-smooth), transform .25s var(--hv-ease-smooth);
  line-height: 1.3;
  box-shadow: 0 2px 8px rgba(201,168,76,.2);
}
.hv-reply-form-submit:hover {
  background: linear-gradient(135deg, var(--hv-accent), var(--hv-accent-dark));
  box-shadow: 0 4px 16px rgba(201,168,76,.3), 0 0 20px rgba(201,168,76,.15);
  transform: translateY(-2px);
}
.hv-reply-form-submit:active {
  transform: translateY(0);
}
.hv-reply-form-submit:disabled {
  opacity: .6;
  cursor: not-allowed;
  transform: none;
}
.hv-reply-form-cancel {
  padding: 5px 12px;
  font-size: 13px;
  color: var(--hv-text-muted);
  background: transparent;
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-full);;
  cursor: pointer;
  transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth);
  line-height: 1.3;
}
.hv-reply-form-cancel:hover {
  color: var(--hv-text-primary);
  border-color: var(--hv-border);
  background: var(--hv-bg-hover);
}
/* ===== 管理员马甲标识 ===== */
.hv-reply-form-container.is-admin .hv-reply-form-inner {
  border-color: var(--hv-accent);
  box-shadow: 0 4px 16px rgba(201,168,76,.08), 0 0 0 3px rgba(201,168,76,.06);
}
.hv-reply-form-container.is-admin .hv-reply-form-inner::before {
  background: linear-gradient(180deg, var(--hv-accent-dark), var(--hv-accent), var(--hv-accent-dark));
  box-shadow: 0 0 8px rgba(201,168,76,.35);
}
.hv-admin-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--hv-gold-cta-ink);
  background: linear-gradient(135deg, var(--hv-accent-light), var(--hv-accent-dark));
  border-radius: var(--hv-radius-full);
  line-height: 1.3;
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(201,168,76,.25);
}
.hv-admin-badge svg { flex-shrink: 0; }
.hv-reply-form-admin-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px 3px 14px;
  background: linear-gradient(90deg, rgba(201,168,76,.06), transparent);
}
/* 马甲选择器触发按钮 */
.hv-alt-trigger {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 600;
  color: var(--hv-text-body);
  background: var(--hv-bg-card);
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-full);
  cursor: pointer;
  transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth);
  line-height: 1.3;
  white-space: nowrap;
}
.hv-alt-trigger:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  border-color: var(--hv-primary-border);
  background: var(--hv-primary-bg);
}
.hv-alt-trigger.active {
  color: var(--hv-accent-ink);
  border-color: var(--hv-accent);
  background: rgba(201,168,76,.06);
}
.hv-alt-trigger-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.hv-alt-trigger-icon img {
  width: 14px;
  height: 14px;
  border-radius: var(--hv-radius-full);
  object-fit: cover;
}
/* 管理员回复卡片中的标识 */
.hv-admin-reply-tag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 6px;
  margin-left: 4px;
  font-size: 10px;
  font-weight: 700;
  color: var(--hv-gold-cta-ink);
  background: linear-gradient(135deg, var(--hv-accent-light), var(--hv-accent-dark));
  border-radius: var(--hv-radius-full);
  line-height: 1.3;
  vertical-align: middle;
}
/* 图片上传按钮 */
.hv-reply-form-upload-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--hv-border);
  border-radius: var(--hv-radius-full);;
  background: var(--hv-bg-card);
  cursor: pointer;
  transition: background .2s var(--hv-ease-smooth), color .2s var(--hv-ease-smooth), border-color .2s var(--hv-ease-smooth);
  color: var(--hv-text-muted);
  flex-shrink: 0;
}
.hv-reply-form-upload-btn:hover {
  color: var(--hv-primary-text, var(--hv-primary));
  border-color: var(--hv-primary-border);
  background: var(--hv-primary-bg);
}
.hv-reply-form-upload-btn.uploading {
  opacity: .5;
  cursor: wait;
}
/* 图片预览区 */
.hv-reply-form-previews {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 12px 4px 14px;
}
.hv-reply-form-preview-item {
  position: relative;
  width: 60px;
  height: 60px;
  border-radius: var(--hv-radius-sm);
  overflow: hidden;
  border: 1px solid var(--hv-border);
}
.hv-reply-form-preview-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hv-reply-form-preview-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.55);
  color: #fff;
  border-radius: var(--hv-radius-full);
  font-size: 10px;
  cursor: pointer;
  border: none;
  line-height: 1;
}
/* 字数计数器 */
.hv-reply-form-counter {
  font-size: 11px;
  color: var(--hv-text-light);
  margin-left: auto;
  user-select: none;
  white-space: nowrap;
}
.hv-reply-form-counter.over { color: #e53935; font-weight: 600; }
/* textarea 聚焦光晕 */
.hv-reply-form-textarea:focus {
  background: rgba(201,168,76,.04);
  box-shadow: inset 0 0 0 1px rgba(201,168,76,.12);
  transition: background .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth);
}
/* 回复表单容器聚焦发光：textarea 聚焦时整个表单卡片发光 */
.hv-reply-form-container:focus-within .hv-reply-form-inner {
  border-color: var(--hv-accent-border);
  box-shadow: 0 4px 16px rgba(15,42,67,.06), 0 8px 24px rgba(27,58,95,.04), 0 0 0 3px rgba(201,168,76,.08), 0 0 24px rgba(201,168,76,.06);
  transition: border-color .3s var(--hv-ease-smooth), box-shadow .3s var(--hv-ease-smooth);
}
/* 提交按钮加载动画 */
@keyframes hvSubmitSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.hv-reply-form-submit.loading {
  pointer-events: none;
  opacity: .8;
}
.hv-reply-form-submit.loading::before {
  content: '';
  display: inline-block;
  width: 14px; height: 14px;
  border: 2px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: var(--hv-radius-full);;
  animation: hvSubmitSpin .6s linear infinite;
  margin-right: 2px;
}
/* 上传中骨架 */
.hv-reply-form-preview-item.loading {
  background: var(--hv-bg-hover);
  display: flex;
  align-items: center;
  justify-content: center;
}
.hv-reply-form-preview-item.loading::after {
  content: '';
  width: 16px; height: 16px;
  border: 2px solid var(--hv-border);
  border-top-color: var(--hv-accent);
  border-radius: var(--hv-radius-full);
  animation: hvSpin .6s linear infinite;
}
@keyframes hvSpin { to { transform: rotate(360deg); } }
/* 响应式适配 */
@media (max-width: 768px) {
  .hv-reply-form-container { margin-left: 0; max-width: 100%; }
  .hv-nested-reply > .hv-reply-form-container { margin-left: 0; max-width: 100%; }
  .hv-reply-form-footer { flex-wrap: wrap; gap: 6px; }
  .hv-reply-form-previews { padding: 0 10px 4px 10px; }
  .hv-reply-form-admin-row { flex-wrap: wrap; gap: 4px; }
  .hv-reply-form-hint kbd { font-size: 9px; padding: 1px 3px; }
}
@media (max-width: 480px) {
  .hv-reply-form-inner { padding: 6px; }
  .hv-reply-form-textarea { font-size: 13px; }
  .hv-reply-form-submit, .hv-reply-form-cancel { padding: 4px 10px; font-size: 12px; }
}
