/* =====================================================================
   OOEG 论坛主题 v2 ·「线装批注本」完全体
   原理：直接接管 SPA 的 Tailwind 主题变量（:root 明 / .dark 暗），
   一处改全局变；装饰层全部低风险渐进，不破坏布局。
   ===================================================================== */

/* ---------- 1. 明亮主题：纸墨靛蓝（对齐主站 /ai/） ---------- */
:root, :host {
  --color-cream:   #FCFBF7;  /* 纸 */
  --color-card:    #FFFFFF;  /* 卡片 */
  --color-border:  #DDD9CC;  /* 发丝线 */
  --color-ink:     #1F2733;  /* 墨 */
  --color-muted:   #566074;  /* 蓝灰次级 */
  --color-accent:  #33539E;  /* 靛蓝主色 */
  --color-ember:   #B91C1C;  /* 砖红（CTA/火焰/强调） */
  --color-success: #2E9E5B;
  --color-warning: #C77700;
  --radius-xl: .875rem;      /* 卡片圆角 12→14px，更温润 */
  --radius-lg: .625rem;
}

/* ---------- 2. 暗夜主题：墨夜靛（同族深色） ---------- */
.dark {
  --color-cream:   #12161E;
  --color-card:    #1A2130;
  --color-border:  #2C3648;
  --color-ink:     #E3E8F2;
  --color-muted:   #8C97AC;
  --color-accent:  #8FA9E0;
  --color-ember:   #E0836F;
  --color-success: #5BBF88;
  --color-warning: #E0A64A;
}
.dark body:before {
  background: radial-gradient(80% 100% at 50% -20%, rgba(124, 151, 216, .07), transparent 70%) !important;
}

/* ---------- 3. 纸纹与页布 ---------- */
body {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E") !important;
}
.dark body {
  background-image: none !important;
}

/* ---------- 4. 顶栏：纸面 + 砖红装订线（签名细节） ---------- */
:where(header) {
  background: color-mix(in srgb, var(--color-cream) 88%, transparent) !important;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-border) !important;
  position: relative;
}
:where(header)::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -1px; height: 0;
  border-bottom: 1px dashed color-mix(in srgb, var(--color-ember) 55%, transparent);
  pointer-events: none;
}

/* ---------- 5. 选区 / 焦点 / 滚动条 ---------- */
::selection { background: rgba(51, 83, 158, .18); }
.dark ::selection { background: rgba(143, 169, 224, .30); }
:where(input:focus, textarea:focus, select:focus) {
  border-color: var(--color-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 16%, transparent) !important;
  outline: none !important;
}
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 8px; border: 2px solid var(--color-cream); }
::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--color-accent) 45%, var(--color-border)); }

/* ---------- 6. 卡片：静默微影 + 悬停靛蓝呼应 ---------- */
.card-hover {
  box-shadow: 0 1px 2px rgba(31, 39, 51, .04), 0 4px 14px rgba(31, 39, 51, .04) !important;
}
.card-hover:hover {
  border-color: color-mix(in srgb, var(--color-accent) 38%, var(--color-border)) !important;
  box-shadow: 0 2px 6px rgba(42, 68, 128, .08), 0 14px 30px rgba(42, 68, 128, .10) !important;
  translate: 0 -2px;
}
.dark .card-hover { box-shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 4px 14px rgba(0, 0, 0, .18) !important; }
.dark .card-hover:hover { box-shadow: 0 2px 6px rgba(0, 0, 0, .30), 0 14px 30px rgba(0, 0, 0, .32) !important; }

/* ---------- 7. 排版 ---------- */
:where(h1, h2, h3) { letter-spacing: .015em; }
:where(.font-serif) { text-rendering: optimizeLegibility; }
body { -webkit-font-smoothing: antialiased; }

/* ---------- 8. 主行动按钮：靛蓝渐变 / CTA 砖红渐变 ---------- */
:where(button) { transition: filter .15s ease, box-shadow .2s ease, transform .12s ease, background-color .18s ease, border-color .18s ease, color .18s ease; }
:where(button):active { filter: brightness(.95); transform: translateY(1px); }
:where(button[class*='bg-ember']):not([class*='bg-ember/']) {
  background-image: linear-gradient(135deg, #C43535, #991B1B) !important;
  box-shadow: 0 4px 14px rgba(185, 28, 28, .28) !important;
}
:where(button[class*='bg-ember']):not([class*='bg-ember/']):hover {
  box-shadow: 0 6px 20px rgba(185, 28, 28, .38) !important;
  filter: brightness(1.05);
}
:where(button[class*='bg-accent']):not([class*='bg-accent/']) {
  background-image: linear-gradient(135deg, #3D5FAE, #2A4480) !important;
  box-shadow: 0 4px 14px rgba(42, 68, 128, .26) !important;
}
.dark :where(button[class*='bg-accent']):not([class*='bg-accent/']) {
  background-image: linear-gradient(135deg, #46639F, #33456E) !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .30) !important;
}
:where(button[class*='border-accent'], button[class*='text-accent']):hover {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 14%, transparent);
}

/* ---------- 9. 链接与头像 ---------- */
:where(a) { text-underline-offset: 3px; }
:where(.rounded-full):where(img) {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-card) 100%, transparent),
              0 0 0 3.5px color-mix(in srgb, var(--color-border) 90%, transparent);
  transition: box-shadow .2s ease;
}
:where(.rounded-full):where(img):hover {
  box-shadow: 0 0 0 2px var(--color-card),
              0 0 0 3.5px color-mix(in srgb, var(--color-accent) 55%, var(--color-border));
}

/* ---------- 10. 输入件 ---------- */
:where(input, textarea, select) { border-radius: 10px; }
:where(input::placeholder, textarea::placeholder) { color: color-mix(in srgb, var(--color-muted) 72%, transparent); }

/* ---------- 11. 动效克制 ---------- */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* ---------- 12. Tailwind v4 accent 透明度工具类的靛蓝映射 ----------
   （编译产物把 accent/10 等硬编码为旧蓝色，这里逐类覆盖为随主题变量） */
.bg-accent\/10 { background-color: color-mix(in srgb, var(--color-accent) 10%, transparent) !important; }
.bg-accent\/50 { background-color: color-mix(in srgb, var(--color-accent) 50%, transparent) !important; }
.ring-accent\/40 { --tw-ring-color: color-mix(in srgb, var(--color-accent) 40%, transparent) !important; }
.hover\:border-accent\/40:hover { border-color: color-mix(in srgb, var(--color-accent) 40%, transparent) !important; }
.hover\:border-accent\/50:hover { border-color: color-mix(in srgb, var(--color-accent) 50%, transparent) !important; }
.focus\:ring-accent\/20:focus { --tw-ring-color: color-mix(in srgb, var(--color-accent) 20%, transparent) !important; }

/* ---------- 13. 暗夜下的白底面修正（聊天气泡/输入框等硬编码 bg-white） ---------- */
.dark [class*='bg-white'] { background-color: var(--color-card) !important; }
.dark [class*='bg-ink'] { background-color: color-mix(in srgb, var(--color-accent) 26%, var(--color-card)) !important; }

/* =====================================================================
   v4 · 布局重构：内容优先（参考 Discourse：进站即见讨论流）
   ===================================================================== */

