/* 数据复盘：一条一条作品复盘（类名都加 rv- 前缀） */
.rv .panel { margin-bottom: 14px; }
.rv .sm { font-size: 12px; }
.rv .lab, .rv-eform .lab { background: none; padding: 0; font-size: 12.5px; line-height: 1.5; color: var(--sub); }
.rv .lab i, .rv-eform .lab i { font-style: normal; color: var(--mute); margin-left: 6px; font-size: 11.5px; }
.rv-np { padding: 0 !important; overflow-x: auto; }

/* 顶上选号 */
.rv-bar { display: flex; align-items: center; gap: 14px; padding: 12px 16px; flex-wrap: wrap; }
.rv-pick { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 0 1 460px; }
.rv-pick > span { flex: none; font-size: 13px; color: var(--sub); }
.rv-pick .input { min-width: 0; }
.rv-upd { flex: 1 1 260px; min-width: 0; font-size: 12.5px; color: var(--sub); line-height: 1.7; overflow-wrap: anywhere; }
.rv-upd b { color: var(--text); font-weight: 600; }
.rv-run-dot { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: var(--green); animation: rvPulse 1.2s ease-in-out infinite; }
@keyframes rvPulse { 50% { opacity: .3; } }
.rv-tabs { margin-bottom: 14px; width: max-content; max-width: 100%; }

