/* ==========================================================
   手机外壳 / 导航 / TabBar / 交互补全
   ========================================================== */
* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
  height: 100%;
  background: #eef1f5;
}

body {
  font-family: -apple-system, "PingFang SC", "Helvetica Neue", "Microsoft YaHei", sans-serif;
  color: #1b2230;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background:
    radial-gradient(900px 600px at 50% 0%, rgba(201,162,39,.05), transparent 60%),
    #eef1f5;
}

/* 桌面端：手机模型 */
.phone {
  position: relative;
  /* 自己成层叠上下文：发布按钮是 fixed + z-index 30，
     否则它会跑到遮罩（#layer 200）上面去，弹层开着还能点到 */
  isolation: isolate;
  width: 390px;
  height: 844px;
  max-height: 100vh;
  background: #f3f5f8;
  border-radius: 44px;
  border: 1px solid #dfe4ec;
  box-shadow:
    0 0 0 10px #e9edf3,
    0 0 0 11px #dde3ec,
    0 30px 70px rgba(15,23,42,0.14);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}


/* 导航栏 */
.navbar {
  height: 44px;
  flex: 0 0 44px;
  display: flex;
  align-items: center;
  padding: 0 10px 0 12px;
  background: #f3f5f8;
  border-bottom: 1px solid rgba(255,255,255,.04);
  position: relative;
  z-index: 19;
}
.nb-back {
  width: 30px;
  font-size: 24px;
  line-height: 1;
  color: #1b2230;
  cursor: pointer;
  user-select: none;
  transition: opacity .15s;
}
.nb-back:active { opacity: .5; }
.nb-title {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .5px;
  white-space: nowrap;
}