/* ---- 1. Hero 压缩：409px → 紧凑横幅 ---- */
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden {
  padding: 20px 22px 18px !important;
}
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden h1 {
  font-size: 1.35rem !important;
  line-height: 1.35 !important;
  margin-bottom: 2px !important;
}
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden p {
  font-size: .8rem !important;
  margin-bottom: 10px !important;
}
/* 快捷三卡变横排小芯片 */
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden .card {
  padding: 10px 12px !important;
  min-height: 0 !important;
}

/* ---- 2. 欢迎卡 → 折叠条（点击展开全部守则） ---- */
main .animate-fade-in > .space-y-4 > .card.p-4.space-y-2 {
  max-height: 58px;
  overflow: hidden;
  cursor: pointer;
  position: relative;
  transition: max-height .35s ease;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}
main .animate-fade-in > .space-y-4 > .card.p-4.space-y-2::after {
  content: ▼ 展开社区守则;
  position: absolute; right: 14px; top: 12px;
  font-size: 11px; color: var(--color-accent);
  background: color-mix(in srgb, var(--color-card) 92%, transparent);
  padding: 2px 8px; border-radius: 20px;
  border: 1px solid var(--color-border);
}
main .animate-fade-in > .space-y-4 > .card.p-4.space-y-2::before {
  content: ;
  position: absolute; left: 0; right: 0; bottom: 0; height: 22px;
  background: linear-gradient(transparent, var(--color-card));
  pointer-events: none;
}
main .animate-fade-in > .space-y-4 > .card.p-4.space-y-2.fp-expanded {
  max-height: 800px;
}
main .animate-fade-in > .space-y-4 > .card.p-4.space-y-2.fp-expanded::after {
  content: ▲ 收起;
}
main .animate-fade-in > .space-y-4 > .card.p-4.space-y-2.fp-expanded::before {
  display: none;
}

/* ---- 3. 版面节奏：区块间距收紧 ---- */
main .animate-fade-in > .space-y-4 { display: flex; flex-direction: column; gap: 12px !important; }

/* ---- 4. 帖子列表：Discourse 式紧凑行 ---- */
main .animate-fade-in .space-y-3 { display: flex; flex-direction: column; gap: 8px !important; }
main .animate-fade-in .space-y-3 > .card-hover {
  padding: 10px 14px !important;
  border-radius: 12px !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start { gap: 11px !important; }
main .animate-fade-in .space-y-3 > .card-hover h2,
main .animate-fade-in .space-y-3 > .card-hover h3 { font-size: .92rem !important; line-height: 1.45 !important; }

/* ---- 5. 双侧栏：滚动跟随（现代社区标配） ---- */
@media (min-width: 1024px) {
  main .animate-fade-in ~ * , main .animate-fade-in { min-width: 0; }
}
#root .max-w-6xl.w-full > aside:first-of-type > nav,
#root .max-w-6xl.w-full > aside:last-of-type > .space-y-4 {
  position: sticky;
  top: 72px;
  max-height: calc(100vh - 90px);
  overflow-y: auto;
  scrollbar-width: thin;
}
#root .max-w-6xl.w-full > aside:first-of-type > nav::-webkit-scrollbar,
#root .max-w-6xl.w-full > aside:last-of-type > .space-y-4::-webkit-scrollbar { width: 6px; }

/* ---- 6. 右栏卡片微收 ---- */
#root aside .space-y-4 > * { padding: 14px !important; }

/* ---- 7. 快捷卡横排芯片化（hero 再压缩） ---- */
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden .card {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 9px 12px !important;
}
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden .card > div:first-child,
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden .card > span:first-child {
  flex: none;
  font-size: 20px !important;
}
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden .card strong,
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden .card .font-medium {
  font-size: .82rem !important;
}
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden .card .text-xs,
main .animate-fade-in > .space-y-4 > .card.relative.overflow-hidden .card .text-\[10px\] {
  font-size: .68rem !important;
}

/* ---- 8. 快捷卡芯片化（真实类名 .group.card-hover.p-4） ---- */
main .animate-fade-in .grid.grid-cols-2 {
  gap: 8px !important;
  margin-top: 12px !important;
}
main .animate-fade-in .grid.grid-cols-2 > .card-hover {
  display: grid !important;
  grid-template-columns: auto 1fr;
  column-gap: 10px;
  row-gap: 0;
  align-items: center;
  padding: 8px 12px !important;
}
main .animate-fade-in .grid.grid-cols-2 > .card-hover > .text-2xl {
  grid-row: 1 / span 2;
  font-size: 20px !important;
  line-height: 1.4 !important;
}
main .animate-fade-in .grid.grid-cols-2 > .card-hover > .text-sm {
  font-size: .8rem !important;
  line-height: 1.3 !important;
}
main .animate-fade-in .grid.grid-cols-2 > .card-hover > .text-xs {
  margin-top: 0 !important;
  font-size: .66rem !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---- 9. 按钮文字不折行 ---- */
main .animate-fade-in .flex.items-end.justify-between button { white-space: nowrap; }

/* =====================================================================
   v7 · 布局大改：去横幅 · 宽内容 · Discourse 式双区帖子行
   ===================================================================== */

/* ---- 1. 三栏重分配：内容加宽 ---- */
@media (min-width: 1024px) {
  #root .max-w-6xl.w-full.flex-1.grid {
    grid-template-columns: 190px minmax(0, 1fr) 300px !important;
    gap: 22px !important;
  }
}

