.tool-layout[data-v-2e2b2ac7]{display:flex;flex-direction:column;height:100%}.tool-header[data-v-2e2b2ac7]{padding:20px 28px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.tool-title[data-v-2e2b2ac7]{font-size:20px;font-weight:600;color:var(--text)}.tool-desc[data-v-2e2b2ac7]{font-size:13px;color:var(--text-secondary);margin-top:4px}.tool-body[data-v-2e2b2ac7]{flex:1;overflow:auto;padding:20px 28px}.controls[data-v-f6f8f33f]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px}.control-row[data-v-f6f8f33f]{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.control-row+.control-row[data-v-f6f8f33f]{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.field[data-v-f6f8f33f]{display:flex;align-items:flex-end;gap:8px}.field label[data-v-f6f8f33f]{font-size:12px;color:var(--text-secondary);white-space:nowrap;margin-bottom:5px;display:block}.field[data-v-f6f8f33f]{flex-direction:column;align-items:stretch}.field select[data-v-f6f8f33f]{padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);min-width:150px;outline:none}.field select[data-v-f6f8f33f]:focus{border-color:var(--primary)}.custom-input[data-v-f6f8f33f]{padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-width:150px;outline:none}.custom-input[data-v-f6f8f33f]:focus{border-color:var(--primary)}.arrow[data-v-f6f8f33f]{font-size:20px;color:var(--text-disabled);padding-bottom:6px}.options[data-v-f6f8f33f]{gap:20px}.checkbox[data-v-f6f8f33f]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input[data-v-f6f8f33f]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.checkbox.on[data-v-f6f8f33f]{color:var(--text)}.panes[data-v-f6f8f33f]{display:grid;grid-template-columns:1fr 1fr;gap:16px;height:calc(100vh - 340px);min-height:280px}.pane[data-v-f6f8f33f]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.pane-head[data-v-f6f8f33f]{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-secondary)}.pane-actions[data-v-f6f8f33f]{display:flex;gap:12px}.link-btn[data-v-f6f8f33f]{font-size:12px;color:var(--primary);padding:2px 4px}.link-btn[data-v-f6f8f33f]:hover{text-decoration:underline}.copy-btn[data-v-f6f8f33f]{font-size:12px;padding:4px 14px;border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-weight:500;transition:background .15s}.copy-btn[data-v-f6f8f33f]:hover:not(:disabled){background:var(--primary-hover)}.copy-btn[data-v-f6f8f33f]:disabled{background:var(--border-strong);cursor:not-allowed}.copy-btn.done[data-v-f6f8f33f]{background:#34c759}.pane-textarea[data-v-f6f8f33f]{flex:1;border:none;outline:none;padding:14px;font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--text);background:transparent}.pane-textarea.input[data-v-f6f8f33f]::placeholder,.pane-textarea.output[data-v-f6f8f33f]::placeholder{color:var(--text-disabled)}.stats[data-v-f6f8f33f]{display:flex;gap:24px;padding:12px 4px 0;font-size:13px;color:var(--text-secondary)}.stats b[data-v-f6f8f33f]{color:var(--text);font-weight:600}.controls[data-v-aaca5170]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:16px;display:flex;gap:22px;flex-wrap:wrap}.checkbox[data-v-aaca5170]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input[data-v-aaca5170]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.checkbox.on[data-v-aaca5170]{color:var(--text)}.panes[data-v-aaca5170]{display:grid;grid-template-columns:1fr 1fr;gap:16px;height:calc(100vh - 330px);min-height:300px}.pane[data-v-aaca5170]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.pane-head[data-v-aaca5170]{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-secondary)}.pane-actions[data-v-aaca5170]{display:flex;gap:12px}.link-btn[data-v-aaca5170]{font-size:12px;color:var(--primary);padding:2px 4px}.link-btn[data-v-aaca5170]:hover{text-decoration:underline}.copy-btn[data-v-aaca5170]{font-size:12px;padding:4px 14px;border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-weight:500;transition:background .15s}.copy-btn[data-v-aaca5170]:hover:not(:disabled){background:var(--primary-hover)}.copy-btn[data-v-aaca5170]:disabled{background:var(--border-strong);cursor:not-allowed}.copy-btn.done[data-v-aaca5170]{background:#34c759}.pane-textarea[data-v-aaca5170]{flex:1;border:none;outline:none;padding:14px;font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--text);background:transparent}.result-list[data-v-aaca5170]{flex:1;overflow:auto;padding:8px 0;font-family:var(--mono);font-size:13px;line-height:1.7}.result-row[data-v-aaca5170]{padding:3px 14px;white-space:pre-wrap;word-break:break-all;border-left:3px solid transparent}.result-row.dup[data-v-aaca5170]{background:#fff1f0;border-left-color:#f04134;color:#d4380d}.result-empty[data-v-aaca5170]{padding:14px;color:var(--text-disabled);font-family:var(--font)}.stats[data-v-aaca5170]{display:flex;gap:24px;padding:12px 4px 0;font-size:13px;color:var(--text-secondary)}.stats b[data-v-aaca5170]{color:var(--text);font-weight:600}.steps[data-v-9f5a7aae]{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}.step[data-v-9f5a7aae]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px}.step-grow[data-v-9f5a7aae]{flex:1;display:flex;flex-direction:column}.step-head[data-v-9f5a7aae]{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text);margin-bottom:10px}.step-num[data-v-9f5a7aae]{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;font-weight:600;flex-shrink:0}.step-body[data-v-9f5a7aae]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.file-btn[data-v-9f5a7aae]{display:inline-flex;align-items:center;padding:6px 16px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px;cursor:pointer;transition:border-color .15s}.file-btn[data-v-9f5a7aae]:hover{border-color:var(--primary)}.file-name[data-v-9f5a7aae]{font-size:13px;color:var(--text)}.file-name.muted[data-v-9f5a7aae]{color:var(--text-disabled)}.step-info[data-v-9f5a7aae]{margin-top:8px;font-size:12px;color:var(--text-secondary)}.col-select[data-v-9f5a7aae]{padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-width:160px;outline:none}.col-select[data-v-9f5a7aae]:focus{border-color:var(--primary)}.hint[data-v-9f5a7aae]{font-size:12px;color:var(--text-disabled)}.bol-input[data-v-9f5a7aae]{flex:1;min-height:140px;width:100%;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--text);outline:none;resize:vertical}.bol-input[data-v-9f5a7aae]:focus{border-color:var(--primary)}.bol-input[data-v-9f5a7aae]::placeholder{color:var(--text-disabled)}.actions[data-v-9f5a7aae]{display:flex;align-items:center;gap:12px;padding:4px 0}.btn-primary[data-v-9f5a7aae]{padding:8px 22px;border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-size:14px;font-weight:500;transition:background .15s}.btn-primary[data-v-9f5a7aae]:hover:not(:disabled){background:var(--primary-hover)}.btn-primary[data-v-9f5a7aae]:disabled{background:var(--border-strong);cursor:not-allowed}.btn-secondary[data-v-9f5a7aae]{padding:8px 18px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:14px;transition:border-color .15s}.btn-secondary[data-v-9f5a7aae]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-secondary[data-v-9f5a7aae]:disabled{color:var(--text-disabled);cursor:not-allowed}.status[data-v-9f5a7aae]{font-size:13px;color:var(--text-secondary)}.status.ok[data-v-9f5a7aae]{color:#070}.status.err[data-v-9f5a7aae]{color:var(--danger)}.errors[data-v-9f5a7aae]{margin-top:12px;padding:10px 14px;background:#fffbe6;border:1px solid #ffe58f;border-radius:var(--radius-sm)}.error-item[data-v-9f5a7aae]{font-size:12px;color:#ad6800;line-height:1.8}.sidebar[data-v-7af34a55]{width:240px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100%}.logo[data-v-7af34a55]{display:flex;align-items:center;gap:8px;padding:18px 20px;border-bottom:1px solid var(--border)}.logo-icon[data-v-7af34a55]{font-size:20px}.logo-text[data-v-7af34a55]{font-size:16px;font-weight:600;color:var(--text)}.nav[data-v-7af34a55]{flex:1;overflow-y:auto;padding:12px 10px}.nav-group[data-v-7af34a55]{margin-bottom:16px}.nav-group-title[data-v-7af34a55]{font-size:12px;color:var(--text-disabled);padding:4px 10px 6px;font-weight:500}.nav-item[data-v-7af34a55]{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14px;transition:all .15s}.nav-item[data-v-7af34a55]:hover{background:var(--bg);color:var(--text)}.nav-item.active[data-v-7af34a55]{background:var(--primary-bg);color:var(--primary);font-weight:500}.app[data-v-981468ef]{display:flex;height:100%}.main[data-v-981468ef]{flex:1;overflow:hidden;background:var(--bg)}:root{--bg: #f5f6f8;--surface: #ffffff;--border: #e4e6eb;--border-strong: #c9cdd4;--text: #1f2329;--text-secondary: #6b7280;--text-disabled: #9ca3af;--primary: #3370ff;--primary-hover: #245bdb;--primary-bg: #eef2ff;--danger: #f04134;--radius: 8px;--radius-sm: 6px;--shadow: 0 1px 3px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .08);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit}textarea{resize:none}
