/* 回响域 Echoverse 样式（阶段4 基础UI）
 * 依据 docs/回响域-echoverse-ui风格设计方案.md：
 *  - 极简主义为骨（布局/排版/留白）、玻璃拟态为肤（仅悬浮层）、新拟物为触（仅小控件）。
 *  - 全部设计 token 以 --ev- 为前缀，作用域限定 #rp-page-echoverse，不读 THEME，不污染既有页面。
 *  - 选择器统一 rp-ev- 前缀或 #rp-page-echoverse 作用域。
 */

/* ---------- 一、设计 token ---------- */
#rp-page-echoverse{
  /* 基底：黑白灰承担 95% */
  --ev-bg:#FAFAFB;
  --ev-surface:#FFFFFF;
  --ev-ink:#1A1A1A;
  --ev-ink-2:#6B7280;
  --ev-ink-3:#9CA3AF;
  --ev-hairline:rgba(26,26,26,0.08);
  --ev-neu-base:#E0E5EC;
  /* 点缀：雾霾蓝灰（莫兰迪） */
  --ev-accent:#8E9AAF;
  --ev-accent-ink:#5C6B82;
  --ev-accent-soft:rgba(142,154,175,0.12);
  --ev-danger:#C0717F;
  /* 舆论气候灰调色点 */
  --ev-climate-authentic:#8E9AAF;
  --ev-climate-warm:#B5A48E;
  --ev-climate-controversial:#C09A7A;
  --ev-climate-dark:#C0717F;
  --ev-climate-silent:#9CA3AF;
  /* 字体阶梯 */
  --ev-fs-display:22px/1.3;
  --ev-fs-title:16px/1.4;
  --ev-fs-body:15px/1.65;
  --ev-fs-meta:13px/1.4;
  --ev-fs-caption:12px/1.4;
  /* 形状 / 阴影 / 间距 */
  --ev-radius:14px;
  --ev-radius-btn:10px;
  --ev-radius-pill:999px;
  --ev-shadow-float:0 8px 32px rgba(26,26,26,0.10);
  --ev-neu-out:8px 8px 16px rgba(163,177,198,0.5),-8px -8px 16px rgba(255,255,255,0.95);
  --ev-neu-in:inset 6px 6px 12px rgba(163,177,198,0.45),inset -6px -6px 12px rgba(255,255,255,0.95);
  /* 新拟物软凸渐变（145° 高光，模拟参考图的"挤出"体积感） */
  --ev-neu-grad:linear-gradient(145deg,#f3f5f9,#dde2ea);
  /* 玻璃层规范 */
  --ev-glass-bg:rgba(255,255,255,0.72);
  --ev-glass-border:rgba(255,255,255,0.65);

  position:absolute;
  inset:0;
  background:var(--ev-bg);
  color:var(--ev-ink);
  font:var(--ev-fs-body);
  font-family:'Inter','Noto Sans SC',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  overflow:hidden;
  z-index:5;
}
#rp-page-echoverse *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
#rp-page-echoverse button{font-family:inherit;border:none;background:none;color:inherit;cursor:pointer;padding:0;}
#rp-page-echoverse input,#rp-page-echoverse textarea{font-family:inherit;color:var(--ev-ink);}

/* ---------- 二、极光背景区（玻璃拟态成立条件：静态、极低饱和） ---------- */
.rp-ev-aurora{
  position:absolute;top:0;left:0;right:0;height:220px;pointer-events:none;z-index:0;
  background:
    radial-gradient(60% 80% at 15% 0%,rgba(142,154,175,0.16),transparent 70%),
    radial-gradient(50% 70% at 85% 10%,rgba(192,113,127,0.10),transparent 70%),
    radial-gradient(70% 90% at 55% 0%,rgba(142,108,175,0.12),transparent 75%);
}