/* ---- 2. 快捷条（JS 从 hero 迁来）：细横条、可横滑 ---- */
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 {
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: max-content !important;
  gap: 8px !important;
  overflow-x: auto !important;
  padding-bottom: 2px;
  scrollbar-width: none;
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2::-webkit-scrollbar { display: none; }
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover {
  display: grid !important;
  grid-template-columns: auto 1fr;
  column-gap: 9px;
  align-items: center;
  padding: 7px 12px !important;
  border-radius: 10px !important;
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover > .text-2xl {
  grid-row: 1 / span 2;
  font-size: 17px !important;
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover > .text-sm {
  font-size: .76rem !important;
  line-height: 1.25 !important;
  white-space: nowrap;
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover > .text-xs {
  margin-top: 0 !important;
  font-size: .64rem !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 150px;
}

/* ---- 3. 帖子行：双区结构（左 标签+标题 / 右 元数据竖排） ---- */
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  column-gap: 18px !important;
  align-items: center !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(1) {
  grid-column: 1; grid-row: 1;
  margin-bottom: 3px !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > h3 {
  grid-column: 1; grid-row: 2;
  font-size: .96rem !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(3) {
  grid-column: 2; grid-row: 1 / span 2;
  margin-top: 0 !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 3px !important;
  text-align: right;
}

/* ---- 4. 行悬停：列表感（左缘靛蓝条 + 底色） ---- */
main .animate-fade-in .space-y-3 > .card-hover {
  position: relative;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease !important;
}
main .animate-fade-in .space-y-3 > .card-hover:hover {
  transform: none !important;
  translate: none !important;
  background: color-mix(in srgb, var(--color-accent) 4%, var(--color-card)) !important;
  border-color: color-mix(in srgb, var(--color-accent) 30%, var(--color-border)) !important;
}

/* ---- 10. 元数据列：右对齐紧凑换行（修复竖排过散） ---- */
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(3) {
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  row-gap: 2px !important;
  column-gap: 7px !important;
  max-width: 200px !important;
  line-height: 1.4 !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child {
  align-items: start !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > h3 {
  margin-top: 2px !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(1) {
  margin-bottom: 0 !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(3) { max-width: 250px !important; }

/* ---- 11. 手机端恢复纵向堆叠（双区仅限桌面） ---- */
@media (max-width: 639px) {
  main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child {
    display: block !important;
  }
  main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(3) {
    max-width: none !important;
    margin-top: 5px !important;
  }
}

/* =====================================================================
   v11 · 视觉精修：印章 logo / 导航胶囊 / 杂志标题 / 行悬停 / 右栏密度
   ===================================================================== */

/* ---- 1. Logo：内联亮蓝 → OOEG 靛蓝印章 ---- */
header a > .w-8.h-8 {
  background: linear-gradient(135deg, #3D5FAE, #24396E) !important;
  box-shadow: 0 2px 10px rgba(42, 68, 128, .32), inset 0 1px 0 rgba(255,255,255,.18) !important;
}

/* ---- 2. 搜索框：加宽 + 聚焦发光 ---- */
header form { max-width: 34rem !important; }
header form input {
  transition: box-shadow .2s ease, border-color .2s ease;
}
header form input:focus {
  border-color: color-mix(in srgb, var(--color-accent) 55%, var(--color-border)) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-accent) 10%, transparent), 0 4px 14px rgba(42,68,128,.08) !important;
}

/* ---- 3. 左栏导航：数字胶囊 + 选中重设计 ---- */
#root .max-w-6xl.w-full > aside:first-of-type nav a {
  border-left-width: 3px !important;
  transition: transform .16s ease, background-color .16s ease, color .16s ease !important;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a:hover { transform: translateX(2px); }
#root .max-w-6xl.w-full > aside:first-of-type nav a > span:last-child {
  min-width: 30px;
  text-align: center;
  padding: 1.5px 8px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-border) 40%, transparent);
  font-size: .67rem !important;
  font-weight: 600;
  letter-spacing: .02em;
  font-variant-numeric: tabular-nums;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a[class*='bg-ember'] {
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--color-ember) 13%, transparent),
    color-mix(in srgb, var(--color-ember) 2%, transparent)) !important;
  border-left-color: var(--color-ember) !important;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a[class*='bg-ember'] > span:last-child {
  background: color-mix(in srgb, var(--color-ember) 18%, transparent);
  color: var(--color-ember);
}

/* ---- 4. 列表头：杂志式双线 ---- */
main .animate-fade-in > .space-y-4 > .flex.items-end.justify-between {
  padding-bottom: 9px !important;
  border-bottom: 2.5px solid var(--color-ink);
  position: relative;
}
main .animate-fade-in > .space-y-4 > .flex.items-end.justify-between::after {
  content: ;
  position: absolute; left: 0; right: 0; bottom: -6px;
  border-bottom: 1px solid var(--color-border);
}
main .animate-fade-in > .space-y-4 > .flex.items-end.justify-between h2 {
  font-size: 1.3rem !important;
  letter-spacing: .02em;
}

/* ---- 5. 帖子行：悬停靛蓝竖条 ---- */
main .animate-fade-in .space-y-3 > .card-hover { position: relative; overflow: hidden; }
main .animate-fade-in .space-y-3 > .card-hover::before {
  content: ;
  position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--color-accent);
  transform: scaleY(0);
  transform-origin: center;
  transition: transform .2s ease;
  border-radius: 0 3px 3px 0;
}
main .animate-fade-in .space-y-3 > .card-hover:hover::before { transform: scaleY(0.72); }
main .animate-fade-in .space-y-3 > .card-hover h3 { transition: color .16s ease; }
main .animate-fade-in .space-y-3 > .card-hover:hover h3 {
  color: color-mix(in srgb, var(--color-accent) 78%, var(--color-ink)) !important;
}

/* ---- 6. 右栏成员卡：紧凑化 ---- */
#root .max-w-6xl.w-full > aside:last-of-type .card .space-y-2\.5 > div { padding: 2.5px 0; }
#root .max-w-6xl.w-full > aside:last-of-type .card .space-y-2\.5 > div > .flex-1.min-w-0 > div:nth-child(2) {
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: .68rem !important;
  max-width: 150px;
}
#root .max-w-6xl.w-full > aside:last-of-type .card .space-y-2\.5 > div > .shrink-0:last-child {
  font-size: .63rem !important;
  opacity: .7;
}

/* ---- 7. 快捷条：浅靛蓝基调 ---- */
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover {
  background: color-mix(in srgb, var(--color-accent) 4.5%, var(--color-card)) !important;
  border-color: color-mix(in srgb, var(--color-accent) 14%, var(--color-border)) !important;
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover:hover {
  background: color-mix(in srgb, var(--color-accent) 9%, var(--color-card)) !important;
  border-color: color-mix(in srgb, var(--color-accent) 32%, var(--color-border)) !important;
}

/* ---- 8. 小提示卡：弱化为页脚注释 ---- */
#root .max-w-6xl.w-full > aside:last-of-type .card.text-xs {
  font-size: .7rem !important;
  line-height: 1.55 !important;
  opacity: .82;
}

/* ---- 9. 页脚淡化 ---- */
footer { opacity: .85; font-size: .78rem !important; letter-spacing: .04em; }

/* ===== 本地 AI 引擎状态卡（JS 注入） ===== */
.fp-engine .fp-pulse {
  width: 8px; height: 8px; border-radius: 50%; background: #2E9E5B;
  box-shadow: 0 0 0 0 rgba(46,158,91,.5);
  animation: fp-ripple 2s infinite;
}
@keyframes fp-ripple {
  0% { box-shadow: 0 0 0 0 rgba(46,158,91,.45); }
  70% { box-shadow: 0 0 0 7px rgba(46,158,91,0); }
  100% { box-shadow: 0 0 0 0 rgba(46,158,91,0); }
}
.fp-engine .fp-model-name {
  font-family: var(--font-mono, monospace);
  font-size: .68rem;
  color: var(--color-muted);
  background: color-mix(in srgb, var(--color-accent) 6%, transparent);
  border: 1px dashed color-mix(in srgb, var(--color-accent) 22%, var(--color-border));
  border-radius: 8px;
  padding: 5px 8px;
  margin-bottom: 10px;
  word-break: break-all;
}
.fp-engine-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px;
}
.fp-engine-stats > div {
  text-align: center;
  padding: 7px 2px 6px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--color-card) 100%, transparent);
  border: 1px solid var(--color-border);
}
.fp-engine-stats b {
  display: block; font-size: .92rem; color: var(--color-accent);
  font-variant-numeric: tabular-nums; letter-spacing: -.01em;
}
.fp-engine-stats span {
  display: block; font-size: .6rem; color: var(--color-muted); margin-top: 1px;
}

