/* ===== 云枢智控 · 评审卡片完善样式（mobile.review.css） =====
   1700 手机端评审卡片完善：AppMd 全文「像看文章」（标题分层/段落间距/加粗/表格边框）、
   确认屏意见/补充折叠输入、朗读按钮、验收详情页上传附件条。
   mobile.css 已 482 行（近 500 红线），新增样式独立成文件。被 /static/mobile.html 在 mobile.css 后引用。 */

/* ── 朗读按钮（confirm 屏 + 验收详情页共用） ── */
.btn-voice{
  width:100%;min-height:44px;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;
  background:var(--bar-bg);color:var(--sub);border:1px solid var(--border);
}
.btn-voice.speaking{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.btn-voice:active{opacity:.85}

/* ── 确认屏：事项摘要 + detail 走 AppMd 排版 ── */
.todo-summary{font-size:16px;color:var(--text);line-height:1.7;margin-bottom:8px;white-space:pre-wrap;word-break:break-word}
.confirm-detail{
  background:var(--bg);border:1px solid var(--border);border-radius:10px;
  padding:10px 12px;margin-bottom:10px;
}
.confirm-detail .rv-md{max-height:none}

/* ── 确认屏：意见/补充折叠输入 ── */
.confirm-opinion{margin-bottom:8px}
.confirm-opinion-toggle{
  width:100%;min-height:40px;border-radius:8px;font-size:14px;cursor:pointer;
  background:var(--card);color:var(--accent);border:1px dashed var(--border);
}
.confirm-opinion-toggle.active{background:var(--accent-soft);border-color:var(--accent);border-style:solid}
.confirm-opinion-ta{
  width:100%;margin-top:8px;box-sizing:border-box;min-height:72px;padding:10px 12px;
  background:var(--bar-bg);border:1px solid var(--border);border-radius:10px;
  color:var(--text);font-size:16px;line-height:1.7;outline:none;resize:vertical;
}
.confirm-opinion-ta:focus{border-color:var(--accent)}

/* ── 验收详情页：朗读全文 + 上传附件条 ── */
.rv-ext-row{display:flex;gap:8px}
.rv-ext-row .btn-voice{flex:1}
.rv-upload-btn{
  flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;
  border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;
  background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);
}
.rv-upload-btn:active{opacity:.85}

/* ── AppMd 全文排版：「像看文章，不是乱码堆叠」（137：字号层级强化——该大就大该小就小） ── */
.rv-md{font-size:16px;line-height:1.75;color:var(--text);word-break:break-word}
.rv-md h1,.rv-md h2,.rv-md h3,.rv-md h4{margin:20px 0 8px;line-height:1.35;color:var(--text);font-weight:800}
.rv-md h1{font-size:var(--fs-l1)}
.rv-md h2{font-size:var(--fs-l2)}
.rv-md h3{font-size:var(--fs-l3)}
.rv-md h4{font-size:16px}
.rv-md p{margin:10px 0;font-size:16px;line-height:1.75}
.rv-md ul,.rv-md ol{margin:10px 0;padding-left:24px;font-size:16px;line-height:1.7}
.rv-md li{margin:5px 0;line-height:1.7}
.rv-md blockquote{
  margin:10px 0;padding:8px 12px;border-left:3px solid var(--accent);
  background:var(--bg);border-radius:6px;color:var(--sub);font-size:14px;line-height:1.7;
}
.rv-md pre{background:var(--bar-bg);padding:12px;border-radius:8px;overflow-x:auto;font-size:14px;margin:10px 0;line-height:1.6}
.rv-md code{background:var(--bar-bg);padding:1px 5px;border-radius:4px;font-size:13px}
.rv-md table{border-collapse:collapse;margin:12px 0;width:100%;font-size:16px}
.rv-md th,.rv-md td{border:1px solid var(--border);padding:9px 11px;text-align:left;vertical-align:top;line-height:1.6}
.rv-md th{background:var(--bar-bg);font-weight:700}
.rv-md strong,.rv-md b{font-weight:800;color:var(--text)}
.rv-md em{font-style:italic}