/* ---------- 三、玻璃导航栏（悬浮层） ---------- */
.rp-ev-nav{
  position:absolute;top:0;left:0;right:0;z-index:20;
  display:flex;align-items:center;gap:8px;
  padding:10px 14px calc(10px + env(safe-area-inset-top,0px));
  padding-top:calc(10px + env(safe-area-inset-top,0px));
  background:var(--ev-glass-bg);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  backdrop-filter:blur(16px) saturate(1.2);
  border-bottom:1px solid var(--ev-glass-border);
  transition:background 200ms ease-out,border-color 200ms ease-out;
}
/* 滚动阈值实色降级（低端机 backdrop-filter 掉帧；JS 单次判定加 .is-solid） */
.rp-ev-nav.is-solid{
  background:var(--ev-bg);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  border-bottom:1px solid var(--ev-hairline);
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .rp-ev-nav,.rp-ev-newbanner,.rp-ev-fab{background:var(--ev-bg);}
}
.rp-ev-nav-back{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--ev-radius-pill);color:var(--ev-ink-2);}
.rp-ev-nav-back:active{transform:scale(0.96);background:var(--ev-accent-soft);}
.rp-ev-nav-title{font:var(--ev-fs-title);font-weight:600;flex:0 0 auto;}
.rp-ev-nav-clock{
  font:var(--ev-fs-meta);color:var(--ev-ink-2);margin-left:auto;
  font-variant-numeric:tabular-nums;white-space:nowrap;
  display:flex;align-items:center;gap:4px;
}
.rp-ev-nav-iconbtn{
  position:relative;display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:var(--ev-radius-pill);color:var(--ev-ink-2);
  transition:background 150ms ease-out;
}
.rp-ev-nav-iconbtn:active{transform:scale(0.96);background:var(--ev-accent-soft);}
.rp-ev-reddot{
  position:absolute;top:5px;right:5px;min-width:8px;height:8px;border-radius:var(--ev-radius-pill);
  background:var(--ev-danger);
}
.rp-ev-reddot[data-count]{min-width:16px;padding:0 4px;font-size:10px;line-height:16px;text-align:center;color:#fff;height:16px;top:2px;right:0;}
.rp-ev-mask-chip{
  display:flex;align-items:center;gap:6px;max-width:140px;min-height:36px;box-sizing:border-box;
  padding:7px 14px;border-radius:14px;
  background:var(--ev-neu-base);box-shadow:var(--ev-neu-out);
  font:var(--ev-fs-caption);color:var(--ev-ink-2);
  transition:transform 120ms ease-out;
}
.rp-ev-mask-chip:active{transform:scale(0.96);box-shadow:var(--ev-neu-in);}
.rp-ev-mask-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rp-ev-mask-menu{
  position:absolute;top:calc(54px + env(safe-area-inset-top,0px));left:14px;z-index:30;
  min-width:180px;max-height:50vh;overflow-y:auto;
  background:var(--ev-glass-bg);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--ev-glass-border);border-radius:var(--ev-radius);
  box-shadow:var(--ev-shadow-float);padding:6px;
}
.rp-ev-mask-menu button{
  display:block;width:100%;text-align:left;padding:10px 12px;border-radius:var(--ev-radius-btn);
  font:var(--ev-fs-body);color:var(--ev-ink);
}
.rp-ev-mask-menu button:active{background:var(--ev-accent-soft);}
.rp-ev-mask-menu button.is-active{color:var(--ev-accent-ink);background:var(--ev-accent-soft);}

/* ---------- 四、滚动区骨架 ---------- */
.rp-ev-scroll{
  position:absolute;inset:0;z-index:1;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:calc(64px + env(safe-area-inset-top,0px)) 14px calc(90px + env(safe-area-inset-bottom,0px));
  overscroll-behavior:contain;
}

/* ---------- 五、"有 N 条新回响 / 新回声"玻璃横幅（不抢滚动位置） ---------- */
.rp-ev-newbanner{
  position:absolute;top:calc(60px + env(safe-area-inset-top,0px));left:50%;z-index:25;
  transform:translate(-50%,-140%);
  padding:9px 18px;border-radius:var(--ev-radius-pill);
  background:var(--ev-glass-bg);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--ev-glass-border);
  box-shadow:var(--ev-shadow-float);
  font:var(--ev-fs-meta);color:var(--ev-accent-ink);white-space:nowrap;
  transition:transform 300ms ease-out;
}
.rp-ev-newbanner.is-show{transform:translate(-50%,0);}
.rp-ev-newbanner:active{transform:translate(-50%,0) scale(0.96);}

