/* ============================================================
   一起读：段落 + 句子上的划线
   · 正文 15px / 行高 2.0 / 首行缩进 2em
   · 正文里只标出被划的句子：我划的淡粉，他写的淡蓝
   · 批注不铺在正文下面，点句子弹出来看、接着聊
   ============================================================ */
.read-body{text-indent:0;font-size:15px;line-height:2.0;
  word-break:break-word;overflow-wrap:anywhere;max-width:100%;}
.read-body .para{text-indent:2em;margin:0 0 4px;}
.read-body .p-text{word-break:break-word;overflow-wrap:anywhere;}
.reader .rd-text{overflow-x:hidden;}

/* 划过的句子：我划的淡粉，他写的淡蓝 */
.read-body .hl{border-radius:3px;cursor:pointer;}
.read-body .hl.me{background:#FAE5E5;box-shadow:0 1px 0 rgba(214,150,158,.45);}
.read-body .hl.dream{background:#E0EBF5;box-shadow:0 1px 0 rgba(120,160,190,.45);}
.read-body .hl.me.dream{background:linear-gradient(90deg,#FAE5E5,#E0EBF5);}

/* 就这一句聊过的话 */
.p-thread{margin:2px 0 12px;display:flex;flex-direction:column;gap:6px;}
.p-thread .tc-m{max-width:88%;padding:8px 12px;border-radius:14px;font-size:12.5px;line-height:1.8;
  white-space:pre-wrap;word-break:break-word;}
.p-thread .tc-m.me{align-self:flex-end;background:var(--mine);border-bottom-right-radius:5px;}
.p-thread .tc-m.dream{align-self:flex-start;background:var(--dream);border-bottom-left-radius:5px;}

/* 点划线时那一句闪一下 */
.read-body .hl.on{box-shadow:0 0 0 2px rgba(82,191,161,.5);}

/* 点划线弹出来的那一处（浮层里就地看批注） */
.ov-body .anno{border-radius:12px;padding:12px 16px;font-size:13px;line-height:1.85;
  margin-bottom:8px;border:1px solid var(--glass-brd);text-indent:0;}
.ov-body .anno.me{background:#FAE5E5;color:var(--text);}
.ov-body .anno.dream{background:#E0EBF5;color:var(--text);}
.ov-body .anno .a-text{white-space:pre-wrap;word-break:break-word;}
.ov-body .anno .a-ops{display:flex;align-items:center;gap:10px;margin-top:8px;}
.ov-body .anno .a-btn{font-size:11px;color:var(--sub);}
.ov-body .anno .a-btn.del{color:var(--faint);}
.ov-body .p-thread{margin:0 0 4px;}
