.page {
  background: var(--bg);
  min-height: 100vh;
  font-family: 'Noto Sans SC', 'PingFang SC', sans-serif;
}

/* ── 阅读进度条 ── */
.progress {
  height: 0.533vw;
  background: var(--line);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
}
.progress-fill {
  height: 100%;
  background: var(--aha-bright);
  transition: width 0.15s linear;
}

/* ── 导航栏（fixed，随滚动隐藏/显示）── */
.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 13.333vw;
  padding: 0 3.733vw;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 900;
  background: var(--bg);
  transition: transform 0.28s ease;
}
.navbar.nav-hidden {
  transform: translateY(-100%);
}
.page.dk .navbar { background: #131312; }

/* 顶栏占位（navbar fixed 后保持内容起始位置）*/
.nav-spacer {
  height: 13.333vw;
}

.icon-btn {
  width: 10.133vw;
  height: 10.133vw;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.back-arrow {
  width: 5.867vw;
  height: 5.867vw;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B1B1A' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* 金色分享图标（设计图：navbar 右侧替代 more-dots） */
.share-icon-nav {
  width: 5.6vw;
  height: 5.6vw;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D99A2B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8'/%3E%3Cpolyline points='16 6 12 2 8 6'/%3E%3Cline x1='12' y1='2' x2='12' y2='15'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.nav-r {
  display: flex;
  align-items: center;
  gap: 0.533vw;
}

.aa {
  font-family: 'Noto Serif SC', serif;
  font-weight: 600;
  font-size: 4.533vw;
  color: var(--ink);
  line-height: 1;
}
.aa-small { font-size: 3.2vw; }

.more-dots {
  display: flex;
  gap: 0.933vw;
}
.more-dots view {
  width: 0.933vw;
  height: 0.933vw;
  border-radius: 50%;
  background: var(--ink);
}

/* ── 文章主体区域 ── */
.art {
  padding: 5.867vw 7.467vw 0;
}

/* 类型标签行 */
.ctop {
  display: flex;
  align-items: center;
  gap: 2.4vw;
  margin-bottom: 0;
}

.ptype {
  font-size: 2.933vw;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 0.8vw 2.133vw;
  border-radius: 1.067vw;
}
.deep-tag  { color: var(--aha);  background: var(--aha-ghost);  }
.news-tag  { color: var(--info); background: var(--info-ghost); }
.note-tag  { color: var(--sub);  background: var(--line-soft);  letter-spacing: 0.14em; }
.long-tag  { color: var(--aha);  background: var(--aha-ghost);  }

.topics {
  font-size: 3.2vw;
  font-weight: 500;
  color: var(--meta);
  letter-spacing: 0.02em;
}

/* 文章标题 */
.atitle {
  font-family: 'Noto Serif SC', 'STSong', Georgia, serif;
  font-weight: 700;
  font-size: 7.2vw;
  line-height: 1.5;
  letter-spacing: 0.01em;
  color: var(--ink);
  margin: 4.267vw 0 5.867vw;
}

/* 作者行 */
.author {
  display: flex;
  align-items: center;
  gap: 3.2vw;
}

.avatar {
  width: 11.2vw;
  height: 11.2vw;
  border-radius: 50%;
  background: var(--avatar);
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}

.au-name {
  display: flex;
  align-items: center;
  gap: 1.867vw;
  font-size: 3.733vw;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
}

.vdot {
  width: 1.6vw;
  height: 1.6vw;
  border-radius: 50%;
  background: var(--aha-bright);
  box-shadow: 0 0 2.133vw 0.267vw var(--aha-ghost);
  flex-shrink: 0;
}

.au-meta {
  font-size: 3.2vw;
  color: var(--meta);
  margin-top: 0.8vw;
  letter-spacing: 0.01em;
}

.follow {
  margin-left: auto;
  font-size: 3.467vw;
  font-weight: 600;
  color: var(--aha);
  border: 0.267vw solid var(--aha);
  padding: 1.6vw 4.267vw;
  border-radius: 4.267vw;
  flex-shrink: 0;
}

/* 分隔线 */
.rule {
  height: 0.133vw;
  background: var(--line);
  margin: 5.867vw 0 1.067vw;
}

/* ── 音频播放器 ── */
.player {
  display: flex;
  flex-direction: column;
  gap: 3.467vw;
  padding: 4vw 4.267vw;
  margin: 4.8vw 0 6.4vw;
  background: var(--surface);
  border: 0.133vw solid var(--line);
  border-radius: 4.267vw;
}

.player-top {
  display: flex;
  align-items: center;
  gap: 3.467vw;
}

.play-btn {
  width: 12.267vw;
  height: 12.267vw;
  border-radius: 50%;
  background: var(--aha-bright);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2.133vw 5.333vw -2.133vw var(--aha-bright);
  flex-shrink: 0;
}

/* loading 转圈 */
.loading-ring {
  width: 4.8vw;
  height: 4.8vw;
  border: 0.667vw solid rgba(27,27,26,.2);
  border-top-color: #1B1B1A;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

.play-icon-triangle {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 2vw 0 2vw 3.467vw;
  border-color: transparent transparent transparent #1B1B1A;
  margin-left: 0.8vw;
}

.pause-icon {
  display: flex;
  gap: 1.067vw;
}
.pause-bar {
  width: 0.933vw;
  height: 3.733vw;
  background: #1B1B1A;
  border-radius: 0.533vw;
}

.player-lab {
  flex: 1;
  min-width: 0;
}

.player-t {
  font-size: 3.6vw;
  font-weight: 600;
  color: var(--ink);
}

.player-s {
  font-size: 3.067vw;
  color: var(--meta);
  margin-top: 0.8vw;
  letter-spacing: 0.01em;
}

/* 速度选择器 */
.speeds {
  display: flex;
  gap: 0.533vw;
  background: var(--line-soft);
  border-radius: 2.667vw;
  padding: 0.8vw;
  flex-shrink: 0;
}

.speed-btn {
  font-size: 3.067vw;
  font-weight: 600;
  padding: 1.067vw 2.133vw;
  border-radius: 1.867vw;
  color: var(--sub);
  letter-spacing: 0.01em;
}

.speed-btn.on {
  background: var(--bg);
  color: var(--aha);
  box-shadow: 0 0.267vw 0.533vw rgba(0,0,0,.06);
}

/* 进度轨道 */
.atrack {
  height: 1.067vw;
  border-radius: 0.533vw;
  background: var(--line);
  position: relative;
}

.atrack-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  background: var(--aha-bright);
  border-radius: 0.533vw;
  transition: width 0.5s linear;
}

.atrack-thumb {
  position: absolute;
  top: 50%;
  width: 2.933vw;
  height: 2.933vw;
  border-radius: 50%;
  background: var(--aha-bright);
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 0.8vw var(--surface);
  transition: left 0.5s linear;
}

.atimes {
  display: flex;
  justify-content: space-between;
  font-size: 2.933vw;
  color: var(--meta);
  font-family: 'Newsreader', Georgia, serif;
  letter-spacing: 0.04em;
}

/* ── 正文 ── */
.body {
  padding-top: 0.533vw;
}

.body-p {
  display: block;
  font-family: 'Noto Serif SC', 'STSong', Georgia, serif;
  font-weight: 400;
  font-size: 4.8vw;
  line-height: 2.0;
  letter-spacing: 0.015em;
  color: var(--body);
  margin: 0 0 2.5em;
  text-align: left;
}

.body-p.lead {
  color: var(--ink);
}

.body-h2 {
  font-family: 'Noto Serif SC', 'STSong', Georgia, serif;
  font-weight: 700;
  font-size: 5.333vw;
  line-height: 1.5;
  letter-spacing: 0.01em;
  color: var(--ink);
  margin: 3em 0 1em;
}

/* 观点高亮块 · 核心判断 callout（设计稿 .op） */
.op {
  margin: 8vw 0;
  padding: 5.333vw 5.867vw;
  border-radius: 3.733vw;
  background: var(--aha-ghost);
  border-left: 0.8vw solid var(--aha-bright);
}

.op-k {
  display: flex;
  align-items: center;
  gap: 1.867vw;
  font-size: 2.933vw;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--aha);
  margin-bottom: 3.2vw;
}

.op-dot {
  width: 1.6vw;
  height: 1.6vw;
  border-radius: 50%;
  background: var(--aha-bright);
}

.op-t {
  font-family: 'Noto Serif SC', 'STSong', Georgia, serif;
  font-weight: 500;
  font-size: 4.933vw;
  line-height: 1.85;
  letter-spacing: 0.015em;
  color: var(--ink);
}

.body-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.133vw;
  margin: 10.667vw 0;
}

.divider-dot {
  width: 1.067vw;
  height: 1.067vw;
  border-radius: 50%;
  background: var(--meta);
  opacity: 0.4;
}

.art-end {
  text-align: center;
  color: var(--meta);
  font-size: 3.2vw;
  padding: 10.667vw 0 8vw;
  letter-spacing: 0.8vw;
}

/* ── 付费墙 ── */
.lockwrap {
  position: relative;
}

.lockfade {
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 30%, rgba(0,0,0,.6) 55%, rgba(0,0,0,.1) 78%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 30%, rgba(0,0,0,.6) 55%, rgba(0,0,0,.1) 78%, transparent 100%);
}

