/* ============ 留言板（匿名 · 先审后发 · 两级回复） ============ */

/* 悬浮入口按钮（右侧贴边，自动定位在右侧控件上方） */
.comment-fab{
  position:fixed;right:0;top:46%;transform:translateY(-50%);
  z-index:92;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:38px;padding:13px 5px;border:0;
  background:var(--accent,#c44c32);color:#fff;
  border-radius:16px 0 0 16px;
  box-shadow:var(--shadow-sm);
  cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.08em;
  writing-mode:vertical-rl;
  -webkit-tap-highlight-color:transparent;
  transition:transform .16s cubic-bezier(.22,1,.36,1),box-shadow .16s
}
.comment-fab svg{width:15px;height:15px;display:block;writing-mode:horizontal-tb}
.comment-fab span{writing-mode:vertical-rl;line-height:1.1}
.comment-fab:active{transform:translateY(-50%) scale(.94)}

/* 弹窗底层容器 */
.cm-root{position:fixed;inset:0;z-index:145;display:flex;align-items:flex-end;justify-content:center}
.cm-root[hidden]{display:none}
.cm-mask{position:absolute;inset:0;background:rgba(23,55,47,.45);animation:cm-fade .18s ease}
@keyframes cm-fade{from{opacity:0}to{opacity:1}}

/* 底部抽屉 */
.cm-sheet{
  position:relative;width:100%;max-width:560px;margin:0 auto;
  max-height:min(70svh,680px);display:flex;flex-direction:column;
  background:var(--surface,#fff);border-radius:18px 18px 0 0;
  box-shadow:0 -10px 34px rgba(18,44,37,.22);
  animation:cm-up .24s cubic-bezier(.22,1,.36,1);overflow:hidden;
}
@keyframes cm-up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.cm-head{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:14px 16px 10px;flex:0 0 auto;
}
.cm-head h3{margin:0;font-size:16px;color:var(--ink,#17372f);display:flex;align-items:center;gap:7px;font-weight:700}
.cm-count{font-size:11px;font-weight:600;color:var(--accent-strong,#a93d29);background:#faeee9;padding:2px 8px;border-radius:99px;margin-left:2px}
.cm-close{width:28px;height:28px;border:0;background:var(--surface-soft,#f3f7f4);color:var(--ink-soft,#456159);font-size:16px;line-height:1;border-radius:50%;cursor:pointer;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.cm-close:active{background:#e4ece6}

/* 列表 */
.cm-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2px 14px 6px;min-height:120px}
.cm-empty{padding:44px 20px;text-align:center;color:var(--ink-soft,#456159);font-size:13px;line-height:1.8}

/* —— 一级留言 —— */
.cm-item{display:flex;gap:9px;padding:12px 2px 10px;border-bottom:1px solid var(--line,rgba(23,55,47,.1));align-items:flex-start}
.cm-item:last-child{border-bottom:none}
.cm-dot{width:24px;height:24px;flex:0 0 auto;border-radius:50%;background:#e7f0ea;color:var(--ink,#17372f);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:2px}
.cm-body{flex:1;min-width:0}
.cm-text{font-size:14px;color:var(--ink,#17372f);line-height:1.55;word-break:break-word;white-space:pre-wrap}
.cm-meta{margin-top:5px;font-size:11px;color:#8aa098;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cm-time{color:#a8b5ae}
.cm-reply-btn{border:0;background:transparent;color:var(--accent-strong,#a93d29);font-size:11px;cursor:pointer;padding:0;font-weight:600;display:inline-flex;align-items:center;gap:3px}
.cm-reply-btn:active{opacity:.65}
.cm-item.pending{opacity:.75}
.cm-pending{font-size:10px;color:var(--accent-strong,#a93d29);background:#faeee9;padding:1px 6px;border-radius:99px;font-weight:600}

/* —— 二级回复（更小一号，缩进 + 竖线） —— */
.cm-sub{margin:2px 0 0 13px;padding-left:10px;border-left:2px solid #e9f0eb}
.cm-sub .cm-item{border-bottom:1px dashed var(--line,rgba(23,55,47,.08));padding:8px 2px}
.cm-sub .cm-item:last-child{border-bottom:none}
.cm-sub .cm-dot{width:19px;height:19px;font-size:9px;margin-top:1px;background:#f1f6f2}
.cm-sub .cm-text{font-size:13.5px;color:#2e4f45;line-height:1.55}
.cm-sub .cm-meta{margin-top:3px;font-size:10.5px}
.cm-re{font-size:11px;color:#789087;line-height:1.4;margin-bottom:1px;word-break:break-all}
.cm-re b{color:#456159;font-weight:600}

/* 折叠按钮 */
.cm-toggle{display:inline-flex;align-items:center;gap:3px;margin:4px 0 2px 13px;font-size:11px;color:#789087;background:#f3f7f4;border:0;border-radius:8px;padding:4px 10px;cursor:pointer;font-weight:600}
.cm-toggle:active{opacity:.7}

/* 底部发布区 */
.cm-foot{flex:0 0 auto;padding:10px 16px calc(12px + var(--safe-bottom,0px));background:var(--surface,#fff);border-top:1px solid var(--line,rgba(23,55,47,.12))}
.cm-replying{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;color:#456159;background:#f3f7f4;border-radius:11px;padding:6px 6px 6px 12px}
.cm-replying span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-replying b{color:var(--accent-strong,#a93d29)}
.cm-replying button{flex:0 0 auto;min-width:66px;height:36px;border:0;border-radius:10px;background:#e7f0ea;color:#456159;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}
.cm-replying button:active{background:#d8e5dd}
.cm-replying[hidden]{display:none !important}
.cm-input-row{display:flex;gap:8px;align-items:flex-end}
.cm-input{
  flex:1;border:1px solid var(--line,rgba(23,55,47,.2));background:var(--surface-soft,#f3f7f4);
  border-radius:12px;padding:9px 12px;font-size:14px;color:var(--ink,#17372f);outline:none;
  resize:none;max-height:96px;line-height:1.45;font-family:inherit;
}
.cm-input:focus{border-color:rgba(196,76,50,.55);background:#fff;box-shadow:0 0 0 2px rgba(196,76,50,.14)}
.cm-send{
  flex:0 0 auto;height:38px;padding:0 16px;border:0;border-radius:12px;
  background:var(--accent,#c44c32);color:#fff;font-size:14px;font-weight:600;cursor:pointer;
}
.cm-send:active{background:var(--accent-strong,#a93d29)}
.cm-send:disabled{opacity:.5}
.cm-note{margin-top:7px;font-size:11px;color:#8aa098;display:flex;align-items:center;gap:4px}
.cm-note b{color:var(--accent-strong,#a93d29);font-weight:600}

/* 轻提示 */
.cm-toast{
  position:fixed;left:50%;bottom:calc(120px + var(--safe-bottom,0px));transform:translateX(-50%);
  z-index:9999;background:rgba(23,55,47,.92);color:#fff;font-size:13px;padding:9px 16px;border-radius:99px;
  opacity:0;pointer-events:none;transition:opacity .2s;max-width:82vw;text-align:center
}
.cm-toast.show{opacity:1}