/* ---------- 六、回响流卡片（极简：白底 + 发丝边框，无阴影，禁玻璃） ---------- */
.rp-ev-feed{display:flex;flex-direction:column;gap:12px;position:relative;z-index:1;}
.rp-ev-card{
  background:var(--ev-surface);
  border:1px solid var(--ev-hairline);
  border-radius:var(--ev-radius);
  padding:16px;
  transition:background 200ms ease-out;
}
.rp-ev-card:active{background:#F5F6F8;}
.rp-ev-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.rp-ev-avatar{
  width:40px;height:40px;border-radius:var(--ev-radius-pill);flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font:var(--ev-fs-title);font-weight:600;
  background:var(--ev-accent);
}
.rp-ev-avatar[data-shape="square"]{border-radius:var(--ev-radius-btn);}
.rp-ev-avatar[data-shape="hex"]{border-radius:30%;}
.rp-ev-avatar[data-shape="ring"]{background:transparent;border:3px solid var(--ev-accent);color:var(--ev-accent-ink);}
.rp-ev-card-author{font:var(--ev-fs-title);font-weight:600;}
.rp-ev-card-meta{font:var(--ev-fs-meta);color:var(--ev-ink-2);font-variant-numeric:tabular-nums;}
.rp-ev-card-src{font:var(--ev-fs-caption);color:var(--ev-ink-3);}
.rp-ev-card-text{font:var(--ev-fs-body);white-space:pre-wrap;word-break:break-word;}
.rp-ev-quote{
  margin-top:8px;padding:10px 12px;border-left:2px solid var(--ev-accent);
  background:var(--ev-accent-soft);border-radius:0 var(--ev-radius-btn) var(--ev-radius-btn) 0;
  font:var(--ev-fs-meta);color:var(--ev-ink-2);
}
/* 图片占位框：浅灰底 + 斜体描述 + 右上角小标（明确是占位而非加载失败） */
.rp-ev-placeholder{
  position:relative;margin-top:8px;min-height:120px;border-radius:var(--ev-radius-btn);
  background:#F0F1F4;border:1px dashed var(--ev-hairline);
  display:flex;align-items:center;justify-content:center;padding:20px 16px;
}
.rp-ev-placeholder p{font:var(--ev-fs-meta);font-style:italic;color:var(--ev-ink-2);text-align:center;margin:0;}
.rp-ev-placeholder-tag{
  position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:var(--ev-radius-pill);
  background:var(--ev-accent-soft);color:var(--ev-accent-ink);font:var(--ev-fs-caption);
}
.rp-ev-imagebox{
  margin-top:8px;border-radius:var(--ev-radius-btn);overflow:hidden;background:#F0F1F4;
  display:flex;align-items:center;justify-content:center;min-height:140px;
}
.rp-ev-imagebox img{display:block;width:100%;height:auto;}
/* 语音条：全场唯一允许成对新拟物（凹入槽 + 凸起播放钮） */
.rp-ev-voice{
  margin-top:8px;display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:var(--ev-radius-pill);
  background:var(--ev-neu-base);box-shadow:var(--ev-neu-in);
}
.rp-ev-voice-play{
  width:40px;height:40px;border-radius:var(--ev-radius-pill);flex:0 0 auto;
  background:var(--ev-neu-base);box-shadow:var(--ev-neu-out);
  display:flex;align-items:center;justify-content:center;color:var(--ev-accent-ink);
  transition:transform 120ms ease-out;
}
.rp-ev-voice-play:active{transform:scale(0.92);box-shadow:var(--ev-neu-in);}
.rp-ev-voice-bars{display:flex;align-items:center;gap:3px;flex:0 0 auto;}
.rp-ev-voice-bars i{display:block;width:3px;border-radius:2px;background:var(--ev-accent);}
.rp-ev-voice-text{font:var(--ev-fs-meta);color:var(--ev-ink-2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* 互评摘要（A.4：按需模式只显示摘要与数字） */
.rp-ev-crossline{
  margin-top:8px;font:var(--ev-fs-caption);color:var(--ev-ink-3);
  display:flex;align-items:center;gap:6px;
}
/* 互动行：手写 SVG 描边图标 18px + tabular-nums 数字 */
.rp-ev-actions{display:flex;align-items:center;gap:24px;margin-top:12px;color:var(--ev-ink-2);}
.rp-ev-act{display:flex;align-items:center;gap:5px;font:var(--ev-fs-meta);font-variant-numeric:tabular-nums;transition:color 150ms ease-out,transform 120ms ease-out;}
.rp-ev-act:active{transform:scale(0.96);}
.rp-ev-act svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.rp-ev-act.is-on{color:var(--ev-accent-ink);}
.rp-ev-act.is-on svg{fill:var(--ev-accent-soft);}
.rp-ev-act.is-liked{color:var(--ev-accent-ink);}
.rp-ev-act.is-liked svg{fill:var(--ev-accent);stroke:var(--ev-accent);}
.rp-ev-nav svg,.rp-ev-fab svg,.rp-ev-empty svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.rp-ev-ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;}
.rp-ev-ic-20{width:20px;height:20px;}

/* 数字变化 200ms 颜色闪染 */
@keyframes rp-ev-flash{0%{color:var(--ev-accent-ink);}100%{color:inherit;}}
.rp-ev-flash{animation:rp-ev-flash 200ms ease-out;}
/* 点赞：全场唯一的弹性回弹 */
@keyframes rp-ev-like-pop{0%{transform:scale(1);}40%{transform:scale(1.25);}100%{transform:scale(1);}}
.rp-ev-like-pop{animation:rp-ev-like-pop 300ms ease-out;}

/* 滚动触发动画（仅用户主动加载的内容；自动插入内容只用 .rp-ev-fadein） */
@keyframes rp-ev-card-in{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.rp-ev-card-in{animation:rp-ev-card-in 400ms ease-out both;}
@keyframes rp-ev-fadein{from{opacity:0;}to{opacity:1;}}
.rp-ev-fadein{animation:rp-ev-fadein 200ms ease-out both;}

/* ---------- 七、骨架屏（与卡片共用网格，防 CLS） ---------- */
.rp-ev-skel-card{
  background:var(--ev-surface);border:1px solid var(--ev-hairline);
  border-radius:var(--ev-radius);padding:16px;
}
.rp-ev-skel{position:relative;overflow:hidden;background:#ECEDF1;border-radius:6px;}
.rp-ev-skel::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.7),transparent);
  animation:rp-ev-breathe 1.4s ease-in-out infinite;
  transform:translateX(-100%);
}
@keyframes rp-ev-breathe{0%{transform:translateX(-100%);}100%{transform:translateX(100%);}}
.rp-ev-skel-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.rp-ev-skel-avatar{width:40px;height:40px;border-radius:var(--ev-radius-pill);}
.rp-ev-skel-line{height:12px;margin-bottom:8px;}
.rp-ev-skel-w40{width:40%;}.rp-ev-skel-w70{width:70%;}.rp-ev-skel-w90{width:90%;}

/* ---------- 八、加载中：编织母题（三条线交织成结再散开） ---------- */
.rp-ev-weave{display:flex;align-items:center;justify-content:center;gap:4px;height:28px;}
.rp-ev-weave i{
  display:block;width:2px;height:20px;border-radius:2px;background:var(--ev-accent);
  animation:rp-ev-weave 1.2s ease-in-out infinite;
}
.rp-ev-weave i:nth-child(2){animation-delay:0.15s;}
.rp-ev-weave i:nth-child(3){animation-delay:0.3s;}
@keyframes rp-ev-weave{
  0%,100%{transform:scaleY(0.4) translateY(0);opacity:0.5;}
  50%{transform:scaleY(1) translateY(0);opacity:1;}
}

/* ---------- 九、发布器（整页转场进入，输入区无框只有底部发丝线） ---------- */
.rp-ev-composer-wrap{display:flex;flex-direction:column;gap:16px;position:relative;z-index:1;}
.rp-ev-composer-input{
  width:100%;min-height:140px;resize:none;border:none;outline:none;background:transparent;
  font:var(--ev-fs-body);line-height:1.65;
  border-bottom:1px solid var(--ev-hairline);
  padding:8px 2px 12px;
  transition:border-color 200ms ease-out;
}
.rp-ev-composer-input:focus{border-bottom-color:var(--ev-accent);}
.rp-ev-composer-input::placeholder{color:var(--ev-ink-3);}
/* 选项组：新拟物分段控件（凹入轨道 + 选中项凸起滑块，参照新拟物参考图） */
.rp-ev-chips{
  display:flex;flex-wrap:wrap;gap:6px;padding:6px;
  background:var(--ev-neu-base);box-shadow:var(--ev-neu-in);
  border-radius:calc(var(--ev-radius) + 10px);
}
.rp-ev-chip{
  display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;box-sizing:border-box;
  padding:9px 18px;border-radius:16px;
  background:transparent;box-shadow:none;
  font:var(--ev-fs-meta);color:var(--ev-ink-2);
  transition:transform 120ms ease-out,box-shadow 150ms ease-out,color 150ms ease-out,background 150ms ease-out;
}
.rp-ev-chip:active{transform:scale(0.96);}
.rp-ev-chip.is-on{
  background:var(--ev-neu-grad);box-shadow:var(--ev-neu-out);
  color:var(--ev-accent-ink);font-weight:600;
}
.rp-ev-chip.is-disabled{opacity:0.45;pointer-events:none;}
.rp-ev-climate-dot{width:8px;height:8px;border-radius:var(--ev-radius-pill);flex:0 0 auto;}
.rp-ev-composer-extra{
  border:1px solid var(--ev-hairline);border-radius:var(--ev-radius);
  background:var(--ev-surface);padding:14px;
}
.rp-ev-composer-extra input[type=text]{
  width:100%;border:none;outline:none;background:transparent;
  font:var(--ev-fs-body);border-bottom:1px solid var(--ev-hairline);padding:6px 2px 10px;
}
.rp-ev-composer-extra input[type=text]:focus{border-bottom-color:var(--ev-accent);}
.rp-ev-filebtn{
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  min-height:120px;border-radius:var(--ev-radius-btn);
  border:1px dashed var(--ev-hairline);color:var(--ev-ink-3);font:var(--ev-fs-meta);
}
.rp-ev-publish{
  width:100%;padding:13px;border-radius:var(--ev-radius-btn);
  background:var(--ev-accent);color:#fff;font:var(--ev-fs-title);font-weight:600;
  transition:transform 120ms ease-out,opacity 150ms ease-out;
}
.rp-ev-publish:active{transform:scale(0.97);}
.rp-ev-publish.is-disabled{opacity:0.45;pointer-events:none;}
.rp-ev-genbar{
  display:flex;flex-direction:column;gap:10px;
  border:1px solid var(--ev-hairline);border-radius:var(--ev-radius);
  background:var(--ev-surface);padding:14px;
}
.rp-ev-genbar p{margin:0;font:var(--ev-fs-meta);color:var(--ev-ink-2);}
.rp-ev-btn-ghost{
  padding:10px 16px;border-radius:var(--ev-radius-btn);
  border:1px solid var(--ev-hairline);color:var(--ev-accent-ink);
  font:var(--ev-fs-meta);transition:transform 120ms ease-out;
}
.rp-ev-btn-ghost:active{transform:scale(0.96);background:var(--ev-accent-soft);}
.rp-ev-btn-ghost.is-disabled{opacity:0.45;pointer-events:none;}

/* ---------- 十、详情页：评论树（楼中楼限 2 层，更深折叠） ---------- */
.rp-ev-detail-sec{
  margin-top:16px;background:var(--ev-surface);
  border:1px solid var(--ev-hairline);border-radius:var(--ev-radius);padding:16px;
}
.rp-ev-detail-sec h3{margin:0 0 12px;font:var(--ev-fs-title);font-weight:600;}
.rp-ev-stats-row{display:flex;gap:20px;font:var(--ev-fs-meta);color:var(--ev-ink-2);font-variant-numeric:tabular-nums;}
.rp-ev-comment{padding:12px 0;border-top:1px solid var(--ev-hairline);}
.rp-ev-comment:first-of-type{border-top:none;}
.rp-ev-comment-head{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.rp-ev-comment .rp-ev-avatar{width:28px;height:28px;font:var(--ev-fs-meta);}
.rp-ev-comment-author{font:var(--ev-fs-meta);font-weight:600;}
.rp-ev-comment-time{font:var(--ev-fs-caption);color:var(--ev-ink-3);font-variant-numeric:tabular-nums;}
.rp-ev-comment-text{font:var(--ev-fs-body);white-space:pre-wrap;word-break:break-word;}
.rp-ev-comment-stance{
  display:inline-block;margin-left:6px;padding:1px 8px;border-radius:var(--ev-radius-pill);
  background:var(--ev-accent-soft);color:var(--ev-accent-ink);font:var(--ev-fs-caption);
}
.rp-ev-comment-l2{margin-left:36px;padding-left:12px;border-left:1px solid var(--ev-hairline);}
.rp-ev-fold{
  margin:8px 0 0 36px;font:var(--ev-fs-meta);color:var(--ev-accent-ink);
  transition:transform 120ms ease-out;
}
.rp-ev-fold:active{transform:scale(0.96);}
.rp-ev-footprint{
  display:flex;align-items:center;gap:8px;padding:8px 0;
  font:var(--ev-fs-meta);color:var(--ev-ink-2);border-top:1px solid var(--ev-hairline);
}
.rp-ev-footprint:first-of-type{border-top:none;}
.rp-ev-danger-btn{color:var(--ev-danger);}
.rp-ev-detail-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;}

/* ---------- 十一、回声页 ---------- */
.rp-ev-echo-item{
  display:flex;gap:12px;padding:14px 16px;
  background:var(--ev-surface);border:1px solid var(--ev-hairline);border-radius:var(--ev-radius);
}
.rp-ev-echo-item.is-unread{border-left:3px solid var(--ev-accent);}
.rp-ev-echo-ic{
  width:34px;height:34px;border-radius:var(--ev-radius-pill);flex:0 0 auto;
  background:var(--ev-accent-soft);color:var(--ev-accent-ink);
  display:flex;align-items:center;justify-content:center;
}
.rp-ev-echo-body{flex:1;min-width:0;}
.rp-ev-echo-text{font:var(--ev-fs-body);}
.rp-ev-echo-tag{margin:0 6px;padding:1px 7px;border-radius:8px;background:var(--ev-accent-soft);color:var(--ev-accent-ink);font:var(--ev-fs-caption);vertical-align:1px;}
.rp-ev-echo-meta{font:var(--ev-fs-caption);color:var(--ev-ink-3);margin-top:4px;font-variant-numeric:tabular-nums;}
.rp-ev-echo-quote{
  margin-top:6px;padding:6px 10px;border-left:2px solid var(--ev-hairline);
  font:var(--ev-fs-meta);color:var(--ev-ink-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* ---------- 十二、设置页（新拟物主秀场） ---------- */
.rp-ev-set-sec{
  background:var(--ev-surface);border:1px solid var(--ev-hairline);
  border-radius:var(--ev-radius);padding:16px;margin-bottom:14px;
  position:relative;z-index:1;
}
.rp-ev-set-sec h3{margin:0 0 4px;font:var(--ev-fs-title);font-weight:600;}
.rp-ev-set-desc{margin:0 0 12px;font:var(--ev-fs-caption);color:var(--ev-ink-3);}
.rp-ev-set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--ev-hairline);}
.rp-ev-set-row:first-of-type{border-top:none;}
.rp-ev-set-label{font:var(--ev-fs-body);}
.rp-ev-set-value{font:var(--ev-fs-meta);color:var(--ev-ink-2);font-variant-numeric:tabular-nums;text-align:right;}
/* 新拟物开关 */
.rp-ev-switch{
  position:relative;width:52px;height:30px;border-radius:var(--ev-radius-pill);flex:0 0 auto;
  background:var(--ev-neu-base);box-shadow:var(--ev-neu-in);
  transition:background 200ms ease-out;
}
.rp-ev-switch::after{
  content:'';position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:var(--ev-radius-pill);
  background:var(--ev-neu-base);box-shadow:var(--ev-neu-out);
  transition:transform 200ms ease-out;
}
.rp-ev-switch.is-on{background:var(--ev-accent);}
.rp-ev-switch.is-on::after{transform:translateX(22px);}

/* ---------- 十三、发布入口 FAB（玻璃悬浮） ---------- */
.rp-ev-fab{
  position:absolute;right:16px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:22;
  width:54px;height:54px;border-radius:var(--ev-radius-pill);
  background:var(--ev-glass-bg);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--ev-glass-border);
  box-shadow:var(--ev-shadow-float);
  display:flex;align-items:center;justify-content:center;color:var(--ev-accent-ink);
  transition:transform 150ms ease-out;
}
.rp-ev-fab:active{transform:scale(0.92);}