/* 内容区 */
.screen {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.screen::-webkit-scrollbar { width: 4px; }
.screen::-webkit-scrollbar-thumb { background: #dfe4ec; border-radius: 2px; }

/* TabBar */
.tabbar {
  flex: 0 0 54px;
  height: 54px;
  background: #ffffff;
  border-top: 1px solid #e4e8ef;
  display: flex;
  position: relative;
  z-index: 20;
  padding-bottom: 2px;
}
.tb {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  cursor: pointer;
  transition: opacity .15s;
}
.tb:active { opacity: .6; }
.tb-ic {
  width: 18px; height: 18px;
  border: 1px solid #c3cbd6;
  border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-size: 10.5px; color: #8b96a8; font-weight: 600;
  transition: .18s;
}
.tb-t { font-size: 10px; color: #8b96a8; transition: .18s; }
.tb.on .tb-ic {
  color: #9d7712; border-color: rgba(201,162,39,.45); background: rgba(201,162,39,.09);
}
.tb.on .tb-t { color: #b08a1a; }

/* 页面进出动画 */
.page-enter { animation: pageIn .22s cubic-bezier(.22,1,.36,1); }
@keyframes pageIn {
  from { opacity: 0; transform: translateX(14px); }
  to { opacity: 1; transform: translateX(0); }
}
.page-enter-back { animation: pageBack .22s cubic-bezier(.22,1,.36,1); }
@keyframes pageBack {
  from { opacity: 0; transform: translateX(-14px); }
  to { opacity: 1; transform: translateX(0); }
}

/* 点击反馈 */
.page-root [data-act],
.page-root .pcard,
.page-root .rcard,
.page-root .case-item,
.page-root .vopt,
.page-root .who-pill,
.page-root .ev-like,
.page-root .cm-like {
  -webkit-tap-highlight-color: transparent;
}
.page-root button { border: none; background: none; font-family: inherit; }

/* Toast */
#layer {
  position: absolute;
  inset: 0;
  z-index: 200;
  pointer-events: none;
}
#layer > * { pointer-events: auto; }

.toast-wrap {
  z-index: 300;
  position: absolute;
  left: 50%;
  bottom: 88px;
  transform: translateX(-50%);
  z-index: 300;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}
.toast {
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid #e4e8ef;
  color: #1b2230;
  font-size: 12.5px;
  padding: 8px 16px;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(15,23,42,0.10);
  animation: toastIn .2s ease;
  white-space: nowrap;
}
@keyframes toastIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
.toast.out { opacity: 0; transition: opacity .18s; }

/* 输入框模拟 */
.__inp, .__ta {
  display: flex;
  align-items: center;
  cursor: text;
}
.__inp input, .__ta textarea {
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  color: #1b2230;
  font-family: inherit;
  font-size: 13px;
  padding: 0;
  resize: none;
}
.__inp input::placeholder, .__ta textarea::placeholder { color: #a9b3c1; }

/* 弹层动画 */
.mask {
  position: absolute;
  inset: 0;
  background: rgba(17,24,39,0.42);
  z-index: 100;
  display: flex;
  align-items: flex-end;
  animation: maskIn .18s ease;
}
.mask.center { align-items: center; justify-content: center; padding: 20px 15px; }
@keyframes maskIn { from { opacity: 0 } to { opacity: 1 } }
.mask .modal { animation: modalIn .24s cubic-bezier(.22,1,.36,1); }
@keyframes modalIn {
  from { opacity: 0; transform: translateY(16px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.mask .sheet { animation: sheetIn .26s cubic-bezier(.22,1,.36,1); }
@keyframes sheetIn { from { transform: translateY(100%) } to { transform: translateY(0) } }

/* 滚动条（横向轨道） */
.track-scroll { overflow-x: auto; }
.track-scroll::-webkit-scrollbar { display: none; }

/* 小屏：去掉手机壳 */
@media (max-width: 480px) {
  body { display: block; background: #f3f5f8; }
  .phone {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    max-height: none;
    border-radius: 0;
    border: none;
    box-shadow: none;
  }
}

/* 弹层内部滚动 */
.modal-body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
.sheet-body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
.modal-head { flex-shrink: 0; }
.modal-foot { flex-shrink: 0; }
.sheet-head, .sheet-foot { flex-shrink: 0; }

/* 副标题字距收敛 */
.hero-p { letter-spacing: 0 !important; }
/* 全面屏安全区（无状态栏后，顶栏自行避让刘海） */
@media (max-width: 899px) {
  .navbar {
    padding-top: env(safe-area-inset-top);
    height: calc(44px + env(safe-area-inset-top));
    flex-basis: calc(44px + env(safe-area-inset-top));
    min-height: 0;
  }
  .tabbar {
    padding-bottom: env(safe-area-inset-bottom);
    height: calc(54px + env(safe-area-inset-bottom));
    flex-basis: calc(54px + env(safe-area-inset-bottom));
    min-height: 0;
  }
}

/* 浅色主题补充：弹层阴影与对比度 */
.modal {
  box-shadow: 0 24px 70px rgba(15,23,42,0.18), 0 2px 8px rgba(15,23,42,0.06);
}
.sheet {
  box-shadow: 0 -12px 50px rgba(15,23,42,0.16);
}

/* ==========================================================
   常规功能：搜索 / 筛选 / 收藏 / 我的 / 回到顶部
   ========================================================== */
.search-wrap { padding: 0 2px 10px; }
.search-box {
  height: 34px;
  background: #fff;
  border: 1px solid #e4e8ef;
  border-radius: 10px;
  padding: 0 10px;
  display: flex;
  align-items: center;
  gap: 7px;
}
.search-ic {
  width: 17px; height: 17px; border-radius: 5px;
  background: #eef1f5; color: #8b96a8;
  font-size: 9px; display: grid; place-items: center;
  flex: 0 0 17px;
}
.search-box input { border: none; outline: none; background: transparent; flex: 1; font-size: 12px; color: #1b2230; }
.search-box input::placeholder { color: #a9b3c1; }
.search-clear { color: #a9b3c1; font-size: 15px; padding: 0 3px; cursor: pointer; line-height: 1; }

.filter-row { display: flex; align-items: center; gap: 7px; }
.chips { display: flex; gap: 6px; overflow-x: auto; flex: 1; padding-bottom: 2px; }
.chips::-webkit-scrollbar { display: none; }
.chip {
  flex: 0 0 auto; font-size: 10.5px; padding: 5px 11px;
  border-radius: 13px; border: 1px solid #e4e8ef;
  color: #5b6879; background: #fff; cursor: pointer;
  transition: .15s;
}
.chip.on {
  background: rgba(176,138,26,0.10);
  border-color: rgba(176,138,26,0.45);
  color: #8a6a0f; font-weight: 600;
}
.sort-btn {
  font-size: 10.5px; color: #5b6879; white-space: nowrap;
  padding: 5px 8px; border: 1px solid #e4e8ef; border-radius: 8px;
  background: #fff; cursor: pointer;
}
.sort-btn:active { background: #f7f8fa; }

.ci-fav {
  flex: 0 0 16px; width: 16px; text-align: center;
  font-size: 14px; color: #c3cbd6; cursor: pointer;
  margin-left: 4px; line-height: 1;
}
.ci-fav.on { color: #c9971a; }

.me-card {
  display: flex; align-items: center; gap: 12px;
  background: #fff; border: 1px solid #e4e8ef;
  border-radius: 16px; padding: 16px; margin-bottom: 12px;
}
.me-avatar {
  width: 46px; height: 46px; border-radius: 23px;
  background: linear-gradient(150deg, #c9a227, #8a6a0f);
  color: #fff; font-weight: 700; font-size: 18px;
  display: grid; place-items: center; flex: 0 0 46px;
}
.me-info { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.me-name { font-size: 15px; font-weight: 600; }
.me-desc { font-size: 10px; color: #8b96a8; margin-top: 2px; }

.me-stats {
  display: flex; background: #fff; border: 1px solid #e4e8ef;
  border-radius: 16px; padding: 12px 0; margin-bottom: 6px;
}
.ms { flex: 1; display: flex; flex-direction: column; align-items: center; }
.ms-n { font-size: 17px; font-weight: 700; color: #1b2230; line-height: 1.25; }
.ms-l { font-size: 9.5px; color: #8b96a8; }

.mine-row {
  display: flex; align-items: center;
  padding: 11px 2px; border-bottom: 1px solid #edf0f5; cursor: pointer;
}
.mine-row:last-child { border-bottom: none; }
.mr-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mr-title {
  font-size: 12px; font-weight: 500; line-height: 1.5; color: #1b2230;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mr-sub { font-size: 9.5px; color: #a9b3c1; margin-top: 2px; }
.mr-arrow { color: #c3cbd6; font-size: 14px; padding-left: 8px; }
.duty-n {
  flex: 0 0 auto; font-size: 9.5px; font-weight: 600; color: #b06a10;
  background: rgba(217,144,43,.14); border-radius: 4px; padding: 2px 6px;
}

.menu-row {
  display: flex; align-items: center; gap: 10px;
  padding: 13px 14px; border-bottom: 1px solid #edf0f5;
  font-size: 12.5px; cursor: pointer;
}
.menu-row:last-child { border-bottom: none; }
.menu-row:active { background: #f7f8fa; }
.menu-ic {
  width: 24px; height: 24px; border-radius: 6px;
  background: #eef1f5; color: #8b96a8; font-size: 10px;
  display: grid; place-items: center; flex: 0 0 24px;
}
.menu-arrow { margin-left: auto; color: #c3cbd6; font-size: 13px; }

.foot-note {
  text-align: center; font-size: 9.5px; color: #a9b3c1;
  line-height: 1.9; padding: 18px 0 10px;
}

/* 页脚备案号：主 Tab 页底部统一展示，链接到工信部备案系统 */
.beian-bar {
  text-align: center;
  padding: 12px 0 16px;
}
.beian-bar a {
  display: inline-block;
  font-size: 10px;
  color: #8a93a3;
  text-decoration: none;
  letter-spacing: .3px;
  padding: 3px 10px;
  border-radius: 999px;
  background: #eceff3;
}
.beian-bar a:active { background: #e2e6ec; }

.to-top {
  position: absolute; right: 14px; bottom: 68px;
  width: 34px; height: 34px; border-radius: 17px;
  background: #fff; border: 1px solid #e4e8ef; color: #5b6879;
  font-size: 15px; box-shadow: 0 4px 14px rgba(15,23,42,0.10);
  opacity: 0; pointer-events: none; transition: .2s; z-index: 50;
  font-family: inherit;
}
.to-top.on { opacity: 1; pointer-events: auto; }
.to-top:active { background: #f7f8fa; }

/* 卡片内空态更紧凑 */
.card-body .empty { padding: 22px 12px 18px; }
.card-body .empty .empty-glyph {
  width: 32px; height: 32px; font-size: 13px;
  margin-bottom: 8px;
}

/* ==========================================================
   登录 / 审问 / 证据已阅
   ========================================================== */
.qto-row { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.qto-lb { font-size: 10px; color: #8b96a8; }
.qto {
  font-size: 10.5px; padding: 4px 11px; border-radius: 12px;
  border: 1px solid #e4e8ef; color: #5b6879; background: #fff; cursor: pointer;
}
.qto.on.p { border-color: #d94a32; color: #c2401f; background: rgba(217,74,50,.07); font-weight: 500; }
.qto.on.d { border-color: #2f6ae0; color: #2f6ae0; background: rgba(47,106,224,.07); font-weight: 500; }
.q-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 9px 0 15px; }

.q-item { padding: 11px 0 2px; border-top: 1px solid #edf0f5; }
.q-top { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; }
.q-by { font-size: 10.5px; color: #5b6879; font-weight: 500; }
.q-time { font-size: 9px; color: #a9b3c1; margin-left: auto; }
.q-text { display: block; font-size: 12px; color: #3a4557; line-height: 1.75; word-break: break-word; }
.q-actions { margin-top: 7px; display: flex; align-items: center; gap: 12px; }

/* --- 被告席位 --- */
.q-seat {
  position: relative;
  font-size: 10.5px; color: #6b7688; line-height: 1.6;
  background: #f6f8fb; border: 1px solid #e9eef5; border-radius: 8px;
  padding: 7px 10px 7px 20px; margin-bottom: 11px;
}
.q-seat .qs-dot {
  position: absolute; left: 10px; top: 12px;
  width: 5px; height: 5px; border-radius: 50%; background: #b9c3d2;
}
.q-seat.ok { background: rgba(47,106,224,.05); border-color: rgba(47,106,224,.18); color: #3c5a91; }
.q-seat.ok .qs-dot { background: #2f6ae0; }
.q-seat.me { background: rgba(26,138,88,.06); border-color: rgba(26,138,88,.2); color: #186a46; }
.q-seat.me .qs-dot { background: #1a8a58; }
.q-seat b { font-weight: 600; }
.q-code {
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: 11px; letter-spacing: 2px; font-weight: 600;
  color: #8a6a0c; background: rgba(201,162,39,.16);
  border-radius: 4px; padding: 1px 7px; cursor: pointer;
}
.q-copy { color: #9d7712; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.q-claim { color: #2f6ae0; font-weight: 500; cursor: pointer; margin-left: 6px; }
.qto-hint { margin-left: auto; font-size: 9px; color: #a9b3c1; }
.q-guest {
  display: flex; align-items: center; gap: 10px;
  background: #f7f9fc; border: 1px solid #e9eef5; border-radius: 8px;
  padding: 8px 10px 8px 12px;
}
.q-guest span { font-size: 10.5px; color: #7b8798; line-height: 1.5; }
.q-guest .btn { flex: 0 0 auto; }

/* --- 排序 --- */
.q-sort {
  display: flex; align-items: center; gap: 6px;
  padding: 9px 0; border-top: 1px solid #eef1f6;
}
.qs {
  font-size: 10.5px; color: #6b7688; padding: 3px 10px;
  border-radius: 11px; border: 1px solid transparent; cursor: pointer;
}
.qs.on { color: #1b2230; font-weight: 600; background: #eef2f8; border-color: #e2e8f2; }
.qs-note { margin-left: auto; font-size: 9.5px; color: #a9b3c1; }

/* --- 列表与名次 --- */
.q-list { margin-top: 2px; }
.q-list .q-item { padding: 12px 0 12px; }
.q-list .q-item:first-child { border-top: 0; padding-top: 4px; }
.q-rank {
  flex: 0 0 17px; width: 17px; height: 17px; border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-size: 9.5px; font-weight: 700; color: #8b96a8; background: #f0f3f8;
}
.q-rank.r1 { color: #7d5f08; background: linear-gradient(135deg, #f6e3a4, #e8c86a); }
.q-rank.r2 { color: #5c6675; background: linear-gradient(135deg, #eef1f6, #d3dae5); }
.q-rank.r3 { color: #8a5a2b; background: linear-gradient(135deg, #f2ddc9, #e0be9c); }
.q-done { font-size: 9.5px; color: #1a8a58; }
.q-wait { font-size: 9.5px; color: #b06a10; }
.q-more { padding: 10px 0 2px; text-align: center; }
.q-more span { font-size: 10px; color: #2f6ae0; cursor: pointer; }

/* --- 被告答辩 --- */
.q-answer {
  margin-top: 9px; padding: 9px 11px; border-radius: 8px;
  background: rgba(47,106,224,.055); border-left: 2.5px solid #2f6ae0;
}
.qa-top { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.qa-tag {
  font-size: 9px; font-weight: 600; color: #fff; background: #2f6ae0;
  border-radius: 3px; padding: 1px 5px; letter-spacing: .5px;
}
.qa-by { font-size: 10px; color: #2f4a7d; font-weight: 500; }
.qa-time { font-size: 9px; color: #9fb0c9; margin-left: auto; }
.qa-text { display: block; font-size: 11.5px; color: #33405a; line-height: 1.7; word-break: break-word; }

/* --- 网友跟帖 --- */
.q-reps { margin-top: 8px; padding-left: 9px; border-left: 2px solid #eef1f6; }
.qr { display: flex; gap: 6px; padding: 3px 0; font-size: 11px; line-height: 1.65; }
.qr-by {
  flex: 0 0 auto; max-width: 88px; color: #5b6879; font-weight: 500;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qr-by.p { color: #c2401f; }
.qr-by.d { color: #2f6ae0; }
.qr-by i {
  font-style: normal; font-size: 8.5px; color: #c2401f;
  border: 1px solid rgba(217,74,50,.3); border-radius: 3px;
  padding: 0 3px; margin-left: 3px;
}
.qr-by i.d { color: #2f6ae0; border-color: rgba(47,106,224,.3); }
.qr-text { color: #48546a; word-break: break-word; }

/* --- 跟帖输入 --- */
.q-rbox {
  margin-top: 9px; padding: 9px 10px;
  background: #f7f9fc; border: 1px solid #e8edf5; border-radius: 8px;
}
.q-textarea {
  width: 100%; min-height: 56px; border: 0; background: transparent;
  resize: none; outline: none; font-size: 12px; line-height: 1.65;
  color: #1b2230; font-family: inherit;
}
.q-rfoot { display: flex; align-items: center; gap: 7px; margin-top: 6px; }
.q-rhint { font-size: 9px; color: #a9b3c1; margin-right: auto; }

.ev { cursor: pointer; }
.ev.read { border-left-color: #1a8a58; }
.ev-title .ev-done {
  display: inline-block; font-size: 9px; color: #1a8a58;
  background: rgba(26,138,88,.10); border-radius: 4px;
  padding: 1px 6px; margin-left: 6px; vertical-align: middle;
  font-weight: 500;
}

/* ==========================================================
   证据上传与媒体预览
   ========================================================== */
.upload-box {
  display: flex; align-items: center; gap: 8px;
  padding: 11px 12px; border: 1px dashed #d6dce6; border-radius: 10px;
  background: #fafbfd; cursor: pointer; font-size: 11.5px; color: #5b6879;
}
.upload-box:active { background: #f2f5f9; }
.up-plus {
  width: 22px; height: 22px; border-radius: 6px;
  background: rgba(176,138,26,.12); color: #9d7712;
  display: grid; place-items: center; font-size: 14px; flex: 0 0 22px;
}
.upload-box .hint { margin-left: auto; font-size: 9px; color: #a9b3c1; text-align: right; }

.file-list { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.file-row {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 9px; background: #f7f8fa; border-radius: 8px; font-size: 10.5px;
}
.file-ic {
  width: 22px; height: 22px; border-radius: 5px; background: #eef1f5;
  color: #5b6879; font-size: 8px; display: grid; place-items: center; flex: 0 0 22px;
}
.file-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #3a4557; }
.file-size { color: #a9b3c1; font-size: 9px; flex-shrink: 0; }
.file-del { color: #c3cbd6; padding: 0 4px; cursor: pointer; font-size: 13px; }

.ev-media { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; align-items: center; }
.media-thumb {
  width: 64px; height: 52px; border-radius: 7px;
  background: #eef1f5; border: 1px solid #e4e8ef;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px; overflow: hidden; position: relative;
}
.media-thumb .mt-ic { font-size: 9px; color: #8b96a8; }
.media-thumb .mt-name {
  font-size: 7px; color: #a9b3c1; max-width: 56px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0 3px;
}
.media-thumb img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.media-thumb.has-img .mt-ic, .media-thumb.has-img .mt-name { display: none; }
.media-more { font-size: 9px; color: #a9b3c1; }

.media-gallery { display: flex; flex-direction: column; gap: 8px; }
.media-preview {
  position: relative; border: 1px solid #e4e8ef; border-radius: 9px;
  background: #f7f8fa; padding: 8px; display: flex; align-items: center; gap: 8px;
  min-height: 38px;
}
.media-preview img { width: 100%; border-radius: 6px; display: block; }
.media-preview video { width: 100%; border-radius: 6px; display: block; background: #000; }
.media-preview.has-img, .media-preview.has-video { padding: 0; overflow: hidden; display: block; }
.media-preview.has-img .mp-tag, .media-preview.has-img .mp-name, .media-preview.has-img .mp-size,
.media-preview.has-video .mp-tag, .media-preview.has-video .mp-name, .media-preview.has-video .mp-size { display: none; }
.mp-tag {
  width: 24px; height: 24px; border-radius: 6px; background: #eef1f5;
  color: #5b6879; font-size: 8px; display: grid; place-items: center; flex: 0 0 24px;
}
.mp-name { flex: 1; font-size: 10.5px; color: #3a4557; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mp-size { font-size: 9px; color: #a9b3c1; flex-shrink: 0; }
.media-dl {
  font-size: 10px; color: #2f6ae0; padding: 4px 8px;
  border: 1px solid rgba(47,106,224,.35); border-radius: 6px;
  text-decoration: none; flex-shrink: 0; margin-left: auto;
}

/* 点赞 / 关注 */
.btn.liked {
  color: #9d7712; border-color: rgba(176,138,26,.45);
  background: rgba(176,138,26,.10); font-weight: 600;
}
.btn.followed {
  color: #2f6ae0; border-color: rgba(47,106,224,.4);
  background: rgba(47,106,224,.08); font-weight: 600;
}
.ci-stat { font-size: 9px; color: #a9b3c1; margin-left: 6px; white-space: nowrap; }
.me-stats .ms-n { font-size: 15px; }

/* 弹层打开时提示条移到顶部，避免遮挡按钮 */
.toast-wrap.above { top: 54px; bottom: auto; }

/* 上诉状 / 再审申请 */
.reason-wrap { display: flex; flex-wrap: wrap; gap: 7px; }
.reason {
  font-size: 10.5px; padding: 6px 11px; border-radius: 8px;
  border: 1px solid #e4e8ef; background: #fff; color: #5b6879; cursor: pointer;
}
.reason.on {
  border-color: rgba(176,138,26,.5); background: rgba(176,138,26,.10);
  color: #8a6a0f; font-weight: 600;
}
.brief {
  background: #f7f8fa; border: 1px solid #e4e8ef; border-left: 3px solid #b08a1a;
  border-radius: 8px; padding: 11px 12px; margin: 10px 0 14px;
}
.brief-h {
  font-size: 10px; color: #8b96a8; letter-spacing: 1px; margin-bottom: 7px;
}
.brief-row {
  display: flex; gap: 8px; font-size: 10.5px; line-height: 1.7; margin-bottom: 3px;
}
.brief-row:last-child { margin-bottom: 0; }
.brief-row > span { width: 52px; flex: 0 0 52px; color: #8b96a8; }
.brief-row > b { flex: 1; font-weight: 500; color: #3a4557; word-break: break-word; }
.brief-note { font-weight: 400 !important; color: #5b6879 !important; }

/* ==========================================================
   桌面网页布局（≥900px）
   手机端保持原有小程序壳形态，此处只做宽屏覆盖：
   去壳 → 全屏 → 顶栏导航 → 内容限宽居中 → 列表多列
   ========================================================== */
@media (min-width: 900px) {

  body {
    display: block;
    overflow: hidden;
    background: #f5f7fa;
  }

  /* 去掉手机模型的外壳、圆角与投影 */
  .phone {
    width: 100%;
    max-width: 100%;
    height: 100vh;
    max-height: 100vh;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #f5f7fa;
  }

  /* ---------- 顶栏 ---------- */
  .navbar {
    order: 1;
    height: 68px;
    flex: 0 0 68px;
    padding: 0 40px;
    background: #ffffff;
    border-bottom: 0;
    box-shadow: 0 1px 0 #e8ecf2;
    z-index: 30;
  }
  .nb-back {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: #f2f5f9;
    font-size: 20px;
    margin-right: 14px;
    transition: background .15s;
  }
  .nb-back:hover { background: #e9eef6; }
  .nb-title {
    position: static;
    transform: none;
    margin-right: auto;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: .8px;
  }

  /* ---------- 顶部标签导航 ---------- */
  .tabbar {
    order: 2;
    height: 52px;
    flex: 0 0 52px;
    padding: 0 32px;
    background: #ffffff;
    border-top: 0;
    border-bottom: 1px solid #e8ecf2;
    justify-content: flex-start;
    gap: 2px;
    z-index: 29;
  }
  .tb {
    flex: 0 0 auto;
    flex-direction: row;
    gap: 8px;
    height: 100%;
    padding: 0 22px;
    position: relative;
  }
  .tb::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 0;
    height: 2px;
    border-radius: 2px 2px 0 0;
    background: transparent;
    transition: background .18s;
  }
  .tb.on::after { background: #c39a22; }
  .tb:hover .tb-t { color: #a9811a; }
  .tb-ic { display: none; }
  .tb-t { font-size: 14.5px; }

  /* ---------- 内容区 ---------- */
  .screen { order: 3; }
  .page {
    max-width: 1180px;
    margin: 0 auto;
    padding: 30px 40px 64px;
    background:
      radial-gradient(520px 300px at 8% -6%, rgba(201,162,39,0.07), transparent 62%),
      radial-gradient(520px 300px at 96% -2%, rgba(61,126,255,0.05), transparent 58%),
      #f5f7fa;
  }

  /* 首屏区放大 */
  .hero { padding: 2px 0 22px; }
  .seal { width: 54px; height: 54px; font-size: 24px; border-radius: 13px; }
  .hero-h1 { font-size: 27px; }
  .hero-p { font-size: 13.5px; }
  .hero-stats { margin-top: 16px; }
  .hs-num { font-size: 20px; }
  .hs-lb { font-size: 11.5px; }

  /* 搜索与筛选 */
  .search-box { height: 42px; border-radius: 11px; padding: 0 13px; }
  .chip { font-size: 13px; padding: 7px 16px; }

  /* 案件列表：两列网格 */
  #caseList {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
  }
  #caseList .case-item {
    margin: 0;
    transition: box-shadow .18s, transform .18s, border-color .18s;
  }
  #caseList .case-item:hover {
    border-color: #d6dee9;
    box-shadow: 0 8px 24px rgba(15,23,42,.07);
    transform: translateY(-1px);
  }
  #caseList .empty { grid-column: 1 / -1; }

  /* 案件页阶段条：5 段等分，文字不截断 */
  .track-scroll { white-space: normal; margin-bottom: 14px; }
  .track {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
  }
  .ts {
    width: auto;
    margin-right: 0;
    padding: 12px 12px 10px;
  }
  .ts-name {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    font-size: 12.5px;
    line-height: 1.35;
  }
  .ts-dot { width: 20px; height: 20px; border-radius: 10px; font-size: 10px; }

  /* 程序图鉴：两列网格 */
  .grp-proc {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
  }
  .grp-proc > .sec-head { grid-column: 1 / -1; }
  .grp-proc > .pcard { margin-bottom: 0; }

  /* 人员图鉴：四列网格 */
  .grp-roles { margin-bottom: 18px; }
  .grp-roles .rgrid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-right: 0;
  }
  .grp-roles .rcard { width: 100%; margin: 0; }

  /* ---------- 弹层：居中卡片而非底部抽屉 ---------- */
  .mask { align-items: center; justify-content: center; padding: 24px; }
  .modal {
    width: 540px;
    max-width: 92vw;
    max-height: 84vh;
    border-radius: 16px;
  }
  .modal.small { max-width: 340px; }
  .sheet {
    width: 580px;
    max-width: 94vw;
    max-height: 84vh;
    border-radius: 16px;
    border-top: 0;
    padding-bottom: 0;
  }
  .mask .sheet { animation: modalIn .22s cubic-bezier(.22,1,.36,1); }

  /* ---------- 浮动元素 ---------- */
  .to-top { right: 40px; bottom: 34px; }
  .toast-wrap { bottom: 34px; }
  .toast-wrap.above { top: 28px; bottom: auto; }
  .fab-wrap {
    margin: 22px auto 0;
    max-width: 300px;
  }
}

/* 超大屏：三列 */
@media (min-width: 1500px) {
  .page { max-width: 1320px; }
  #caseList { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ==========================================================
   登录（微信 / 手机号验证码）
   ========================================================== */
.auth-body { padding: 4px 14px 16px; }
.auth-body .__inp.input { margin-bottom: 9px; }
.btn.wechat {
  width: 100%; height: 44px; border-radius: 10px;
  background: #07c160; color: #fff; border: 0;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 14px; font-weight: 600; letter-spacing: .3px;
  transition: background .15s;
}
.btn.wechat:active { background: #06ad56; }
.wx-mark {
  width: 20px; height: 20px; border-radius: 50%;
  background: rgba(255,255,255,.22);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 500;
}
.auth-or {
  display: flex; align-items: center; gap: 10px;
  margin: 14px 0 12px; color: #9aa6b8; font-size: 10.5px;
}
.auth-or::before, .auth-or::after { content: ""; flex: 1; height: 1px; background: #e9edf3; }
.auth-code { display: flex; gap: 8px; margin-bottom: 9px; }
.auth-code .__inp.input { flex: 1; margin-bottom: 0; }
.code-btn {
  flex: 0 0 auto; width: 106px; font-size: 12px; padding: 0;
  border: 1px solid #e2e8f1; background: #f7f9fc; color: #3b4759;
}
.code-btn:disabled { opacity: .55; }
.auth-body .btn.primary.block { margin-top: 3px; height: 42px; }
.auth-tip {
  display: block; margin-top: 11px; font-size: 10.5px;
  line-height: 1.75; color: #9aa6b8; text-align: center;
}

/* 演示模式：验证码直接显示在登录卡片里 */
.demo-code {
  margin: 0 0 10px; padding: 10px 12px;
  border: 1px dashed #e3c88a; border-radius: 12px;
  background: linear-gradient(180deg, #fffdf7, #fff5e2);
}
.demo-code:empty { display: none; }
.dc-top { display: flex; align-items: center; gap: 6px; margin-bottom: 7px; }
.dc-top b {
  flex: 0 0 auto; font-size: 9.5px; font-weight: 700; color: #8a6520;
  background: #f6e2b4; padding: 2px 6px; border-radius: 5px; letter-spacing: .5px;
}
.dc-top span { font-size: 10px; color: #a8905f; }
.dc-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dc-row em {
  font-style: normal; font-size: 23px; font-weight: 700; line-height: 1;
  letter-spacing: 4px; color: #5c4310;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.dc-row .dc-fill {
  flex: 0 0 auto; height: 28px; padding: 0 13px; font-size: 11.5px;
  border: 1px solid #dfc79a; background: #fff; color: #7a5a18;
  border-radius: 8px; font-weight: 600;
}

/* 个人主页：性别 / 地区 行 */
.mh-meta {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-top: 7px; font-size: 11px; color: #8a94a6; cursor: pointer;
}
.mh-meta:empty { display: none; }
.mh-meta em { font-style: normal; color: #b3bccb; }
.mh-sex { display: inline-flex; align-items: center; gap: 2px; }
.mh-sex.m { color: #3b7dd8; }
.mh-sex.f { color: #d85a8e; }
.mh-loc { color: #7a8499; }
.mh-loc::before { content: '·'; margin-right: 2px; color: #9aa6b8; }

/* 编辑资料表单 */
.pf-body { padding: 4px 18px 18px; }
.pf-row {
  position: relative;
  display: flex; align-items: flex-start; gap: 10px;
  margin-bottom: 14px;
}
.pf-row > span {
  flex: 0 0 42px; padding-top: 11px; font-size: 13px;
  color: #5b6678; font-weight: 600;
}
.pf-row input, .pf-row textarea, .pf-row select {
  flex: 1; margin-bottom: 0;
  border: 1px solid var(--line, #e2e8f1); border-radius: 9px;
  background: #fbfcfe; font-size: 13px; outline: none;
}
.pf-row input { height: 38px; padding: 0 11px; }
.pf-row textarea { padding: 10px 11px 22px; resize: none; line-height: 1.6; min-height: 60px; }
.pf-row select { height: 38px; padding: 0 10px; }
.pf-row input:focus, .pf-row textarea:focus, .pf-row select:focus {
  border-color: #c9a45c;
}
.pf-count {
  position: absolute; right: 12px; bottom: 5px;
  font-size: 10px; color: #b3bccb; font-style: normal;
}

/* ==========================================================
   发布案件：随案提交的证据
   ========================================================== */
.opt { font-style: normal; font-size: 10px; color: #9aa6b8; margin-left: 4px; font-weight: 400; }

.nc-ev-list:not(:empty) { margin-top: 9px; display: flex; flex-direction: column; gap: 8px; }
.nc-ev {
  border: 1px solid #e8edf4;
  border-radius: 9px;
  background: #fbfcfe;
  padding: 9px 10px;
}
.nc-ev-hd { display: flex; align-items: center; gap: 7px; }
.nc-ev-fn {
  flex: 1; min-width: 0; font-size: 12px; color: #3b4759;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.nc-ev-st {
  flex: 0 0 auto; font-size: 10px; line-height: 16px;
  padding: 0 6px; border-radius: 4px;
}
.nc-ev-st.ok { color: #2f8f4e; background: rgba(47,143,78,.10); }
.nc-ev-st.up { color: #9a7517; background: rgba(201,162,39,.13); }
.nc-ev-st.err { color: #d94a32; background: rgba(217,74,50,.10); }
.nc-ev-title {
  width: 100%; height: 30px; margin-top: 7px;
  padding: 0 8px; box-sizing: border-box;
  border: 1px solid #e4e8ef; border-radius: 7px; background: #fff;
  font-size: 12px; color: #1b2230; font-family: inherit; outline: none;
}
.nc-ev-title:focus { border-color: #c2cddd; background: #fff; }
.nc-ev-row { display: flex; align-items: center; gap: 6px; margin-top: 7px; flex-wrap: wrap; }
.nc-pill {
  font-size: 10.5px; line-height: 18px;
  padding: 0 8px; border-radius: 5px;
  border: 1px solid #e4e8ef; background: #fff; color: #6b7787;
  cursor: pointer; user-select: none;
}
.nc-pill.p.on { border-color: #d94a32; background: rgba(224,83,61,.10); color: #d94a32; }
.nc-pill.d.on { border-color: #2f6ae0; background: rgba(61,126,255,.10); color: #2f6ae0; }
.nc-pill.on:not(.p):not(.d) { border-color: #b08a1a; background: rgba(201,162,39,.12); color: #9d7712; }
.nc-sep { width: 1px; height: 13px; background: #e8edf4; margin: 0 2px; }

/* ==========================================================
   评论回复（楼中楼）
   ========================================================== */
.cm-kids {
  margin: 2px 0 9px 10px;
  padding-left: 9px;
  border-left: 1px dashed #e4e8ef;
}
.cm-sub { background: #fff; margin-bottom: 5px; padding: 7px 9px 6px; border-radius: 6px; }
.cm-sub:last-child { margin-bottom: 0; }
.cm-sub .cm-avatar { display: none; }
.cm-sub .cm-top { margin-bottom: 2px; }
.cm-sub .cm-by { font-size: 10.5px; }
.cm-sub .cm-text { font-size: 12px; line-height: 1.65; color: #4a5567; }
.cm-sub .cm-foot { margin-top: 3px; }
.cm-reat { font-size: 8.5px; color: #8b96a8; margin-right: 6px; flex: 0 0 auto; }
.cm-rp {
  margin-left: 8px; font-size: 9px; color: #6b7787;
  border: 0.5px solid #e4e8ef; border-radius: 10px; padding: 1px 7px;
}
.cm-rp:active { background: #eef1f5; }
.cm-replying {
  display: flex; align-items: center; gap: 6px;
  background: #eef3fb; border: 0.5px solid #dbe4f3;
  border-radius: 6px; padding: 5px 8px; margin-bottom: 6px;
  font-size: 10px; color: #3d5a86;
}
.cm-replying span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-replying i {
  flex: 0 0 auto; font-style: normal; width: 16px; height: 16px;
  line-height: 16px; text-align: center; border-radius: 8px;
  background: rgba(61, 90, 134, .10); font-size: 11px;
}
.cm-flash { animation: cmFlash 1.8s ease; }
@keyframes cmFlash {
  0%, 35% { box-shadow: 0 0 0 2px rgba(201, 162, 39, .55); }
  100% { box-shadow: 0 0 0 0 rgba(201, 162, 39, 0); }
}

/* ==========================================================
   我的 —— 论坛消息
   ========================================================== */
.fm-tabs { display: flex; gap: 6px; padding: 2px 0 8px; }
.fm-tab {
  font-size: 11px; color: #6b7787; padding: 4px 10px;
  border-radius: 12px; background: #f3f5f8;
}
.fm-tab i { font-style: normal; font-size: 9px; margin-left: 3px; color: #9aa6b8; }
.fm-tab.on { background: #1b2230; color: #fff; }
.fm-tab.on i { color: rgba(255, 255, 255, .72); }
.fm-row { display: block; padding: 9px 0; border-top: 0.5px solid #eef1f5; }
.fm-top { display: flex; align-items: center; gap: 5px; margin-bottom: 4px; }
.fm-av {
  width: 18px; height: 18px; border-radius: 9px; flex: 0 0 auto;
  background: #eef1f5; color: #5b6879; font-size: 9px;
  display: flex; align-items: center; justify-content: center;
}
.fm-by { font-size: 11px; font-weight: 500; color: #3b4759; }
.fm-tag {
  font-size: 8.5px; color: #8b96a8; border: 0.5px solid #e4e8ef;
  border-radius: 9px; padding: 0 6px; line-height: 15px;
}
.fm-tag.on { color: #d94a32; border-color: rgba(217, 74, 50, .45); background: rgba(217, 74, 50, .07); }
.fm-like { font-size: 8.5px; color: #9d7712; }
.fm-time { margin-left: auto; font-size: 8.5px; color: #a9b3c1; flex: 0 0 auto; }
.fm-txt {
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden; font-size: 11.5px; color: #3b4759;
  line-height: 1.7; word-break: break-all;
}
.fm-quote {
  margin-top: 5px; padding: 5px 7px; background: #f7f8fa;
  border-radius: 5px; font-size: 10.5px; color: #8b96a8; line-height: 1.6;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fm-case { display: block; margin-top: 5px; font-size: 9px; color: #9aa6b8; }

/* ==========================================================
   论坛
   ========================================================== */
.forum-page { padding: 0 14px 24px; }

.forum-hero { display: flex; align-items: center; gap: 12px; padding: 4px 2px 14px; }
.fh-title { font-size: 16px; font-weight: 700; color: #1a2230; letter-spacing: .3px; }
.fh-sub { margin-top: 3px; font-size: 10.5px; color: #8b96a8; }
.forum-hero .btn { margin-left: auto; flex: 0 0 auto; }

.forum-err {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px; margin-bottom: 10px;
  background: #fdf3f1; border: 1px solid #f6ddd7; border-radius: 8px;
  font-size: 11px; color: #c0402a;
}
.forum-err span { margin-left: auto; color: #2f6ae0; cursor: pointer; }

.post {
  position: relative;
  background: #fff; border: 1px solid #eef1f6; border-radius: 12px;
  padding: 13px 14px 10px; margin-bottom: 10px;
  transition: box-shadow .2s ease, border-color .2s ease;
}
.post-flash { border-color: #e0b357; box-shadow: 0 0 0 3px rgba(224,179,87,.18); }

.post-hd { display: flex; align-items: center; gap: 9px; }
/* 头像 + 昵称整体是个可点区域，点进去是对方主页 */
.post-who {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: 9px;
  cursor: pointer; border-radius: 9px; transition: background .15s ease;
}
.post-who:active { background: rgba(47,106,224,.06); }
.who-go { font-style: normal; font-size: 12px; line-height: 1; color: #c3ccd9; margin-left: -1px; }
.post-who:active .who-go, .post-who:hover .who-go { color: #2f6ae0; }
.post-av {
  width: 32px; height: 32px; flex: 0 0 32px; border-radius: 9px;
  background: linear-gradient(135deg, #3d74e8, #5b93f7);
  color: #fff; font-size: 13px; font-weight: 600;
  display: flex; align-items: center; justify-content: center;
}
.post-meta { flex: 1; min-width: 0; }
.post-by { display: flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; color: #2b3646; }
.post-me {
  font-style: normal; font-size: 8.5px; color: #2f6ae0; font-weight: 400;
  border: 1px solid rgba(47,106,224,.3); border-radius: 3px; padding: 0 3px;
}
.post-time { display: flex; align-items: center; gap: 6px; margin-top: 2px; font-size: 9.5px; color: #a9b3c1; }
.post-pin { font-size: 8.5px; color: #b06a10; background: rgba(176,106,16,.08); border-radius: 3px; padding: 0 4px; }
.post-dots {
  flex: 0 0 auto; padding: 2px 4px; cursor: pointer;
  color: #b6c0cd; font-size: 15px; letter-spacing: 1px; line-height: 1;
}

.post-menu {
  position: absolute; right: 12px; top: 44px; z-index: 6; min-width: 104px;
  background: #fff; border: 1px solid #e6ebf3; border-radius: 9px; overflow: hidden;
  box-shadow: 0 8px 24px rgba(23,38,66,.12);
}
.post-menu span { display: block; padding: 9px 14px; font-size: 11.5px; color: #3a4557; cursor: pointer; }
.post-menu span:active { background: #f5f7fa; }

.post-tx { margin-top: 10px; font-size: 13px; line-height: 1.78; color: #2b3646; word-break: break-word; }

.post-img.one { margin-top: 10px; }
.post-img.one img {
  width: 100%; max-height: 240px; object-fit: cover;
  border-radius: 8px; display: block; background: #f2f4f8;
}
.post-imgs { margin-top: 10px; display: grid; gap: 4px; grid-template-columns: repeat(3, 1fr); }
.post-imgs.n1 { grid-template-columns: 1fr; }
.post-imgs.n2, .post-imgs.n4 { grid-template-columns: repeat(2, 1fr); }
.post-imgs img {
  width: 100%; aspect-ratio: 1; object-fit: cover;
  border-radius: 6px; display: block; background: #f2f4f8;
}

.post-video { margin-top: 10px; border-radius: 8px; overflow: hidden; background: #000; }
.post-video video { width: 100%; max-height: 420px; display: block; }

.post-quote {
  display: flex; align-items: center; gap: 8px;
  margin-top: 10px; padding: 9px 10px;
  background: #f6f8fb; border-left: 3px solid #cfd9e8; border-radius: 8px;
  cursor: pointer;
}
.post-quote.case { background: #f4f8ff; border-left-color: #2f6ae0; }
.pq-img { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 6px; object-fit: cover; }
.pq-body { flex: 1; min-width: 0; }
.pq-by { margin-bottom: 3px; font-size: 10px; color: #5b7bb5; }
.pq-tx {
  font-size: 11px; color: #6b7688; line-height: 1.6;
  max-height: 3.2em; overflow: hidden;
}
.pq-more { color: #9aa6b8; }
.pq-tag { font-size: 8.5px; color: #2f6ae0; letter-spacing: .5px; }
.pq-title {
  margin: 3px 0; font-size: 12px; font-weight: 600; color: #2b3646;
  max-height: 3.3em; overflow: hidden;
}
.pq-sub { font-size: 10px; color: #8b96a8; }
.pq-ar { flex: 0 0 auto; color: #c3cbd6; font-size: 16px; }

.post-acts { display: flex; align-items: center; gap: 22px; margin-top: 10px; }
.pa {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11.5px; color: #7b8698; cursor: pointer; user-select: none;
}
.pa.on { color: #d94a32; }
.pa-ic { font-style: normal; font-size: 12px; line-height: 1; }

.post-cm:empty { display: none; }
.cm-fold {
  display: flex; align-items: center;
  margin-top: 8px; padding: 7px 10px;
  background: #f7f9fc; border-radius: 7px;
  font-size: 11px; color: #6b7c94; cursor: pointer;
}
.cm-fold .cf-ar { margin-left: auto; color: #b6c0cd; font-size: 13px; }
.cm-fold.empty-cm { color: #a9b3c1; }
.cm-loading { padding: 9px 2px; font-size: 11px; color: #a9b3c1; }
.cm-body { margin-top: 8px; padding: 9px 11px 3px; background: #fafbfd; border-radius: 8px; }
.pcm {
  padding: 3px 0; font-size: 11.5px; line-height: 1.7; color: #3a4557; word-break: break-word;
}
.pcm-by { margin-right: 3px; color: #2f6ae0; font-weight: 500; }
.pcm-re { margin-right: 3px; font-size: 10px; color: #9aa6b8; }
.pcm-rp { margin-left: 5px; font-size: 10px; color: #b0bac7; cursor: pointer; white-space: nowrap; }
.cm-bar { display: flex; align-items: center; margin-top: 4px; padding: 6px 0 4px; border-top: 1px solid #eef1f6; }
.cm-add { font-size: 11px; color: #2f6ae0; cursor: pointer; }
.cm-collapse { margin-left: auto; font-size: 10.5px; color: #9aa6b8; cursor: pointer; }

.forum-more { padding: 14px 0 6px; text-align: center; font-size: 12px; color: #6b7c94; cursor: pointer; }
.forum-end { padding: 18px 0 6px; text-align: center; font-size: 10.5px; color: #b6c0cd; }

.post-skel { background: #fff; border: 1px solid #eef1f6; border-radius: 12px; padding: 14px; margin-bottom: 10px; }
.sk-av { width: 32px; height: 32px; border-radius: 9px; background: #eef2f8; margin-bottom: 10px; }
.sk-line { height: 10px; border-radius: 5px; background: #eef2f8; margin-bottom: 8px; }
.sk-line.w40 { width: 40%; } .sk-line.w60 { width: 60%; }
.sk-line.w75 { width: 75%; } .sk-line.w80 { width: 80%; } .sk-line.w90 { width: 90%; }

/* 发帖弹层 */
.compose-modal { width: min(520px, calc(100vw - 32px)); }
.cf-text {
  width: 100%; min-height: 150px; padding: 2px 0; border: 0; outline: 0; resize: none;
  background: transparent; font-family: inherit; font-size: 13px; line-height: 1.75; color: #2b3646;
}
.cf-text.sm { min-height: 96px; }
.cf-tools { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding-top: 10px; border-top: 1px solid #f0f3f8; }
.cf-tool {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 9px; border: 1px solid #e6ebf3; border-radius: 7px;
  font-size: 11.5px; color: #5b6879; cursor: pointer;
}
.cf-tool i { font-style: normal; font-size: 10px; color: #2f6ae0; }
/* 发帖时顺手定评论权限，默认所有人，不打断发布流程 */
.cf-pol { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.cf-pol .cfp-lb { flex: none; font-size: 11px; color: #8b96a8; }
.cf-pol .seg { flex: 1; }
.cf-pol .seg-i { padding: 6px 4px; font-size: 11px; }
.cf-count { margin-left: auto; font-size: 10px; color: #b6c0cd; }
.cf-count b { font-weight: 400; }
.cf-foot { display: flex; justify-content: flex-end; padding: 10px 16px 14px; }
.cf-media { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }
.cf-m { position: relative; aspect-ratio: 1; border-radius: 7px; overflow: hidden; background: #f2f4f8; }
.cf-m img, .cf-m video { width: 100%; height: 100%; object-fit: cover; }
.cf-del {
  position: absolute; right: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%;
  background: rgba(0,0,0,.55); color: #fff; font-size: 12px; line-height: 18px; text-align: center; cursor: pointer;
}
.cf-vtag {
  position: absolute; left: 4px; bottom: 4px; padding: 1px 4px; border-radius: 3px;
  background: rgba(0,0,0,.55); color: #fff; font-size: 8.5px;
}
.cf-quote {
  display: flex; align-items: center; gap: 6px;
  margin-top: 10px; padding: 7px 9px; background: #f6f8fb; border-radius: 7px;
  font-size: 10.5px; color: #6b7688;
}
.cf-quote .cfq-tag { flex: 0 0 auto; color: #2f6ae0; }
.cf-quote .cfq-tx { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cf-quote .cfq-x { color: #b6c0cd; padding: 0 3px; cursor: pointer; }

.rp-list { display: flex; flex-direction: column; gap: 8px; }
.rp-item { padding: 11px 13px; border: 1px solid #eef1f6; border-radius: 8px; font-size: 12px; color: #3a4557; cursor: pointer; }
.rp-item:active { background: #f5f7fa; }

.img-view { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.92); }
.img-view img { max-width: 96vw; max-height: 92vh; object-fit: contain; }

/* ==========================================================
   评论折叠（抖音式：主评论保留，楼层回复折起来）
   ========================================================== */
.cm-more {
  display: flex; align-items: center; gap: 3px;
  padding: 4px 0 2px; font-size: 10.5px; color: #2f6ae0;
  cursor: pointer; user-select: none;
}
.cm-more i { font-style: normal; font-size: 9px; color: #9fb0c8; }
.cm-more.block {
  margin: 8px 0 2px; padding: 8px 0; justify-content: center;
  background: #f7f9fc; border-radius: 7px; color: #6b7c94;
}
.cm-more.up { color: #9aa6b8; }

/* 论坛楼中楼 */
.pcm-kids { margin: 1px 0 6px 8px; padding-left: 9px; border-left: 1px dashed #e4e8ef; }
.pcm-kids .pcm { padding: 2px 0; font-size: 11px; }
.pcm-more {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 10.5px; color: #2f6ae0; cursor: pointer;
}
.pcm-more i { font-style: normal; font-size: 9px; color: #9fb0c8; }
.pcm-more.up { color: #9aa6b8; }
.pcm-more.block {
  display: flex; justify-content: center; margin: 6px 0 2px; padding: 7px 0;
  background: #fff; border-radius: 6px; color: #6b7c94;
}
.cm-empty { padding: 6px 2px 8px; font-size: 11px; color: #a9b3c1; }

/* 引用案件：与首页案件卡同一套骨架 */
.pq-case { margin-top: 8px; }
.pq-case .case-item {
  margin: 0; padding: 11px 12px 9px; border-radius: 9px;
  background: #f8fafd; border-color: #e4eaf3;
}
.pq-case .ci-title { font-size: 13.5px; }
.pq-case .ci-parties { margin-top: 6px; font-size: 10.5px; }
.pq-case .ci-foot { margin-top: 8px; padding-top: 7px; }
.pq-case .pq-open { margin-top: 6px; text-align: right; font-size: 10px; color: #2f6ae0; }
.pq-case.plain {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; background: #f4f8ff;
  border-left: 3px solid #2f6ae0; border-radius: 8px;
}

/* 我的-论坛 */
.mp-row { display: flex; align-items: center; gap: 8px; padding: 10px 0; border-bottom: 1px solid #f2f5f9; cursor: pointer; }
.mp-row:last-child { border-bottom: 0; }
.mp-main { flex: 1; min-width: 0; }
.mp-ar { flex: 0 0 auto; color: #c3cbd6; font-size: 15px; }
.mp-top { display: flex; align-items: center; gap: 5px; font-size: 11px; color: #3a4557; }
.mp-top b { color: #2f6ae0; font-weight: 600; }
.mp-tag { flex: 0 0 auto; white-space: nowrap; font-size: 9px; color: #9d7712; background: rgba(201,162,39,.12); border-radius: 4px; padding: 1px 4px; }
.mp-time { margin-left: auto; font-size: 9px; color: #b0bac7; flex: 0 0 auto; }
.mp-tx {
  margin-top: 4px; font-size: 12px; line-height: 1.6; color: #2b3646; word-break: break-word;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.mp-main > .mp-tx:first-child { margin-top: 0; }
.mp-nil { color: #a9b3c1; }
.mp-my { margin-top: 4px; font-size: 10.5px; color: #8b96a8; }
.mp-ims { display: flex; gap: 5px; margin-top: 6px; }
.mp-ims img { width: 46px; height: 46px; border-radius: 6px; object-fit: cover; }
.mp-vid {
  display: inline-grid; place-items: center; width: 46px; height: 46px;
  border-radius: 6px; background: #eef2f8; font-size: 9px; color: #6b7c94;
}
.mp-foot { display: flex; gap: 10px; margin-top: 6px; font-size: 9.5px; color: #a9b3c1; }
.mp-pin { color: #9d7712; }

@media (min-width: 900px) {
  .forum-page { max-width: 680px; margin: 0 auto; }
}

/* ==========================================================
   帖子详情页（点进去才看全、才能评论）
   ========================================================== */
.post-page {
  display: flex; flex-direction: column;
  min-height: 100%; padding: 0 0 6px; background: #f3f5f8;
}
.post-page .clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.pp-media { background: #0d1117; }
.pp-media.video { position: relative; }
.pp-video { display: block; width: 100%; max-height: 68vh; background: #000; }
.pp-vtag {
  position: absolute; left: 10px; top: 10px; padding: 2px 7px;
  border-radius: 4px; background: rgba(0,0,0,.5); color: #fff; font-size: 9px;
}
.pp-img { display: block; width: 100%; max-height: 70vh; object-fit: contain; background: #0d1117; }
.pp-gallery { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 2px; background: #0d1117; }
.pp-gallery::-webkit-scrollbar { display: none; }
.pp-gitem { position: relative; flex: 0 0 100%; scroll-snap-align: center; }
.pp-gitem img { display: block; width: 100%; max-height: 70vh; object-fit: contain; }
.pp-gnum {
  position: absolute; right: 10px; bottom: 10px; padding: 1px 7px;
  border-radius: 9px; background: rgba(0,0,0,.55); color: #fff; font-size: 9.5px;
}

.pp-body { padding: 13px 14px 15px; background: #fff; }
.pp-hd { display: flex; align-items: center; gap: 10px; }
.pp-av {
  width: 36px; height: 36px; flex: 0 0 36px; border-radius: 50%;
  background: linear-gradient(135deg, #3d74e8, #5b93f7); color: #fff;
  font-size: 14px; font-weight: 600; display: flex; align-items: center; justify-content: center;
}
.pp-hd-info { flex: 1; min-width: 0; }
.pp-by { display: flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; color: #1b2230; }
/* 帖子详情里明确的「TA 的主页」入口：光靠名字可点，很多人看不出来 */
.pp-visit {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 1px;
  padding: 3px 8px; border-radius: 999px; white-space: nowrap; cursor: pointer;
  font-size: 10.5px; color: #2f6ae0; background: rgba(47,106,224,.08);
  border: 1px solid rgba(47,106,224,.14);
}
.pp-visit i { font-style: normal; font-size: 13px; line-height: 1; }
.pp-visit:active { background: rgba(47,106,224,.18); }
.pp-meta { margin-top: 2px; font-size: 10px; color: #a9b3c1; display: flex; align-items: center; gap: 6px; }
.pp-tx { margin-top: 12px; font-size: 14px; line-height: 1.82; color: #232c3a; word-break: break-word; }

.pp-case { margin-top: 12px; }
.pp-case .pq-case { margin-top: 0; }
.pp-case .case-item { pointer-events: none; }
.pp-case .pq-open { display: none; }
.pp-mat { margin-top: 8px; border: 1px solid #e8eef8; border-radius: 10px; overflow: hidden; }
.pp-mat.dead { display: flex; align-items: center; gap: 8px; padding: 11px 12px; background: #f8f9fb; font-size: 11.5px; color: #9aa6b8; }
.pp-mat-h {
  display: flex; align-items: center; gap: 8px; padding: 10px 12px;
  background: #f7faff; cursor: pointer; font-size: 12px; color: #2b3646;
}
.pm-ic {
  width: 20px; height: 20px; flex: 0 0 20px; border-radius: 5px;
  background: rgba(201,162,39,.14); color: #9d7712;
  font-size: 10px; display: flex; align-items: center; justify-content: center;
}
.pm-t { flex: 1; }
.pm-ar { font-size: 10.5px; color: #7b8ba3; }
.pp-mat-body { padding: 10px 12px 12px; border-top: 1px solid #eef2f9; background: #fff; }
.pm-case { padding: 9px 10px; background: #fafbfd; border-radius: 8px; }
.pm-row { display: flex; gap: 10px; padding: 2px 0; font-size: 11.5px; color: #3a4557; }
.pm-row span { flex: 0 0 42px; color: #9aa6b8; }
.pm-row b { font-weight: 500; }
.pm-desc { margin-top: 6px; font-size: 11.5px; line-height: 1.7; color: #6b7688; }
.pm-item { margin-top: 9px; padding: 9px 10px; background: #fafbfd; border-radius: 8px; }
.pm-i-top { display: flex; align-items: center; gap: 6px; }
.pm-i-t { flex: 1; font-size: 12px; font-weight: 500; color: #2b3646; }
.pm-i-d { margin-top: 3px; font-size: 11px; line-height: 1.6; color: #7b8698; }
.pm-i-files { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.pm-i-nofile { margin-top: 4px; font-size: 10px; color: #b6c0cd; }
.pm-none { padding: 14px 0; text-align: center; font-size: 11.5px; color: #a9b3c1; }

.pp-acts {
  display: flex; align-items: stretch;
  margin-top: 8px; padding: 6px 8px; background: #fff;
  border-top: 1px solid #f1f4f9; border-bottom: 1px solid #f1f4f9;
}
.pp-act {
  flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 6px 0; border-radius: 8px; font-size: 10.5px; color: #6b7688;
  cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent;
}
.pp-act:active { background: #f5f7fa; }
.pp-act.on { color: #d94a32; }
.pp-a-ic { font-size: 16px; line-height: 1; }

.pp-cm-box { flex: 1; margin-top: 8px; padding: 4px 14px 16px; background: #fff; }
.pp-cm-count { padding: 10px 0 4px; font-size: 11.5px; color: #6b7688; font-weight: 500; }
.pp-cm { display: flex; gap: 9px; padding: 10px 0; border-bottom: 1px solid #f5f7fa; }
.pp-thread:last-child .pp-cm:last-child, .pp-kids .pp-cm:last-child { border-bottom: 0; }
.pp-cm-av {
  width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%;
  background: #eef2f8; color: #7b8ba3;
  font-size: 11px; display: flex; align-items: center; justify-content: center;
}
.pp-cm-main { flex: 1; min-width: 0; }
.pp-cm-top { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #8b96a8; }
.pp-cm-top b { font-size: 11.5px; font-weight: 600; color: #2f6ae0; }
.pp-cm-re { font-size: 10px; color: #9aa6b8; }
.pp-cm-t { margin-left: auto; font-size: 9.5px; color: #b6c0cd; }
.pp-cm-tx { margin-top: 3px; font-size: 13px; line-height: 1.72; color: #2b3646; word-break: break-word; }
.pp-cm-foot { display: flex; gap: 14px; margin-top: 5px; font-size: 10.5px; color: #a9b3c1; }
.pp-cm-foot span { cursor: pointer; }
.pp-cm-foot span:active { color: #2f6ae0; }
.pp-cm-del { color: #c98b84; }
.pp-kids { margin: 0 0 4px 37px; padding-left: 10px; border-left: 2px solid #f0f3f8; }
.pp-kids .pp-cm { padding: 8px 0; }
.pp-kids .pp-cm-av { width: 22px; height: 22px; flex: 0 0 22px; font-size: 9.5px; }
.pp-kids .pp-cm-tx { font-size: 12.5px; }
.pp-more {
  display: inline-block; padding: 6px 0; font-size: 10.5px; color: #7b9ad4; cursor: pointer;
}
.pp-more.block { display: block; width: 100%; text-align: center; padding: 10px 0; border-top: 1px solid #f5f7fa; }
.pp-cm-load, .pp-cm-empty { padding: 26px 0; text-align: center; font-size: 11.5px; color: #a9b3c1; }

.pp-cbar {
  position: sticky; bottom: 0; z-index: 5;
  padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
  background: rgba(255,255,255,.97);
  border-top: 1px solid #eef1f6;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.pp-rep { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; font-size: 10.5px; color: #2f6ae0; }
.pp-rep span { margin-left: auto; color: #b0bac7; padding: 0 4px; cursor: pointer; font-size: 14px; }
.pp-cbar-row { display: flex; align-items: flex-end; gap: 8px; }
#ppText {
  flex: 1; min-width: 0; max-height: 92px; padding: 8px 12px;
  border: 1px solid #e6ebf3; border-radius: 18px; background: #f8fafd;
  font-family: inherit; font-size: 13px; line-height: 1.5; color: #2b3646;
  resize: none; outline: none;
}
#ppText:focus { border-color: #b9cdf2; background: #fff; }

.pp-miss { padding: 90px 24px; text-align: center; }
.pp-miss-t { margin-top: 12px; font-size: 14px; font-weight: 600; color: #3a4557; }
.pp-miss-s { margin-top: 6px; font-size: 11.5px; color: #a9b3c1; }
.pp-skel { padding: 24px 14px; background: #fff; }
.pa-vw { margin-left: auto; color: #b6c0cd; font-size: 10px; }

@media (min-width: 900px) {
  .post-page { max-width: 680px; margin: 0 auto; }
}

/* ==========================================================
   首页互动标识 / 论坛热帖 / 审核提示
   ========================================================== */
.ci-stat { display: inline-flex; align-items: center; gap: 3px; margin-left: 7px; }
.ci-stat i { font-style: normal; font-size: 9px; color: #a3aebd; letter-spacing: .5px; }
.sh-more { margin-left: auto; font-size: 11px; color: #8b96a8; padding: 2px 2px; }

.hot-list { margin: 0 2px; }
.hot-post {
  display: flex; gap: 10px; align-items: stretch;
  background: #fff; border: 1px solid #e9edf3; border-radius: 12px;
  padding: 11px; margin-bottom: 9px;
  box-shadow: 0 1px 2px rgba(20, 30, 50, .03);
}
.hp-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.hp-tx {
  font-size: 12.5px; color: #2c3646; line-height: 1.55;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.hp-meta { display: flex; align-items: center; gap: 6px; font-size: 10px; color: #9aa5b5; }
.hp-by { color: #6b7787; }
.hp-case { font-size: 9px; color: #b08a1a; background: rgba(176, 138, 26, .08); padding: 1px 5px; border-radius: 4px; }
.hp-stats { display: flex; gap: 10px; font-size: 10px; color: #9aa5b5; margin-top: auto; }
.hp-stats i { font-style: normal; color: #c3cbd7; margin-right: 1px; font-size: 9px; }
.hp-thumb { width: 62px; height: 62px; border-radius: 9px; overflow: hidden; flex-shrink: 0; background: #f0f3f7; }
.hp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hp-thumb.vid { display: flex; align-items: center; justify-content: center; color: #8b96a8; font-size: 11px; }
.hp-skel { height: 64px; border-radius: 12px; background: #fff; border: 1px solid #eef1f6; margin-bottom: 9px; padding: 14px 12px; }
.hot-empty {
  margin: 0 2px; background: #fff; border: 1px dashed #e2e8f0; border-radius: 12px;
  padding: 18px; text-align: center; font-size: 11.5px; color: #9aa5b5;
}
.hot-empty span { color: #b08a1a; margin-left: 6px; }

.post-pin.wait { color: #8b96a8; background: rgba(139, 150, 168, .12); }
.cm-wait { margin-left: 2px; }

/* 审核中提示条 */
.pp-note {
  display: flex; align-items: center; gap: 7px;
  margin: 0 14px 10px; padding: 9px 11px; border-radius: 9px;
  background: rgba(176, 138, 26, .08); border: 1px solid rgba(176, 138, 26, .22);
  font-size: 11px; color: #8a6a0f; line-height: 1.5;
}
.pp-note b { font-weight: 600; }

/* 我的-论坛数据总览 */
.forum-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px;
  padding: 12px 0 10px; border-bottom: 0.5px solid #eef1f5; margin-bottom: 8px;
}
.forum-stats div { text-align: center; }
.forum-stats b {
  display: block; font-size: 16px; font-weight: 700; color: #1b2230;
  font-variant-numeric: tabular-nums; line-height: 1.2;
}
.forum-stats span { font-size: 9.5px; color: #9aa5b5; }

.fm-tabs.scroll {
  overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch;
  scrollbar-width: none; padding-bottom: 8px;
}
.fm-tabs.scroll::-webkit-scrollbar { display: none; }
.fm-tabs.scroll .fm-tab { flex: 0 0 auto; white-space: nowrap; }

.mp-wait { color: #b06a10; }
.mr-wait {
  font-size: 9.5px; color: #b06a10; background: rgba(217, 144, 43, .12);
  border-radius: 4px; padding: 1px 6px; margin-left: auto; margin-right: 4px;
}

.ch-stats { display: flex; gap: 12px; font-size: 10px; color: #9aa5b5; margin-top: 7px; }
.ch-stats span { display: inline-flex; align-items: center; }
.pp-cm-wait {
  font-size: 9px; color: #b06a10; background: rgba(217,144,43,.12);
  border-radius: 3px; padding: 0 4px; margin-left: 2px;
}
.ci-meta { font-size: 9px; color: #a9b3c1; margin-left: 7px; white-space: nowrap; }
.fm-tabs.wrap { flex-wrap: wrap; row-gap: 6px; }

/* ==========================================================
   帖子互动数据（列表卡 / 详情页同一套：赞 · 藏 · 阅 · 评）
   ========================================================== */
.post-acts { gap: 18px; }
.pa .ps-lb { font-style: normal; font-size: 10.5px; color: #8b96a8; }
.pa .ps-n { font-weight: 600; color: #4a5566; font-variant-numeric: tabular-nums; }
.pa.on .ps-lb, .pa.on .ps-n { color: #d94a32; }
.pa.ps-ro { cursor: default; }
.pp-act { flex-direction: column; gap: 2px; }
.pp-act .ps-n {
  order: 1; font-size: 15px; font-weight: 600; color: #1b2230;
  line-height: 1.15; font-variant-numeric: tabular-nums;
}
.pp-act .ps-lb { order: 2; font-style: normal; font-size: 10px; color: #8b96a8; }
.pp-act.on .ps-n, .pp-act.on .ps-lb { color: #d94a32; }
.pp-act.ps-ro { cursor: default; }

.pp-share {
  width: 26px; height: 26px; border-radius: 50%; flex: 0 0 26px;
  display: flex; align-items: center; justify-content: center;
  color: #7b8698; font-size: 14px; background: #f4f6fa; margin-left: auto;
}
.pp-share:active { background: #e8edf5; }

.cm-del { margin-left: auto; font-size: 10.5px; color: #9aa5b5; }
.cm-del:active { color: #d94a32; }

/* 证据清单筛选 */
.ev-tabs { display: flex; gap: 6px; margin-bottom: 9px; }
.ev-tab {
  font-size: 11px; color: #6b7688; padding: 3px 10px; border-radius: 12px;
  background: #f4f6fa; cursor: pointer; user-select: none;
}
.ev-tab.on { background: #1b2230; color: #fff; }
.ev-tab.p.on { background: #c0392b; }
.ev-tab.d.on { background: #2b6bd9; }
.ev-lock { font-size: 10px; color: #a9b3c1; }

/* 提问仅发布人可答 */
.q-lock { font-size: 10.5px; color: #a9b3c1; }

/* ==========================================================
   第五轮 · 视觉升级
   论坛列表 / 帖子详情 / 案件评论 / 庭审审问 / 我的庭审
   ========================================================== */

/* ---------------- 论坛头牌 ---------------- */
.forum-hero {
  position: relative; overflow: hidden;
  align-items: center; gap: 12px;
  margin: 2px 0 14px; padding: 17px 16px;
  border-radius: 18px;
  background:
    radial-gradient(120% 150% at 100% 0%, rgba(206,168,80,.26), rgba(206,168,80,0) 60%),
    linear-gradient(135deg, #1b2331, #2a3446 58%, #1c2432);
  box-shadow: 0 12px 26px -18px rgba(27,34,48,.75);
}
.fh-deco {
  position: absolute; right: -10px; bottom: -42px;
  font-family: "Songti SC", "Noto Serif SC", Georgia, serif;
  font-size: 118px; line-height: 1; font-weight: 700;
  color: rgba(255,255,255,.055); pointer-events: none;
}
.fh-tx { position: relative; z-index: 1; flex: 1; min-width: 0; }
.fh-title { font-size: 17px; font-weight: 700; color: #fff; letter-spacing: .6px; }
.fh-sub { margin-top: 4px; font-size: 10.5px; color: rgba(255,255,255,.62); line-height: 1.6; }
.page-root .fh-post {
  position: relative; z-index: 1; flex: 0 0 auto;
  display: inline-flex; align-items: center; gap: 3px;
  height: 33px; padding: 0 14px 0 11px; border: 0; border-radius: 999px;
  background: linear-gradient(135deg, #e6c880, #c8a24a);
  color: #3c2c0b; font-size: 12px; font-weight: 700; font-family: inherit;
  box-shadow: 0 8px 16px -10px rgba(230,200,128,.95);
}
.fh-post i { font-style: normal; font-size: 14px; line-height: 1; }
.fh-post:active { transform: translateY(1px); }

/* ---------------- 帖子卡 ---------------- */
.post {
  border-radius: 16px; border-color: #edf0f5;
  padding: 14px 15px 13px; margin-bottom: 12px;
  box-shadow: 0 1px 2px rgba(27,34,48,.03), 0 14px 26px -24px rgba(27,34,48,.7);
}
.post-flash { box-shadow: 0 0 0 3px rgba(200,162,74,.18); }
.post-hd { gap: 10px; }
.post-av {
  width: 36px; height: 36px; flex: 0 0 36px; border-radius: 11px; font-size: 14px;
  box-shadow: inset 0 -9px 16px rgba(0,0,0,.12);
}
.post-by { font-size: 12.5px; }
.post-time { margin-top: 3px; font-size: 10px; }
.post-tx { margin-top: 11px; font-size: 14.5px; line-height: 1.82; color: #263042; }
.post-img.one img { border-radius: 12px; border: 1px solid #eef1f6; }
.post-imgs { gap: 5px; }
.post-imgs img { border-radius: 10px; border: 1px solid #eef1f6; }
.post-video { border-radius: 12px; }
.post-quote { border-radius: 10px; }

/* 四格互动：列表卡 */
.post-acts { display: flex; gap: 6px; margin-top: 12px; }
.post-acts .pa {
  flex: 1; justify-content: center; gap: 4px;
  padding: 7px 0; border-radius: 10px; background: #f7f8fb;
  font-size: 11px; color: #8b96a8;
}
.post-acts .pa .ps-n { font-size: 12px; font-weight: 700; color: #4a5567; }
.post-acts .pa .ps-lb { font-style: normal; font-size: 10px; color: #a3aebd; }
.post-acts .pa .pa-ic { font-size: 10.5px; color: #b0bac7; }
.post-acts .pa[data-plike].on { background: rgba(217,74,50,.09); color: #d94a32; }
.post-acts .pa[data-plike].on .ps-n,
.post-acts .pa[data-plike].on .pa-ic { color: #d94a32; }
.post-acts .pa[data-pfav].on { background: rgba(200,162,74,.16); color: #9d7712; }
.post-acts .pa[data-pfav].on .ps-n,
.post-acts .pa[data-pfav].on .pa-ic { color: #9d7712; }
.post-acts .pa:active { transform: scale(.97); }

/* 评论入口 */
.cm-fold {
  display: flex; align-items: center; gap: 7px;
  margin-top: 11px; padding: 9px 11px;
  background: #f8fafd; border: 1px solid #eef2f8; border-radius: 10px;
  font-size: 11.5px; color: #6b7c94;
}
.cm-fold .cf-ic {
  flex: 0 0 18px; width: 18px; height: 18px; border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(47,106,224,.09); color: #2f6ae0; font-style: normal; font-size: 9.5px;
}
.cm-fold .cf-tx { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-fold .cf-ar { color: #b6c0cd; font-size: 14px; }
.cm-fold.empty-cm { color: #a3aebd; background: #fbfcfe; }
.cm-fold.empty-cm .cf-ic { background: #f0f3f8; color: #b0bac7; }

/* ---------------- 帖子详情 ---------------- */
.post-page { background: #f4f6fa; }
.pp-media + .pp-body {
  position: relative; margin-top: -16px;
  border-radius: 18px 18px 0 0; overflow: hidden;
}
.pp-body { padding: 15px 15px 16px; }
.pp-av { border-radius: 12px; box-shadow: inset 0 -9px 16px rgba(0,0,0,.12); }
.pp-by { font-size: 13.5px; }
.pp-tx { font-size: 15px; line-height: 1.88; color: #202a39; letter-spacing: .2px; }

/* 四格互动：详情页 */
.pp-acts {
  margin: 10px 12px 0; padding: 4px;
  background: #fff; border: 1px solid #eef1f6; border-radius: 14px;
  box-shadow: 0 1px 2px rgba(27,34,48,.03), 0 12px 22px -22px rgba(27,34,48,.7);
}
.pp-acts .pp-act {
  position: relative; gap: 3px; padding: 10px 0 9px; margin: 2px 1px; border-radius: 10px;
  font-size: 10px; color: #9aa5b5;
}
.pp-acts .pa-ic { font-size: 14px; line-height: 1; color: #b0bac7; }
.pp-acts .ps-n { font-size: 18px; font-weight: 700; color: #2b3646; line-height: 1.15; letter-spacing: -.2px; }
.pp-acts .ps-lb { font-style: normal; font-size: 10px; color: #a3aebd; letter-spacing: .5px; }
.pp-acts .pp-act.on { background: rgba(217,74,50,.06); }
.pp-acts .pp-act[data-plike].on, .pp-acts .pp-act[data-plike].on .ps-n,
.pp-acts .pp-act[data-plike].on .ps-lb, .pp-acts .pp-act[data-plike].on .pa-ic { color: #d94a32; }
.pp-acts .pp-act[data-pfav].on { background: rgba(200,162,74,.12); }
.pp-acts .pp-act[data-pfav].on, .pp-acts .pp-act[data-pfav].on .ps-n,
.pp-acts .pp-act[data-pfav].on .ps-lb, .pp-acts .pp-act[data-pfav].on .pa-ic { color: #9d7712; }

.pp-cm-box {
  margin-top: 10px; padding: 0 15px 18px;
  background: #fff; border-radius: 16px 16px 0 0;
}
.pp-cm-head {
  display: flex; align-items: center; gap: 7px;
  padding: 13px 0 9px; border-bottom: 1px solid #f2f5f9;
}
.pp-cm-h { font-size: 13px; font-weight: 700; color: #1b2230; letter-spacing: .3px; }
.pp-cm-badge {
  min-width: 20px; height: 17px; padding: 0 6px; border-radius: 9px;
  background: #f2f5fa; color: #7b8698; font-size: 10px; line-height: 17px; text-align: center;
}
.pp-cm-count { display: none; }
.pp-cm { border-bottom: 1px solid #f6f8fb; padding: 11px 0; }
.pp-cm-av { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 9px; font-size: 12px; box-shadow: inset 0 -8px 14px rgba(0,0,0,.12); }
.pp-cm-top b { font-size: 12px; color: #2b3646; }
.pp-cm-tx { margin-top: 4px; font-size: 13.5px; line-height: 1.78; color: #3a4557; }
.pp-cm-foot { margin-top: 6px; gap: 10px; }
.pp-cm-foot span {
  display: inline-flex; align-items: center; padding: 2px 8px;
  border-radius: 10px; background: #f6f8fb; font-size: 10px; color: #8b96a8;
}
.pp-cm-foot span:active { background: #eef2f8; }
.pp-cm-foot .pp-cm-del { background: rgba(217,74,50,.07); color: #c0604f; }
.pp-kids { margin: 0 0 6px 40px; padding-left: 11px; border-left: 2px dashed #eaeff7; }
.pp-kids .pp-cm { padding: 9px 0; }
.pp-kids .pp-cm-av { width: 22px; height: 22px; flex: 0 0 22px; font-size: 9.5px; border-radius: 7px; }
.pp-kids .pp-cm-tx { font-size: 12.5px; }

#ppText { border-radius: 20px; background: #f6f8fb; padding: 9px 14px; }
.pp-cbar { box-shadow: 0 -8px 22px -18px rgba(27,34,48,.6); }

/* ---------------- 案件评论 ---------------- */
.cm-compose {
  padding: 11px 12px 1px; margin-bottom: 13px;
  background: linear-gradient(180deg, #fdfbf5, #fbf9f4);
  border: 1px dashed #e8dcc2; border-radius: 13px;
}
.cc-top { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; }
.cc-who {
  width: 22px; height: 22px; flex: 0 0 22px; border-radius: 7px;
  background: #dfe4ec; color: #fff; font-size: 10px; font-weight: 600;
  display: flex; align-items: center; justify-content: center;
}
.cc-lb { font-size: 11.5px; font-weight: 600; color: #7a6428; }
.cc-note { margin-left: auto; font-size: 9px; color: #b9ab84; }
.cm-compose .cm-input { background: #fff; border-color: #ece1ca; border-radius: 10px; }
.cm-compose .cm-input:focus { border-color: #d9c294; }
.cm-compose .cm-row { margin: 8px 0 10px; }

.cm {
  position: relative;
  display: grid; grid-template-columns: 30px 1fr; column-gap: 10px;
  background: #fff; border: 1px solid #eef1f6;
  border-radius: 12px; padding: 11px 12px 9px 15px; margin-bottom: 8px;
}
.cm::before {
  content: ""; position: absolute; left: 6px; top: 12px; bottom: 12px;
  width: 3px; border-radius: 3px; background: #dfe5ee;
}
.cm.p::before { background: linear-gradient(#e8705c, #cf4433); }
.cm.d::before { background: linear-gradient(#5b8cf0, #2f6ae0); }
.cm.n::before { background: #d7dee8; }
.cm-avatar {
  grid-column: 1; grid-row: 1 / span 3; margin: 0;
  width: 30px; height: 30px; border-radius: 9px;
  color: #fff; font-size: 12px; font-weight: 600;
  box-shadow: inset 0 -8px 14px rgba(0,0,0,.12);
}
.cm-top { grid-column: 2; margin-bottom: 3px; gap: 5px; }
.cm-by { font-size: 12px; font-weight: 600; color: #263042; margin-right: 2px; }
.cm-top .badge { transform: scale(.92); transform-origin: left center; }
.cm-time { font-size: 9px; }
.cm-text { grid-column: 2; font-size: 13px; line-height: 1.78; color: #3a4557; }
.cm-foot { grid-column: 2; margin-top: 6px; gap: 7px; }
.cm-like {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 2px 9px; border-radius: 10px; background: #f6f8fb; border: 0;
  font-size: 10px; color: #8b96a8;
}
.cm-like i { font-style: normal; font-size: 9.5px; }
.cm-like.on { background: rgba(200,162,74,.14); color: #9d7712; }
.cm-rp, .cm-del {
  display: inline-flex; align-items: center; padding: 2px 9px;
  border-radius: 10px; background: #f6f8fb; font-size: 10px; color: #6b7c94;
}
.cm-del { margin-left: auto; background: rgba(217,74,50,.07); color: #c0604f; }
.cm-sub {
  grid-template-columns: 1fr; padding: 9px 11px 8px 14px; margin-bottom: 7px;
  background: #fbfcfe;
}
.cm-sub::before { left: 5px; top: 10px; bottom: 10px; width: 2px; }
.cm-sub .cm-top, .cm-sub .cm-text, .cm-sub .cm-foot { grid-column: 1; }
.cm-sub .cm-text { font-size: 12.5px; }
.cm-kids { margin: 4px 0 8px 39px; padding-left: 11px; border-left: 2px dashed #eaeff7; }
.cm-more { font-size: 10.5px; color: #7b9ad4; padding: 4px 0; margin-left: 0; }

/* ---------------- 庭审审问 ---------------- */
.q-compose {
  padding: 11px 12px 1px; margin: 10px 0 4px;
  background: linear-gradient(180deg, #f7f9fd, #fbfcfe);
  border: 1px solid #edf1f8; border-radius: 13px;
}
.q-compose .cm-input { background: #fff; border-color: #e6ebf3; border-radius: 10px; }
.q-compose .cm-input:focus { border-color: #c3d3ef; }
.qto-row { margin-bottom: 9px; }
.qto {
  padding: 4px 12px; border-radius: 999px; font-size: 11px; background: #f2f5fa; border-color: transparent;
}
.qto.on.p { background: rgba(224,83,61,.10); border-color: rgba(224,83,61,.35); color: #d94a32; }
.qto.on.d { background: rgba(47,106,224,.10); border-color: rgba(47,106,224,.32); color: #2f6ae0; }
.q-foot { margin: 8px 0 10px; }

.q-list { display: flex; flex-direction: column; gap: 9px; margin-top: 11px; }
.q-list .q-item {
  position: relative; margin: 0; padding: 12px 13px 10px;
  background: #fff; border: 1px solid #eef1f6; border-radius: 13px;
  box-shadow: 0 1px 2px rgba(27,34,48,.025);
}
.q-list .q-item.answered { background: linear-gradient(180deg, #fffdf8, #fff); border-color: #f0e6cd; }
.q-top { gap: 6px; margin-bottom: 7px; }
.q-to {
  flex: 0 0 auto; padding: 1px 7px; border-radius: 5px;
  font-size: 9.5px; font-weight: 600; letter-spacing: .3px;
}
.q-to.p { color: #c0392b; background: rgba(224,83,61,.10); }
.q-to.d { color: #2359c7; background: rgba(47,106,224,.10); }
.q-by { font-size: 11.5px; font-weight: 600; color: #4a5567; }
.q-time { font-size: 9px; color: #b0bac7; }
.q-body { display: flex; gap: 8px; align-items: flex-start; }
.q-mark {
  flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px; border-radius: 6px;
  background: linear-gradient(135deg, #e6c880, #c8a24a); color: #fff;
  font-size: 9.5px; font-weight: 700; line-height: 18px; text-align: center;
}
.q-text {
  flex: 1; min-width: 0; font-size: 13.5px; line-height: 1.8; color: #202a39;
  font-family: "Songti SC", "Noto Serif SC", Georgia, serif; letter-spacing: .2px;
}
.q-actions { display: flex; align-items: center; gap: 7px; margin-top: 9px; }
.q-answer {
  margin-top: 10px; padding: 9px 11px;
  background: linear-gradient(180deg, #fdfaf2, #fdfcf8);
  border-left: 3px solid #d9bb6c; border-radius: 0 10px 10px 0;
}
.qa-tag {
  padding: 1px 6px; border-radius: 4px; font-size: 9px;
  background: rgba(200,162,74,.18); color: #8a6a18; border: 0;
}
.qa-by { font-size: 11px; font-weight: 600; color: #4a5567; }
.qa-time { font-size: 9px; color: #b0bac7; }
.qa-text { margin-top: 4px; font-size: 12.5px; line-height: 1.75; color: #4a4033; }
.q-wait { display: inline-flex; align-items: center; gap: 4px; font-size: 9.5px; color: #b07a10; }
.q-wait i {
  width: 5px; height: 5px; border-radius: 50%; background: #d9a742;
  animation: qwait 1.6s ease-in-out infinite;
}
@keyframes qwait { 0%,100% { opacity: .35 } 50% { opacity: 1 } }

/* 跟帖 */
.q-reps { margin-top: 9px; padding-left: 9px; border-left: 2px dashed #eef2f8; display: flex; flex-direction: column; gap: 7px; }
.qr { display: flex; gap: 7px; align-items: flex-start; }
.qr-av {
  flex: 0 0 20px; width: 20px; height: 20px; margin-top: 1px; border-radius: 6px;
  color: #fff; font-size: 9px; font-weight: 600;
  display: flex; align-items: center; justify-content: center;
}
.qr-main { flex: 1; min-width: 0; }
.qr-by { display: block; font-size: 10.5px; color: #6b7688; margin-bottom: 1px; }
.qr-by i { font-style: normal; margin-left: 4px; font-size: 8.5px; color: #9aa5b5; }
.qr-text { display: block; font-size: 12px; line-height: 1.7; color: #4a5567; }

.q-rbox { margin-top: 10px; padding: 10px 11px; background: #f8fafd; border-radius: 11px; border: 1px solid #edf1f8; }
.q-rhead { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; }
.qr-tag {
  font-size: 9px; padding: 1px 6px; border-radius: 4px;
  background: rgba(27,34,48,.06); color: #3a4557;
}
.q-rbox .q-textarea { background: #fff; border: 1px solid #e6ebf3; border-radius: 9px; min-height: 62px; }
.q-rbox .q-textarea:focus { border-color: #c3d3ef; }
.q-rfoot { margin-top: 8px; }
.q-rank { width: 17px; height: 17px; line-height: 17px; font-size: 9.5px; border-radius: 5px; text-align: center; }
.q-rank.r1 { background: linear-gradient(135deg,#e9cf8b,#c8a24a); color: #fff; }
.q-rank.r2 { background: #d7dde7; color: #fff; }
.q-rank.r3 { background: #e3cdb8; color: #fff; }

/* ---------------- 我的庭审 ---------------- */
.forum-stats { margin: 4px 0 2px; }
.ct-row {
  padding: 11px 12px 10px; margin-bottom: 8px;
  background: #fff; border: 1px solid #eef1f6; border-radius: 12px;
  box-shadow: 0 1px 2px rgba(27,34,48,.02);
}
.ct-row:active { background: #fbfcfe; }
.ct-line { display: flex; align-items: center; gap: 6px; margin-bottom: 5px; }
.ct-av {
  width: 20px; height: 20px; flex: 0 0 20px; border-radius: 6px;
  color: #fff; font-size: 9px; display: flex; align-items: center; justify-content: center;
}
.ct-by { font-size: 11.5px; font-weight: 600; color: #2b3646; }
.ct-tag {
  flex: 0 0 auto; padding: 1px 6px; border-radius: 4px;
  font-size: 9px; font-weight: 600;
}
.ct-tag.p { color: #c0392b; background: rgba(224,83,61,.10); }
.ct-tag.d { color: #2359c7; background: rgba(47,106,224,.10); }
.ct-tag.n { color: #6b7688; background: #f2f5fa; }
.ct-ans { padding: 1px 6px; border-radius: 4px; font-size: 9px; font-weight: 600; }
.ct-ans.ok { color: #2f7d4f; background: rgba(47,143,78,.10); }
.ct-ans.wait { color: #b07a10; background: rgba(217,165,66,.14); }
.ct-case {
  flex: 1; min-width: 0; font-size: 10px; color: #8b96a8;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ct-time { flex: 0 0 auto; font-size: 9px; color: #b0bac7; }
.ct-tx { font-size: 12.5px; line-height: 1.72; color: #3a4557; }
.ct-quote {
  margin-top: 6px; padding: 6px 9px; background: #f8fafd; border-radius: 8px;
  font-size: 11px; line-height: 1.6; color: #7b8698;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ct-quote b {
  font-weight: 600; color: #9aa5b5; margin-right: 5px;
  padding: 0 4px; border-radius: 3px; background: #eef2f8; font-size: 9px;
}
.ct-foot { display: flex; align-items: center; gap: 10px; margin-top: 7px; }
.ct-n { font-size: 9.5px; color: #a3aebd; }
.ct-ar { margin-left: auto; color: #c3cbd6; font-size: 14px; }

@media (max-width: 350px) {
  .post-acts .pa { gap: 3px; }
  .post-acts .pa .ps-lb { font-size: 9.5px; }
  .post-acts .pa .ps-n { font-size: 11.5px; }
  .q-text { font-size: 13px; }
  .cm { grid-template-columns: 26px 1fr; column-gap: 8px; }
  .cm-avatar { width: 26px; height: 26px; border-radius: 8px; }
}

/* 主按钮统一为暖金渐变，与论坛「发帖」一致 */
.page-root .btn.primary {
  background: linear-gradient(135deg, #e8cb86, #c8a24a);
  border-color: #d9bd74;
  color: #3b2b0a; font-weight: 600;
  box-shadow: 0 6px 14px -9px rgba(200,162,74,.9);
}
.page-root .btn.primary:active { background: linear-gradient(135deg, #ddbe76, #bb953c); }

/* 案件卡底部：进度条与案号在小屏不再重叠 */
.ci-foot { overflow: hidden; }
.ci-node { flex: 0 0 auto; white-space: nowrap; }
.ci-meta {
  min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  font-size: 9px; color: #a3aebd;
}
.ci-prog { flex: 0 0 auto; }
.ci-no {
  flex: 0 0 auto; max-width: 78px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ci-prog .bar { width: 42px; }

/* 我的庭审统计：用暖金数字与论坛板块区分 */
.court-stats { border-bottom-color: #f4eee0; }
.court-stats b { color: #8a6a18; }

/* ==========================================================
   第六轮 · 头像 / 个人主页
   ========================================================== */

/* ---------------- 头像通用 ---------------- */
.av {
  display: grid; place-items: center;
  overflow: hidden; position: relative;
  background-clip: padding-box;
}
.av > svg { display: block; width: 100%; height: 100%; }
.av::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(255,255,255,.22), rgba(255,255,255,0) 46%);
  pointer-events: none;
}
.cc-who { background: transparent; padding: 0; overflow: visible; }
.cc-who .cc-av { width: 22px; height: 22px; border-radius: 7px; }

/* ---------------- 个人主页 ---------------- */
.me-page { padding-top: 4px; }

.me-hero {
  position: relative; overflow: hidden;
  padding: 17px 16px 0;
  border-radius: 20px;
  color: #fff;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(206,168,80,.32), rgba(206,168,80,0) 62%),
    radial-gradient(90% 110% at 0% 100%, rgba(84,140,235,.20), rgba(84,140,235,0) 60%),
    linear-gradient(140deg, #1a2230, #26313f 55%, #1b2431);
  box-shadow: 0 18px 34px -24px rgba(18,26,38,.9);
}
.mh-deco {
  position: absolute; right: -14px; bottom: -40px;
  font-family: "Songti SC", "Noto Serif SC", Georgia, serif;
  font-size: 124px; line-height: 1; font-weight: 700;
  color: rgba(255,255,255,.05); pointer-events: none;
}
.mh-row { position: relative; z-index: 1; display: flex; align-items: center; gap: 13px; }
.mh-avbox { position: relative; flex: 0 0 auto; }
.me-hero .me-avatar {
  width: 62px; height: 62px; flex: 0 0 62px; border-radius: 20px;
  border: 2px solid rgba(255,255,255,.16);
  box-shadow: 0 10px 22px -10px rgba(0,0,0,.6);
  font-size: 22px;
}
.me-avatar.guest {
  display: grid; place-items: center;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.8);
}
.mh-avedit {
  position: absolute; right: -5px; bottom: -5px;
  width: 21px; height: 21px; border-radius: 50%;
  background: #fff; color: #3a4557;
  font-size: 9px; font-weight: 600;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 3px 9px rgba(0,0,0,.28);
}
.mh-id { flex: 1; min-width: 0; }
.mh-name {
  display: flex; align-items: center; gap: 6px;
  font-size: 16.5px; font-weight: 700; letter-spacing: .4px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mh-lv {
  flex: 0 0 auto; font-style: normal; font-size: 9px; font-weight: 700;
  color: #3c2c0b; padding: 1px 6px; border-radius: 4px;
  background: linear-gradient(135deg, #e8cb86, #c8a24a);
}
.mh-sub { margin-top: 4px; font-size: 10.5px; color: rgba(255,255,255,.6); }
.mh-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.mh-tag {
  font-size: 9px; padding: 2px 7px; border-radius: 999px;
  background: rgba(255,255,255,.10); color: rgba(255,255,255,.78);
}
.mh-tag.p { background: rgba(224,88,64,.24); color: #ffc7bb; }
.mh-tag.d { background: rgba(84,140,235,.24); color: #c8dbff; }
.page-root .mh-btn {
  flex: 0 0 auto; height: 28px; padding: 0 12px;
  border-radius: 999px; font-size: 11px;
  background: rgba(255,255,255,.13); color: #fff;
  border: 1px solid rgba(255,255,255,.2);
}
.page-root .mh-btn:active { background: rgba(255,255,255,.22); }

.mh-stats {
  position: relative; z-index: 1;
  display: flex; margin: 14px -16px 0; padding: 11px 4px 12px;
  border-top: 1px solid rgba(255,255,255,.09);
  background: rgba(255,255,255,.045);
}
.mhs { flex: 1; text-align: center; cursor: pointer; }
.mhs b { display: block; font-size: 17px; font-weight: 700; line-height: 1.2; }
.mhs span { font-size: 9.5px; color: rgba(255,255,255,.56); }
.mhs:active { opacity: .7; }

/* 卡片内统计条 */
.me-card-pad { padding: 0 14px 4px; }
.mstats {
  display: flex; padding: 12px 0 10px;
  border-bottom: 1px solid #f2f5f9; margin-bottom: 8px;
}
.mstat { flex: 1; text-align: center; position: relative; }
.mstat + .mstat::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 1px; height: 20px; background: #f0f3f8;
}
.mstat b { display: block; font-size: 16px; font-weight: 700; color: #1b2230; line-height: 1.25; }
.mstat span { font-size: 9.5px; color: #8b96a8; }

/* 区块小标题的暖金变体 */
.sec-head .sh-glyph.gold {
  background: linear-gradient(140deg, #fdf6e6, #f6ecd4);
  border-color: #f0e3c6; color: #9d7712;
}
.sec-head.duty .sh-glyph {
  background: linear-gradient(140deg, #fdf1ec, #f9e2da);
  border-color: #f3d8cf; color: #c0553c;
}

/* ---------------- 换头像弹层 ---------------- */
.av-sheet .sheet-body { padding: 2px 15px 4px; max-height: none; }
.av-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 12px; padding: 8px 2px 6px;
}
.av-pick {
  position: relative; display: block;
  width: 100%; padding-top: 100%;
  border-radius: 17px; overflow: hidden;
  box-shadow: 0 8px 16px -12px rgba(18,26,38,.8);
  transition: transform .14s;
}
.av-pick > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.av-pick:active { transform: scale(.94); }
.av-pick.on {
  box-shadow: 0 0 0 2.5px #c8a24a, 0 10px 20px -12px rgba(200,162,74,.95);
}
.av-ok {
  position: absolute; right: 4px; bottom: 4px;
  width: 16px; height: 16px; border-radius: 50%;
  background: #fff; color: #9d7712;
  font-size: 9px; font-style: normal; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
.av-tip { text-align: center; font-size: 10px; color: #a3aebd; padding: 4px 0 10px; }

/* tab 上的计数做成小胶囊，数字不再和文字挤在一起 */
.fm-tab i {
  margin-left: 4px; padding: 0 4px; border-radius: 6px;
  background: rgba(27, 34, 48, .06); color: #7b8698; line-height: 14px;
}
.fm-tab.on i { background: rgba(255, 255, 255, .18); color: #fff; }
.fm-tabs.wrap { flex-wrap: wrap; row-gap: 6px; }

/* 案件评论与帖子评论的操作键再清晰一点 */
.cm-like { color: #77839a; background: #f2f5fa; }
.cm-like.on { background: rgba(200,162,74,.16); color: #8a6a18; font-weight: 600; }
.cm-rp { color: #4a6b9a; background: #f0f4fb; }
.pp-cm-foot span { color: #77839a; }
.pp-cm-foot .pp-cm-del { color: #c0604f; background: rgba(217,74,50,.09); }

/* 首页热帖左侧头像 */
.hp-av {
  width: 24px; height: 24px; flex: 0 0 24px;
  border-radius: 8px; align-self: flex-start; margin-top: 1px;
}
.hp-av > svg { width: 100%; height: 100%; }

/* 评论操作键对比度再提一档 */
.pp-cm-foot span {
  color: #5f6d80; background: #f1f4f9; font-size: 10px; padding: 3px 9px;
}
.pp-cm-foot .pp-cm-del { color: #bd5240; background: rgba(217, 74, 50, .09); }
.pp-cm-foot .pp-cm-del:active { background: rgba(217, 74, 50, .16); }
.cm-foot .cm-like, .cm-foot .cm-rp, .cm-foot .cm-del { font-size: 10px; padding: 3px 9px; }

/* 个人简介 */
.mh-bio {
  display: flex; align-items: center; gap: 6px;
  margin-top: 5px; font-size: 10.5px; line-height: 1.5;
  color: rgba(255,255,255,.78);
  max-width: 100%;
}
.mh-bio em {
  font-style: normal; color: rgba(255,255,255,.42);
}
.mh-bio-tx {
  flex: 1; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mh-bio i {
  flex: 0 0 auto; font-style: normal; font-size: 9px;
  color: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 5px; padding: 0 4px; line-height: 14px;
}
.bio-count {
  text-align: right; font-size: 10px; color: #a3aebd;
  padding: 4px 2px 8px;
}
.bio-count b { color: #6b7787; font-weight: 600; }

/* 论坛头部数据小条 */
.fh-chips { display: flex; gap: 6px; margin-top: 9px; }
.fh-chips span {
  font-size: 9.5px; color: rgba(255,255,255,.62);
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px; padding: 2px 8px;
  display: inline-flex; align-items: baseline; gap: 3px;
}
.fh-chips b { font-size: 11px; font-weight: 700; color: #f0d79a; }

/* ---------- 论坛：排序筛选 / 推荐小标题 / 榜单徽标 / 悬浮发布 ---------- */
.fm-sort {
  display: flex; gap: 7px; align-items: center;
  padding: 12px 14px 2px;
}
.fm-sort span {
  padding: 7px 17px; border-radius: 999px;
  background: #fff; border: 1px solid #e2e8f1;
  font-size: 12.5px; font-weight: 600; color: #5b6678;
  cursor: pointer; transition: all .15s;
}
.fm-sort span:active { transform: scale(.95); }
.fm-sort span.on {
  background: linear-gradient(135deg, #2b3a55, #1d2a40);
  color: #f0d9a6; border-color: #2b3a55;
}

/* 区块小标题 */
.fm-sec {
  display: flex; align-items: center; gap: 8px;
  margin: 18px 14px 10px;
  font-size: 15px; font-weight: 700; color: #2b3a55;
}
.fm-sec::after {
  content: ''; flex: 1; height: 1px;
  background: linear-gradient(90deg, #e2e8f1, transparent);
}
.fm-sec i {
  font-style: normal; font-size: 10.5px; font-weight: 500;
  color: #98a3b5; white-space: nowrap;
}
.fs-glyph {
  flex: 0 0 22px; width: 22px; height: 22px; border-radius: 7px;
  display: grid; place-items: center;
  color: #fff; font-size: 11.5px; font-weight: 700;
}
.fs-glyph.fire { background: linear-gradient(135deg, #ef6a4c, #c73e32); }
.fs-glyph.chat { background: linear-gradient(135deg, #4a7fd4, #3560a8); }
.fs-glyph.new  { background: linear-gradient(135deg, #3fae7a, #2a8a5e); }
.fs-glyph.rank { background: linear-gradient(135deg, #d9ab52, #a8842e); }

/* 榜单名次徽标 */
.post.has-rank { overflow: visible; }
.rank-n {
  position: absolute; top: -7px; left: -7px; z-index: 2;
  width: 22px; height: 22px; border-radius: 8px;
  display: grid; place-items: center;
  font-size: 11.5px; font-weight: 800; color: #fff;
  background: #b9c2d0; box-shadow: 0 3px 8px rgba(15,23,42,.18);
}
.rank-n.r1 { background: linear-gradient(135deg, #f0b13c, #d98a1f); }
.rank-n.r2 { background: linear-gradient(135deg, #9aa7b8, #76839a); }
.rank-n.r3 { background: linear-gradient(135deg, #cf8d5a, #b06a38); }

/* 悬浮发布按钮（右下角） */
.page-root .fab-post,
.fab-post {
  position: fixed; right: 18px;
  bottom: calc(54px + 18px + env(safe-area-inset-bottom));
  height: 48px; padding: 0 19px 0 15px;
  border-radius: 999px; border: none;
  background: linear-gradient(135deg, #d3ab5e, #a8842e);
  color: #fff; font-size: 14.5px; font-weight: 700; letter-spacing: 1px;
  display: flex; align-items: center; gap: 6px;
  box-shadow: 0 10px 26px rgba(168, 132, 46, .45), 0 2px 6px rgba(168, 132, 46, .3);
  z-index: 30; cursor: pointer;
  transition: transform .15s;
  font-family: inherit;
}
.fab-post i { font-style: normal; font-size: 21px; line-height: 1; font-weight: 500; }
.fab-post:active { transform: scale(.93); }
@media (min-width: 900px) {
  .fab-post { bottom: 26px; }
}
@media (max-width: 350px) {
  .fab-post { height: 44px; padding: 0 15px 0 12px; font-size: 13.5px; }
  .fm-sort span { padding: 6px 13px; font-size: 11.5px; }
}
/* 论坛页右下角被发布按钮占位，回顶按钮往上挪 */
.page-root:has(.fab-post) .to-top { bottom: 136px; }

/* ---------- 选择诉讼身份弹层 ---------- */
.rp-grp { margin-bottom: 13px; }
.rp-gname {
  font-size: 11px; font-weight: 700; color: #8a94a6;
  letter-spacing: 1px; margin-bottom: 7px;
}
.rp-grid { display: flex; flex-wrap: wrap; gap: 7px; }
.rp-chip {
  padding: 7px 13px; border-radius: 999px;
  background: #f4f6fa; border: 1px solid #e2e8f1;
  font-size: 12.5px; color: #45516a; cursor: pointer;
  transition: all .15s; font-weight: 500;
}
.rp-chip:active { transform: scale(.94); }
.rp-chip.on {
  background: linear-gradient(135deg, #2b3a55, #1d2a40);
  color: #f0d9a6; border-color: #2b3a55; font-weight: 700;
}
.rp-skip { margin-top: 4px; color: #8a94a6; }

/* 个人主页身份标签 */
.mh-tag.role {
  background: rgba(201, 164, 92, .16);
  border-color: rgba(201, 164, 92, .4);
  color: #e8cd8d;
}

/* ==========================================================
   关注胶囊 · 折叠分组 · 设置网格 · 头像卡（2026-11-01 第十六轮）
   ========================================================== */

/* 帖子/评论作者名旁的关注按钮：一处点击，全局同步 */
.fol {
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 auto; height: 22px; padding: 0 9px;
  border-radius: 999px; white-space: nowrap; cursor: pointer;
  font-size: 10.5px; font-weight: 600; letter-spacing: .2px;
  color: #a3781f;
  background: #fffdf8;
  border: 1px solid #eeddb6;
  transition: transform .12s, background .15s;
}
.fol:active { transform: scale(.93); }
.fol.on {
  color: #7d8899; font-weight: 500;
  background: #f3f6fa; border-color: #e8eef7;
}
.fol.fri {
  color: #2f7d5c; font-weight: 600;
  background: rgba(60,155,110,.12); border-color: rgba(60,155,110,.22);
}
.fol.xs { height: 18px; padding: 0 7px; font-size: 9.5px; }

.post-hd-x { margin-left: auto; display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }

/* 帖子详情头部：名字 + 关注同一行，主页入口退到时间行做文字链 */
.pp-avw { flex: 0 0 auto; display: block; }
.pp-by-row { display: flex; align-items: center; gap: 6px; min-width: 0; }
.pp-by-row .pp-by { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-meta .pp-visit {
  padding: 1px 6px; font-size: 9.5px; border-radius: 6px;
  color: #a3781f; background: rgba(200,162,74,.12);
  border: 1px solid rgba(200,162,74,.26);
}
.pp-meta .pp-visit i { font-size: 11px; }
.pp-meta .pp-visit:active { background: rgba(200,162,74,.24); }

/* ---------- 我的页：头像卡 ---------- */
.mh-top {
  position: relative; z-index: 1;
  display: flex; align-items: flex-start; gap: 14px;
}
.mh-avbox .mh-ring {
  position: absolute; inset: -5px; border-radius: 50%;
  border: 1px solid rgba(232,203,134,.42);
  box-shadow: 0 0 22px -8px rgba(232,203,134,.7);
  pointer-events: none;
}
.me-hero .me-avatar {
  width: 64px; height: 64px; flex: 0 0 64px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.24);
  box-shadow: 0 12px 26px -14px rgba(0,0,0,.85);
  font-size: 22px;
}
.mh-avedit {
  right: -3px; bottom: -3px; width: 20px; height: 20px;
  font-size: 8.5px; border: 1.5px solid rgba(26,34,48,.9);
}
.mh-edit {
  flex: 0 0 auto; align-self: flex-start;
  font-size: 10.5px; color: rgba(255,255,255,.76);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 999px; padding: 3px 10px; cursor: pointer;
}
.mh-edit:active { background: rgba(255,255,255,.14); }
.me-hero .mh-bio {
  margin-top: 12px; padding: 7px 10px;
  background: rgba(255,255,255,.06);
  border-radius: 10px;
}
.me-hero .mh-bio i {
  border-color: rgba(232,203,134,.36); color: #e8cb86;
}

/* ---------- 我的页：可折叠分组 ---------- */
.fold {
  margin-top: 12px; background: #fff; overflow: hidden;
  border-radius: 16px; border: 1px solid #eef1f6;
  box-shadow: 0 8px 20px -18px rgba(20,30,48,.65);
}
.fold-hd {
  display: flex; align-items: center; gap: 9px;
  padding: 13px 14px; cursor: pointer;
}
.fold-hd:active { background: #f7f9fc; }
.fold-hd.static { cursor: default; }
.fold-hd.static:active { background: transparent; }
.fold-ic {
  width: 26px; height: 26px; flex: 0 0 26px; border-radius: 9px;
  display: grid; place-items: center;
  font-size: 11.5px; font-weight: 600; color: #8a6a18;
  background: linear-gradient(140deg, #fbfcfe, #eff3f9);
  border: 1px solid #e8eef7;
}
.fold-t { flex: 0 0 auto; font-size: 13.5px; font-weight: 600; color: #1b2230; }
.fold-sub {
  flex: 1; min-width: 0; font-size: 10px; color: #9aa5b6;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.fold-n {
  flex: 0 0 auto; font-size: 10px; color: #7d8899;
  background: #f3f6fa; border-radius: 8px; padding: 1px 7px;
}
.fold-ar {
  flex: 0 0 auto; font-size: 15px; line-height: 1;
  color: #c3cbd6; transition: transform .2s;
}
.fold.open .fold-ar { transform: rotate(90deg); }
.fold-bd {
  padding: 10px 12px 12px;
  border-top: 1px solid #f3f6fa;
}
.fold-bd .fm-tabs { margin-bottom: 6px; }
.fold.duty { border-color: #f4ddd4; background: linear-gradient(180deg, #fff9f6, #fff 60%); }
.fold.duty .fold-ic {
  color: #c0553c; background: linear-gradient(140deg, #fdf1ec, #f9e2da);
  border-color: #f3d8cf;
}
.fold.duty .fold-n { color: #b3502f; background: rgba(217,74,50,.1); }

/* ---------- 我的页：设置网格 ---------- */
.set-card {
  margin-top: 14px; padding: 12px 8px 10px;
  background: #fff; border-radius: 16px; border: 1px solid #eef1f6;
  box-shadow: 0 8px 20px -18px rgba(20,30,48,.65);
}
.sg-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 2px; }
.sg {
  position: relative; display: flex; flex-direction: column;
  align-items: center; gap: 6px; padding: 9px 2px 8px;
  border-radius: 12px; cursor: pointer;
}
.sg:active { background: #f4f7fb; }
.sg-ic {
  width: 34px; height: 34px; border-radius: 12px;
  display: grid; place-items: center;
  font-size: 13px; font-weight: 600; color: #56617a;
  background: linear-gradient(140deg, #f9fbfe, #edf2fa);
  border: 1px solid #e9eef7;
}
.sg-t { font-size: 10px; color: #5f6b7f; white-space: nowrap; }
.sg-b {
  position: absolute; top: 3px; left: 50%; margin-left: 6px;
  min-width: 15px; height: 15px; padding: 0 4px;
  border-radius: 8px; background: #d94a32; color: #fff;
  font-size: 9px; font-style: normal; line-height: 15px;
  text-align: center; box-shadow: 0 2px 6px -2px rgba(217,74,50,.7);
}

@media (max-width: 340px) {
  .sg-ic { width: 30px; height: 30px; border-radius: 10px; font-size: 12px; }
  .sg-t { font-size: 9px; }
  .fold-sub { display: none; }
}

/* ---------- 规则说明页 ---------- */
.about-page { padding-top: 4px; }
.ab-hero {
  position: relative; overflow: hidden;
  padding: 18px 16px 15px; border-radius: 18px; color: #fff;
  background:
    radial-gradient(110% 130% at 100% 0%, rgba(206,168,80,.26), rgba(206,168,80,0) 62%),
    linear-gradient(140deg, #1a2230, #26313f 60%, #1b2431);
  box-shadow: 0 16px 30px -24px rgba(18,26,38,.9);
}
.ab-t { font-family: "Songti SC", "Noto Serif SC", Georgia, serif; font-size: 20px; font-weight: 700; letter-spacing: 1.5px; }
.ab-s { margin-top: 5px; font-size: 10.5px; color: rgba(255,255,255,.56); letter-spacing: .3px; }
.ab-nums { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 14px; }
.ab-nums span { font-size: 9.5px; color: rgba(255,255,255,.55); }
.ab-nums b { font-size: 15px; font-weight: 700; color: #e8cb86; margin-right: 3px; }

.ab-card {
  margin-top: 12px; padding: 14px 15px 12px;
  background: #fff; border-radius: 16px; border: 1px solid #eef1f6;
  box-shadow: 0 8px 20px -18px rgba(20,30,48,.6);
}
.ab-h {
  font-size: 10.5px; font-weight: 700; color: #98a3b5;
  letter-spacing: 1.4px; margin-bottom: 9px;
}
.ab-card .ab-h + .ab-h { margin-top: 14px; }
.ab-p { font-size: 11px; color: #7b8698; line-height: 1.85; }
.about-page .rk { width: 66px; font-size: 10.5px; }
.about-page .rv { font-size: 11.2px; color: #4f5b6e; }
.about-page .rule { padding: 8px 0; }

/* 三级审理：竖向时间线，比三张卡省一半高度 */
.stps { position: relative; padding-left: 1px; }
.stp { display: flex; gap: 11px; padding-bottom: 13px; position: relative; }
.stp:last-child { padding-bottom: 0; }
.stp::before {
  content: ""; position: absolute; left: 11px; top: 25px; bottom: 0;
  width: 1px; background: #eaeff7;
}
.stp:last-child::before { display: none; }
.stp-n {
  position: relative; z-index: 1; flex: 0 0 23px;
  width: 23px; height: 23px; border-radius: 50%;
  display: grid; place-items: center;
  font-size: 10px; font-weight: 700; color: #8a6a18;
  background: linear-gradient(140deg, #fdf6e6, #f6ecd4);
  border: 1px solid #f0e3c6;
}
.stp-i { flex: 1; min-width: 0; padding-top: 2px; }
.stp-i b { display: block; font-size: 12.5px; font-weight: 600; color: #1b2230; }
.stp-i span { display: block; margin-top: 2px; font-size: 10.5px; color: #8b96a8; line-height: 1.7; }

.ab-fold {
  margin-top: 12px; display: flex; align-items: center; justify-content: space-between;
  padding: 13px 15px; background: #fff; border-radius: 14px; border: 1px solid #eef1f6;
  font-size: 12px; color: #5f6b7f; cursor: pointer;
}
.ab-fold:active { background: #f7f9fc; }
.ab-fold .off-ar { font-style: normal; color: #c3cbd6; font-size: 14px; transition: transform .2s; }
.ab-fold.on .off-ar { transform: rotate(90deg); }

/* ================= 关注我的人：论坛顶部横条 ================= */
.fans {
  margin: 0 0 12px;
  padding: 11px 0 8px 13px;
  background: #fff;
  border: 1px solid #f1e8d5;
  border-radius: 16px;
  box-shadow: 0 10px 22px -20px rgba(26, 36, 54, .8);
  overflow: hidden;
}
.fans-hd { display: flex; align-items: center; gap: 7px; padding-right: 13px; }
.fans-ic {
  flex: 0 0 20px; width: 20px; height: 20px; border-radius: 7px;
  display: grid; place-items: center;
  font-size: 10px; font-weight: 700; color: #8a6a18;
  background: linear-gradient(140deg, #fdf6e6, #f5ead1);
  border: 1px solid #efe0bf;
}
.fans-t { flex: 0 0 auto; font-size: 12.5px; font-weight: 600; color: #1b2230; }
.fans-s {
  flex: 1; min-width: 0; font-size: 10px; color: #9aa5b6;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.fans-more { flex: 0 0 auto; font-size: 10.5px; color: #8d7538; cursor: pointer; }
.fans-more i { font-style: normal; margin-left: 2px; }
.fans-more:active { opacity: .6; }
.fans-row {
  display: flex; gap: 10px; padding: 10px 13px 2px 0;
  overflow-x: auto; scrollbar-width: none;
}
.fans-row::-webkit-scrollbar { display: none; }
.fan {
  flex: 0 0 54px; width: 54px; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 5px;
}
.fan-av { width: 40px; height: 40px; border-radius: 14px; }
.fan:active .fan-av { transform: scale(.96); }
.fan-n {
  max-width: 54px; font-size: 9.5px; color: #4a566a;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.fan-b {
  font-size: 9px; line-height: 1; padding: 3px 8px; border-radius: 999px;
  color: #8a6a18; background: #fffdf7; border: 1px solid rgba(201, 162, 39, .5);
}
.fan-b.fri { color: #3f8a63; background: #f4fbf7; border-color: rgba(63, 138, 99, .3); }

/* 折叠卡里的「还有 N 条」：展开 / 收起 */
.list-more {
  display: flex; align-items: center; gap: 10px;
  padding-top: 10px;
}
.lm-less { font-size: 10px; color: #9aa5b6; cursor: pointer; }
.lm-more { margin-left: auto; font-size: 10px; color: #8a6a18; cursor: pointer; }
.lm-less:active, .lm-more:active { opacity: .6; }

/* ================= 我的页底部：分组入口 ================= */
.set-h { display: flex; align-items: baseline; gap: 7px; padding: 0 6px 9px; }
.set-h b { font-size: 11.5px; font-weight: 600; color: #3c4759; }
.set-h span { font-size: 9.5px; color: #a7b0be; }
.sg-grid { grid-template-columns: repeat(4, 1fr); gap: 4px 2px; }
.sg-grid.c1 { grid-template-columns: 1fr; width: 25%; margin: 0 auto; }
.sg-grid.c2 { grid-template-columns: repeat(2, 1fr); width: 50%; margin: 0 auto; }
.sg-grid.c3 { grid-template-columns: repeat(3, 1fr); width: 75%; margin: 0 auto; }
.sg-ic { width: 38px; height: 38px; border-radius: 13px; color: #54627a; }
.sg-ic svg { width: 19px; height: 19px; }
.sg { padding: 7px 2px 6px; }
.sg-t { font-size: 10px; color: #5f6b7f; }

/* ================= 私信列表：顶部找人条 ================= */
.dm-find {
  display: flex; align-items: center; gap: 9px;
  padding: 11px 13px; margin-bottom: 14px;
  background: #fff; border: 1px solid #eef1f6; border-radius: 14px;
  box-shadow: 0 8px 20px -18px rgba(20, 30, 48, .65);
  cursor: pointer;
}
.dm-find:active { background: #f8fafc; }
.dmf-ic {
  flex: 0 0 26px; width: 26px; height: 26px; border-radius: 9px;
  display: grid; place-items: center;
  background: #f4f7fb; color: #5a677d;
}
.dmf-ic svg { width: 15px; height: 15px; }
.dmf-tx { flex: 0 0 auto; font-size: 12.5px; font-weight: 600; color: #26313f; }
.dmf-s { flex: 1; min-width: 0; font-size: 10px; color: #a3adbb; }
.dmf-ar { color: #c3cbd6; font-size: 14px; }
.dm-sec { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 0 6px 8px 4px; }
.dm-sec b { font-size: 11.5px; font-weight: 600; color: #3c4759; }
.dm-sec span { font-size: 9.5px; color: #a7b0be; }
.dm-none { text-align: center; padding: 26px 0 22px; }
.dm-none-ic {
  width: 42px; height: 42px; margin: 0 auto 10px; border-radius: 14px;
  display: grid; place-items: center; background: #f4f7fb; color: #8f9aab;
}
.dm-none-ic svg { width: 20px; height: 20px; }
.dm-none b { display: block; font-size: 12.5px; color: #3c4759; }
.dm-none span { display: block; font-size: 10px; color: #a3adbb; margin: 5px 0 12px; }

/* ================= 粉丝弹层 ================= */
.fans-sheet .sheet-body { max-height: 62vh; overflow-y: auto; }
.fan-row {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 2px; border-bottom: .5px solid #f2f5f9; cursor: pointer;
}
.fan-row:last-child { border-bottom: 0; }
.fan-row:active { opacity: .75; }
.fan-rtx { flex: 1; min-width: 0; }
.fan-rn { display: flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; color: #1b2230; }
.fan-rm {
  font-style: normal; font-size: 8px; padding: 1px 5px; border-radius: 4px;
  background: rgba(63, 138, 99, .1); color: #3f8a63;
}
.fan-rno { display: block; font-size: 9px; color: #98a2b3; margin-top: 2px; }
.fan-rb {
  flex: 0 0 auto; font-size: 10px; padding: 4px 11px; border-radius: 999px;
  color: #8a6a18; background: #fffdf7; border: 1px solid rgba(201, 162, 39, .5);
}
.fan-rb.fri { color: #93a0b2; background: #f5f7fa; border-color: transparent; }

@media (max-width: 340px) {
  .fans { padding-left: 11px; }
  .fan { flex: 0 0 48px; width: 48px; }
  .fan-av { width: 36px; height: 36px; border-radius: 12px; }
  .set-h span { display: none; }
  .sg-ic { width: 34px; height: 34px; border-radius: 12px; }
  .sg-ic svg { width: 17px; height: 17px; }
  .sg-t { font-size: 9px; }
}

/* 粉丝条摘要前加个点，跟标题分开 */
.fans-s::before { content: '·'; margin-right: 5px; color: #c8d0dc; }
/* 没有对话时不占位 */
.dm-sec:empty { display: none; }

/* 设置卡底部：次要的文字操作 */
.me-links {
  display: flex; align-items: center; justify-content: center;
  margin-top: 6px; padding-top: 11px; border-top: 1px solid #f3f6fa;
  font-size: 10.5px; color: #98a3b5;
}
.me-links span { cursor: pointer; }
.me-links span:active { opacity: .6; }
.me-links .danger { color: #c0553c; }
.me-links span + span::before {
  content: '·'; margin: 0 14px; color: #d5dce6;
}

/* 粉丝弹层：标题与副标题竖排，别挤成一句 */
.fans-sheet .sheet-head { display: block; }
.fans-sheet .sheet-title { display: block; font-size: 17px; font-weight: 700; }
.fans-sheet .sheet-sub {
  display: block; margin-top: 4px;
  font-size: 10.5px; color: #8b96a8; line-height: 1.65;
}

/* ==========================================================
   认证徽章 / 法庭分工 / 法律法典 / 认证申请
   —— 新增模块统一放这里，避免和旧样式互相覆盖
   ========================================================== */

/* ---------------- 认证徽章 ---------------- */
.vb {
  display: inline-flex; align-items: center; justify-content: center;
  height: 15px; padding: 0 5px; margin-left: 4px;
  border-radius: 3px; font-style: normal; font-size: 9px; font-weight: 600;
  line-height: 1; letter-spacing: .2px; vertical-align: 1px;
  border: 1px solid transparent; white-space: nowrap;
}
.vb.sm { height: 14px; padding: 0 4px; font-size: 8.5px; margin-left: 3px; }
.vb-official { color: #8a6410; background: linear-gradient(135deg,#fdf3d5,#f7e3a8); border-color: #e8cf87; }
.vb-lawyer   { color: #1d4fa8; background: #e8f0ff; border-color: #b9cff5; }
.vb-media    { color: #a8441c; background: #fdeee6; border-color: #f3cbb8; }
.vb-expert   { color: #5b2fa8; background: #f0eaff; border-color: #d3c2f5; }
.vb-org      { color: #34605b; background: #e8f5f2; border-color: #bbe0d6; }

/* 主页认证卡 */
.vcard {
  display: flex; align-items: center; gap: 9px;
  margin: 0 12px 10px; padding: 9px 12px;
  border-radius: 10px; background: #fbfcfe; border: 1px solid #e7ecf4;
}
.vcard .vc-ic {
  width: 20px; height: 20px; flex: none; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; color: #fff; background: #2f6ae0;
}
.vcard .vc-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.vcard .vc-tx b { font-size: 11.5px; color: #2b3646; font-weight: 600; }
.vcard .vc-tx span { font-size: 10px; color: #7b8798; margin-top: 2px; word-break: break-all; }
.vcard .vc-tag { font-size: 9.5px; color: #8b96a8; flex: none; }
.vcard.vb-official { background: linear-gradient(135deg,#fffdf4,#fdf6e2); border-color: #efe0b6; }
.vcard.vb-official .vc-ic { background: linear-gradient(135deg,#d9a92e,#b8860b); }
.vcard.vb-lawyer .vc-ic { background: #2f6ae0; }
.vcard.vb-media .vc-ic { background: #d1692f; }
.vcard.vb-expert .vc-ic { background: #7048c8; }
.vcard.vb-org .vc-ic { background: #2f8570; }

/* ---------------- 法庭组成：席位职责 ---------------- */
.st-role {
  display: block; margin: 2px 0 1px;
  font-size: 9.5px; color: #2f6ae0; letter-spacing: .2px;
}
.st-duty {
  display: block; margin-bottom: 6px;
  font-size: 10px; color: #6b7789; line-height: 1.6;
}
.st-seat { padding-bottom: 8px; }

/* ---------------- 庭审分工表 ---------------- */
.hd-card { padding: 0; overflow: hidden; }
.hd-sum {
  display: flex; align-items: center; gap: 7px;
  padding: 12px 14px; list-style: none; cursor: pointer;
}
.hd-sum::-webkit-details-marker { display: none; }
.hd-title { font-size: 13px; font-weight: 600; color: #22303f; }
.hd-cnt { font-size: 9.5px; color: #8b96a8; }
.hd-cur {
  margin-left: auto; font-size: 9.5px; color: #9d7712;
  background: rgba(201,162,39,.12); padding: 2px 6px; border-radius: 4px;
}
.hd-body { padding: 0 14px 13px; }
.hd-tip {
  display: block; font-size: 10px; color: #8b96a8; line-height: 1.75;
  padding-bottom: 9px; border-bottom: 1px dashed #e8edf4;
}
.hd-tip b { color: #2b3646; }
.hd-stage { padding: 9px 0 8px; border-bottom: 1px dashed #eef1f6; }
.hd-stage:last-of-type { border-bottom: 0; }
.hd-stage.now { background: linear-gradient(90deg, rgba(247,238,209,.5), rgba(255,255,255,0)); margin: 0 -14px; padding: 9px 14px 8px; }
.hd-sh { display: flex; align-items: center; gap: 6px; }
.hd-sh b { font-size: 11.5px; color: #22303f; font-weight: 600; }
.hd-now { font-size: 8.5px; color: #fff; background: #d9a92e; padding: 1px 4px; border-radius: 3px; }
.hd-tm { font-size: 9px; color: #9aa6b8; }
.hd-note { display: block; margin: 2px 0 5px; font-size: 9.5px; color: #9aa6b8; }
.hd-works { display: flex; flex-direction: column; gap: 4px; }
.hd-w { display: flex; gap: 6px; font-size: 10.5px; line-height: 1.65; }
.hd-w i {
  flex: none; width: 62px; font-style: normal; color: #2b3646; font-weight: 500;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.hd-w i em { font-style: normal; color: #2f6ae0; font-size: 9.5px; }
.hd-w span { flex: 1; color: #6b7789; }
.hd-foot {
  display: block; margin-top: 10px; padding-top: 9px; border-top: 1px solid #eef1f6;
  font-size: 9.5px; color: #9aa6b8; line-height: 1.7;
}

/* ---------------- 法律法典：程序页 ---------------- */
.law-panel {
  margin: 0 0 12px; padding: 12px 13px 11px;
  border-radius: 12px; border: 1px solid #e9eef6;
  background: linear-gradient(160deg,#fbfcff,#f5f8fd);
}
.lp-h { display: flex; align-items: baseline; gap: 7px; margin-bottom: 9px; }
.lp-t { font-size: 13px; font-weight: 600; color: #22303f; }
.lp-s { font-size: 9.5px; color: #8b96a8; }
.lp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.lp-chip {
  display: inline-flex; flex-direction: column; gap: 1px;
  padding: 5px 8px; border-radius: 7px; cursor: pointer;
  background: #fff; border: 1px solid #e4eaf3;
}
.lp-chip:active { background: #f2f6fc; }
.lp-chip b { font-size: 11px; color: #2b3646; font-weight: 600; }
.lp-chip i { font-style: normal; font-size: 8.5px; color: #9aa6b8; }
.lp-note {
  margin-top: 9px; padding-top: 8px; border-top: 1px dashed #e6ebf3;
  font-size: 9.5px; color: #9aa6b8; line-height: 1.7;
}

/* 节点卡底部法规 chip */
.pc-laws { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; padding-top: 6px; border-top: 1px dashed #eef1f6; }
.pc-law {
  font-size: 9px; color: #5b6a80; background: #f2f5fa;
  padding: 1px 5px; border-radius: 3px; cursor: pointer;
}
.pc-law:active { background: #e6ecf6; }

/* 节点弹层里的法规 chip */
.law-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 7px; }
.law-chip {
  display: inline-flex; flex-direction: column; padding: 4px 7px;
  border-radius: 6px; background: #f6f8fc; border: 1px solid #e6ecf5; cursor: pointer;
}
.law-chip b { font-size: 10.5px; color: #2b3646; font-weight: 600; }
.law-chip i { font-style: normal; font-size: 8px; color: #9aa6b8; }

/* ---------------- 法典详情弹层 ---------------- */
.law-sheet .sheet-body { padding: 0 14px 16px; max-height: 68vh; overflow-y: auto; }
.lw-scope, .lw-use {
  display: block; padding: 9px 11px; margin-bottom: 8px;
  border-radius: 8px; background: #f7f9fc; font-size: 10.5px; line-height: 1.75; color: #4a5668;
}
.lw-scope b, .lw-use b { display: block; font-size: 10px; color: #8b96a8; font-weight: 500; margin-bottom: 3px; }
.lw-use { background: #fdfaf0; }
.lw-sec { margin: 12px 0 7px; font-size: 11px; font-weight: 600; color: #22303f; }
.lw-books { display: flex; flex-direction: column; gap: 5px; }
.lw-book { display: flex; gap: 7px; font-size: 10.5px; line-height: 1.6; color: #4a5668; }
.lw-book i {
  flex: none; width: 15px; height: 15px; border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  font-style: normal; font-size: 8.5px; color: #8b96a8; background: #eef2f8;
}
.lw-arts { display: flex; flex-direction: column; gap: 7px; }
.lw-art { padding: 8px 10px; border-radius: 8px; background: #fbfcfe; border: 1px solid #eef2f8; }
.lwa-n { display: block; font-size: 9.5px; color: #9d7712; margin-bottom: 3px; }
.lwa-t { display: block; font-size: 10.5px; color: #4a5668; line-height: 1.75; }
.lw-tip { margin-top: 12px; font-size: 9px; color: #a9b3c1; line-height: 1.7; }

/* ---------------- 案件页：法律框架卡 ---------------- */
.law-card { padding: 0; overflow: hidden; }
.law-sum { display: flex; align-items: center; gap: 7px; padding: 12px 14px; list-style: none; cursor: pointer; }
.law-sum::-webkit-details-marker { display: none; }
.law-title { font-size: 13px; font-weight: 600; color: #22303f; }
.law-cause { font-size: 9.5px; color: #2f6ae0; background: #eef4ff; padding: 2px 6px; border-radius: 4px; }
.law-cnt { margin-left: auto; font-size: 9.5px; color: #8b96a8; }
.law-body { padding: 0 14px 13px; }
.law-row {
  padding: 9px 11px; margin-bottom: 7px; border-radius: 9px;
  background: #fbfcfe; border: 1px solid #eef2f8; cursor: pointer;
}
.law-row:active { background: #f4f7fc; }
.lr-h { display: flex; align-items: baseline; gap: 6px; }
.lr-h b { font-size: 11px; color: #22303f; font-weight: 600; }
.lr-h i { font-style: normal; font-size: 8.5px; color: #9aa6b8; }
.lr-scope { display: block; margin: 3px 0; font-size: 10px; color: #7b8798; line-height: 1.65; }
.lr-art { display: block; font-size: 10px; color: #4a5668; line-height: 1.7; padding-left: 7px; border-left: 2px solid #e8d9ae; }
.law-tip { display: block; margin-top: 8px; font-size: 9px; color: #a9b3c1; line-height: 1.7; }

/* ---------------- 认证申请弹层 ---------------- */
.vf-sheet .sheet-body { padding: 0 14px 18px; max-height: 74vh; overflow-y: auto; }
.vf-lb { display: block; margin: 12px 0 5px; font-size: 10.5px; color: #2b3646; font-weight: 600; }
.vf-lb i { font-style: normal; font-size: 9px; color: #9aa6b8; font-weight: 400; margin-left: 4px; }
.vf-types { display: flex; flex-wrap: wrap; gap: 6px; }
.vf-type {
  flex: 1 1 calc(50% - 6px); min-width: 130px;
  display: flex; flex-direction: column; gap: 2px;
  padding: 8px 10px; border-radius: 8px; cursor: pointer;
  border: 1px solid #e6ecf5; background: #fbfcfe;
}
.vf-type b { font-size: 11px; color: #2b3646; font-weight: 600; }
.vf-type i { font-style: normal; font-size: 9px; color: #9aa6b8; line-height: 1.5; }
.vf-type.on { border-color: #2f6ae0; background: #eef4ff; }
.vf-type.on b { color: #1d4fa8; }
.vf-inp {
  width: 100%; box-sizing: border-box; padding: 9px 10px;
  border: 1px solid #e4eaf3; border-radius: 8px; background: #fff;
  font-size: 11.5px; color: #2b3646; outline: none; font-family: inherit;
}
.vf-inp:focus { border-color: #2f6ae0; }
.vf-ta { min-height: 62px; resize: none; line-height: 1.7; }
.vf-file { display: flex; align-items: center; gap: 8px; }
.vf-pick {
  flex: 1; padding: 9px 10px; border-radius: 8px; cursor: pointer;
  border: 1px dashed #cfd9e8; background: #fafcff;
  font-size: 10.5px; color: #2f6ae0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap;
}
.vf-done { font-size: 9.5px; color: #1a8a58; flex: none; }
.vf-note { margin: 12px 0 14px; font-size: 9.5px; color: #9aa6b8; line-height: 1.75; }
.vf-info { margin: 10px 0 4px; border-radius: 9px; background: #fbfcfe; border: 1px solid #eef2f8; padding: 4px 11px; }
.vf-row { display: flex; align-items: baseline; gap: 10px; padding: 7px 0; border-bottom: 1px dashed #eef1f6; }
.vf-row:last-child { border-bottom: 0; }
.vf-row span { flex: none; width: 66px; font-size: 10px; color: #8b96a8; }
.vf-row b { flex: 1; font-size: 11px; color: #2b3646; font-weight: 500; word-break: break-all; }
.vf-wait {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  padding: 22px 14px 18px; border-radius: 10px; background: #fdfaf0; border: 1px solid #f0e4c2;
}
.vfw-ic {
  width: 34px; height: 34px; border-radius: 50%; margin-bottom: 4px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg,#e6c46a,#c9a227); color: #fff; font-size: 14px;
}
.vf-wait b { font-size: 12.5px; color: #6b5410; }
.vf-wait span { font-size: 10px; color: #8a7a4a; }
.vf-rej {
  display: flex; flex-direction: column; gap: 3px; margin-bottom: 4px;
  padding: 9px 11px; border-radius: 8px; background: #fdf1ee; border: 1px solid #f6d3c9;
}
.vf-rej b { font-size: 10.5px; color: #b23a22; }
.vf-rej span { font-size: 10px; color: #8a5347; line-height: 1.6; }
.vf-rej i { font-style: normal; font-size: 9px; color: #b58a80; }

/* ---------------- 评论头像可点 ---------------- */
.cm-avw { display: block; flex: none; cursor: pointer; }
.cm-avw:active { opacity: .75; }
.pcm-avw { display: inline-block; vertical-align: -4px; margin-right: 4px; cursor: pointer; }
.pcm-avw:active { opacity: .75; }
.pcm-av { width: 16px; height: 16px; border-radius: 50%; }

/* 法典弹层标题：全称较长，改成上下两行，别和副标题挤在一行 */
.law-sheet .sheet-head { display: block; padding-bottom: 8px; }
.law-sheet .sheet-title { display: block; font-size: 15px; line-height: 1.55; }
.law-sheet .sheet-sub { display: block; margin-top: 3px; font-size: 10px; color: #8b96a8; }
.vf-sheet .sheet-head { display: block; }
.vf-sheet .sheet-title { display: block; }
.vf-sheet .sheet-sub { display: block; margin-top: 3px; font-size: 10px; color: #8b96a8; }

.hd-lead {
  margin-left: auto; font-size: 8.5px; color: #5b6a80;
  background: #f1f4f9; padding: 1px 5px; border-radius: 3px; white-space: nowrap;
}
.hd-w i { width: 68px; }
.pp-cm-avw { flex: none; cursor: pointer; display: block; }
.pp-cm-avw:active { opacity: .75; }

/* 人员详情里的庭审分工 */
.rl-row { display: flex; gap: 7px; font-size: 10.5px; line-height: 1.7; padding: 3px 0; }
.rl-row i { flex: none; width: 58px; font-style: normal; color: #9d7712; }
.rl-row span { flex: 1; color: #4a5668; }

.vf-sheet .btn.block { margin-top: 8px; height: 38px; }
.vf-sheet .btn.ghost { background: #f7f9fc; border: 1px solid #e4eaf3; color: #2b3646; }

/* 认证类型选中反馈：点一下要有明确回应，否则像没选上 */
.vf-picked {
  display: block; margin: 8px 0 2px;
  font-size: 10px; color: #2f6ae0;
  background: #eef4ff; border: 1px solid #dbe7fb;
  padding: 5px 9px; border-radius: 7px;
}

/* 平台官方：实心金，和「法院/检察院」的浅金官方区分开 */
.vb-platform { color: #5a3d00; background: linear-gradient(135deg,#f9e3a4,#e2b444); border-color: #c9a227; font-weight: 700; }
.vcard.vb-platform { background: linear-gradient(135deg,#fffaef,#fdf0cd); border-color: #ecd9a4; }
.vcard.vb-platform .vc-ic { background: linear-gradient(135deg,#d9a92e,#a9781b); }

/* ---------------- @ 选择器 ---------------- */
.at-pop {
  position: fixed; z-index: 9999; padding: 6px; box-sizing: border-box;
  background: #fff; border: 1px solid #e6ecf5; border-radius: 12px;
  box-shadow: 0 10px 30px rgba(16,24,40,.18); max-height: 236px; overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.at-row { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.at-row.on { background: #eef4ff; }
.at-av { width: 26px; height: 26px; border-radius: 50%; flex: none; }
.at-name { flex: 1; min-width: 0; font-size: 12px; color: #22303f; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.at-no { font-size: 9.5px; color: #9aa6b8; flex: none; }
.at-tip { display: block; margin-top: 4px; padding: 5px 8px 2px; border-top: 1px solid #f0f3f8; font-size: 9px; color: #a9b3c1; }
/* 没有候选时的空态：告诉用户为什么空，而不是弹个白框 */
.at-empty { padding: 12px 10px 11px; text-align: center; }
.at-empty b { display: block; font-size: 12px; font-weight: 600; color: #4a586a; }
.at-empty span { display: block; margin-top: 4px; font-size: 10px; color: #9aa6b8; line-height: 1.5; }

/* 正文里的 @昵称：点了进对方主页 */
.at { color: #2f6ae0; font-weight: 500; cursor: pointer; }
.at:active { opacity: .7; }

/* ================= 评论权限：作者可设谁能在自己帖子下评论 ================= */
.pp-cm-pol {
  margin-left: auto; display: inline-flex; align-items: center; gap: 3px;
  padding: 3px 9px; border-radius: 11px; background: #f2f5fa;
  font-size: 10.5px; color: #6b7788; white-space: nowrap;
}
.pp-cm-pol i { font-style: normal; font-size: 9px; opacity: .8; }
.pp-cm-pol[data-cmpol] { color: #2f6ae0; background: rgba(61,126,255,.09); }
.pp-cm-pol[data-cmpol]:active { background: rgba(61,126,255,.18); }

/* 评论框不可用时的说明条：写清原因，别只给一个灰掉的输入框 */
.pp-cm-lock {
  display: flex; align-items: center; gap: 7px; margin: 6px 0 2px;
  padding: 10px 12px; border-radius: 11px;
  background: #f7f9fc; border: 1px dashed #e3e9f2;
  font-size: 11.5px; line-height: 1.6; color: #7b8698;
}
.pp-cm-lock b { color: #46536a; font-weight: 600; }
.pp-cbar.off textarea { background: #f2f4f8; color: #a4aebd; }
.pp-cbar.off .btn { opacity: .5; }

/* 权限选择弹层 */
.cmp-list { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.cmp-item {
  display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px;
  border: 1px solid #e6ecf5; border-radius: 11px; background: #fff; cursor: pointer;
}
.cmp-item.on { border-color: #3d7eff; background: #f5f9ff; }
.cmp-rd {
  width: 15px; height: 15px; flex: none; margin-top: 1px; border-radius: 50%;
  border: 1.5px solid #cbd5e4; position: relative;
}
.cmp-item.on .cmp-rd { border-color: #3d7eff; }
.cmp-item.on .cmp-rd::after {
  content: ''; position: absolute; left: 2.5px; top: 2.5px; width: 7px; height: 7px;
  border-radius: 50%; background: #3d7eff;
}
.cmp-tx { min-width: 0; }
.cmp-tx b { display: block; font-size: 12.5px; color: #1f2b3d; font-weight: 600; }
.cmp-tx span { display: block; margin-top: 2px; font-size: 10.5px; line-height: 1.55; color: #8b96a8; }

/* ================= 转发给好友 ================= */
.share-pre {
  display: flex; gap: 9px; padding: 10px 11px; margin-bottom: 11px;
  background: #f7f9fc; border-radius: 11px;
}
.share-pre .spg-tag {
  flex: none; width: 30px; height: 30px; border-radius: 8px;
  background: linear-gradient(135deg,#4a86ff,#2f6ae0); color: #fff;
  font-size: 11px; line-height: 30px; text-align: center; letter-spacing: .5px;
}
.share-pre .spg-main { min-width: 0; }
.share-pre .spg-t { display: block; font-size: 12px; color: #22303f; line-height: 1.5;
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.share-pre .spg-s { display: block; margin-top: 3px; font-size: 10px; color: #94a0b2; }

.share-find {
  display: flex; align-items: center; gap: 7px; padding: 8px 11px; margin-bottom: 8px;
  background: #f4f6fa; border-radius: 10px;
}
.share-find input {
  flex: 1; min-width: 0; border: 0; outline: 0; background: transparent;
  font-size: 12px; color: #22303f;
}
.share-frlist { max-height: 236px; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.share-fr {
  display: flex; align-items: center; gap: 9px; padding: 8px 6px; border-radius: 9px; cursor: pointer;
}
.share-fr:active { background: #f5f8fd; }
.share-fr.on { background: #eff5ff; }
.share-av { width: 32px; height: 32px; flex: none; border-radius: 50%; }
.share-nm { flex: 1; min-width: 0; font-size: 12.5px; color: #22303f;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.share-nm i { font-style: normal; font-size: 9.5px; color: #9aa6b8; margin-left: 4px; }
.share-ck {
  width: 17px; height: 17px; flex: none; border-radius: 5px;
  border: 1.5px solid #ccd6e4; position: relative;
}
.share-fr.on .share-ck { border-color: #3d7eff; background: #3d7eff; }
.share-fr.on .share-ck::after {
  content: '✓'; position: absolute; inset: 0; color: #fff; font-size: 11px; line-height: 15px; text-align: center;
}
.share-empty { padding: 18px 8px; text-align: center; font-size: 11.5px; color: #98a3b4; line-height: 1.7; }
.share-note { margin-top: 9px; }
.share-note input {
  width: 100%; box-sizing: border-box; padding: 9px 12px; border: 1px solid #e6ecf5;
  border-radius: 10px; font-size: 12px; color: #22303f; outline: 0; background: #fff;
}
.share-note input:focus { border-color: #9dbcf7; }
.share-foot { display: flex; gap: 8px; margin-top: 11px; }
.share-foot .btn { flex: 1; }
.share-cnt { font-size: 10px; color: #98a3b4; margin-right: auto; align-self: center; }

/* 私信里的转发卡片 */
.dm-card {
  display: flex; gap: 9px; padding: 10px 11px; max-width: 240px;
  background: #fff; border: 1px solid #e8eef7; border-radius: 12px;
  box-shadow: 0 2px 8px rgba(24,38,60,.05);
}
.dm-msg.mine .dm-card { background: rgba(255,255,255,.96); border-color: rgba(255,255,255,.6); }
.dm-card .dc-tag {
  flex: none; width: 28px; height: 28px; border-radius: 8px;
  background: #eef4ff; color: #2f6ae0; font-size: 10.5px; line-height: 28px; text-align: center;
}
.dm-card .dc-main { min-width: 0; }
.dm-card .dc-t { display: block; font-size: 12px; color: #22303f; line-height: 1.5;
  overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.dm-card .dc-s { display: block; margin-top: 3px; font-size: 9.5px; color: #94a0b2;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dm-card:active { transform: scale(.985); }

/* 弹层打开时收起发布悬浮按钮 */
body.layer-open .fab-post { display: none; }

/* ==========================================================
   论坛：小红书式两列瀑布流（发现页）
   ========================================================== */
.xf-page { padding: 0 12px 26px; }

/* 顶部沿用原来的深色 hero（法字水印 + 标题 + 今日数据），
   瀑布流只换下面的排版，头图不动 */
.xf-page .forum-hero { margin: 4px 0 12px; }
.fh-find {
  position: absolute; right: 12px; top: 12px; z-index: 2;
  width: 30px; height: 30px; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer;
  color: #fff; background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.14);
  transition: background .15s;
}
.fh-find svg { width: 16px; height: 16px; }
.fh-find:active { background: rgba(255,255,255,.24); }
.fh-find.on { background: rgba(206,168,80,.9); border-color: rgba(206,168,80,.9); color: #2a2010; }

/* 排序：居中文字 tab + 短下划线，字号比原来大一号，点着不费眼 */
.xf-tabs {
  display: flex; align-items: center; justify-content: center; gap: 38px;
  padding: 13px 0 17px;
}
.xf-tab {
  position: relative; padding: 2px 0; cursor: pointer;
  font-size: 15px; color: #8b96a8; letter-spacing: .5px; transition: color .15s;
}
.xf-tab.on { color: #16202f; font-weight: 800; font-size: 16.5px; }
.xf-tab.on::after {
  content: ''; position: absolute; left: 50%; bottom: -6px;
  width: 20px; height: 3px; margin-left: -10px; border-radius: 2px;
  background: #2f6ae0;
}
.xf-tab:active { opacity: .6; }

/* 两列容器：先网格排好量高度，再切成两列 */
.xf-flow { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; align-items: start; }
.xf-flow.done { display: flex; align-items: flex-start; gap: 8px; }
.xf-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 6px; }

.xf {
  position: relative; display: block;
  background: #fff; border-radius: 12px;
  box-shadow: 0 1px 3px rgba(23,38,66,.06), 0 5px 14px rgba(23,38,66,.05);
  cursor: pointer; -webkit-tap-highlight-color: transparent;
  transition: transform .12s ease, box-shadow .18s ease;
}
.xf:active { transform: scale(.985); box-shadow: 0 1px 2px rgba(23,38,66,.06); }

/* 封面：按图片真实比例预留高度，加载完不跳 */
.xf-cv {
  position: relative; width: 100%; overflow: hidden;
  aspect-ratio: var(--r, 1.333); max-height: 300px;
  border-radius: 12px 12px 0 0;
  background: #eef2f8;
}
.xf-cv img, .xf-cv video {
  width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block;
  background: #eef2f8;
}
.xf-play {
  position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; margin: -17px 0 0 -17px;
  border-radius: 50%; display: grid; place-items: center;
  background: rgba(15,23,42,.45); color: #fff; font-size: 12px; font-style: normal;
  padding-left: 2px; backdrop-filter: blur(3px);
}

/* 纯文字帖：浅蓝底 + 法字水印，高度跟着字数走 */
.xf-cv.txt {
  aspect-ratio: auto; min-height: 110px;
  padding: 13px 12px 15px;
  background: linear-gradient(158deg, #f8fbff 0%, #edf3fc 100%);
}
.xf-cv.txt.t1 { background: linear-gradient(158deg, #fdfcf8 0%, #f6f1e7 100%); }
.xf-cv.txt.t2 { background: linear-gradient(158deg, #f7fbf9 0%, #edf4f0 100%); }
.xf-big {
  width: 100%; padding-right: 20px; font-size: 15px; line-height: 1.72; font-weight: 600; color: #1f2a3c;
  word-break: break-word; white-space: pre-wrap;
  display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden;
}
.xf-seal {
  position: absolute; right: 5px; bottom: -3px; font-style: normal;
  font-size: 38px; line-height: 1; font-weight: 700; color: rgba(47,106,224,.07);
  pointer-events: none;
}

.xf-tag {
  position: absolute; left: 6px; bottom: 6px; z-index: 2;
  padding: 1px 5px; border-radius: 4px; font-style: normal; font-size: 9px;
  background: rgba(22,32,48,.55); color: #fff;
}
.xf-tag.pin { background: rgba(176,106,16,.88); }
.xf-tag.wait { background: rgba(47,106,224,.88); }
.xf-cnt {
  position: absolute; right: 6px; bottom: 6px; z-index: 2;
  padding: 1px 5px; border-radius: 4px; font-style: normal; font-size: 9px;
  background: rgba(22,32,48,.5); color: #fff;
}
.xf-more {
  position: absolute; right: 4px; top: 4px; z-index: 3;
  width: 20px; height: 20px; border-radius: 50%;
  display: grid; place-items: center;
  font-size: 12px; line-height: 1; letter-spacing: .5px; color: #fff;
  background: rgba(22,32,48,.22); backdrop-filter: blur(4px);
}
/* 带名次的文字卡：给左上角的徽标让出位置，别压在正文上 */
.xf.has-rank .xf-cv.txt { padding-top: 28px; }
.xf-more:active { background: rgba(22,32,48,.5); }

.xf-rank {
  position: absolute; left: 6px; top: 6px; z-index: 3;
  width: 18px; height: 18px; border-radius: 6px;
  display: grid; place-items: center;
  font-style: normal; font-size: 10.5px; font-weight: 800; color: #fff;
  background: rgba(22,32,48,.5); box-shadow: 0 2px 6px rgba(15,23,42,.16);
}
.xf-rank.r1 { background: linear-gradient(135deg, #f0b13c, #d98a1f); }
.xf-rank.r2 { background: linear-gradient(135deg, #9aa7b8, #76839a); }
.xf-rank.r3 { background: linear-gradient(135deg, #cf8d5a, #b06a38); }

.xf-bd { padding: 9px 11px 0; }
.xf-tx {
  font-size: 14px; line-height: 1.6; font-weight: 600; color: #1f2a3c;
  word-break: break-word;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.xf-qc {
  display: flex; align-items: center; gap: 4px;
  margin-top: 6px; padding: 4px 6px;
  background: #f2f7ff; border-radius: 6px;
  font-size: 10px; color: #4a6fa5;
}
.xf-qc i {
  flex: 0 0 auto; font-style: normal; padding: 0 3px; border-radius: 3px;
  background: #2f6ae0; color: #fff; font-size: 9px; line-height: 13px;
}
.xf-qc span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xf-qt {
  margin-top: 6px; padding: 5px 7px;
  background: #f6f8fb; border-radius: 6px;
  font-size: 10px; line-height: 1.5; color: #7b8698;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.xf-ft {
  display: flex; align-items: center; gap: 6px;
  padding: 10px 11px 11px; margin-top: 7px;
}
.xf-av { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 8px; overflow: hidden; }
.xf-av .av { width: 22px; height: 22px; font-size: 11px; }
.xf-nm {
  flex: 1 1 auto; min-width: 0;
  font-size: 12.5px; color: #76839a;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xf-me {
  margin-left: 3px; padding: 0 3px; border-radius: 3px;
  font-style: normal; font-size: 9px;
  color: #2f6ae0; border: 1px solid rgba(47,106,224,.3);
}
/* 赞 / 评：原来 10px 太小，一列 175px 也放得下 12.5px */
.xf-like, .xf-cm {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 3px;
  font-size: 13px; color: #8d99aa; white-space: nowrap;
}
.xf-like i, .xf-cm i { font-style: normal; font-size: 12.5px; line-height: 1; }
.xf-like b, .xf-cm b { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.xf-like.on { color: #d94a32; }
.xf-like:active, .xf-cm:active { opacity: .55; }

/* 菜单开着的时候要把整张卡抬起来，否则会被下一张卡盖住点不到 */
.xf.menu-open { z-index: 20; }
.xf-menu {
  position: absolute; right: 6px; top: 28px; z-index: 9; min-width: 96px;
  background: #fff; border: 1px solid #e6ebf3; border-radius: 9px; overflow: hidden;
  box-shadow: 0 10px 26px rgba(23,38,66,.16);
}
.xf-menu span { display: block; padding: 9px 13px; font-size: 11.5px; color: #3a4557; cursor: pointer; }
.xf-menu span:active { background: #f5f7fa; }

/* 骨架屏也按两列排，别一上来先闪一张大卡 */
.xf-skel-flow { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; align-items: start; }
.xf-skel { background: #fff; border-radius: 12px; overflow: hidden; padding-bottom: 10px;
  box-shadow: 0 1px 2px rgba(23,38,66,.05); }
.xf-skel-cv { background: #eef2f8; }
.xf-skel-cv.a { aspect-ratio: 4 / 3; }
.xf-skel-cv.b { aspect-ratio: 1; }
.xf-skel-l { height: 9px; margin: 8px 10px 0; border-radius: 5px; background: #eef2f8; }
.xf-skel-l.w35 { width: 35%; } .xf-skel-l.w40 { width: 40%; }
.xf-skel-l.w45 { width: 45%; } .xf-skel-l.w50 { width: 50%; }
.xf-skel-l.w60 { width: 60%; } .xf-skel-l.w70 { width: 70%; }
.xf-skel-l.w80 { width: 80%; }

/* 案件置顶角标（后台 pincase） */
.ci-pin {
  flex: 0 0 auto; padding: 1px 6px; border-radius: 5px;
  font-size: 10px; font-weight: 700; line-height: 16px;
  color: #b06a10; background: #fdf3e6; border: 1px solid rgba(176,106,16,.25);
}

/* 分区小标题压轻一点，别把瀑布流切断 */
.fm-sec {
  margin: 14px 2px 8px;
  font-size: 13px; font-weight: 700; color: #2b3a55;
  gap: 6px;
}
.fm-sec i { font-size: 9.5px; }
.fs-glyph { flex: 0 0 18px; width: 18px; height: 18px; border-radius: 6px; font-size: 10px; }


/* ==========================================================
   论坛搜索：放大镜开条 → 后端匹配正文与作者
   ========================================================== */
.xf-search {
  display: flex; align-items: center; gap: 8px;
  margin: -4px 0 12px; padding: 0 11px;
  height: 40px; border-radius: 12px;
  background: #fff; border: 1px solid #e3e9f3;
  box-shadow: 0 2px 8px rgba(23,38,66,.05);
}
.xf-search:focus-within { border-color: #b9cdf3; box-shadow: 0 2px 10px rgba(47,106,224,.12); }
.xs-ic { display: grid; place-items: center; width: 17px; height: 17px; color: #a3aebd; font-style: normal; flex: 0 0 auto; }
.xs-ic svg { width: 17px; height: 17px; }
.xf-search input {
  flex: 1 1 auto; min-width: 0; height: 100%;
  border: 0; outline: 0; background: transparent;
  font-size: 14px; color: #1a2230; font-family: inherit;
}
.xf-search input::placeholder { color: #b0bac8; font-size: 13.5px; }
.xf-search input::-webkit-search-cancel-button { display: none; }
.xs-x {
  flex: 0 0 auto; width: 18px; height: 18px; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer;
  background: #dfe5ef; color: #6b7789; font-size: 12px; line-height: 1;
}
.xs-cancel {
  flex: 0 0 auto; cursor: pointer; padding-left: 8px;
  font-size: 13.5px; color: #2f6ae0;
  border-left: 1px solid #eef1f6;
}

/* 搜索结果的头：比「今日热议」轻一点，别抢内容 */
.xf-secrow { display: flex; align-items: center; gap: 7px; margin: 2px 2px 9px; }
.xf-sec-t { font-size: 14px; font-weight: 700; color: #2b3a55; }
.xf-sec-n { font-size: 11px; color: #98a3b5; }