/* ── 137 评审详情底部：评审意见输入 + 确认评审 ── */
.rv-confirm-review{
  margin-top:12px;padding:12px;background:var(--card);border:1px solid var(--border);
  border-radius:12px;
}
.rv-confirm-review .rv-comment-ta{width:100%;box-sizing:border-box;margin-bottom:10px}
.rv-confirm-review .btn-approve,.rv-confirm-review .btn-revise{width:100%}

/* ── 139 交办详情：字段 + 进程时间线（物流单动态卡） ── */
.dlg-field{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px;font-size:14px;line-height:1.6}
.dlg-f-label{flex:none;min-width:64px;font-weight:700;color:var(--sub)}
.dlg-tl-title{margin:14px 0 8px;font-size:16px;font-weight:800;color:var(--text)}
.dlg-tl-empty{color:var(--sub);font-size:13px;padding:8px 0}
.dlg-actions{display:flex;gap:8px;margin-top:14px}
.dlg-actions .btn-approve,.dlg-actions .btn-voice{flex:1;margin:0}
.dlg-note{margin-top:10px;font-size:12px;color:var(--sub);line-height:1.6}

/* ── 建言详情：附件文档（方案/价值）点击展开 ── */
.sug-doc{border:1px solid var(--border);border-radius:10px;margin-bottom:10px;overflow:hidden;flex:none}
.sug-doc-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px;font-size:14px;font-weight:600;cursor:pointer;
  background:var(--card);color:var(--text);
}
.sug-doc-head:active{opacity:.85}
.sug-doc-arrow{color:var(--sub);font-size:12px}
.sug-doc-body{padding:4px 12px 12px;background:var(--bg);border-top:1px solid var(--border)}
.sug-doc-body .btn-voice{margin:10px 0 4px}
.sug-timeline{padding:2px 0}
.tl-item{position:relative;padding:0 0 12px 18px;font-size:14px;line-height:1.6;color:var(--text);border-left:2px solid var(--border)}
.tl-item:last-child{border-left-color:transparent;padding-bottom:2px}
.tl-dot{position:absolute;left:-6px;top:3px;font-size:11px;color:var(--accent)}
.tl-txt b{display:block;font-weight:700;color:var(--text)}
.tl-txt span{color:var(--sub)}

