/* 报告模块样式：写报告三步向导（#report-modal / .rpt-*）+ 报告合集与详情页（#reports-page / #report-detail-page / .rb-* / .rd-*）
   从 index.html 拆出的第一个功能模块。文件名带版本号、_headers 设 immutable：改动后务必把 index.html 里的 v 号一起升。
   依赖页面里的设计变量（--bg1/--gold/--gray2…），深浅色随 html.light 自动切换。 */

/* 写报告：全屏底部抽屉 + 三步向导（基本信息 → 写体验 → 传凭证）
   结构：顶部条(关闭/标题/步数) + 进度线 + 可滚内容区(flex:1) + 固定操作条。
   表单盒钉在 visualViewport 里（iOS 聚焦输入不会把整层顶飞）；::before 铺满布局视口，键盘收起也不漏底页。 */
#report-modal { position: fixed; left: 0; right: 0; top: var(--rpt-top, 0px); height: var(--rpt-vis, 100%); bottom: auto; z-index: 9999; display: none; flex-direction: column; overflow: hidden; background: var(--bg1); color: var(--white); box-sizing: border-box; }
#report-modal::before { content: ''; position: fixed; inset: 0; background: var(--bg1); z-index: -1; pointer-events: none; }
#report-modal.open { display: flex; animation: rptUp .28s cubic-bezier(.2,.8,.2,1); }
@keyframes rptUp { from { transform: translateY(28px); opacity: 0; } to { transform: none; opacity: 1; } }
/* 顶部条：左关闭、中标题+老师、右步数 */
.rpt-head { display: flex; align-items: center; gap: 10px; padding: calc(10px + env(safe-area-inset-top, 0px)) 14px 10px; flex: none; }
.rpt-close { flex: none; width: 34px; height: 34px; border-radius: 50%; border: none; background: var(--bg2); color: var(--gray1); display: flex; align-items: center; justify-content: center; font-size: 18px; cursor: pointer; }
.rpt-close:active { transform: scale(.94); }
.rpt-head-tx { flex: 1; min-width: 0; }
.rpt-head-tx .rpt-h { font-size: 15px; font-weight: 800; letter-spacing: -.01em; }
.rpt-head-tx .rpt-who { font-size: 12px; color: var(--gray2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
.rpt-stepnum { flex: none; font-size: 12px; font-weight: 700; color: var(--gray2); font-variant-numeric: tabular-nums; }
.rpt-stepnum b { color: var(--gold2); font-size: 15px; }
/* 进度线：三段等分，已完成/当前段亮起 */
.rpt-progress { display: flex; gap: 4px; padding: 0 14px 6px; flex: none; }
.rpt-progress i { flex: 1; height: 3px; border-radius: 2px; background: var(--line2); transition: background .25s; }
.rpt-progress i.on { background: var(--gold); }
/* 内容区：唯一滚动容器。步骤按内容撑开（不 flex 铺满），否则高度被锁死、iOS 滑不动。 */
.rpt-body { flex: 1; min-height: 0; overflow-y: scroll; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; touch-action: pan-y; padding: 6px 16px 20px; display: block; }
.rpt-step { display: none; flex-direction: column; gap: 14px; }
.rpt-step.on { display: flex; animation: rptStepIn .22s ease-out; }
@keyframes rptStepIn { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: none; } }
.rpt-step-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .08em; color: var(--gray2); text-transform: uppercase; }
.rpt-step-title { font-size: 21px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; margin-top: 2px; }
.rpt-step-title small { display: block; font-size: 12.5px; font-weight: 500; color: var(--gray2); letter-spacing: 0; margin-top: 4px; line-height: 1.5; }
/* 字段 */
.rpt-field { display: flex; flex-direction: column; gap: 6px; }
.rpt-field label { font-size: 13px; color: var(--gray1); display: flex; align-items: baseline; justify-content: space-between; }
.rpt-field label em { font-style: normal; font-size: 11px; color: var(--gray3); font-weight: 500; }
/* 输入控件 16px：iOS/TG webview 聚焦时 <16px 会整页自动放大跳一下 */
.rpt-field input, .rpt-field select, .rpt-field textarea { width: 100%; box-sizing: border-box; background: var(--bg2); border: 1px solid var(--line); border-radius: 12px; padding: 12px 13px; color: var(--white); font-size: 16px; font-family: inherit; outline: none; transition: border-color .15s, box-shadow .15s; }
.rpt-field input:focus, .rpt-field select:focus, .rpt-field textarea:focus { border-color: var(--gold-border); box-shadow: 0 0 0 3px var(--gold-bg); }
.rpt-field input::placeholder, .rpt-field textarea::placeholder { color: var(--gray3); }
.rpt-field input[type="date"] { -webkit-appearance: none; appearance: none; text-align: left; min-width: 0; color-scheme: dark; }
html.light .rpt-field input[type="date"] { color-scheme: light; }
/* 即时校验：blur 后不合法 → 边框标红 + 下方一行说明 */
.rpt-err { display: none; font-size: 12px; color: #ff5a5f; }
.rpt-field.err input, .rpt-field.err select, .rpt-field.err textarea { border-color: rgba(255,90,95,.7); }
.rpt-field.err .rpt-err { display: block; }
.rpt-field.ok label::after { content: '✓'; font-size: 11px; color: var(--green); margin-left: auto; }
.rpt-field.ok label em { display: none; }
/* 两列：日期 + 价格 */
.rpt-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
/* 评分：1–10 一行圆片，默认「不评分」 */
.rpt-score-row { display: grid; grid-template-columns: repeat(10, 1fr); gap: 5px; }
.rpt-score-row button { height: 36px; border-radius: 9px; border: 1px solid var(--line); background: var(--bg2); color: var(--gray1); font-size: 13.5px; font-weight: 700; cursor: pointer; font-family: inherit; padding: 0; transition: transform .1s, background .15s; }
.rpt-score-row button.on { background: var(--gold); border-color: var(--gold); color: #fff; }
.rpt-score-row button:active { transform: scale(.92); }
.rpt-score-hint { font-size: 12px; color: var(--gray2); min-height: 16px; }
.rpt-score-hint b { color: var(--gold2); }
/* 简评：快捷要点在上；框按内容长高，整步只滚 #rpt-body（框自己滚的话 iOS 会把手势吃掉） */
.rpt-quick { display: flex; flex-wrap: wrap; gap: 7px; }
.rpt-quick button { background: var(--bg2); color: var(--gray1); border: 1px solid var(--line2); border-radius: 999px; padding: 6px 12px; font-size: 12.5px; font-weight: 600; cursor: pointer; font-family: inherit; }
.rpt-quick button:active { transform: scale(.96); background: var(--gold-bg); color: var(--gold2); }
.rpt-ta-wrap { position: relative; flex: none; }
.rpt-ta-wrap textarea { min-height: 140px; height: auto; resize: none; overflow: hidden; line-height: 1.7; padding-bottom: 28px; }
/* 键盘弹出：收起步骤大标题、压紧间距、底栏不再叠一份 safe-area（键盘已垫高） */
#report-modal.kb .rpt-step > div:first-child { display: none; }
#report-modal.kb .rpt-body { padding-top: 4px; padding-bottom: 8px; }
#report-modal.kb .rpt-step { gap: 10px; }
#report-modal.kb .rpt-foot { padding-bottom: 10px; }
.rpt-count { position: absolute; right: 12px; bottom: 9px; font-size: 11px; color: var(--gray3); font-variant-numeric: tabular-nums; pointer-events: none; }
.rpt-count.ok { color: var(--green); }
/* 凭证：说明一行灰字；缩略图与添加按钮同排等大 */
.rpt-note { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; color: var(--gray2); line-height: 1.55; }
.rpt-note iconify-icon { flex: none; font-size: 16px; color: var(--gold2); margin-top: 1px; }
.rpt-note b { color: var(--gray1); font-weight: 700; }
.rpt-imgs { display: flex; flex-wrap: wrap; gap: 10px; }
.rpt-thumb { position: relative; width: 92px; height: 92px; border-radius: 12px; overflow: hidden; background: var(--bg2); }
.rpt-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rpt-thumb.uploading { opacity: 0.5; }
.rpt-thumb .x { position: absolute; top: 4px; right: 4px; width: 20px; height: 20px; line-height: 20px; text-align: center; border-radius: 50%; background: rgba(0,0,0,0.6); color: #fff; font-size: 13px; cursor: pointer; }
.rpt-thumb .up { position: absolute; top:0;right:0;bottom:0;left:0; display: flex; align-items: center; justify-content: center; color: var(--white); font-size: 11px; background: rgba(0,0,0,0.4); }
.rpt-addimg { width: 92px; height: 92px; border-radius: 12px; background: var(--bg2); color: var(--gray2); border: 1px dashed var(--line2); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font-size: 12px; cursor: pointer; font-family: inherit; }
.rpt-addimg iconify-icon { font-size: 22px; color: var(--gold2); }
.rpt-addimg:active { transform: scale(.96); }
.rpt-addimg[hidden] { display: none; }
/* 兜底：去机器人写 —— 一行小字，不抢眼 */
.rpt-botlink { display: block; text-align: center; font-size: 12px; color: var(--gray2); text-decoration: none; padding: 6px 0 0; }
.rpt-botlink b { color: var(--gray1); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
/* 今日「冲榜加成」名额：弹窗内降为一行浅色文字；公告弹窗(.ann-slots)里仍用原色块 */
.rpt-slots-slot:empty { display: none; }
.rpt-slots { display: flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 700; line-height: 1.4; border-radius: 10px; padding: 8px 11px; margin-bottom: 12px; }
.rpt-slots iconify-icon { font-size: 15px; flex: none; }
.rpt-slots b { font-size: 15px; margin: 0 1px; }
.rpt-slots.urge { color: #ff3b30; background: rgba(255,59,48,0.10); border: 1px solid rgba(255,59,48,0.22); }
.rpt-slots.gone { color: var(--gray2); background: var(--bg2); border: 1px solid var(--line); }
html.light .rpt-slots.urge { color: #e0281e; background: rgba(255,59,48,0.08); }
#report-modal .rpt-slots { margin: 0; padding: 0; border: none; background: none; font-weight: 500; font-size: 12px; color: var(--gray2); }
#report-modal .rpt-slots b { color: var(--gold2); font-size: 13px; }
#report-modal .rpt-slots iconify-icon { color: var(--gold2); font-size: 14px; }
/* 操作条：左「还差什么」提示，右 上一步/下一步(提交) */
.rpt-foot { flex: none; display: flex; align-items: center; gap: 10px; padding: 10px 14px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line); background: var(--bg1); }
.rpt-missing { flex: 1; min-width: 0; font-size: 12px; color: var(--gray2); line-height: 1.4; }
.rpt-missing b { color: var(--gray1); font-weight: 600; }
.rpt-back { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line2); background: var(--bg2); color: var(--gray1); display: flex; align-items: center; justify-content: center; font-size: 18px; cursor: pointer; }
.rpt-back[hidden] { display: none; }
.rpt-next { flex: none; min-width: 128px; height: 44px; border: none; border-radius: 999px; padding: 0 20px; background: var(--gold); color: #fff; font-size: 14.5px; font-weight: 800; cursor: pointer; font-family: inherit; display: flex; align-items: center; justify-content: center; gap: 6px; transition: opacity .15s, transform .1s; }
.rpt-next:disabled { opacity: .4; cursor: default; }
.rpt-next:not(:disabled):active { transform: scale(.97); }
@media (min-width: 560px) {
  #report-modal { width: 480px; margin: 0 auto; border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
}

/* ── 报告合集 + 详情页 ── */
#reports-page,#report-detail-page{display:none;}
#reports-page.show,#report-detail-page.show{display:block;position:relative;z-index:1;min-height:100vh;}
#reports-page.show::before,#report-detail-page.show::before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:var(--bg);}
.rb-wrap{max-width:440px;margin:0 auto;padding:0 14px 90px;}
.rb-head .rb-count{margin-left:auto;font-size:12px;color:var(--gray2);font-variant-numeric:tabular-nums;white-space:nowrap;}
.rb-head .rb-count b{color:var(--gold2);font-size:14px;}
.rb-intro{font-size:12.5px;color:var(--gray2);line-height:1.55;padding:2px 2px 10px;}
/* 吸顶工具条：排序四段 + 区域 chips 横滑 */
.rb-tools{position:sticky;top:0;z-index:5;background:var(--bg);margin:0 -14px;padding:8px 14px 8px;}
/* 搜索框：老师名 / @用户名 / 关键词；输入 16px 防 iOS 聚焦放大 */
.rb-search{display:flex;align-items:center;gap:8px;padding:0 12px;height:42px;border-radius:12px;background:var(--bg1);border:1px solid var(--line);margin-bottom:8px;}
.rb-search:focus-within{border-color:var(--gold-border);box-shadow:0 0 0 3px var(--gold-bg);}
.rb-search iconify-icon{color:var(--gray3);font-size:17px;flex:none;}
.rb-search input{flex:1;min-width:0;border:none;background:transparent;color:var(--white);font-size:16px;font-family:inherit;outline:none;padding:0;-webkit-appearance:none;appearance:none;}
.rb-search input::placeholder{color:var(--gray3);}
.rb-search input::-webkit-search-cancel-button{display:none;}
.rb-search-x{flex:none;width:22px;height:22px;border-radius:50%;border:none;background:var(--bg3);color:var(--gray1);display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;padding:0;}
.rb-sort{display:flex;gap:6px;}
.rb-sort button{flex:1;padding:8px 0;border-radius:12px;border:1px solid var(--line);background:var(--bg1);color:var(--gray2);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s,color .15s;}
.rb-sort button.on{background:var(--gold);color:#fff;border-color:var(--gold);box-shadow:0 2px 8px rgba(59,91,224,.28);}
/* 去重开关（按老师模式下隐藏） */
.rb-opts{display:flex;gap:6px;margin-top:8px;}
.rb-opts[hidden]{display:none;}
.rb-opts button{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;border:1px dashed var(--line2);background:transparent;color:var(--gray2);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;}
.rb-opts button iconify-icon{font-size:13px;}
.rb-opts button.on{border-style:solid;color:var(--gold2);border-color:var(--gold-border);background:var(--gold-bg);}
.rb-more-cnt{margin-left:auto;color:var(--gold2);font-weight:700;cursor:pointer;white-space:nowrap;}
/* 老师分组：默认露 2 篇，其余折叠 */
.rb-gbody{display:flex;flex-direction:column;gap:10px;}
.rb-expand{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border-radius:12px;border:1px dashed var(--line2);color:var(--gray1);font-size:13px;font-weight:700;cursor:pointer;background:transparent;font-family:inherit;width:100%;}
.rb-expand:disabled{opacity:.5;cursor:default;}
.rb-expand iconify-icon{font-size:15px;color:var(--gold2);}
.rb-regions{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-top:8px;padding-bottom:2px;-webkit-overflow-scrolling:touch;}
.rb-regions::-webkit-scrollbar{display:none;}
.rb-regions:empty{display:none;}
.rb-regions button{flex:none;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--bg1);color:var(--gray2);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;}
.rb-regions button.on{color:var(--gold2);border-color:var(--gold-border);background:var(--gold-bg);}
/* 列表 */
.rb-list{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
.rb-group{display:flex;align-items:center;gap:10px;padding:12px 4px 0;cursor:pointer;}
.rb-group img,.rb-group .ph{width:34px;height:34px;border-radius:10px;object-fit:cover;background:var(--bg2);flex:none;}
.rb-group .ph{display:flex;align-items:center;justify-content:center;color:var(--gray3);font-size:16px;}
.rb-group .n{font-weight:800;font-size:14px;color:var(--white);}
.rb-group .s{font-size:12px;color:var(--gray2);margin-top:1px;}
.rb-group .s b{color:var(--gold2);font-weight:700;}
.rb-group .go{margin-left:auto;color:var(--gray3);font-size:18px;}
.rb-card{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:14px;background:var(--bg1);border:1px solid var(--line);border-radius:16px;cursor:pointer;transition:transform .1s;}
.rb-card:active{transform:scale(.985);}
.rb-av,.rb-av-ph{width:56px;height:56px;border-radius:14px;object-fit:cover;background:var(--bg2);}
.rb-av-ph{display:flex;align-items:center;justify-content:center;color:var(--gray3);font-size:22px;}
.rb-body{min-width:0;}
.rb-top{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--gray2);min-width:0;}
.rb-top .nm{color:var(--white);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rb-top .rg{flex:none;}
.rb-top .rg::before{content:"·";margin-right:6px;color:var(--gray3);}
.rb-score{margin-left:auto;flex:none;font-weight:800;color:var(--gold2);font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:-.02em;}
.rb-score small{font-size:10px;color:var(--gray3);font-weight:600;margin-left:1px;}
.rb-tier{margin-left:auto;flex:none;font-size:11px;padding:2px 8px;border-radius:999px;background:var(--gold-bg);color:var(--gold2);font-weight:700;}
.rb-quote{margin-top:6px;font-size:15px;font-weight:800;line-height:1.4;color:var(--white);letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.rb-quote::before{content:"「";color:var(--gold2);}
.rb-quote::after{content:"」";color:var(--gold2);}
.rb-ex{margin-top:5px;font-size:13px;color:var(--gray1);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;}
.rb-quote + .rb-ex{color:var(--gray2);}
.rb-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px;}
.rb-tag{font-size:11px;padding:2px 7px;border-radius:6px;background:var(--bg2);color:var(--gray2);}
.rb-meta{margin-top:8px;display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--gray3);flex-wrap:wrap;}
.rb-meta b{color:var(--gray2);font-weight:600;}
.rb-meta .rb-price{color:var(--gold2);font-weight:700;}
.rb-meta .rb-honor{color:var(--gold2);}
.rb-more{margin:14px 0 0;width:100%;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--bg1);color:var(--gray1);font-weight:700;font-size:13.5px;cursor:pointer;font-family:inherit;}
.rb-more:disabled{opacity:.5;cursor:default;}
.rb-end{text-align:center;font-size:12px;color:var(--gray3);padding:16px 0 4px;}
.rb-skel{height:112px;border-radius:16px;background:linear-gradient(90deg,var(--bg1) 25%,var(--bg2) 50%,var(--bg1) 75%);background-size:200% 100%;animation:rbSk 1.2s linear infinite;}
@keyframes rbSk{from{background-position:200% 0;}to{background-position:-200% 0;}}
.rb-cta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:10px 18px;border-radius:999px;background:var(--gold);color:#fff;font-weight:700;font-size:13px;border:none;cursor:pointer;font-family:inherit;}
/* 详情页 */
.rd-share{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--bg1);color:var(--gray1);font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;}
.rd-share iconify-icon{font-size:15px;}
.rd-teacher{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--bg1);border:1px solid var(--line);margin-top:6px;}
.rd-teacher img,.rd-teacher .ph{width:52px;height:52px;border-radius:14px;object-fit:cover;background:var(--bg2);flex:none;}
.rd-teacher .ph{display:flex;align-items:center;justify-content:center;color:var(--gray3);font-size:20px;}
.rd-t-tx{flex:1;min-width:0;}
.rd-t-n{font-weight:800;font-size:15px;color:var(--white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rd-t-s{font-size:12px;color:var(--gray2);margin-top:3px;}
.rd-t-s b{color:var(--gold2);font-weight:700;}
.rd-t-btns{display:flex;gap:8px;margin:10px 0 14px;}
.rd-btn{flex:1;padding:11px;border-radius:12px;border:1px solid var(--line);background:var(--bg1);color:var(--gray1);font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:6px;}
.rd-btn.pri{background:var(--gold);color:#fff;border-color:var(--gold);}
.rd-btn:active{transform:scale(.97);}
.rd-more{margin-top:4px;width:100%;padding:12px;border-radius:12px;border:1px dashed var(--line2);background:transparent;color:var(--gray1);font-weight:700;font-size:13.5px;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:6px;}
#rd-body .review-card{margin-bottom:12px;}

/* ── 首页「本周最热报告」横滑区：插在老师流第 6 张后，占满一行；头部与「今日可约」同构 ── */
#rp-rail{grid-column:1/-1;margin:8px 0 12px;}
.rpr-list{display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -16px;padding:2px 16px 4px;overscroll-behavior-x:contain;scroll-snap-type:x proximity;}
.rpr-list::-webkit-scrollbar{display:none;}
.rpr-card{flex:none;width:210px;padding:12px 13px;border-radius:14px;background:var(--bg1);border:1px solid var(--line);cursor:pointer;display:flex;flex-direction:column;gap:8px;scroll-snap-align:start;transition:transform .1s;}
.rpr-card:active{transform:scale(.975);}
.rpr-top{display:flex;align-items:center;gap:7px;min-width:0;}
.rpr-top img,.rpr-top .ph{width:26px;height:26px;border-radius:8px;object-fit:cover;background:var(--bg2);flex:none;}
.rpr-top .ph{display:flex;align-items:center;justify-content:center;color:var(--gray3);font-size:13px;}
.rpr-top .nm{flex:1;font-size:12.5px;font-weight:700;color:var(--gray1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
html.light .rpr-card{box-shadow:0 2px 12px rgba(20,30,60,.06);}
.rpr-top .rx-lv{margin-left:auto;font-size:10.5px;padding:1px 6px;}
.rpr-quote{font-size:14px;font-weight:800;line-height:1.45;color:var(--white);letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px;}
.rpr-quote::before{content:"「";color:var(--gold2);}
.rpr-quote::after{content:"」";color:var(--gold2);}
.rpr-quote.plain{font-weight:600;color:var(--gray1);}
.rpr-quote.plain::before,.rpr-quote.plain::after{content:none;}
.rpr-meta{display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--gray3);margin-top:auto;}
.rpr-meta b{color:var(--gray2);font-weight:700;font-variant-numeric:tabular-nums;}
.rpr-meta .sc{margin-left:auto;color:var(--gold2);font-weight:800;font-size:13px;}
.rpr-meta .sc small{font-size:9px;color:var(--gray3);font-weight:600;}
/* 本周新发布的补位卡（还没人赞过）：挂个中性的「新」，不显示 ♥0 赏0 —— 那等于替它做负面背书 */
.rpr-meta .nw{color:var(--gold2);font-weight:700;}
.rpr-meta .mc{margin-left:auto;color:var(--gray3);font-size:11px;}
.rpr-more{flex:none;width:96px;border-radius:14px;border:1px dashed var(--line2);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--gray2);font-size:12.5px;font-weight:700;cursor:pointer;}
.rpr-more iconify-icon{font-size:20px;color:var(--gold2);}

/* ── 报告互动：点赞 / 打赏 / 等级 ── */
/* 等级徽章：按累计获赏 有料 → 口碑 → 精华 → 镇站，颜色逐级升温 */
.rx-lv{display:inline-flex;align-items:center;gap:3px;flex:none;font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;line-height:1.3;white-space:nowrap;}
.rx-lv.l1{color:#ff8a3d;background:rgba(255,138,61,.14);}
.rx-lv.l2{color:#4fb4ff;background:rgba(79,180,255,.14);}
.rx-lv.l3{color:#f0c045;background:rgba(240,192,69,.16);}
.rx-lv.l4{color:#e8a0ff;background:linear-gradient(90deg,rgba(232,160,255,.18),rgba(255,138,61,.18));}
html.light .rx-lv.l1{color:#d6621a;} html.light .rx-lv.l2{color:#1e7fd6;} html.light .rx-lv.l3{color:#b8860b;} html.light .rx-lv.l4{color:#9b3fc4;}
.rb-top .rx-lv{margin-left:2px;}
.review-hdr-right .rx-lv{margin-right:6px;}
/* 合集卡片底行的 ♥ N · 赏 N */
.rx-meta{display:inline-flex;align-items:center;gap:3px;color:var(--gray2);font-weight:600;}
.rx-meta .rx-i{font-style:normal;font-size:10px;color:var(--gray3);}
/* 报告卡底部动作行：扁平、无边框，像社交产品的「点赞 / 打赏」一行——图标 + 数字，安静不抢正文 */
.rx-bar{display:flex;align-items:center;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);}
.rx-act{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 10px;margin-left:-6px;border-radius:10px;border:none;background:transparent;color:var(--gray2);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s,color .15s,transform .1s;-webkit-tap-highlight-color:transparent;}
.rx-act + .rx-act{margin-left:2px;}
.rx-act iconify-icon{font-size:18px;}
.rx-act .rx-n{font-variant-numeric:tabular-nums;font-weight:700;color:var(--gray1);}
.rx-act .rx-n:empty{display:none;}
.rx-act:active{background:var(--bg2);transform:scale(.96);}
.rx-act:disabled{opacity:.6;}
.rx-like.on{color:#ff5a5f;}
.rx-like.on .rx-n{color:#ff5a5f;}
.rx-like.on iconify-icon{animation:rxPop .35s cubic-bezier(.2,1.6,.4,1);}
@keyframes rxPop{0%{transform:scale(.6);}60%{transform:scale(1.25);}100%{transform:scale(1);}}
.rx-tip span{color:var(--gray2);}
.rx-tip iconify-icon{color:var(--gold2);}
.rx-lvtxt{margin-left:auto;font-size:11.5px;color:var(--gray3);white-space:nowrap;display:inline-flex;align-items:center;}
.rx-lvtxt .rx-lv{font-size:11px;}
/* 我的报告里的读者反馈行 */
.myrep-rx{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--gray2);margin-top:10px;}
.myrep-rx b{color:var(--gold2);}
/* 打赏弹层 */
.rx-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10050;background:rgba(0,0,0,.55);display:none;align-items:flex-end;justify-content:center;}
.rx-mask.show{display:flex;}
.rx-sheet{width:100%;max-width:480px;background:var(--bg1);border-radius:20px 20px 0 0;padding:16px 16px calc(18px + env(safe-area-inset-bottom,0px));animation:rxUp .25s cubic-bezier(.2,.8,.2,1);}
@keyframes rxUp{from{transform:translateY(30px);opacity:0;}to{transform:none;opacity:1;}}
.rx-sh-h{display:flex;align-items:baseline;justify-content:space-between;font-size:16px;font-weight:800;color:var(--white);}
.rx-sh-bal{font-size:12px;color:var(--gray2);font-weight:600;}
.rx-amts{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:14px;}
.rx-amts button{height:40px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--gray1);font-size:14px;font-weight:800;cursor:pointer;font-family:inherit;font-variant-numeric:tabular-nums;}
.rx-amts button.on{background:var(--gold);border-color:var(--gold);color:#fff;}
.rx-custom{margin-top:8px;}
.rx-custom input{width:100%;box-sizing:border-box;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--white);font-size:16px;padding:0 12px;font-family:inherit;outline:none;}
.rx-custom input:focus{border-color:var(--gold-border);box-shadow:0 0 0 3px var(--gold-bg);}
.rx-lvline{font-size:12px;color:var(--gray2);margin:12px 0 10px;line-height:1.5;}
.rx-lvline b{color:var(--gold2);}
.rx-go{width:100%;height:46px;border:none;border-radius:999px;background:var(--gold);color:#fff;font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;}
.rx-go:disabled{opacity:.45;cursor:default;}