/* ---- 12. 修复：选中态精确匹配（[class*=] 误伤了 hover:bg-ember 类） ---- */
#root .max-w-6xl.w-full > aside:first-of-type nav a:not([class~='bg-ember/12']) {
  background: transparent !important;
  border-left-color: transparent !important;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a:not([class~='bg-ember/12']) > span:last-child {
  background: color-mix(in srgb, var(--color-border) 40%, transparent) !important;
  color: var(--color-muted) !important;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a:not([class~='bg-ember/12']):hover {
  background: color-mix(in srgb, var(--color-ember) 5.5%, transparent) !important;
  border-left-color: color-mix(in srgb, var(--color-ember) 45%, transparent) !important;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a[class~='bg-ember/12'] > span:last-child {
  background: color-mix(in srgb, var(--color-ember) 18%, transparent) !important;
  color: var(--color-ember) !important;
}

/* ---- 13. 快捷条均分撑满 ---- */
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 {
  grid-auto-columns: minmax(0, 1fr) !important;
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover > .text-xs {
  max-width: none !important;
}

/* ---- 14. 快捷条：手机恢复自然宽度横滑（不被均分挤扁） ---- */
@media (max-width: 639px) {
  main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 {
    grid-auto-columns: max-content !important;
    overflow-x: auto !important;
  }
  main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover > .text-xs {
    max-width: 150px !important;
  }
}

/* ---- 15. 手机快捷条：flex 固定宽度（grid max-content 会被截断样式压缩） ---- */
@media (max-width: 639px) {
  main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 8px !important;
  }
  main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover {
    flex: 0 0 auto !important;
    min-width: 136px;
  }
}

/* =====================================================================
   v16 · 帖子详情页 + 群聊页精修
   ===================================================================== */

/* ---------- A. 帖子详情页：主帖 ---------- */
main .card.p-5 { padding: 26px 28px !important; }
main .card.p-5 > h1 {
  font-size: 1.52rem !important;
  line-height: 1.42 !important;
  letter-spacing: .012em;
}
/* 作者署名条：紧凑左对齐（原来是两端散开） */
main .card.p-5 > .flex.items-center.justify-between.mt-3 {
  justify-content: flex-start !important;
  gap: 10px !important;
  margin-top: 14px !important;
}
/* 主帖正文：去 52px 缩进，全宽易读排版 */
main .card.p-5 > .mt-2.ml-\[52px\] {
  margin-left: 0 !important;
  margin-top: 16px !important;
  font-size: .96rem !important;
  line-height: 1.9 !important;
  color: var(--color-ink) !important;
}
/* 底部操作条：虚线分隔 + 胶囊小按钮 */
main .card.p-5 > .mt-4.pt-3.border-t { border-top-style: dashed !important; }
main .card.p-5 > .mt-4.pt-3.border-t button {
  padding: 4px 13px !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, var(--color-border) 32%, transparent);
  transition: background-color .16s ease, color .16s ease !important;
}
main .card.p-5 > .mt-4.pt-3.border-t button:hover {
  background: color-mix(in srgb, var(--color-accent) 13%, transparent) !important;
}

/* ---------- B. 帖子详情页：回复楼层 ---------- */
main .card.px-4.py-3\.5 {
  position: relative;
  overflow: hidden;
  padding: 15px 18px 15px 20px !important;
  transition: border-color .18s ease, box-shadow .18s ease !important;
}
/* 左缘靛蓝渐变竖线：楼层时间轴感 */
main .card.px-4.py-3\.5::before {
  content: ;
  position: absolute; left: 0; top: 12%; bottom: 12%; width: 3px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--color-accent) 52%, transparent),
    color-mix(in srgb, var(--color-accent) 10%, transparent));
}
main .card.px-4.py-3\.5:hover { border-color: color-mix(in srgb, var(--color-accent) 30%, var(--color-border)) !important; }
/* 楼层内正文微调 */
main .card.px-4.py-3\.5 .ml-\[52px\] {
  margin-left: 0 !important;
  margin-top: 10px !important;
  font-size: .92rem !important;
  line-height: 1.8 !important;
}
/* 楼层操作按钮：静默，悬停才亮 */
main .card.px-4.py-3\.5 .flex.items-center > button,
main .card.px-4.py-3\.5 .flex.items-center > .shrink-0 > button {
  opacity: .5;
  transition: opacity .15s ease, color .15s ease !important;
}
main .card.px-4.py-3\.5:hover .flex.items-center > button,
main .card.px-4.py-3\.5:hover .flex.items-center > .shrink-0 > button { opacity: 1; }
/* 楼层号徽章（JS 标记 .fp-floor-num） */
.fp-floor-num {
  display: inline-flex; align-items: center;
  padding: 1px 8px; border-radius: 999px;
  background: color-mix(in srgb, var(--color-accent) 10%, transparent) !important;
  color: var(--color-accent) !important;
  font-size: .66rem !important;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}

/* ---------- C. 群聊页 ---------- */
/* 修复：气泡内消息带 52px 缩进（复用了帖子正文组件） */
main .chat-scroll .ml-\[52px\] {
  margin-left: 0 !important;
  margin-top: 0 !important;
}
/* 气泡更精致 */
main .chat-scroll .rounded-2xl {
  box-shadow: 0 1px 2px rgba(31,39,51,.04);
  transition: box-shadow .16s ease;
}
main .chat-scroll .rounded-2xl:hover { box-shadow: 0 3px 10px rgba(31,39,51,.08); }
/* 消息间距与时间弱化 */
main .chat-scroll { padding: 14px 16px !important; }
main .chat-scroll > div { margin-bottom: 2px; }
main .chat-scroll .text-xs.text-muted { opacity: .68; font-size: .68rem !important; }
/* 自己消息的名字行右对齐已由 flex-row-reverse 处理，时间与名字间距微调 */
main .chat-scroll .flex.items-center.gap-1\.5 { gap: 7px !important; }
/* 输入区：纸感底 + 圆润 */
main form.px-3.pb-3.pt-2 {
  background: color-mix(in srgb, var(--color-cream) 70%, transparent);
  padding: 12px 14px !important;
}
main form.px-3.pb-3.pt-2 input { padding: 10px 16px !important; }
main form.px-3.pb-3.pt-2 button { padding: 10px 20px !important; }