.rv-caps { margin-bottom: 14px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.rv-caps .cap { padding: 12px 14px; }
.rv-caps .cap-bd b { font-size: 16px; }
.rv-note { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 14px; padding: 11px 14px; border-radius: 10px;
  background: #f5f8ff; border: 1px solid #dbe5ff; color: var(--sub); font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.rv-note .ic { width: 16px; height: 16px; flex: none; margin-top: 3px; color: var(--brand); }
.rv-note.err { background: #fff5f4; border-color: #ffd8d4; }
.rv-note.err .ic { color: var(--red); }
.rv-tip { display: flex; align-items: flex-start; gap: 6px; margin: 0 0 14px; font-size: 12.5px; color: var(--sub); line-height: 1.7; overflow-wrap: anywhere; }
.rv-tip .ic { width: 15px; height: 15px; flex: none; margin-top: 3px; color: var(--mute); }
.rv-tip.mute { color: var(--mute); }
.rv-list .rv-tip { padding: 10px 16px 14px; margin: 0; }
.rv-tip2 { margin: 0; padding: 0 18px 16px; line-height: 1.7; }

/* 作品列表 */
.rv-lhd { flex-wrap: wrap; }
.rv-lhd h3 .sm { font-weight: 400; }
.rv-flt { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.rv-sort { padding: 3px; }
.rv-sort .tab { height: 28px; padding: 0 10px; font-size: 13px; }
.rv-sel { width: auto; height: 34px; }
.rv-wtbl { table-layout: fixed; }
.rv-wtbl th { padding: 10px 8px; }
.rv-wtbl th:first-child { width: 33%; padding-left: 18px; }
.rv-wtbl th:last-child { width: 108px; }
.rv-wtbl td { padding: 10px 8px; font-size: 13px; font-variant-numeric: tabular-nums; }
.rv-wtbl td:first-child { padding-left: 18px; }
.rv-wtbl tbody tr { cursor: pointer; }
.rv-wtbl tbody tr:hover td { background: #fafbfe; }
.rv-wtbl tr.is-hit td { background: #fffaf3; }
.rv-wtbl tr.on td { background: var(--brand-soft) !important; }
.rv-wtbl tr.on td:first-child { box-shadow: inset 3px 0 0 var(--brand); }
.rv-like small { display: block; font-size: 11px; color: var(--mute); white-space: nowrap; }
.rv-t2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.5; overflow-wrap: anywhere; }
.rv-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-top: 4px; font-size: 11.5px; color: var(--mute); }
.rv-src, .rv-tag, .rv-g { display: inline-block; font-style: normal; font-size: 11px; line-height: 18px; padding: 0 6px; border-radius: 4px; white-space: nowrap; }
.rv-src.auto { background: #e7f8ef; color: #0e8a52; }
.rv-src.man { background: #f1f2f6; color: #6b7387; }
.rv-src.pub { background: #eef0ff; color: #5b4fd6; }
.rv-tag.hit { background: #ffece0; color: #d4520b; font-weight: 600; }
.rv-tag.good { background: #fff5d9; color: #9a6a00; }
.rv-tag.hid { background: #f1f2f6; color: #7b8398; }
.rv-tag.cmp { background: var(--brand-soft); color: var(--brand); }
.rv-g.yes { background: #fff1e5; color: #d4600b; font-weight: 600; }
.rv-g.no { background: #f1f2f6; color: #6b7387; }
.rv-g.unk { background: #fff; color: var(--mute); border: 1px dashed #d5dae6; line-height: 16px; }
.rv-more { text-align: center; padding: 12px; border-top: 1px solid var(--line-2); }
/* 抖音作品的状态（公开 / 自己设的不公开 / 平台处理 / 审核中 / 看不懂）+「平台不给」的播放 */
.rv-vis { display: inline-block; font-style: normal; font-size: 11px; line-height: 18px; padding: 0 6px; border-radius: 4px; white-space: nowrap; }
.rv-vis.pub { background: #e7f8ef; color: #0e8a52; }
.rv-vis.self { background: #f1f2f6; color: #5f6880; }
.rv-vis.plat { background: #ffecea; color: var(--red); font-weight: 600; }
.rv-vis.rev { background: var(--brand-soft); color: var(--brand); }
.rv-vis.del { background: #f1f2f6; color: var(--mute); border: 1px solid #e3e6ee; line-height: 16px; }
.rv-vis.unk { background: #fff; color: var(--mute); border: 1px dashed #d5dae6; line-height: 16px; }
.rv-np2 { font-size: 12px; color: var(--mute); white-space: nowrap; }
.rv-wtbl.dy th:first-child { width: 30%; }
.rv-visbox.plat { background: #fff5f4; border-color: #ffd8d4; }
.rv-visbox .rv-vis { flex: none; margin-top: 3px; }
.rv-stats > .rv-st-np b { color: var(--mute); font-size: 16px; }

/* 一条作品的复盘 */
.rv-det { border-color: #cdd9fb; box-shadow: 0 8px 30px rgba(59, 108, 246, .08); scroll-margin-top: 70px; }
.rv-dhd h3 { display: flex; align-items: center; gap: 6px; }
.rv-dhd h3 .ic { color: var(--brand); }
.rv-dnav { display: flex; gap: 6px; flex-wrap: wrap; }
.rv-dnav .btn-light { box-shadow: none; border: 1px solid var(--line); }
.rv-dtt { margin: 0 0 6px; font-size: 17px; line-height: 1.55; white-space: pre-line; overflow-wrap: anywhere; }
.rv-dsub { margin-bottom: 12px; font-size: 12.5px; }
.rv-goods { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; margin-bottom: 14px; border-radius: 10px; background: #fafbfd;
  border: 1px solid var(--line-2); font-size: 13px; color: var(--sub); line-height: 1.7; overflow-wrap: anywhere; }
.rv-goods.yes { background: #fff8f1; border-color: #ffe0c4; }
.rv-goods .rv-g { flex: none; margin-top: 3px; }
.rv-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.rv-stats > div { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px; border-radius: 10px; background: #fafbfd; border: 1px solid var(--line-2); min-width: 0; }
.rv-stats span { font-size: 12px; color: var(--mute); }
.rv-stats b { font-size: 19px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rv-stats small { font-size: 11.5px; color: var(--sub); line-height: 1.5; overflow-wrap: anywhere; }
.rv-det .rv-stats + .rv-tip { margin: 8px 0 0; }
.rv-sec { margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--line); }
.rv-sechd { display: flex; align-items: baseline; gap: 4px 12px; flex-wrap: wrap; margin-bottom: 12px; }
.rv-sechd h4 { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 15px; }
.rv-sechd h4 .ic { color: var(--orange); }

/* 对比表单 */
.rv-form { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; gap: 10px; align-items: end; }
.rv-go .btn { white-space: nowrap; }
.rv-words { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 10px 0 4px; }
.rv-chip { height: 26px; padding: 0 10px; border-radius: 99px; border: 1px solid var(--line); background: #fff; font-size: 12.5px; color: var(--sub); }
.rv-chip:hover { border-color: #c5d2f5; color: var(--brand); }
.rv-chip.on { background: var(--brand-soft); border-color: #c5d2f5; color: var(--brand); font-weight: 600; }
.rv-aikw { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 8px 0; padding: 8px 12px; border-radius: 8px; background: #f7f5ff; font-size: 13px; color: var(--sub); }
.rv-aikw > span { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }
.rv-aikw .ic { color: var(--brand-2); }
.rv-aikw .btn-light, .rv-aigo .btn-light { box-shadow: none; border: 1px solid #d7dcf6; }
.rv-err { margin: 8px 0; color: var(--red); font-size: 13px; }
.rv-empty { display: flex; align-items: flex-start; gap: 8px; padding: 14px; border-radius: 10px; border: 1px dashed #d9dfeb; color: var(--mute); font-size: 13px; line-height: 1.7; }
.rv-empty .ic { flex: none; width: 16px; height: 16px; margin-top: 3px; }
.rv-busy { display: flex; align-items: flex-start; gap: 8px; margin: 10px 0; padding: 12px 14px; border-radius: 10px; background: var(--brand-soft); color: var(--brand); font-size: 13px; line-height: 1.7; }
.rv-busy .ic { flex: none; margin-top: 2px; }

/* 对比结果 */
.rv-res { margin-top: 6px; }
.rv-res.old { opacity: .72; }
.rv-reshd { font-size: 12.5px; color: var(--mute); margin-bottom: 6px; overflow-wrap: anywhere; }
.rv-sum { margin: 0 0 12px; padding: 11px 14px; border-radius: 10px; background: #f5f8ff; border-left: 3px solid var(--brand); font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.rv-cgrid { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 18px; align-items: center; }
.rv-rsvg { display: block; width: 100%; max-width: 400px; height: auto; margin: 0 auto; }
.rv-ring { fill: none; stroke: var(--line); stroke-width: 1; }
.rv-rmed { fill: none; stroke: #98a1b6; stroke-width: 1.5; stroke-dasharray: 5 4; }
.rv-rown { fill: rgba(59, 108, 246, .22); stroke: var(--brand); stroke-width: 2; }
.rv-rdot { fill: var(--brand); }
.rv-rl { fill: var(--text); font-size: 12.5px; font-weight: 600; }
.rv-rv { fill: var(--sub); font-size: 11px; font-variant-numeric: tabular-nums; }
.rv-rleg text { fill: var(--sub); font-size: 11px; }
.rv-dtbl th, .rv-dtbl td { padding: 8px 8px; font-size: 13px; font-variant-numeric: tabular-nums; }
.rv-pct { display: inline-block; min-width: 46px; padding: 1px 6px; border-radius: 5px; background: var(--line-2); text-align: center; font-weight: 600; }
.rv-pct.lo { background: #ffecea; color: var(--red); }
.rv-pct.hi { background: #e7f8ef; color: #0e8a52; }
.rv-how { margin: 12px 0 0; padding-left: 18px; font-size: 12.5px; color: var(--mute); line-height: 1.75; }
.rv-how li { overflow-wrap: anywhere; }
.rv-cav { display: flex; align-items: flex-start; gap: 6px; margin: 10px 0 0; padding: 9px 12px; border-radius: 8px; background: #fffaf0;
  border: 1px dashed #f1d9a6; color: #8a6514; font-size: 12.5px; line-height: 1.7; overflow-wrap: anywhere; }
.rv-cav .ic { flex: none; width: 15px; height: 15px; margin-top: 3px; }
.rv-peers { margin-top: 12px; }
.rv-peers summary { cursor: pointer; font-size: 13px; color: var(--brand); padding: 6px 0; }
.rv-ptbl { table-layout: fixed; margin-top: 6px; }
.rv-ptbl th:first-child { width: 46%; }
.rv-ptbl th, .rv-ptbl td { padding: 8px 8px; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.rv-ptt a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.5; overflow-wrap: anywhere; }
.rv-ptt small { display: block; margin-top: 2px; color: var(--mute); font-size: 11.5px; overflow-wrap: anywhere; }

/* 复盘结论 */
.rv-ver { display: flex; gap: 14px; align-items: flex-start; }
.rv-lv { flex: none; min-width: 74px; padding: 10px 8px; border-radius: 10px; text-align: center; font-weight: 700; font-size: 15px; background: var(--line-2); color: var(--sub); }
.rv-lv.hit { background: #ffece0; color: #d4520b; }
.rv-lv.good { background: #fff5d9; color: #9a6a00; }
.rv-lv.weak { background: #ffecea; color: var(--red); }
.rv-vbd { flex: 1; min-width: 0; }
.rv-vh { display: block; margin: 10px 0 4px; font-size: 13px; }
.rv-vh:first-child { margin-top: 0; }
.rv-vbd ul, .rv-vbd ol, .rv-ai ul, .rv-ai ol { margin: 0; padding-left: 20px; font-size: 13.5px; line-height: 1.75; }
.rv-vbd li, .rv-ai li { overflow-wrap: anywhere; }
.rv-aigo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding: 12px 14px; border-radius: 10px; background: #fafbfd; border: 1px dashed #dbe2ef; }
.rv-aigo .mute { flex: 1 1 300px; min-width: 0; font-size: 12.5px; line-height: 1.6; }
.rv-ai { margin-top: 12px; padding: 14px; border-radius: 10px; border: 1px solid #e3e0fb; background: #fcfbff; }
.rv-aisum { margin: 0 0 8px; font-size: 14px; line-height: 1.75; overflow-wrap: anywhere; }
.rv-ai .rv-tip { margin: 10px 0 0; }
.rv-raw { margin: 0; padding: 12px; border-radius: 8px; max-height: 420px; overflow: auto; background: rgba(127, 127, 127, .08);
  font-size: 12px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }

/* 分析报告 */
.rv-run { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rv-scope { display: flex; align-items: center; gap: 8px; flex: 1 1 380px; min-width: 0; }
.rv-scope > span { flex: none; font-size: 13px; color: var(--sub); }
.rv-month { display: inline-flex; align-items: center; gap: 6px; }
.rv-month .input { width: 92px; text-align: center; }
.rv-rtbl td, .rv-rtbl th { font-size: 13px; }
.rv-rtbl td { overflow-wrap: anywhere; }
.rv-more2 { padding: 12px 16px; }
.rv-more2 summary { cursor: pointer; font-size: 13px; color: var(--mute); }
.rv-more2 .rv-raw { margin-top: 10px; }

/* 手填表单（弹窗里） */
.rv-eform .row-gap { align-items: flex-start; flex-wrap: nowrap; gap: 12px; }
.rv-eform .row-gap > .field { flex: 1; min-width: 0; }
.rv-eform .rv-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.rv-eform .rv-metrics .input { text-align: right; }
.rv-mact { justify-content: flex-end; margin-top: 16px; }

@media (max-width: 1180px) {
  .rv-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); }
  .rv-form .rv-q { grid-column: 1 / -1; }
  .rv-cgrid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .rv-bar { padding: 12px; }
  .rv-pick { flex: 1 1 100%; flex-direction: column; align-items: stretch; gap: 4px; }
  .rv-bar .btn { width: 100%; justify-content: center; }
  .rv-tabs { width: 100%; }
  .rv-tabs .tab { flex: 1; justify-content: center; padding: 0 6px; }
  .rv-caps { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .rv .panel-hd { padding: 12px 14px; }
  .rv .panel-bd { padding: 14px; }
  .rv-flt { width: 100%; }
  .rv-sort { width: 100%; }
  .rv-sort .tab { flex: 1; justify-content: center; padding: 0 4px; }
  .rv-sel { flex: 1 1 40%; min-width: 0; }
  .rv-flt .btn { flex: 1 1 100%; justify-content: center; }
  /* 作品表 → 一条一张卡 */
  .rv-wtbl, .rv-wtbl tbody { display: block; }
  .rv-wtbl thead { display: none; }
  .rv-wtbl tr { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px 8px; padding: 12px 14px; border-bottom: 1px solid var(--line-2); }
  .rv-wtbl td { display: flex; flex-direction: column; padding: 0 !important; border: 0; text-align: left !important; font-size: 13px; min-width: 0; background: none !important; }
  .rv-wtbl td:first-child { grid-column: 1 / -1; box-shadow: none !important; }
  .rv-wtbl td[data-l]::before { content: attr(data-l); font-size: 11px; color: var(--mute); }
  .rv-wtbl td[colspan] { grid-column: 1 / -1; }
  .rv-wtbl tr.on { background: var(--brand-soft); box-shadow: inset 3px 0 0 var(--brand); }
  .rv-wtbl tr.is-hit { background: #fffaf3; }
  .rv-wtbl td[data-l="带货"] { grid-column: span 4; flex-direction: row; align-items: center; gap: 6px; }
  .rv-wtbl td[data-l="带货"]::before { content: '带货'; }
  .rv-dhd { flex-wrap: wrap; }
  .rv-dnav { width: 100%; }
  .rv-dnav .btn { flex: 1; justify-content: center; padding: 0 6px; }
  .rv-dtt { font-size: 15.5px; }
  .rv-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .rv-visbox { flex-wrap: wrap; gap: 4px 8px; }        /* 抖音状态框：窄屏标签放上面，说明占整行 */
  .rv-visbox > span { flex: 1 1 100%; }
  .rv-stats b { font-size: 17px; }
  .rv-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rv-form .rv-go { grid-column: 1 / -1; }
  .rv-form .rv-go .btn { width: 100%; justify-content: center; }
  .rv-dtbl th, .rv-dtbl td { padding: 7px 4px; font-size: 12px; }
  .rv-pct { min-width: 0; }
  .rv-ver { flex-direction: column; gap: 10px; }
  .rv-lv { min-width: 0; padding: 6px 12px; }
  .rv-aigo .btn { width: 100%; justify-content: center; }
  /* 同类作品表 → 卡片 */
  .rv-ptbl, .rv-ptbl tbody { display: block; }
  .rv-ptbl thead { display: none; }
  .rv-ptbl tr { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px 6px; padding: 10px 0; border-bottom: 1px solid var(--line-2); }
  .rv-ptbl td { display: flex; flex-direction: column; padding: 0; border: 0; text-align: left !important; min-width: 0; }
  .rv-ptbl td:first-child { grid-column: 1 / -1; }
  .rv-ptbl td[data-l]::before { content: attr(data-l); font-size: 10.5px; color: var(--mute); }
  .rv-scope { flex-direction: column; align-items: stretch; gap: 4px; }
  .rv-run .btn { flex: 1 1 40%; justify-content: center; }
  .rv-month { flex: 1 1 100%; }
  .rv-month .input { flex: 1; width: auto; }
  .rv-month .btn { flex: 1; }
  .rv-stbl th, .rv-stbl td { padding: 8px 6px; font-size: 12px; }
  .rv-rtbl th, .rv-rtbl td { padding: 8px 6px; font-size: 12px; white-space: normal; }
  .rv-eform .row-gap { flex-direction: column; gap: 0; }
  .rv-eform .row-gap > .field { width: 100%; margin-bottom: 10px; }
  .rv-eform .rv-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.rv [hidden] { display: none !important; }
.rv-sechd .rv-write { margin-left: auto; align-self: center; }   /* 复盘结论旁的「拿去写稿」：靠右 */

/* 空状态里的按钮（「立即更新数据」）：公共样式 .empty.big .ic 会把按钮里的小图标放大成 36px，压回去（10-02 体检） */
.rv .empty.big .btn .ic { width: 16px; height: 16px; margin-bottom: 0; color: inherit; }
