/* ===== 文档工坊 · PPT / Excel / Word 三块编辑器（手机） ===== */

.doc-types{display:flex;gap:8px;margin-bottom:14px}
.dt{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:13px;
  border:1px solid var(--line);background:var(--card);cursor:pointer;color:var(--tx2);font-size:12px;transition:.15s}
.dt.active{border-color:rgba(124,107,255,.45);background:rgba(124,107,255,.14);color:var(--tx)}
.dt-i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:700;color:#fff;font-size:14px}
.dt-i.ppt{background:linear-gradient(135deg,#7C6BFF,#5B4BE0)}
.dt-i.word{background:linear-gradient(135deg,#2F6FE0,#1E4FB0)}
.dt-i.excel{background:linear-gradient(135deg,#0E9F63,#0B7A4B)}
.dt i{font-style:normal;font-size:9.5px;color:var(--tx3)}

/* 需求卡 + 选项 + 流水线（三块共用） */
.doc-req{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:11px 13px;
  font-size:13px;line-height:1.6;color:var(--tx);margin-bottom:10px}
.doc-req:focus{border-color:rgba(124,107,255,.5)}
.opts{display:flex;flex-wrap:wrap;gap:10px 14px;margin:4px 0 6px}
.upl{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ac2);background:rgba(34,211,238,.08);
  border:1px solid rgba(34,211,238,.2);border-radius:9px;padding:8px 10px;margin-bottom:10px}
.upl svg{width:15px;height:15px}

/* ---- PPT 编辑器 ---- */
.ppt-thumbs{display:flex;gap:9px;overflow-x:auto;padding:4px 2px 10px;margin-bottom:8px}
.ppt-thumb{flex:none;width:86px;height:52px;border-radius:9px;border:1px solid var(--line);background:var(--card2);
  position:relative;cursor:pointer;padding:7px 8px;overflow:hidden;transition:.15s}
.ppt-thumb b{display:block;font-size:9px;font-weight:600;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ppt-thumb span{font-size:7.5px;color:var(--tx3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ppt-thumb .n{position:absolute;top:4px;right:6px;font-size:8px;color:var(--tx3)}
.ppt-thumb.active{border-color:var(--ac);box-shadow:0 0 0 2px rgba(124,107,255,.3)}
.ppt-stage{background:linear-gradient(160deg,#1a1f2e,#11151f);border:1px solid var(--line);border-radius:14px;
  aspect-ratio:16/10;padding:18px 16px;display:flex;flex-direction:column;color:#fff;position:relative;overflow:hidden;margin-bottom:10px}
[data-theme="light"] .ppt-stage{background:linear-gradient(160deg,#eef1fb,#e2e7f5);color:var(--tx)}
.ppt-stage.cover{justify-content:center;align-items:center;text-align:center;background:linear-gradient(160deg,#2a2350,#15131f)}
[data-theme="light"] .ppt-stage.cover{background:linear-gradient(160deg,#ddd6ff,#cfd6f5)}
.ppt-stage h4{font-size:17px;font-weight:700;line-height:1.35;outline:none}
.ppt-stage h4:focus{box-shadow:0 2px 0 var(--ac2)}
.ppt-stage p{font-size:12px;color:rgba(255,255,255,.7);margin-top:8px;line-height:1.6;outline:none}
[data-theme="light"] .ppt-stage p{color:var(--tx2)}
.ppt-stage .plines{display:flex;flex-direction:column;gap:5px;margin-top:12px}
.ppt-stage .plines s{height:6px;border-radius:3px;background:rgba(255,255,255,.18)}
[data-theme="light"] .ppt-stage .plines s{background:rgba(17,24,39,.12)}
.ppt-stage .pchart{display:flex;align-items:flex-end;gap:5px;height:56px;margin-top:12px}
.ppt-stage .pchart s{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--ac2),rgba(34,211,238,.2))}
.ppt-tools{display:flex;gap:6px;margin-top:4px}
.ppt-tools .tb{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px;border-radius:11px;
  border:1px solid var(--line);background:var(--card);color:var(--tx2);font-size:10px;cursor:pointer}
.ppt-tools .tb svg{width:17px;height:17px}
.ppt-tools .tb:active{transform:scale(.96)}

/* ---- Excel 透视 ---- */
.pv-cfg{display:flex;gap:8px;margin-bottom:12px}
.pv-cfg .cf{flex:1}
.pv-cfg label{display:block;font-size:10.5px;color:var(--tx3);margin-bottom:4px}
.pv-cfg select{width:100%;height:36px;padding:0 8px;border-radius:10px;background:var(--card);border:1px solid var(--line);color:var(--tx);font-size:12.5px}
.pv-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pv-table{min-width:430px;border-collapse:collapse;font-size:11.5px;margin-bottom:4px}
.pv-table th,.pv-table td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.pv-table th{color:var(--tx3);font-weight:600;background:var(--card2);position:sticky;top:0}
.pv-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.pv-section{font-size:12px;color:var(--tx3);margin:14px 0 6px;display:flex;justify-content:space-between;align-items:center}
.pv-out{min-width:340px}
.pv-chart{display:flex;align-items:flex-end;gap:8px;height:120px;padding:10px 6px;margin-top:8px;
  border:1px solid var(--line);border-radius:12px;background:var(--card)}
.pv-chart .bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;height:100%}
.pv-chart .bar i{width:100%;border-radius:5px 5px 0 0;background:linear-gradient(180deg,var(--ac),rgba(124,107,255,.3));transition:height .3s}
.pv-chart .bar span{font-size:9px;color:var(--tx3);white-space:nowrap}
.pv-chart .bar em{font-size:9px;color:var(--tx2);font-style:normal}

/* ---- Word 批注 ---- */
.wd-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.wd-hint{font-size:11px;color:var(--tx3)}
.wd-body{font-size:13.5px;line-height:1.85;color:var(--tx)}
.wd-p{padding:9px 11px;border-radius:10px;margin-bottom:9px;cursor:pointer;border:1px solid transparent;transition:.15s;position:relative}
.wd-p:hover{background:var(--card2)}
.wd-p.commented{background:rgba(245,166,35,.10);border-color:rgba(245,166,35,.3)}
.wd-p .cmark{position:absolute;top:8px;right:9px;font-size:9.5px;color:var(--warn);background:rgba(245,166,35,.15);
  border-radius:6px;padding:1px 6px;display:none}
.wd-p.commented .cmark{display:inline-block}
.wd-p.resolved{background:rgba(49,196,141,.10);border-color:rgba(49,196,141,.3);text-decoration:line-through;color:var(--tx3)}
.cmt-fab{position:absolute;left:50%;transform:translateX(-50%);bottom:78px;z-index:40;display:none;
  align-items:center;gap:7px;background:var(--ac);color:#fff;font-size:12.5px;padding:9px 16px;border-radius:22px;
  box-shadow:0 8px 24px rgba(124,107,255,.5);cursor:pointer}
.cmt-fab.show{display:flex;animation:pop .18s}
.cmt-fab svg{width:15px;height:15px;fill:#fff;stroke:none}
.cmt-panel{position:absolute;left:0;right:0;bottom:62px;max-height:62%;background:var(--panel);border-top:1px solid var(--line);
  border-radius:18px 18px 0 0;padding:14px 14px 18px;z-index:45;display:none;flex-direction:column;box-shadow:0 -10px 30px rgba(0,0,0,.3)}
.cmt-panel.open{display:flex;animation:slideUp .24s ease}
.cmt-panel-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.cmt-panel-h b{font-size:14px}
.cmt-list{overflow:auto}
.cmt{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:9px}
.cmt .who{font-size:11px;color:var(--ac2);margin-bottom:5px}
.cmt .ct{font-size:12.5px;line-height:1.6;color:var(--tx2);margin-bottom:9px}
.cmt .cacts{display:flex;gap:8px}
.cmt .cacts button{flex:1;height:30px;border-radius:9px;font-size:12px;cursor:pointer;border:1px solid var(--line);background:var(--card)}
.cmt .cacts .ok{background:var(--ok);border-color:transparent;color:#fff}
.cmt .cacts .no{color:var(--tx2)}
.cmt.resolved{opacity:.55}