/* ---- 17. 救援：非帖子行卡（搜索结果等）恢复原始布局 ----
   v7 双区规则要求内容列含 mt-1.5 元数据行（真帖子行独有）；不含者一律还原 */
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child:not(:has(> .mt-1\.5)) {
  display: block !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child:not(:has(> .mt-1\.5)) > h3 {
  margin-top: 0 !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child:not(:has(> .mt-1\.5)) > div:nth-child(3) {
  max-width: none !important;
  justify-content: flex-start !important;
  margin-top: 6px !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child:not(:has(> .mt-1\.5)) > div:nth-child(1) {
  margin-bottom: 6px !important;
}

/* =====================================================================
   v18 · 全面精修「纸本编辑部」
   1 画布光晕 / 2 顶栏 / 3 左栏目录 / 4 快捷条 / 5 列表行 / 6 右栏
   7 帖子详情 / 8 群聊 / 9 手机端 / 10 暗色 / 11 细节收口
   ===================================================================== */

/* ---------- 1. 画布：顶部纸光 + 极细噪声 ---------- */
body {
  background-color: var(--color-cream) !important;
  background-image:
    radial-gradient(1100px 460px at 50% -200px,
      color-mix(in srgb, var(--color-accent) 6.5%, transparent), transparent 72%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.038'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat, repeat !important;
}
.dark body {
  background-image:
    radial-gradient(900px 400px at 50% -180px, rgba(143, 169, 224, .075), transparent 72%) !important;
  background-repeat: no-repeat !important;
}

/* ---------- 2. 顶栏：加高、细化、分区 ---------- */
header {
  box-shadow: 0 1px 0 color-mix(in srgb, var(--color-border) 70%, transparent),
              0 10px 30px -24px rgba(31, 39, 51, .45) !important;
}
header > div { height: 62px !important; }
header a > .w-8.h-8 {
  width: 34px !important; height: 34px !important;
  border-radius: 10px !important;
  font-size: .8rem !important;
  letter-spacing: .02em;
  background: linear-gradient(140deg, #46639F 0%, #2C4680 52%, #22355F 100%) !important;
  box-shadow: 0 2px 8px rgba(34, 53, 95, .32), inset 0 1px 0 rgba(255, 255, 255, .22) !important;
  transform: none !important;
}
header a > .font-serif { letter-spacing: .015em; }
header form input {
  height: 38px;
  padding: 0 16px !important;
  font-size: .84rem;
  background: var(--color-card) !important;
  border-color: color-mix(in srgb, var(--color-border) 88%, transparent) !important;
  box-shadow: inset 0 1px 2px rgba(31, 39, 51, .035);
}
header form input::placeholder { font-size: .82rem; }
header button[title^="已登录"] {
  background: color-mix(in srgb, var(--color-accent) 6%, var(--color-card)) !important;
  border-color: color-mix(in srgb, var(--color-accent) 22%, var(--color-border)) !important;
  font-weight: 500;
  height: 34px;
  display: inline-flex; align-items: center;
}
button[title="切换深浅色"] {
  width: 34px; height: 34px; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background-color .16s ease, transform .3s ease;
}
button[title="切换深浅色"]:hover {
  background: color-mix(in srgb, var(--color-accent) 9%, transparent);
  transform: rotate(-18deg);
}

/* ---------- 3. 左栏目录：靛蓝选中（与 CTA 砖红分工） ---------- */
#root .max-w-6xl.w-full > aside:first-of-type nav a {
  border-radius: 9px !important;
  padding: 7px 10px 7px 11px !important;
  color: color-mix(in srgb, var(--color-ink) 78%, transparent);
}
#root .max-w-6xl.w-full > aside:first-of-type nav a > span:first-child {
  filter: saturate(.82);
  opacity: .92;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a[class~='bg-ember/12'] {
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--color-accent) 13%, transparent),
    color-mix(in srgb, var(--color-accent) 3%, transparent)) !important;
  border-left-color: var(--color-accent) !important;
  color: var(--color-accent) !important;
  font-weight: 600;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a[class~='bg-ember/12'] > span:last-child {
  background: color-mix(in srgb, var(--color-accent) 15%, transparent) !important;
  color: var(--color-accent) !important;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a:not([class~='bg-ember/12']):hover {
  background: color-mix(in srgb, var(--color-accent) 6%, transparent) !important;
  border-left-color: color-mix(in srgb, var(--color-accent) 40%, transparent) !important;
  color: var(--color-accent) !important;
}
#root .max-w-6xl.w-full > aside:first-of-type nav a > span:last-child {
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}
#root .max-w-6xl.w-full > aside:first-of-type nav > div,
#root .max-w-6xl.w-full > aside:first-of-type nav > hr {
  margin: 10px 4px !important;
  border-color: color-mix(in srgb, var(--color-border) 80%, transparent) !important;
}

/* ---------- 4. 快捷条：命令栏芯片 ---------- */
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 {
  gap: 9px !important;
  margin-bottom: 2px;
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover {
  background: var(--color-card) !important;
  border-color: color-mix(in srgb, var(--color-border) 92%, transparent) !important;
  padding: 8px 14px !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 2px rgba(31, 39, 51, .035) !important;
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover:hover {
  background: var(--color-card) !important;
  border-color: color-mix(in srgb, var(--color-accent) 42%, var(--color-border)) !important;
  box-shadow: 0 4px 14px -8px rgba(42, 68, 128, .28) !important;
  translate: none !important;
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover > .text-2xl {
  font-size: 19px !important;
  filter: saturate(.9);
}
main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 > .card-hover > .text-sm {
  font-weight: 500;
  letter-spacing: .005em;
}

/* ---------- 5. 公告卡：暖色便签 ---------- */
main .animate-fade-in > .space-y-4 > .card.p-4.space-y-2 {
  background: color-mix(in srgb, var(--color-warning) 4.5%, var(--color-card)) !important;
  border-style: dashed !important;
  border-color: color-mix(in srgb, var(--color-warning) 26%, var(--color-border)) !important;
}
main .animate-fade-in > .space-y-4 > .card.p-4.space-y-2::after {
  border-color: color-mix(in srgb, var(--color-warning) 34%, var(--color-border));
  color: color-mix(in srgb, var(--color-warning) 78%, var(--color-ink));
}

/* ---------- 6. 分区头：眉题 + 双线 ---------- */
main .animate-fade-in .eyebrow {
  font-size: .58rem !important;
  letter-spacing: .24em !important;
  text-transform: uppercase;
  font-weight: 600;
  white-space: nowrap;
  color: color-mix(in srgb, var(--color-accent) 82%, var(--color-muted)) !important;
  margin-bottom: 2px;
}
main .animate-fade-in > .space-y-4 > .flex.items-end.justify-between {
  border-bottom-width: 2px !important;
  border-bottom-color: color-mix(in srgb, var(--color-ink) 82%, transparent) !important;
  padding-bottom: 10px !important;
}
main .animate-fade-in > .space-y-4 > .flex.items-end.justify-between h2 {
  font-size: 1.42rem !important;
  letter-spacing: .01em;
}

/* ---------- 7. 帖子行：通栏单列（标题优先） ---------- */
main .animate-fade-in .space-y-3 { gap: 9px !important; }
main .animate-fade-in .space-y-3 > .card-hover {
  padding: 13px 16px !important;
  border-radius: 13px !important;
  box-shadow: 0 1px 2px rgba(31, 39, 51, .03), 0 6px 18px -14px rgba(31, 39, 51, .22) !important;
}
/* 内容列：解除 v7 双区网格，恢复单列 */
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child,
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child:not(:has(> .mt-1\.5)) {
  display: block !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > h3 {
  font-size: 1rem !important;
  line-height: 1.5 !important;
  letter-spacing: -.004em;
  margin-top: 1px !important;
}
/* 元信息行：回到标题下方，一行读完 */
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(3),
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child:not(:has(> .mt-1\.5)) > div:nth-child(3) {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 6px !important;
  max-width: none !important;
  margin-top: 7px !important;
  text-align: left !important;
  font-size: .71rem !important;
  line-height: 1.5 !important;
  color: color-mix(in srgb, var(--color-muted) 92%, transparent);
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(1),
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child:not(:has(> .mt-1\.5)) > div:nth-child(1) {
  margin-bottom: 5px !important;
}
/* 头像 */
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > .w-10 {
  width: 38px !important; height: 38px !important;
  font-size: 1.02rem !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35), 0 1px 3px rgba(31, 39, 51, .1) !important;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start { gap: 12px !important; }
/* 悬停：左侧靛蓝竖条 + 抬升 1px */
main .animate-fade-in .space-y-3 > .card-hover:hover {
  translate: 0 !important;
  box-shadow: 0 2px 6px rgba(42, 68, 128, .06), 0 16px 34px -20px rgba(42, 68, 128, .30) !important;
}
main .animate-fade-in .space-y-3 > .card-hover::before { width: 2.5px !important; }
main .animate-fade-in .space-y-3 > .card-hover:hover::before { transform: scaleY(1) !important; }
main .animate-fade-in .space-y-3 > .card-hover::before { top: 10px !important; bottom: 10px !important; }

/* 分类标签：靛蓝淡底 */
main .animate-fade-in .space-y-3 > .card-hover span[class*='rounded'][class*='bg-cream'],
main .card.p-5 > .flex.items-center.gap-2 > span[class*='bg-cream'] {
  background: color-mix(in srgb, var(--color-accent) 8%, transparent) !important;
  border-color: transparent !important;
  color: color-mix(in srgb, var(--color-accent) 88%, var(--color-ink)) !important;
  font-weight: 500;
  padding: 1px 7px !important;
  border-radius: 5px !important;
}
/* #话题：等宽小字 */
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(1) > span:nth-child(2) {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .68rem !important;
  opacity: .78;
  letter-spacing: -.01em;
}
/* AI 徽章：紫色实底 → 靛蓝描边小签（全场统一） */
span[style*="background-color: rgb(123, 94, 167)"] {
  background-color: transparent !important;
  color: color-mix(in srgb, var(--color-accent) 90%, var(--color-ink)) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-accent) 34%, transparent);
  font-weight: 600 !important;
  letter-spacing: .04em;
  padding: 0 5px !important;
  border-radius: 4px !important;
  font-size: 9.5px !important;
}
/* 回复数 / 火苗：等宽数字 */
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(3) > span {
  font-variant-numeric: tabular-nums;
}
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(3) > span:nth-last-child(1) {
  font-weight: 600;
  color: color-mix(in srgb, var(--color-ember) 72%, var(--color-muted));
}

/* 搜索结果卡：标题与摘要排版（无 mt-1.5 行） */
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > h3 { margin-top: 0 !important; }
main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(3) { margin-bottom: 0; }

/* ---------- 8. 右栏：目录卡与成员 ---------- */
#root .max-w-6xl.w-full > aside:last-of-type .space-y-4 { gap: 12px !important; }
#root .max-w-6xl.w-full > aside:last-of-type .card h3.font-serif {
  font-size: .95rem !important;
  letter-spacing: .01em;
}
#root .max-w-6xl.w-full > aside:last-of-type .card .space-y-2\.5 > div {
  margin: -3px -6px;
  padding: 4px 6px !important;
  border-radius: 8px;
  transition: background-color .15s ease;
}
#root .max-w-6xl.w-full > aside:last-of-type .card .space-y-2\.5 > div:hover {
  background: color-mix(in srgb, var(--color-accent) 5%, transparent);
}
#root .max-w-6xl.w-full > aside:last-of-type .card .space-y-2\.5 > div > .shrink-0:last-child {
  font-size: .6rem !important;
  opacity: .55;
  letter-spacing: .02em;
}
#root .max-w-6xl.w-full > aside:last-of-type .card a.text-accent,
#root .max-w-6xl.w-full > aside:last-of-type .card a[class*='text-accent'] {
  font-size: .72rem !important;
  font-weight: 500;
  text-decoration: none;
}
#root .max-w-6xl.w-full > aside:last-of-type .card a[class*='text-accent']:hover { text-decoration: underline; text-underline-offset: 3px; }
/* 小提示卡：便笺 */
#root .max-w-6xl.w-full > aside:last-of-type .card.text-xs {
  background: color-mix(in srgb, var(--color-warning) 4%, var(--color-card)) !important;
  border-style: dashed !important;
  border-color: color-mix(in srgb, var(--color-warning) 24%, var(--color-border)) !important;
  opacity: 1;
}
/* 引擎卡数值 */
.fp-engine-stats b { font-size: .98rem !important; letter-spacing: -.02em; }
.fp-engine-stats > div { background: color-mix(in srgb, var(--color-accent) 3.5%, var(--color-card)); }