/* ── 087 整改5：老板端整改动态操作（调整动态/取消整改/完结验收流程） ── */
.rv-adj-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.rv-adj-actions .btn-adj,.rv-adj-actions .btn-adj-cancel,.rv-adj-actions .btn-adj-complete{
  flex:1;min-width:92px;min-height:40px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;
  background:var(--bar-bg);color:var(--text);border:1px solid var(--border);
}
.rv-adj-actions .btn-adj-cancel{color:var(--danger, #d43);border-color:var(--danger, #d43)}
.rv-adj-actions .btn-adj-complete{color:var(--accent);border-color:var(--accent)}
.rv-adj-actions .btn-adj:active,.rv-adj-actions .btn-adj-cancel:active,.rv-adj-actions .btn-adj-complete:active{opacity:.85}
.rv-adj-picker{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.rv-adj-picker .btn-adj-set{
  flex:1;min-width:88px;min-height:38px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;
  background:var(--card);color:var(--text);border:1px solid var(--border);
}
.rv-adj-picker .btn-adj-set:active{opacity:.85}

/* ── 087 建言通道详情：字段（问题/方案/价值/结论/关联交办） ── */
.sug-field{margin-bottom:6px}
.sug-f-label{display:inline-block;font-size:13px;font-weight:700;color:var(--sub);margin-bottom:2px}
/* ── 建言详情整改：摘要字号收紧（覆盖 .rv-md 全局 16px/1.8）+ 三按钮横排一行 ── */
.sug-field .rv-md{font-size:14px;line-height:1.6}
.sug-actions{display:flex;gap:8px;margin-top:12px}
.sug-actions .btn-approve,.sug-actions .btn-revise{flex:1;margin:0;min-height:40px}
/* ── 建言整改：已采纳按钮标绿亮出（disabled 覆盖默认灰化，仅视觉不改行为） ── */
.sug-actions .btn-approve.sug-adopt-adopted:disabled{opacity:1;pointer-events:none;color:var(--online);background:var(--online-soft);border:1px solid var(--online)}

/* ── 建言详情整改2：写看法内联输入框（不弹窗，textarea 复用 .rv-comment-ta 已有样式） ── */
.sug-write-box{margin-top:10px}
.sug-write-actions{display:flex;gap:8px}
.sug-write-actions .btn-revise{flex:1;min-height:40px;margin:0}
.sug-write-actions .btn-approve{flex:1;min-height:40px;margin:0}
/* #194 交办详情整改：发送/取消同宽（btn-approve 补 flex:1 对齐 btn-revise）；写看法大输入口 min-height:140px 覆盖 mobile.css 96px */
.sug-write-box .rv-comment-ta{min-height:140px}

/* ── 建言详情整改3：AI 润色结果预览区（✨ AI润色 → 预览 → 📥 插入） ── */
.sug-polish-box{margin-top:10px}
.sug-polish-text{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.7;color:var(--text);white-space:pre-wrap;word-break:break-word}
.sug-polish-actions{display:flex;gap:8px;margin-top:8px}
.sug-polish-actions .btn-approve{flex:1;min-height:40px;margin:0}

/* ── 建言整改：rel-tab 红色数量徽标（未评审/待阅/建言，0 时隐藏） ── */
.rel-tab-badge{
  position:absolute;top:4px;right:6px;min-width:16px;height:16px;line-height:16px;
  padding:0 4px;border-radius:10px;background:var(--offline);color:#fff;
  font-size:11px;text-align:center;
}

/* ── 190254 落盘绕过治理：违规落盘建言标红提示（仅待阅队列，含直达重新提交入口） ── */
.sug-noncomp{background:rgba(217,48,38,.08);border:1px solid rgba(217,48,38,.35);border-radius:10px;padding:10px 12px;margin:8px 0;color:#d93026;font-size:13px;line-height:1.6}
.sug-noncomp .sug-resubmit{color:#d93026;font-weight:700;text-decoration:underline}

/* ── 总单十四②：验收清单屏——逐条勾选(✓/✗)+ 汇总提交（后端已带 items 编号清单） ── */
.rv-checklist{margin:10px 0;border:1px solid var(--accent-border);border-radius:12px;background:var(--card);padding:10px 12px}
.rv-cl-head{font-size:13px;font-weight:700;color:var(--accent);margin-bottom:8px}
.rv-cl-item{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-top:1px solid var(--border)}
.rv-cl-item:first-of-type{border-top:none}
.rv-cl-num{font-size:14px;font-weight:700;color:var(--sub);min-width:22px;line-height:1.5}
.rv-cl-text{flex:1;font-size:14px;line-height:1.5;color:var(--text)}
.rv-cl-ok,.rv-cl-no{
  width:36px;height:36px;flex-shrink:0;border-radius:50%;border:1px solid var(--border);
  background:var(--bar-bg);color:var(--sub);font-size:15px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.rv-cl-ok:active,.rv-cl-no:active{opacity:.8}
.rv-cl-item.ok .rv-cl-ok{background:var(--online);border-color:var(--online);color:#fff}
.rv-cl-item.no .rv-cl-no{background:var(--offline);border-color:var(--offline);color:#fff}

/* ── 20260819 验收工作台（老板 08-19 拍板：逐条勾选/备注/留言/截图标注/自动保存，本地 18888 同款） ── */
.wbs{padding:12px}
.wbs-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.wbs-title{font-size:13px;font-weight:700;color:var(--accent)}
.wbs-save{font-size:11px;color:var(--sub);opacity:.9}
.wbs-save.on{color:var(--online)}
.wbs-tools{display:flex;gap:8px;margin-bottom:10px}
.wbs-tool{flex:1;height:44px;border:1px solid var(--accent-border);border-radius:10px;background:var(--bar-bg);
  color:var(--text);font-size:14px;cursor:pointer}
.wbs-tool:active{opacity:.8}
.wbs-item{padding:10px 0;border-top:1px solid var(--border)}
.wbs-item:first-of-type{border-top:none}
.wbs-top{display:flex;align-items:flex-start;gap:8px}
.wbs-num{font-size:14px;font-weight:700;color:var(--sub);min-width:22px;line-height:1.5}
.wbs-text{flex:1;font-size:14px;line-height:1.5;color:var(--text);word-break:break-word;overflow-wrap:anywhere;min-width:0}   /* 20260819 长文本防溢出 */
.wbs-btns{display:flex;gap:8px;margin:8px 0 0 30px}
.wbs-ok,.wbs-no,.wbs-note-btn{height:40px;padding:0 12px;border-radius:20px;font-size:13px;cursor:pointer;
  border:1px solid var(--border);background:var(--bar-bg);color:var(--sub)}
.wbs-ok:active,.wbs-no:active,.wbs-note-btn:active{opacity:.8}
.wbs-item.ok .wbs-ok{background:var(--online);border-color:var(--online);color:#fff}
.wbs-item.no .wbs-no{background:var(--offline);border-color:var(--offline);color:#fff}
.wbs-note-tip{font-size:12px;color:var(--accent);margin:6px 0 0 30px;line-height:1.5}
.wbs-note-ta{display:none;width:calc(100% - 30px);margin:8px 0 0 30px;box-sizing:border-box;min-height:40px;
  border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px;background:var(--card);color:var(--text);resize:vertical}
.wbs-sum{margin-top:10px;padding:8px 10px;border-radius:8px;background:var(--bar-bg);font-size:12px;color:var(--sub);line-height:1.6;word-break:break-all}
.wbs-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:600;display:flex;align-items:center;justify-content:center}
.wbs-modal{width:90%;max-width:520px;max-height:80vh;background:var(--card);border-radius:14px;display:flex;flex-direction:column;overflow:hidden}
.wbs-modal-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;
  border-bottom:1px solid var(--border);font-size:14px;font-weight:700;color:var(--text)}
.wbs-modal-close{width:40px;height:40px;border:none;background:none;font-size:16px;color:var(--sub);cursor:pointer}
.wbs-msg-list{flex:1;overflow-y:auto;padding:12px 14px;min-height:120px;max-height:40vh}
.wbs-msg{border-left:2px solid var(--accent-border);padding:4px 0 6px 10px;margin-bottom:10px;font-size:13px;color:var(--text);line-height:1.5}
.wbs-msg b{color:var(--accent)}
.wbs-msg .empty,.wbs-msg.empty{color:var(--sub)}
.wbs-msg-input{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border)}
.wbs-msg-input textarea{flex:1;min-height:40px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px;background:var(--card);color:var(--text);resize:none}
.wbs-send{width:72px;height:40px;align-self:flex-end;border:none;border-radius:20px;background:var(--accent);color:#fff;font-size:14px;cursor:pointer}
.wbs-shot-body{padding:12px 14px;overflow-y:auto}
.wbs-shot-pick{display:block;text-align:center;padding:14px;border:1px dashed var(--accent-border);border-radius:10px;color:var(--accent);font-size:14px;cursor:pointer}
.wbs-canvas{width:100%;border:1px solid var(--border);border-radius:10px;background:#fff;touch-action:none}
.wbs-draw{height:40px;padding:0 10px;margin:8px 4px 0 0;border:1px solid var(--border);border-radius:8px;background:var(--bar-bg);color:var(--text);font-size:13px;cursor:pointer}
.wbs-draw:active{opacity:.8}
.wbs-colors{display:inline-flex;gap:8px;margin-left:8px;align-items:center}
.wbs-colors i{width:26px;height:26px;border-radius:50%;display:inline-block;border:2px solid #fff;box-shadow:0 0 0 1px var(--border);cursor:pointer}
.wbs-colors i:active{transform:scale(1.1)}
.wbs-upload{width:100%;height:44px;margin-top:12px;border:none;border-radius:10px;background:var(--accent);color:#fff;font-size:15px;cursor:pointer}
.wbs-upload:active{opacity:.85}