.paywall {
  margin: -14.933vw -7.467vw 0;
  padding: 8vw 7.467vw 8vw;
  background: var(--surface);
  border-radius: 5.867vw 5.867vw 0 0;
  box-shadow: var(--pw-shadow);
  text-align: center;
  position: relative;
}

.pw-mark {
  display: flex;
  justify-content: center;
  margin-bottom: 4.267vw;
}
.pw-mark-img {
  width: 12.8vw;
  height: 12.8vw;
}

.pw-kicker {
  font-size: 3.067vw;
  font-weight: 700;
  letter-spacing: 0.26em;
  color: var(--aha);
  margin-bottom: 3.2vw;
}

.pw-title {
  font-family: 'Noto Serif SC', 'STSong', Georgia, serif;
  font-weight: 700;
  font-size: 5.067vw;
  line-height: 1.5;
  color: var(--ink);
  margin: 0 0 2.667vw;
}

.pw-sub {
  font-size: 3.467vw;
  line-height: 1.8;
  color: var(--sub);
  margin: 0 auto 5.867vw;
  max-width: 67.2vw;
}

/* 金色 CTA 按钮 · 深色文字！ */
.pw-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.533vw;
  background: var(--aha-bright);
  color: #1B1B1A;
  border-radius: 3.733vw;
  padding: 3.467vw;
  box-shadow: 0 2.667vw 6.933vw -2.667vw var(--aha-bright);
}