/* ---------- 9. 帖子详情：主帖题头 ---------- */
main .card.p-5 {
  padding: 30px 32px 22px !important;
  border-radius: 16px !important;
}
main .card.p-5 > h1 {
  font-size: 1.62rem !important;
  line-height: 1.38 !important;
  letter-spacing: -.008em;
  margin-top: 2px;
  text-wrap: pretty;
}
main .card.p-5 > .flex.items-center.justify-between.mt-3 {
  padding-bottom: 14px;
  border-bottom: 1px dashed color-mix(in srgb, var(--color-border) 90%, transparent);
}
main .card.p-5 > .mt-2.ml-\[52px\] {
  margin-top: 18px !important;
  font-size: .99rem !important;
  line-height: 1.95 !important;
  letter-spacing: .002em;
  text-wrap: pretty;
}
main .card.p-5 > .mt-4.pt-3.border-t {
  border-top-color: color-mix(in srgb, var(--color-border) 90%, transparent) !important;
  margin-top: 22px !important;
  padding-top: 14px !important;
  align-items: center;
}
main .card.p-5 > .mt-4.pt-3.border-t button {
  padding: 5px 14px !important;
  border-radius: 999px !important;
  font-weight: 500;
}
main .card.p-5 > .mt-4.pt-3.border-t button[class*='text-accent'] {
  background: color-mix(in srgb, var(--color-accent) 10%, transparent) !important;
  color: var(--color-accent) !important;
  border: 1px solid color-mix(in srgb, var(--color-accent) 25%, transparent) !important;
}
main .card.p-5 > .mt-4.pt-3.border-t button[class*='text-accent']:hover {
  background: color-mix(in srgb, var(--color-accent) 16%, transparent) !important;
}

