/* wb.css —— 文档工作台通用样式（PDF / PPT / Office 共用） */
.wb-wrap{max-width:1120px;margin:0 auto;padding:0 20px 70px}
.wb-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;padding:26px 0 4px}
.wb-back{display:inline-flex;align-items:center;gap:4px;color:#5a6274;text-decoration:none;font-size:14px;padding:6px 10px;border-radius:8px;border:1px solid #e5e7f0;background:#fff;white-space:nowrap}
.wb-back:hover{color:#6B4FBB;border-color:#d9d2f0}
.wb-head h1{font-size:24px;margin:0 0 6px;color:#1c2230}
.wb-head p{margin:0;color:#5a6274;font-size:14px;line-height:1.65;max-width:760px}
.wb-badge{align-self:center;background:#0f9d6c;color:#fff;font-size:13px;padding:5px 12px;border-radius:999px;white-space:nowrap}

/* 上传区 */
.wb-dz{border:2px dashed #d8dbe6;border-radius:14px;background:#fff;padding:34px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;margin-top:16px}
.wb-dz.over{border-color:#6B4FBB;background:#f7f4ff}
.wb-dz h3{font-size:16px;margin:0 0 6px;color:#1c2230}
.wb-dz p{margin:0 0 14px;color:#8a91a5;font-size:13px}
.wb-dz-ico{width:40px;height:40px;margin:0 auto 8px;color:#6B4FBB}
.wb-dz-ico svg{width:100%;height:100%}
.wb-files{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.wb-file{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e5e7f0;border-radius:10px;padding:10px 14px;font-size:14px}
.wb-file span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wb-file em{color:#8a91a5;font-style:normal;font-size:13px}
.wb-file b{cursor:pointer;color:#c0392b;font-size:18px;line-height:1;padding:2px 6px}
.wb-stamp-file{display:flex;align-items:center;gap:10px;margin-top:10px;background:#fffdf6;border:1px solid #f0e2bd;border-radius:10px;padding:9px 14px;font-size:13px;color:#8a6d1f}

/* 预设 */
.wb-presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.wb-preset{border:1px solid #e5e7f0;background:#fff;border-radius:999px;padding:7px 15px;font-size:13px;color:#4a5163;cursor:pointer;transition:.16s}
.wb-preset:hover{border-color:#6B4FBB;color:#6B4FBB;box-shadow:0 4px 14px rgba(107,79,187,.12)}

/* 主体两栏 */
.wb-body{display:grid;grid-template-columns:290px 1fr;gap:18px;margin-top:20px;align-items:start}
@media(max-width:880px){.wb-body{grid-template-columns:1fr}}

/* 左侧功能面板 */
.wb-panel{background:#fff;border:1px solid #e5e7f0;border-radius:14px;padding:16px 14px;position:sticky;top:16px}
@media(max-width:880px){.wb-panel{position:static}}
.wb-panel h2{font-size:13px;color:#8a91a5;font-weight:600;letter-spacing:.4px;margin:0 0 10px}
.wb-group{margin-bottom:16px}
.wb-group>h3{font-size:13px;color:#39405a;margin:0 0 8px;font-weight:600;display:flex;align-items:center;gap:6px}
.wb-op{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;border:1px solid #eceefa;background:#fafbff;border-radius:9px;padding:8px 10px;margin-bottom:6px;cursor:pointer;transition:.15s;font-size:13.5px;color:#2a3144;line-height:1.35}
.wb-op:hover{border-color:#6B4FBB;background:#f5f1ff;transform:translateX(2px)}
.wb-op i{font-style:normal;font-size:14px;line-height:1.2}
.wb-op small{display:block;color:#8a91a5;font-size:11.5px;margin-top:2px;font-weight:400}

/* 右侧流水线 */
.wb-pipe{background:#fff;border:1px solid #e5e7f0;border-radius:14px;padding:16px 16px 20px;min-height:260px}
.wb-pipe-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.wb-pipe-head h2{font-size:15px;margin:0;color:#1c2230}
.wb-pipe-head em{font-style:normal;font-size:12.5px;color:#8a91a5}
.wb-empty{border:1.5px dashed #e3e6f0;border-radius:12px;padding:44px 16px;text-align:center;color:#98a0b3;font-size:14px;line-height:1.8}
.wb-step{border:1px solid #e8eaf4;border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#fcfcff;position:relative}
.wb-step.term{background:#fffbf3;border-color:#f2e3c4}
.wb-step-top{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.wb-step-no{width:22px;height:22px;border-radius:50%;background:#6B4FBB;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.wb-step.term .wb-step-no{background:#e0913a}
.wb-step-top h4{font-size:14px;margin:0;flex:1;color:#232a3c}
.wb-step-top .tag{font-size:11px;color:#b07a20;background:#fdf1dc;border-radius:6px;padding:2px 7px}
.wb-step-btns{display:flex;gap:2px}
.wb-step-btns button{border:none;background:transparent;color:#9aa1b4;cursor:pointer;font-size:15px;padding:2px 6px;border-radius:6px;line-height:1}
.wb-step-btns button:hover{background:#eef0f8;color:#4a5163}
.wb-step-btns button.del:hover{background:#fdecec;color:#c0392b}
.wb-step-desc{font-size:12px;color:#8a91a5;margin:2px 0 8px 30px}
.wb-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 12px;margin-left:30px}
.wb-field label{display:block;font-size:12px;color:#7b8397;margin-bottom:4px}
.wb-field input[type=text],.wb-field input[type=number],.wb-field select{width:100%;padding:7px 9px;border:1px solid #dfe3ef;border-radius:7px;font-size:13px;box-sizing:border-box;background:#fff;color:#232a3c}
.wb-field input:focus,.wb-field select:focus{outline:none;border-color:#6B4FBB}
.wb-field .switch{display:flex;align-items:center;gap:7px;font-size:13px;color:#39405a;padding-top:4px}
.wb-field .switch input{width:16px;height:16px;accent-color:#6B4FBB}
.wb-field .range-row{display:flex;align-items:center;gap:8px}
.wb-field .range-row input[type=range]{flex:1;accent-color:#6B4FBB}
.wb-field .range-row em{font-style:normal;color:#6B4FBB;font-size:12.5px;font-weight:600;min-width:34px;text-align:right}

/* 底部操作 */
.wb-foot{margin-top:18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wb-run{padding:12px 34px;font-size:15.5px;border-radius:10px;border:none;background:linear-gradient(135deg,#7b5cd6,#5b3fb0);color:#fff;cursor:pointer;font-weight:600;box-shadow:0 8px 22px rgba(107,79,187,.24)}
.wb-run:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.wb-foot .hint{font-size:12.5px;color:#8a91a5}
.wb-result{margin-top:18px;background:#fff;border:1px solid #e5e7f0;border-radius:14px;padding:18px 20px;display:none}
.wb-result h3{margin:0 0 10px;font-size:15px;color:#1c2230}
.wb-result .meta{font-size:13px;color:#5a6274;margin:0 0 12px;line-height:1.7}
.wb-result .dl{display:inline-block;padding:10px 24px;border-radius:9px;background:#0f9d6c;color:#fff;text-decoration:none;font-size:14.5px;font-weight:600}
.wb-result .dl:hover{background:#0c8a5e}
.wb-msg{font-size:13px;color:#c0392b;margin-top:10px;min-height:18px}
.wb-loading{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:wbspin .8s linear infinite;vertical-align:-2px;margin-right:7px}
@keyframes wbspin{to{transform:rotate(360deg)}}