.c1 {
  font-size: 4vw;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.c2 {
  font-size: 3.067vw;
  font-weight: 500;
  opacity: 0.72;
  white-space: nowrap;
}

.pw-alt {
  font-size: 3.467vw;
  color: var(--sub);
  margin-top: 4.267vw;
}

.pw-alt-b {
  color: var(--ink);
  font-weight: 600;
}

/* 社会证明 */
.pw-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.867vw;
  font-size: 3.067vw;
  color: var(--meta);
  margin-top: 4.8vw;
}

.trust-avas {
  display: flex;
}

.trust-ava {
  width: 4.267vw;
  height: 4.267vw;
  border-radius: 50%;
  background: var(--avatar);
  border: 0.4vw solid var(--surface);
  margin-left: -1.333vw;
}
.trust-ava:first-child { margin-left: 0; }

/* ── 底部操作栏 ── */
.actionbar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  gap: 3.733vw;
  height: 15.467vw;
  padding: 0 4.8vw;
  padding-bottom: env(safe-area-inset-bottom);
  border-top: 0.133vw solid var(--line);
  background: var(--surface);
  z-index: 80;
}

.ab-input {
  flex: 1;
  height: 9.6vw;
  border-radius: 4.8vw;
  background: var(--line-soft);
  display: flex;
  align-items: center;
  padding: 0 4.267vw;
  font-size: 3.467vw;
  color: var(--meta);
}