/* ---------- 10. 楼层：正文、引用块、操作 ---------- */
main .card.px-4.py-3\.5 {
  padding: 16px 18px 16px 22px !important;
  border-radius: 13px !important;
  box-shadow: 0 1px 2px rgba(31, 39, 51, .03), 0 8px 22px -18px rgba(31, 39, 51, .28) !important;
}
main .card.px-4.py-3\.5:hover {
  box-shadow: 0 2px 6px rgba(42, 68, 128, .05), 0 16px 32px -22px rgba(42, 68, 128, .30) !important;
}
/* 引用块：取消 52px 缩进（手机上会溢出），做成「摘录」条 */
main .card.px-4.py-3\.5 > .mt-2\.5.ml-\[52px\] {
  margin-left: 0 !important;
  margin-top: 12px !important;
  padding: 8px 12px !important;
  background: color-mix(in srgb, var(--color-accent) 4%, var(--color-cream)) !important;
  border-left: 3px solid color-mix(in srgb, var(--color-accent) 32%, var(--color-border)) !important;
  border-radius: 0 8px 8px 0 !important;
  font-size: .76rem !important;
  line-height: 1.65 !important;
  color: color-mix(in srgb, var(--color-muted) 96%, transparent) !important;
  position: relative;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
main .card.px-4.py-3\.5 > .mt-2\.5.ml-\[52px\]::before {
  content: "引用：";
  display: inline-block;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .12em;
  color: color-mix(in srgb, var(--color-accent) 62%, transparent);
  margin-right: 6px;
  vertical-align: 1px;
}
main .card.px-4.py-3\.5 .mt-2.ml-\[52px\] {
  margin-top: 12px !important;
  font-size: .95rem !important;
  line-height: 1.85 !important;
  text-wrap: pretty;
}
/* 楼层头：名字组 + 操作组 */
main .card.px-4.py-3\.5 > .flex.items-center.gap-3 { gap: 12px !important; }
main .card.px-4.py-3\.5 > .flex.items-center.gap-3 > .w-8 {
  width: 34px !important; height: 34px !important;
  font-size: .95rem !important;
}
main .card.px-4.py-3\.5 > .flex.items-center.gap-3 > .flex-1.min-w-0 > span.text-xs {
  font-size: .68rem !important;
  opacity: .8;
}
main .card.px-4.py-3\.5 > .flex.items-center.gap-3 > .flex.items-center.gap-2 > button {
  padding: 2px 7px !important;
  border-radius: 6px !important;
  transition: background-color .15s ease, color .15s ease, opacity .15s ease !important;
}
main .card.px-4.py-3\.5 > .flex.items-center.gap-3 > .flex.items-center.gap-2 > button:hover {
  background: color-mix(in srgb, var(--color-accent) 8%, transparent);
}
.fp-floor-num {
  background: transparent !important;
  color: color-mix(in srgb, var(--color-muted) 75%, transparent) !important;
  font-size: .62rem !important;
  font-weight: 600;
  letter-spacing: .05em;
  padding: 0 2px !important;
}

/* ---------- 11. 群聊：卡片式窗口 ---------- */
main .animate-fade-in > .h-\[calc\(100vh-120px\)\] {
  height: calc(100vh - 112px) !important;
  min-height: 420px;
  background: var(--color-card);
  border: 1px solid color-mix(in srgb, var(--color-border) 92%, transparent);
  border-radius: 18px;
  box-shadow: 0 1px 2px rgba(31, 39, 51, .04), 0 26px 60px -40px rgba(31, 39, 51, .38);
  overflow: hidden;
}
/* 群聊页专注模式：页脚本就一屏、隐藏冗余悬浮键（否则压住发送键） */
body:has(main .chat-scroll) footer { display: none !important; }
body:has(main .chat-scroll) button.fixed.bottom-20 { display: none !important; }
body:has(main .chat-scroll) #fp-fab { display: none !important; }
body:has(main .chat-scroll) #fp-panel { display: none !important; }
main .animate-fade-in > .h-\[calc\(100vh-120px\)\] > .flex.items-center.gap-2.pb-3.border-b {
  padding: 15px 20px !important;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--color-accent) 5%, var(--color-card)),
    var(--color-card));
  border-bottom-color: color-mix(in srgb, var(--color-border) 85%, transparent) !important;
}
main .animate-fade-in > .h-\[calc\(100vh-120px\)\] > .flex.items-center.gap-2.pb-3.border-b > span {
  width: 34px; height: 34px; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--color-accent) 10%, transparent);
  font-size: 17px;
}
main .animate-fade-in > .h-\[calc\(100vh-120px\)\] > .flex.items-center.gap-2.pb-3.border-b .font-serif {
  font-size: 1.02rem !important;
  letter-spacing: .01em;
}
main .animate-fade-in > .h-\[calc\(100vh-120px\)\] > .flex.items-center.gap-2.pb-3.border-b .text-xs {
  font-size: .7rem !important;
  opacity: .85;
}
/* 消息区：细点纹底 */
main .chat-scroll {
  padding: 18px 20px !important;
  background-image: radial-gradient(color-mix(in srgb, var(--color-border) 55%, transparent) .8px, transparent .8px);
  background-size: 20px 20px;
  background-position: 0 0;
}
main .chat-scroll > div { margin-bottom: 4px; }
main .chat-scroll .max-w-\[80\%\] { max-width: 78% !important; }
main .chat-scroll .w-8.h-8 {
  width: 32px !important; height: 32px !important;
  font-size: .85rem !important;
  box-shadow: 0 1px 3px rgba(31, 39, 51, .1);
}
main .chat-scroll .inline-block.rounded-2xl {
  padding: 9px 14px !important;
  border-radius: 4px 15px 15px 15px !important;
  background: var(--color-card) !important;
  border-color: color-mix(in srgb, var(--color-border) 78%, transparent) !important;
  box-shadow: 0 1px 2px rgba(31, 39, 51, .04), 0 6px 16px -14px rgba(31, 39, 51, .28) !important;
  font-size: .88rem !important;
  line-height: 1.75 !important;
}
main .chat-scroll .inline-block.rounded-2xl .ml-\[52px\] {
  margin: 0 !important;
  font-size: .88rem !important;
  line-height: 1.75 !important;
  color: var(--color-ink) !important;
}
main .chat-scroll .flex.items-center.gap-1\.5 { gap: 7px !important; margin-bottom: 5px !important; }
main .chat-scroll .text-xs.text-muted { font-size: .66rem !important; opacity: .62; }
/* 输入区：停靠条 */
main .animate-fade-in > .h-\[calc\(100vh-120px\)\] > form.px-3.pb-3.pt-2 {
  padding: 12px 16px !important;
  border-top: 1px solid color-mix(in srgb, var(--color-border) 80%, transparent);
  background: color-mix(in srgb, var(--color-cream) 55%, var(--color-card));
}
main .animate-fade-in > .h-\[calc\(100vh-120px\)\] > form.px-3.pb-3.pt-2 input {
  height: 42px;
  padding: 0 18px !important;
  border-radius: 999px !important;
  background: var(--color-card) !important;
  font-size: .86rem;
}
main .animate-fade-in > .h-\[calc\(100vh-120px\)\] > form.px-3.pb-3.pt-2 button {
  height: 42px;
  padding: 0 22px !important;
  border-radius: 999px !important;
  background-image: linear-gradient(135deg, #3D5FAE, #2A4480) !important;
  color: #fff !important;
  font-weight: 500;
  box-shadow: 0 4px 14px -6px rgba(42, 68, 128, .55);
}
main .animate-fade-in > .h-\[calc\(100vh-120px\)\] > form.px-3.pb-3.pt-2 button:disabled {
  background: color-mix(in srgb, var(--color-border) 65%, transparent) !important;
  box-shadow: none !important;
  color: var(--color-muted) !important;
}

/* ---------- 12. 页脚 ---------- */
footer {
  border-top: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
  padding-top: 18px;
  margin-top: 8px;
  color: color-mix(in srgb, var(--color-muted) 82%, transparent) !important;
}

/* ---------- 13. 暗色：卡片轻微提亮 + 顶部高光 ---------- */
.dark .card,
.dark .card-hover,
.dark main .card.px-4.py-3\.5 {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .028), 0 1px 2px rgba(0, 0, 0, .35) !important;
}
.dark main .animate-fade-in > .h-\[calc\(100vh-120px\)\] {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03), 0 26px 60px -40px rgba(0, 0, 0, .75);
}
.dark main .chat-scroll {
  background-image: radial-gradient(rgba(255, 255, 255, .045) .8px, transparent .8px);
}
.dark header { background: color-mix(in srgb, var(--color-cream) 92%, transparent) !important; }
.dark #root .max-w-6xl.w-full > aside:first-of-type nav a > span:last-child {
  background: rgba(255, 255, 255, .065) !important;
  color: #A7B2C6 !important;
}
.dark #root .max-w-6xl.w-full > aside:first-of-type nav a[class~='bg-ember/12'] > span:last-child {
  background: color-mix(in srgb, var(--color-accent) 20%, transparent) !important;
  color: var(--color-accent) !important;
}