/* ---------- 十四、空态 / 加载更多 ---------- */
.rp-ev-empty{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:48px 20px;color:var(--ev-ink-3);text-align:center;
  position:relative;z-index:1;
}
.rp-ev-empty svg{width:40px;height:40px;}
.rp-ev-empty p{margin:0;font:var(--ev-fs-meta);}
.rp-ev-loadmore{
  align-self:center;margin:4px auto 0;padding:12px 28px;border-radius:16px;
  display:flex;align-items:center;min-height:44px;box-sizing:border-box;
  background:var(--ev-neu-base);box-shadow:var(--ev-neu-out);
  font:var(--ev-fs-meta);color:var(--ev-ink-2);
  transition:transform 120ms ease-out;
}
.rp-ev-loadmore:active{transform:scale(0.96);box-shadow:var(--ev-neu-in);}
.rp-ev-feed-end{align-self:center;font:var(--ev-fs-caption);color:var(--ev-ink-3);padding:8px 0 4px;text-align:center;}

/* ---------- 十五、页面转场（fade + 12px 上移；转场期间 .is-transiting 锁导航） ---------- */
@keyframes rp-ev-view-in{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.rp-ev-view{animation:rp-ev-view-in 320ms ease-out both;}
#rp-page-echoverse.is-transiting{pointer-events:none;}

/* ---------- 十六、prefers-reduced-motion：全部动效降级为 100ms 淡入 ---------- */
@media (prefers-reduced-motion:reduce){
  #rp-page-echoverse *,#rp-page-echoverse *::before,#rp-page-echoverse *::after{
    animation-duration:100ms !important;
    animation-iteration-count:1 !important;
    transition-duration:100ms !important;
  }
  .rp-ev-card-in,.rp-ev-view{animation-name:rp-ev-fadein !important;}
  .rp-ev-newbanner{transition:none;}
}

/* ---------- 十七、返回键导航锚点与确认模态 ----------
 * 视图标记元素：零尺寸占位，仅供 navigation 可见性判定（display 非 none 即视为可见层）。
 * 确认模态：删除回响/深描、导入全量替换的二次确认；注册进 popup 历史，返回键先关模态。 */
.rp-ev-view-marker{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;}
.rp-ev-modal{
  position:absolute;inset:0;z-index:40;
  align-items:center;justify-content:center;
  background:rgba(26,26,26,0.28);
}
.rp-ev-modal-card{
  width:min(320px,86%);
  background:var(--ev-glass-bg);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--ev-glass-border);border-radius:var(--ev-radius);
  box-shadow:var(--ev-shadow-float);padding:18px 16px;
}
.rp-ev-modal-text{margin:0 0 14px;font:var(--ev-fs-body);color:var(--ev-ink);line-height:1.6;}
.rp-ev-modal-btns{display:flex;justify-content:flex-end;gap:10px;}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .rp-ev-modal-card{background:var(--ev-surface);}
}