.ab-act {
  display: flex;
  align-items: center;
  gap: 1.067vw;
  color: var(--sub);
  font-size: 3.2vw;
  font-weight: 500;
}

/* 心形图标 */
.act-heart {
  width: 5.333vw;
  height: 4.8vw;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 20.4C12 20.4 3 14.4 3 8.4a4.5 4.5 0 0 1 9-0.9 4.5 4.5 0 0 1 9 0.9c0 6-9 12-9 12z' fill='none' stroke='%236B6B68' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.act-heart.liked {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 20.4C12 20.4 3 14.4 3 8.4a4.5 4.5 0 0 1 9-0.9 4.5 4.5 0 0 1 9 0.9c0 6-9 12-9 12z' fill='%23D99A2B' stroke='%23D99A2B' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* 书签图标 */
.act-bookmark {
  width: 4.8vw;
  height: 5.333vw;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.5 4.2h11a1 1 0 0 1 1 1v14.5L12 16l-6.5 3.7V5.2a1 1 0 0 1 1-1z' fill='none' stroke='%236B6B68' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.act-bookmark.bookmarked {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.5 4.2h11a1 1 0 0 1 1 1v14.5L12 16l-6.5 3.7V5.2a1 1 0 0 1 1-1z' fill='%23D99A2B' stroke='%23D99A2B' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ── 输入蒙层 ── */
.input-overlay {
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  z-index: 200;
}

.input-scrim {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(0,0,0,.3);
}

.input-panel {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  gap: 1.867vw;
  padding: 1.867vw 2.667vw;
  padding-bottom: calc(1.867vw + env(safe-area-inset-bottom));
  background: var(--surface);
  border-top: 0.133vw solid var(--line);
}

.real-input {
  flex: 1;
  height: 9.6vw;
  background: var(--line-soft);
  border-radius: 4.8vw;
  padding: 0 3.2vw;
  font-size: 3.733vw;
  color: var(--ink);
}

.input-ph { color: var(--meta); }

.send-btn {
  width: 9.6vw;
  height: 9.6vw;
  border-radius: 50%;
  background: var(--line-soft);
  display: flex;
  align-items: center;
  justify-content: center;
}

.send-btn.active { background: var(--aha-bright); }

.send-arrow {
  font-size: 4vw;
  font-weight: 700;
  color: var(--meta);
}

.send-btn.active .send-arrow { color: #1B1B1A; }

/* ── 底部栏深色模式 ── */
.actionbar.dk {
  background: #1B1B1A;
  border-top-color: #2B2B28;
}

/* ── 分享弹层 ── */
.share-overlay {
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(0,0,0,.46);
  z-index: 300;
}

.share-sheet {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--surface, #fff);
  border-radius: 6.4vw 6.4vw 0 0;
  padding: 2.667vw 0 0;
  box-shadow: 0 -4.267vw 12.8vw rgba(0,0,0,.28);
}

.sheet-handle {
  width: 10.133vw;
  height: 1.067vw;
  border-radius: 0.533vw;
  background: var(--line, #ECEAE6);
  margin: 1.067vw auto 4.267vw;
}

.sheet-title {
  text-align: center;
  font-size: 3.467vw;
  font-weight: 500;
  color: var(--sub, #6B6B68);
  padding-bottom: 4.8vw;
  border-bottom: 0.133vw solid var(--line-soft, #F1EFEB);
}

.share-grid {
  display: flex;
  gap: 3.2vw;
  padding: 6.933vw 5.867vw 1.6vw;
}

/* 分享选项卡（view 版） */
.share-opt {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.2vw;
  padding: 4.8vw 1.6vw;
  border-radius: 4.267vw;
  border: 0.133vw solid var(--line, #ECEAE6);
}

.share-opt.primary {
  border-color: var(--aha-ghost, #F4ECDB);
  background: var(--aha-ghost, #F4ECDB);
}

/* 分享给好友：button 重置样式 */
.share-friend-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.2vw;
  padding: 4.8vw 1.6vw;
  border-radius: 4.267vw;
  border: 0.133vw solid var(--line, #ECEAE6);
  background: none;
  margin: 0;
  line-height: normal;
  font-size: 3.467vw;
  box-sizing: border-box;
}

.share-friend-btn::after {
  border: none;
}

.share-ic {
  width: 14.4vw;
  height: 14.4vw;
  border-radius: 4.267vw;
  display: flex;
  align-items: center;
  justify-content: center;
}

.share-ic.poster {
  background: var(--aha-bright, #D99A2B);
  box-shadow: 0 2.133vw 5.333vw -2.133vw var(--aha-bright, #D99A2B);
}

.share-ic.friend {
  background: var(--line-soft, #F1EFEB);
}

/* 海报图标（图片/下载样式 SVG） */
.sic-image {
  width: 6.933vw;
  height: 6.933vw;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B1B1A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpolyline points='21 15 16 10 5 21'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* 链接图标（复制链接选项） */
.share-ic.link {
  background: var(--line-soft, #F1EFEB);
}

.sic-link {
  width: 6.933vw;
  height: 6.933vw;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B1B1A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 14.5l5-5'/%3E%3Cpath d='M11 7.2l1.2-1.2a3.5 3.5 0 0 1 5 5L16 12.2'/%3E%3Cpath d='M13 16.8l-1.2 1.2a3.5 3.5 0 0 1-5-5L8 11.8'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* 链接预览行 */
.link-preview {
  margin: 4.8vw 5.867vw 0;
  padding: 3.2vw 3.733vw;
  border-radius: 2.933vw;
  background: var(--line-soft, #F1EFEB);
  display: flex;
  align-items: center;
  gap: 2.667vw;
}

.lp-ic {
  width: 4vw;
  height: 4vw;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239C9C97' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 14.5l5-5'/%3E%3Cpath d='M11 7.2l1.2-1.2a3.5 3.5 0 0 1 5 5L16 12.2'/%3E%3Cpath d='M13 16.8l-1.2 1.2a3.5 3.5 0 0 1-5-5L8 11.8'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.lp-txt {
  font-size: 3.2vw;
  line-height: 1.6;
  color: var(--meta, #9C9C97);
  letter-spacing: .01em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}

.lp-brand {
  color: var(--sub, #6B6B68);
  font-weight: 600;
}

/* 好友图标（人物 SVG） */
.sic-friend {
  width: 6.933vw;
  height: 6.933vw;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B1B1A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 00-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 010 7.75'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.share-lab {
  font-size: 3.467vw;
  font-weight: 600;
  color: var(--ink, #1B1B1A);
  text-align: center;
  line-height: 1.6;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sheet-cancel {
  margin: 4.267vw 5.867vw 0;
  height: 13.333vw;
  border-radius: 3.733vw;
  background: var(--line-soft, #F1EFEB);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4vw;
  font-weight: 600;
  color: var(--ink, #1B1B1A);
}

.sheet-safe {
  height: 5.333vw;
}

/* ── 分享 sheet 深色模式 ── */
.share-sheet.dk {
  background: #1B1B1A;
}
.share-sheet.dk .sheet-handle {
  background: #2B2B28;
}
.share-sheet.dk .sheet-title {
  color: #9A988F;
  border-bottom-color: #242422;
}
.share-sheet.dk .share-opt {
  border-color: #2B2B28;
}
.share-sheet.dk .share-opt.primary {
  background: rgba(230,178,78,.13);
  border-color: rgba(230,178,78,.13);
}
.share-sheet.dk .share-friend-btn {
  border-color: #2B2B28;
  background: none;
}
.share-sheet.dk .share-ic.friend {
  background: #242422;
}
.share-sheet.dk .sic-friend {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CFCCC4' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 00-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 010 7.75'/%3E%3C/svg%3E");
}
.share-sheet.dk .share-lab {
  color: #ECEAE4;
}
.share-sheet.dk .sheet-cancel {
  background: #242422;
  color: #ECEAE4;
}
.share-sheet.dk .share-ic.link {
  background: #242422;
}
.share-sheet.dk .sic-link {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CFCCC4' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 14.5l5-5'/%3E%3Cpath d='M11 7.2l1.2-1.2a3.5 3.5 0 0 1 5 5L16 12.2'/%3E%3Cpath d='M13 16.8l-1.2 1.2a3.5 3.5 0 0 1-5-5L8 11.8'/%3E%3C/svg%3E");
}
.share-sheet.dk .link-preview {
  background: #242422;
}
.share-sheet.dk .lp-ic {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E6C66' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 14.5l5-5'/%3E%3Cpath d='M11 7.2l1.2-1.2a3.5 3.5 0 0 1 5 5L16 12.2'/%3E%3Cpath d='M13 16.8l-1.2 1.2a3.5 3.5 0 0 1-5-5L8 11.8'/%3E%3C/svg%3E");
}
.share-sheet.dk .lp-txt {
  color: #6E6C66;
}
.share-sheet.dk .lp-brand {
  color: #9A988F;
}

/* 正文图片（资讯配图） */
.body-img {
  width: 100%;
  border-radius: 2.133vw;
  margin: 1.067vw 0 3.2vw;
  background: rgba(0, 0, 0, 0.04);
}

/* 无配音提示（短资讯）*/
.no-audio-hint {
  font-size: 3.2vw;
  color: var(--meta);
  text-align: center;
  padding: 1.067vw 0 0.533vw;
  margin: 0.533vw 0 2.667vw;
}

/* ── 播客详情：本期背景 + 嘉宾 + 对话实录 ── */
.pod-intro {
  margin: 6.4vw 0 1.6vw;
  padding: 5.333vw;
  border-radius: 4.267vw;
  background: var(--surface);
  border: 0.133vw solid var(--line);
}
.pod-intro-k {
  display: flex;
  align-items: center;
  gap: 2.133vw;
  font-size: 2.933vw;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--meta);
  margin-bottom: 3.467vw;
}
.pod-intro-k .ln { flex: 1; height: 0.133vw; background: var(--line); }
.pod-intro-p {
  font-family: 'Noto Sans SC', sans-serif;
  font-size: 3.733vw;
  line-height: 1.85;
  color: var(--sub);
  letter-spacing: 0.01em;
  margin-bottom: 2.4vw;
  text-align: left;
}
.pod-intro-p:last-child { margin-bottom: 0; }
.guests {
  display: flex;
  flex-direction: column;
  gap: 2.933vw;
  margin-top: 4.267vw;
  padding-top: 4.267vw;
  border-top: 0.133vw dashed var(--line);
}
.guest { display: flex; align-items: center; gap: 2.933vw; }
.g-ava {
  width: 9.6vw; height: 9.6vw; border-radius: 50%;
  background: var(--avatar); flex-shrink: 0;
}
.g-n { font-size: 3.6vw; font-weight: 600; color: var(--ink); }
.g-r { font-size: 3.2vw; color: var(--meta); margin-top: 0.533vw; }

.pod-mark {
  display: flex; align-items: center; gap: 3.2vw;
  margin: 8vw 0 2.133vw;
}
.pod-mark .lab {
  font-size: 3.2vw; font-weight: 600;
  letter-spacing: 0.14em; color: var(--meta);
}
.pod-mark .ln { flex: 1; height: 0.133vw; background: var(--line); }

.dlg { padding: 4.267vw 0; border-bottom: 0.133vw solid var(--line-soft); }
.dlg-spk { display: flex; align-items: center; gap: 2.667vw; margin-bottom: 2.933vw; }
.dlg-ava {
  width: 8vw; height: 8vw; border-radius: 2.4vw;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Noto Serif SC', serif; font-weight: 700; font-size: 3.733vw;
  flex-shrink: 0;
}
.dlg-ava.host  { background: var(--aha-ghost);  color: var(--aha); }
.dlg-ava.guest { background: var(--info-ghost); color: var(--info); }
.dlg-name { font-size: 3.867vw; font-weight: 700; letter-spacing: 0.02em; }
.dlg-name.host  { color: var(--aha); }
.dlg-name.guest { color: var(--info); }
.dlg-role { font-size: 3.067vw; color: var(--meta); font-weight: 500; }
.dlg-p {
  font-family: 'Noto Serif SC', 'STSong', serif;
  font-size: 4.533vw; line-height: 1.95; letter-spacing: 0.015em;
  color: var(--body); padding-left: 10.667vw;
  text-align: left;
}
.dlg.q .dlg-p { color: var(--ink); }

/* ── 划选金句 ── */
.sent { border-radius: 0.533vw; }
/* 选区模式：未选中句子显示可点击提示 */
.sel-active .sent:not(.sel-hl) {
  background: rgba(217, 154, 43, 0.06);
  border-bottom: 0.267vw dashed rgba(217, 154, 43, 0.25);
}
.sel-hl {
  background: var(--aha-ghost);
  color: var(--ink);
}

.sel-pop {
  position: fixed;
  left: 50%;
  bottom: 24vw;
  transform: translateX(-50%);
  z-index: 950;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sel-count {
  font-size: 2.667vw;
  font-weight: 600;
  color: var(--aha);
  background: var(--aha-ghost);
  padding: 0.667vw 2.133vw;
  border-radius: 133.2vw;
  margin-bottom: 1.6vw;
}
.sp-row {
  display: flex;
  align-items: center;
  background: #2A2A28;
  border-radius: 2.4vw;
  padding: 0.533vw;
  box-shadow: 0 1.867vw 4.8vw -1.333vw rgba(0,0,0,.45);
}
.sp-act {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8vw;
  padding: 1.867vw 3.2vw;
}
.sp-act .l { font-size: 2.933vw; color: #ECEAE4; }
.sp-act.primary .l { color: var(--aha-bright); font-weight: 600; }
.sp-div { width: 0.133vw; height: 6.133vw; background: rgba(255,255,255,.12); }
.sp-arrow {
  width: 0; height: 0;
  border-left: 1.6vw solid transparent;
  border-right: 1.6vw solid transparent;
  border-top: 1.867vw solid #2A2A28;
}
.sp-ic { width: 5.067vw; height: 5.067vw; background-size: contain; background-repeat: no-repeat; background-position: center; }
.sp-ic.img  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D99A2B' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='M21 15l-5-5L5 21'/%3E%3C/svg%3E"); }
.sp-ic.copy { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEAE4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1'/%3E%3C/svg%3E"); }
.sp-ic.pen  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ECEAE4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 013 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E"); }

/* 播客本期背景：固定高度可滚动框 */
.pod-intro-scroll {
  height: 69.333vw;
}
/* 嘉宾单独成卡（框外） */
.guests-box {
  margin: 2.4vw 0 0.8vw;
  padding: 3.733vw 4.267vw;
  border-radius: 3.733vw;
  background: var(--surface);
  border: 0.133vw solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 2.933vw;
}
.guests-k {
  font-size: 2.933vw;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--meta);
}

/* 评论区 */
.comments { padding: 1.6vw 7.467vw 0; }
.comments-h {
  font-family: 'Noto Serif SC', serif; font-weight: 700;
  font-size: 4.267vw; color: var(--ink); margin-bottom: 3.733vw;
}
.comments-empty { font-size: 3.467vw; color: var(--meta); padding: 2.667vw 0 1.067vw; }
.comment-item { display: flex; gap: 2.667vw; padding: 2.933vw 0; border-top: 0.133vw solid var(--line-soft); }
.comment-ava { width: 8.533vw; height: 8.533vw; border-radius: 50%; background: var(--avatar); flex-shrink: 0; }
.comment-ava-empty {
  display: flex; align-items: center; justify-content: center;
  font-size: 3.467vw; font-weight: 600; color: var(--sub);
  background: var(--line);
}
.comment-name { font-size: 3.333vw; font-weight: 600; color: var(--sub); margin-bottom: 1.067vw; }
.comment-text { font-size: 3.867vw; line-height: 1.65; color: var(--body); }

/* 来源/发布时间：紧凑 meta（不再占整段大间距）*/
.body-meta {
  font-size: 3.333vw;
  color: var(--meta);
  line-height: 1.7;
  margin: 0 0 0.8vw;
}
.body-meta:first-child { margin-top: 0.533vw; }
/* 核心判断可点分享，给个轻提示态 */
.op { position: relative; }
.op::after {
  content: '点击分享金句';
  position: absolute; right: 3.733vw; bottom: 2.133vw;
  font-size: 2.667vw; color: var(--aha);
  opacity: 0.7;
}

/* 划线：持久下划线 */
.marked {
  border-bottom: 0.4vw solid var(--aha-bright);
  padding-bottom: 0.133vw;
}

/* 重点内容加粗（DeepSeek 标注）*/
.body-p .b { font-weight: 700; color: var(--ink); }

/* ── 问AI 对话弹窗 ── */
.ai-mask { position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 999; display: flex; align-items: flex-end; }
.ai-panel { width: 100%; max-height: 76vh; background: #F7F6F4; border-radius: 3.733vw 3.733vw 0 0; display: flex; flex-direction: column; }
.ai-panel.dark { background: #1B1B1A; }
.ai-head { display: flex; align-items: center; justify-content: space-between; padding: 3.733vw 4.267vw 2.133vw; }
.ai-title { font-size: 4.267vw; font-weight: 700; color: #1A1915; }
.ai-panel.dark .ai-title { color: #ECEAE4; }
.ai-close { width: 7.467vw; height: 7.467vw; text-align: center; line-height: 7.467vw; color: #9C9C97; font-size: 4vw; }
.ai-body { flex: 1; padding: 1.067vw 3.733vw; overflow-y: auto; }
.ai-msg { display: flex; margin: 1.867vw 0; }
.ai-msg.user { justify-content: flex-end; }
.ai-msg.ai { justify-content: flex-start; }
.ai-bubble { max-width: 80%; padding: 2.667vw 3.2vw; border-radius: 2.667vw; font-size: 3.867vw; line-height: 1.6; word-break: break-word; }
.ai-bubble.user { background: #D99A2B; color: #fff; border-bottom-right-radius: 0.8vw; }
.ai-bubble.ai { background: #fff; color: #1A1915; border-bottom-left-radius: 0.8vw; }
.ai-panel.dark .ai-bubble.ai { background: #2A2A28; color: #ECEAE4; }
.ai-typing { color: #9C9C97; }
.ai-input-bar { display: flex; align-items: center; gap: 2.133vw; padding: 2.4vw 3.733vw calc(2.4vw + env(safe-area-inset-bottom)); background: transparent; }
.ai-input { flex: 1; height: 10.133vw; background: #fff; border-radius: 5.067vw; padding: 0 3.733vw; font-size: 3.733vw; color: #1A1915; }
.ai-panel.dark .ai-input { background: #2A2A28; color: #ECEAE4; }
.ai-send { width: 16vw; height: 10.133vw; line-height: 10.133vw; text-align: center; border-radius: 5.067vw; font-size: 3.733vw; background: #e5e3df; color: #9C9C97; }
.ai-send.on { background: #1A1915; color: #fff; }
.ai-panel.dark .ai-send.on { background: #D99A2B; color: #1A1915; }