/* ---------- 14. 手机端 ---------- */
@media (max-width: 639px) {
  /* 顶栏：给搜索让位 */
  header > div { height: 54px !important; padding-left: 12px; padding-right: 12px; }
  header > div > div:last-child { gap: 5px !important; }
  header a > span.text-xs.rounded-full { display: none !important; }   /* β */
  header form input { font-size: .78rem; height: 34px; padding: 0 12px !important; }
  header form input::placeholder { font-size: .76rem; }
  header button[title^="已登录"] {
    font-size: 0 !important;
    width: 34px !important; height: 34px !important;
    padding: 0 !important;
    justify-content: center;
    border-radius: 999px !important;
  }
  header button[title^="已登录"]::before { content: "👤"; font-size: 15px; }
  header a > .w-8.h-8 { width: 32px !important; height: 32px !important; }

  /* 横滑板块条 */
  nav.lg\:hidden.overflow-x-auto { padding: 7px 12px !important; gap: 6px !important; }
  nav.lg\:hidden.overflow-x-auto a { font-size: .72rem !important; padding: 5px 11px !important; }

  /* 帖子行：更紧、标题稍小 */
  main .animate-fade-in .space-y-3 > .card-hover { padding: 12px 13px !important; }
  main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start { gap: 10px !important; }
  main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > .w-10 {
    width: 34px !important; height: 34px !important; font-size: .92rem !important;
  }
  main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > h3 {
    font-size: .95rem !important; line-height: 1.45 !important;
  }
  main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(3) {
    font-size: .68rem !important; gap: 5px !important; margin-top: 6px !important;
  }
  main .animate-fade-in .space-y-3 > .card-hover > .flex.items-start > div:last-child > div:nth-child(1) {
    margin-bottom: 4px !important;
  }
  /* 快捷条贴边横滑 */
  main .animate-fade-in > .space-y-4 > .grid.grid-cols-2 {
    margin-left: -4px; margin-right: -4px; padding-bottom: 4px;
  }
  /* 详情页 */
  main .card.p-5 { padding: 20px 17px 16px !important; border-radius: 14px !important; }
  main .card.p-5 > h1 { font-size: 1.28rem !important; line-height: 1.42 !important; }
  main .card.p-5 > .mt-2.ml-\[52px\] { font-size: .94rem !important; line-height: 1.85 !important; }
  main .card.px-4.py-3\.5 { padding: 14px 14px 14px 17px !important; }
  main .card.px-4.py-3\.5 .mt-2.ml-\[52px\] { font-size: .9rem !important; line-height: 1.8 !important; }
  main .card.px-4.py-3\.5 > .flex.items-center.gap-3 > .flex.items-center.gap-2 > button {
    opacity: .72;
  }
  /* 群聊：手机全宽卡片 */
  main .animate-fade-in > .h-\[calc\(100vh-120px\)\] {
    height: calc(100vh - 204px) !important;
    min-height: 320px;
    border-radius: 14px;
  }
  main .chat-scroll { padding: 14px 13px !important; }
  main .chat-scroll .max-w-\[80\%\] { max-width: 86% !important; }
  main .chat-scroll .inline-block.rounded-2xl { font-size: .85rem !important; }
  /* 搜索页题头 */
  main .animate-fade-in > .space-y-4 > .flex.items-center.justify-between { gap: 8px; flex-wrap: wrap; }
  main .animate-fade-in > .space-y-4 > .flex.items-center.justify-between > h2.font-serif { font-size: 1.05rem !important; }
  /* 悬浮按钮：竖排不重叠 */
  button.fixed.bottom-20 { bottom: 88px !important; right: 16px !important; width: 52px !important; height: 52px !important; }
  #fp-fab { bottom: 152px !important; right: 16px !important; width: 52px !important; height: 52px !important; font-size: 21px !important; }
  #fp-panel { bottom: 214px !important; }
  /* 底部导航：顶部指示条 */
  nav.fixed.bottom-0 a { position: relative; padding-top: 8px; padding-bottom: 7px; }
  nav.fixed.bottom-0 a[aria-current="page"] { color: var(--color-accent) !important; font-weight: 600; }
  nav.fixed.bottom-0 a[aria-current="page"]::before {
    content: "";
    position: absolute; top: 0; left: 50%; transform: translateX(-50%);
    width: 24px; height: 2.5px; border-radius: 0 0 3px 3px;
    background: var(--color-accent);
  }
}
@media (min-width: 640px) and (max-width: 1023px) {
  button.fixed.bottom-20 { bottom: 88px !important; right: 16px !important; }
  #fp-fab { bottom: 152px !important; right: 16px !important; }
  #fp-panel { bottom: 214px !important; }
}

/* ---------- 15. 细节收口 ---------- */
/* 板块 / 标签页题头卡：靛蓝纸带 */
main .animate-fade-in > .space-y-4 > .card.p-4:not(.space-y-2) {
  background: linear-gradient(100deg,
    color-mix(in srgb, var(--color-accent) 7%, var(--color-card)),
    var(--color-card) 62%) !important;
  border-color: color-mix(in srgb, var(--color-accent) 20%, var(--color-border)) !important;
  padding: 16px 18px 16px 21px !important;
  position: relative;
  overflow: hidden;
}
main .animate-fade-in > .space-y-4 > .card.p-4:not(.space-y-2)::before {
  content: "";
  position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--color-accent) 72%, transparent),
    color-mix(in srgb, var(--color-accent) 10%, transparent));
}
main .animate-fade-in > .space-y-4 > .card.p-4:not(.space-y-2) h2 {
  font-size: 1.34rem !important;
  letter-spacing: .008em;
}
main .animate-fade-in > .space-y-4 > .card.p-4:not(.space-y-2) h2 > span {
  font-size: .7rem !important;
  font-weight: 500;
  padding: 2px 9px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-accent) 9%, transparent);
  color: color-mix(in srgb, var(--color-accent) 86%, var(--color-ink));
  margin-left: 8px !important;
  vertical-align: 3px;
}
main .animate-fade-in > .space-y-4 > .card.p-4:not(.space-y-2) p {
  font-size: .8rem !important;
  margin-top: 3px !important;
}
main .animate-fade-in > .space-y-4 > .card.p-4:not(.space-y-2) button[style] {
  background-image: linear-gradient(135deg, #C43535, #991B1B) !important;
  box-shadow: 0 4px 14px rgba(185, 28, 28, .26) !important;
  border-radius: 999px !important;
  padding: 6px 17px !important;
}
/* 搜索页题头 */
main .animate-fade-in > .space-y-4 > .flex.items-center.justify-between {
  padding-bottom: 11px;
  border-bottom: 2px solid color-mix(in srgb, var(--color-ink) 82%, transparent);
}
main .animate-fade-in > .space-y-4 > .flex.items-center.justify-between > h2.font-serif {
  font-size: 1.36rem !important;
  letter-spacing: .005em;
}
main .animate-fade-in > .space-y-4 > .flex.items-center.justify-between > h2 > span {
  font-size: .68rem !important;
  font-weight: 500;
  padding: 2px 9px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-accent) 9%, transparent);
  color: color-mix(in srgb, var(--color-accent) 88%, var(--color-ink));
  margin-left: 10px !important;
  vertical-align: 2px;
}
main .animate-fade-in > .space-y-4 > .flex.items-center.justify-between > select {
  padding: 4px 12px !important;
  border-radius: 999px !important;
  font-size: .72rem !important;
}
main .animate-fade-in > .space-y-4 > .flex.items-center.justify-between > div:last-child button {
  border-radius: 999px;
}
main .animate-fade-in .space-y-3 > .card-hover h3 { text-wrap: pretty; }
button:focus-visible, a:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-accent) 55%, transparent);
  outline-offset: 2px;
  border-radius: 8px;
}
