*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif;background:#f0f2f5;color:#333;height:100vh;overflow:hidden;font-size:13px}
:root{--primary:#7c6af7;--primary-light:#ede9ff;--success:#52c41a;--warning:#fa8c16;--danger:#ff4d4f;--info:#1890ff;--border:#e8e8e8;--bg:#f0f2f5;--row-h:72px;--sb-w:220px;--sb-icon-w:56px}

/* ===== 整体布局 ===== */
.app{display:flex;height:100vh;overflow:hidden}

/* ===== 侧边栏 ===== */
.sidebar{width:var(--sb-w);background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;transition:width .22s ease;overflow:hidden;z-index:100}
.sidebar.collapsed{width:var(--sb-icon-w)}

.sb-logo{display:flex;align-items:center;gap:10px;padding:0 14px;height:52px;border-bottom:1px solid var(--border);flex-shrink:0;overflow:hidden;cursor:pointer;user-select:none}
.sb-logo:hover{background:#faf9ff}
.sb-logo-icon{width:30px;height:30px;background:linear-gradient(135deg,#7c6af7,#a78bfa);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sb-logo-icon svg{width:16px;height:16px;color:#fff}
.sb-logo-text{font-size:14px;font-weight:700;color:#1a1a2e;white-space:nowrap;overflow:hidden}
.sb-logo-text span{font-size:11px;color:#aaa;font-weight:400;display:block;margin-top:1px}

.sb-nav{flex:1;padding:10px 0;overflow-y:auto;overflow-x:hidden}
.sb-nav::-webkit-scrollbar{width:3px}
.sb-nav::-webkit-scrollbar-thumb{background:#eee;border-radius:2px}

.sb-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;border-radius:0;transition:all .15s;position:relative;white-space:nowrap;overflow:hidden;border-left:3px solid transparent}
.sb-item:hover{background:#faf9ff}
.sb-item.active{background:var(--primary-light);border-left-color:var(--primary)}
.sb-item.active .sb-iname{color:var(--primary);font-weight:600}
.sb-item.active .sb-icon{color:var(--primary)}
.sb-icon{width:20px;height:20px;flex-shrink:0;color:#999;display:flex;align-items:center;justify-content:center}
.sb-icon svg{width:18px;height:18px}
.sb-iname{font-size:13px;color:#555;flex:1;overflow:hidden;text-overflow:ellipsis}
.sb-badge{background:var(--primary);color:#fff;font-size:10px;padding:2px 6px;border-radius:8px;flex-shrink:0;min-width:18px;text-align:center;font-weight:500}
.sb-badge.green{background:#22c55e}
.sb-badge.orange{background:#f97316}
.sb-badge.red{background:#ef4444}

.sidebar.collapsed .sb-iname,
.sidebar.collapsed .sb-logo-text,
.sidebar.collapsed .sb-badge{display:none}
.sidebar.collapsed .sb-item{padding:10px 0;justify-content:center;border-left:none}
.sidebar.collapsed .sb-item.active{background:var(--primary-light)}
.sidebar.collapsed .sb-logo{padding:0;justify-content:center}

.sb-section{padding:6px 14px 4px;font-size:11px;color:#ccc;font-weight:600;letter-spacing:.5px;white-space:nowrap;overflow:hidden;transition:opacity .15s}
.sidebar.collapsed .sb-section{opacity:0;height:0;padding:0;margin:0}

.sb-toggle{padding:12px 14px;border-top:1px solid var(--border);flex-shrink:0;cursor:pointer;display:flex;align-items:center;gap:8px;color:#bbb;font-size:12px;transition:all .15s;overflow:hidden}
.sb-toggle:hover{background:#faf9ff;color:#888}
.sb-toggle svg{width:16px;height:16px;flex-shrink:0;transition:transform .22s}
.sidebar.collapsed .sb-toggle svg{transform:rotate(180deg)}
.sidebar.collapsed .sb-toggle span{display:none}

/* ===== 右侧主体 ===== */
.main-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}

/* ===== 顶部 ===== */
.header{background:#fff;height:52px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);flex-shrink:0}
.header h1{font-size:16px;font-weight:600;color:#1a1a2e}
.header-btns{display:flex;gap:8px}

/* ===== 按钮 ===== */
.btn{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;border-radius:5px;border:none;cursor:pointer;font-size:12.5px;font-weight:500;transition:all .15s;white-space:nowrap;line-height:1}
.btn svg{width:13px;height:13px;flex-shrink:0}
.btn-export{background:#4ade80;color:#fff}.btn-export:hover{background:#22c55e}
.btn-recat{background:#fb923c;color:#fff}.btn-recat:hover{background:#f97316}
.btn-format{background:#a78bfa;color:#fff}.btn-format:hover{background:#8b5cf6}
.btn-clean{background:#60a5fa;color:#fff}.btn-clean:hover{background:#3b82f6}
.btn-clear{background:#fff;color:var(--danger);border:1px solid #fca5a5}.btn-clear:hover{background:#fff1f2}
.btn-import{background:#4ade80;color:#fff;padding:6px 16px}.btn-import:hover{background:#22c55e}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:#6c5ce7}
.btn-outline{background:#fff;color:#555;border:1px solid var(--border)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-danger-outline{background:#fff;color:var(--danger);border:1px solid #fca5a5}.btn-danger-outline:hover{background:var(--danger);color:#fff}
.btn-split{background:#f472b6;color:#fff}.btn-split:hover{background:#ec4899}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ===== 页面内容切换 ===== */
.page{display:none;flex:1;overflow:hidden;flex-direction:column}
.page.active{display:flex}

/* ===== 统计卡片 ===== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:14px 20px 10px}
.stat-card{background:#fff;border-radius:8px;padding:14px 18px;border:1px solid var(--border);box-shadow:0 1px 3px rgba(0,0,0,.04)}
.stat-num{font-size:26px;font-weight:700;line-height:1.15}
.stat-label{font-size:11px;color:#999;margin-top:3px}
.stat-card:nth-child(1) .stat-num{color:#7c6af7}
.stat-card:nth-child(2) .stat-num{color:#06b6d4}
.stat-card:nth-child(3) .stat-num{color:#22c55e}
.stat-card:nth-child(4) .stat-num{color:#f97316}

/* ===== 工具栏 ===== */
.toolbar{display:flex;align-items:center;gap:8px;padding:6px 20px 10px}
.search-box{flex:1;position:relative}
.search-box input{width:100%;padding:7px 12px 7px 32px;border:1px solid var(--border);border-radius:5px;font-size:13px;outline:none;background:#fff;color:#333}
.search-box input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(124,106,247,.12)}
.search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:#bbb;pointer-events:none}
.sel{padding:7px 10px;border:1px solid var(--border);border-radius:5px;font-size:12.5px;outline:none;background:#fff;cursor:pointer;color:#555;min-width:120px}
.sel:focus{border-color:var(--primary)}
.btn-search{background:var(--primary);color:#fff;padding:7px 18px;border-radius:5px;border:none;cursor:pointer;font-size:13px;font-weight:500;display:flex;align-items:center;gap:5px}
.btn-search:hover{background:#6c5ce7}
.btn-search svg{width:13px;height:13px}

/* ===== 列设置下拉 ===== */
.col-menu-wrap{position:relative;flex-shrink:0}
.btn-col-set{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border:1px solid var(--border);border-radius:5px;background:#fff;color:#555;font-size:12.5px;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn-col-set:hover{border-color:var(--primary);color:var(--primary);background:#faf9ff}
.col-menu{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:500;min-width:150px;padding:6px 0;display:none}
.col-menu.open{display:block;animation:colMenuIn .15s ease}
@keyframes colMenuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.col-menu-hd{padding:6px 14px 7px;font-size:11.5px;color:#bbb;font-weight:600;letter-spacing:.4px;border-bottom:1px solid #f5f5f5;margin-bottom:3px}
.col-menu-item{display:flex;align-items:center;gap:8px;padding:7px 14px;cursor:pointer;transition:background .12s;font-size:13px;color:#444;user-select:none}
.col-menu-item:hover{background:#faf9ff;color:var(--primary)}
.col-menu-item input[type=checkbox]{accent-color:var(--primary);width:13px;height:13px;cursor:pointer;flex-shrink:0}

/* ===== 表格容器 ===== */
.table-area{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column}
.table-scroll{flex:1;overflow:auto}
.table-scroll::-webkit-scrollbar{width:5px;height:5px}
.table-scroll::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}
.data-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}
.data-table th{background:#fafafa;padding:9px 14px;text-align:left;border-bottom:1px solid #ebebeb;color:#888;font-weight:500;position:sticky;top:0;z-index:10;white-space:nowrap;font-size:12.5px;position:relative;user-select:none}
.data-table td{padding:0 14px;border-bottom:1px solid #f2f2f2;vertical-align:middle;height:var(--row-h)}
.data-table tr:hover td{background:#faf9ff}
.data-table tr.row-selected td{background:#f3f0ff}

/* ===== 列宽 ===== */
.col-chk{width:38px}
.col-title{width:220px}
.col-seotitle{width:180px}
.col-seokeywords{width:200px}
.col-intro{width:220px}
.col-sourceurl{width:240px}
.col-logo{width:56px}
.col-thumb{width:220px}
.col-cat{width:170px}
.col-summary{min-width:120px}
.col-op{width:60px;text-align:center}

/* ===== 列宽拖拽手柄 ===== */
.col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:11;background:transparent;transition:background .12s}
.col-resize-handle:hover,.col-resize-handle.dragging{background:rgba(124,106,247,.35)}
.data-table.col-resizing{cursor:col-resize;user-select:none}

/* ===== 缩略图 ===== */
.thumb-row{display:flex;gap:4px;align-items:center;flex-wrap:nowrap;overflow:hidden}
.thumb-img{width:60px;height:44px;object-fit:cover;border-radius:4px;border:1px solid #eee;cursor:pointer;flex-shrink:0;background:#f5f5f5}
.thumb-img:hover{opacity:.85}
.thumb-none{width:60px;height:44px;background:#f5f5f5;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#ddd;font-size:10px;border:1px dashed #e0e0e0;flex-shrink:0}
.logo-img{width:34px;height:34px;border-radius:8px;object-fit:cover;border:1px solid #eee;background:#f5f5f5}
.logo-none{width:34px;height:34px;background:#f0f0f0;border-radius:8px}

/* ===== 标签 ===== */
.tag{display:inline-flex;align-items:center;padding:2px 7px;border-radius:10px;font-size:11px;font-weight:500;margin:2px 2px 2px 0}
.tag-cat{background:#ede9ff;color:#7c6af7}
.tag-label{background:#e0f2fe;color:#0284c7}
.tag-more{background:#f5f5f5;color:#aaa;font-size:10px}

/* ===== 网站徽章 ===== */
.site-badge{display:inline-block;background:#f0f0f2;color:#888;padding:2px 7px;border-radius:4px;font-size:11px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}

/* ===== 标题列 ===== */
.title-wrap .title-text{font-size:13px;font-weight:500;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.title-wrap .site-badge{margin-top:4px}

/* ===== SEO / 首段列 ===== */
.seo-cell,.intro-cell{font-size:12px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5}
.intro-cell{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;white-space:normal}

/* ===== 内容概要 ===== */
.summary-txt{font-size:12px;color:#bbb;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;line-height:1.5}

/* ===== 操作 ===== */
.op-del{background:none;border:none;color:#fca5a5;cursor:pointer;font-size:12px;padding:4px 6px;border-radius:3px;font-weight:500}
.op-del:hover{color:var(--danger);background:#fff1f2}

/* ===== 进度条 ===== */
#fileInput{display:none}
.prog-bar{position:fixed;top:0;left:0;right:0;z-index:9999;height:3px;pointer-events:none}
.prog-fill{height:100%;background:linear-gradient(90deg,#7c6af7,#a78bfa);transition:width .25s;width:0;border-radius:0 2px 2px 0}

/* ===== Loading ===== */
.loading-mask{position:fixed;inset:0;background:rgba(255,255,255,.88);z-index:9998;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.loading-mask.hide{display:none}
.spin{width:38px;height:38px;border:3px solid #ede9ff;border-top-color:var(--primary);border-radius:50%;animation:spin .65s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.load-txt{font-size:13px;color:#888}
.load-sub{font-size:12px;color:#bbb;margin-top:4px}

/* ===== Toast ===== */
.toasts{position:fixed;top:18px;right:18px;z-index:99999;display:flex;flex-direction:column;gap:7px;pointer-events:none}
.toast{padding:9px 15px;border-radius:7px;color:#fff;font-size:13px;box-shadow:0 4px 14px rgba(0,0,0,.14);animation:toastIn .25s ease;display:flex;align-items:center;gap:7px;max-width:300px}
@keyframes toastIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.t-ok{background:#52c41a}.t-err{background:#ff4d4f}.t-warn{background:#fa8c16}.t-info{background:#7c6af7}

/* ===== 模态框 ===== */
.mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9980;display:flex;align-items:center;justify-content:center;padding:20px}
.mask.hide{display:none}
.modal{background:#fff;border-radius:10px;width:520px;max-width:100%;box-shadow:0 20px 60px rgba(0,0,0,.18);overflow:hidden;max-height:90vh;display:flex;flex-direction:column}
.modal-hd{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.modal-hd span{font-size:15px;font-weight:600}
.modal-x{background:none;border:none;cursor:pointer;color:#aaa;padding:3px 6px;border-radius:4px;font-size:15px;line-height:1}
.modal-x:hover{background:#f5f5f5;color:#555}
.modal-bd{padding:18px;overflow-y:auto;flex:1}
.modal-ft{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}

/* ===== 映射行 ===== */
.map-row{display:grid;grid-template-columns:80px 18px 1fr;align-items:center;gap:10px;margin-bottom:10px}
.map-lbl{font-size:13px;color:#555;font-weight:500}
.map-arr{color:#ccc;font-size:14px;text-align:center}
.map-sel{width:100%;padding:6px 9px;border:1px solid var(--border);border-radius:5px;font-size:13px;outline:none;background:#fff}
.map-sel:focus{border-color:var(--primary)}

/* ===== 分页 ===== */
.pager{display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 20px;border-top:1px solid var(--border);background:#fff;flex-shrink:0}
.pager.hide{display:none}
.pg-btn{min-width:30px;height:30px;padding:0 8px;border:1px solid var(--border);border-radius:4px;background:#fff;cursor:pointer;font-size:12.5px;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;color:#555}
.pg-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}
.pg-btn.cur{background:var(--primary);color:#fff;border-color:var(--primary)}
.pg-btn:disabled{opacity:.35;cursor:not-allowed}
.pg-info{font-size:12px;color:#bbb;margin:0 6px}
.pg-size-wrap{display:flex;align-items:center;gap:4px;font-size:12px;color:#888;margin-left:8px}
.pg-size-input{width:58px;height:26px;border:1px solid var(--border);border-radius:4px;padding:0 6px;font-size:12px;color:#444;text-align:center;outline:none;transition:border-color .15s}
.pg-size-input:hover,.pg-size-input:focus{border-color:var(--primary)}

/* ===== 批量栏 ===== */
.batch-bar{background:var(--primary);color:#fff;padding:8px 20px;display:flex;align-items:center;gap:10px;font-size:13px;flex-shrink:0}
.batch-bar.hide{display:none}
.batch-bar .bb-btn{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.35);padding:4px 12px;border-radius:4px;cursor:pointer;font-size:12px}
.batch-bar .bb-btn:hover{background:rgba(255,255,255,.28)}

/* ===== 预览弹窗 ===== */
.pv-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9980;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}
.pv-mask.hide{display:none}
.pv-dialog{background:#fff;border-radius:12px;width:760px;max-width:calc(100vw - 40px);height:88vh;max-height:900px;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.22);overflow:hidden;animation:pvIn .22s ease}
@keyframes pvIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}

/* 弹窗头部 */
.pv-dialog-hd{padding:18px 22px 16px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;flex-shrink:0;gap:12px}
.pv-dialog-title-wrap{display:flex;align-items:center;gap:10px;flex:1;min-width:0;flex-wrap:wrap}
.pv-dialog-title{font-size:17px;font-weight:700;color:#1a1a2e;line-height:1.35;word-break:break-word}
.pv-dialog-site{background:#f0f0f2;color:#888;padding:3px 9px;border-radius:4px;font-size:12px;white-space:nowrap;flex-shrink:0;align-self:center}
.pv-dialog-close{background:none;border:1px solid var(--border);cursor:pointer;padding:6px 12px;border-radius:6px;font-size:12.5px;color:#888;display:flex;align-items:center;gap:5px;flex-shrink:0;transition:all .15s;white-space:nowrap}
.pv-dialog-close:hover{background:#f5f5f5;border-color:#ccc;color:#333}

/* 弹窗标签页 */
.pv-dialog-tabs{display:flex;padding:0 22px;border-bottom:1px solid var(--border);flex-shrink:0;gap:2px}
.pv-tab{padding:10px 14px;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;color:#aaa;transition:all .15s;white-space:nowrap;display:inline-flex;align-items:center;border-radius:0}
.pv-tab:hover{color:#888}
.pv-tab.on{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}

/* 弹窗正文 */
.pv-dialog-body{flex:1;overflow-y:auto;padding:22px 24px}
.pv-dialog-body::-webkit-scrollbar{width:5px}
.pv-dialog-body::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:3px}

/* 内容 tab */
.pv-content-meta{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #f5f5f5}
.pv-char-count{font-size:12px;color:#bbb;background:#f9f9f9;padding:3px 10px;border-radius:12px;border:1px solid #eee}
.pv-content{font-size:14px;line-height:1.9;color:#333}
.pv-content h3{font-size:15px;font-weight:600;margin:18px 0 8px;color:#1a1a2e}
.pv-content p{margin-bottom:10px}
.pv-content img{max-width:100%;border-radius:6px;margin:8px 0;display:block;border:1px solid #f0f0f0}

/* 截图 tab */
.pv-shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:4px}
.pv-shots img{width:100%;border-radius:7px;cursor:pointer;border:1px solid #eee;transition:all .18s;display:block}
.pv-shots img:hover{border-color:var(--primary);box-shadow:0 4px 16px rgba(124,106,247,.2);transform:translateY(-2px)}

/* Logo tab */
.pv-logo-wrap{display:flex;flex-direction:column;align-items:center;padding:30px 0}
.pv-logo-big{max-width:160px;max-height:160px;border-radius:16px;border:1px solid #eee;box-shadow:0 6px 24px rgba(0,0,0,.08)}
.pv-logo-url{margin-top:14px;font-size:12px;color:#bbb;word-break:break-all;text-align:center;max-width:400px}

/* 分类/标签 tab */
.pv-cattag-section{margin-bottom:24px}
.pv-cattag-label{font-size:12px;font-weight:600;color:#bbb;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.pv-cattag-tags{display:flex;flex-wrap:wrap;gap:8px}
.pv-tag-lg{padding:5px 13px !important;font-size:12.5px !important;border-radius:14px !important}

/* 来源信息 tab */
.pv-info-row{display:flex;margin-bottom:12px;font-size:13.5px;align-items:flex-start}
.pv-info-lbl{color:#bbb;width:75px;flex-shrink:0;padding-top:2px;font-size:12.5px}
.pv-info-val{color:#333;flex:1;word-break:break-all;line-height:1.6}

/* ===== 预览弹窗 — 编辑态 ===== */

/* 头部标题/网站徽章 编辑态 */
.pv-dialog-title[contenteditable="true"]{outline:none;border-bottom:1.5px dashed #c4b8ff;padding-bottom:2px;cursor:text;min-width:40px;border-radius:0}
.pv-dialog-title[contenteditable="true"]:hover,.pv-dialog-title[contenteditable="true"]:focus{border-bottom-color:var(--primary);background:rgba(124,106,247,.04);border-radius:4px}
.pv-dialog-site[contenteditable="true"]{outline:none;border:1px dashed #d0caff;cursor:text;border-radius:4px;padding:2px 8px}
.pv-dialog-site[contenteditable="true"]:hover,.pv-dialog-site[contenteditable="true"]:focus{border-color:var(--primary);background:rgba(124,106,247,.06)}

/* 通用编辑提示文字 */
.pv-edit-hint{font-size:11.5px;color:#c4b8ff;font-style:italic}

/* 内容区 contenteditable */
.pv-content-edit{outline:none;min-height:120px;padding:4px 6px;border-radius:6px;transition:background .15s,box-shadow .15s;cursor:text}
.pv-content-edit:hover{background:rgba(124,106,247,.03)}
.pv-content-edit:focus{background:rgba(124,106,247,.04);box-shadow:0 0 0 2px rgba(124,106,247,.1)}

/* 来源信息字段 编辑态 */
.pv-field-edit{outline:none;border-radius:4px;padding:2px 6px;margin:-2px -6px;transition:background .15s,box-shadow .15s;cursor:text;min-width:20px}
.pv-field-edit:hover{background:rgba(124,106,247,.05)}
.pv-field-edit:focus{background:rgba(124,106,247,.07);box-shadow:0 0 0 2px rgba(124,106,247,.12)}

/* Logo URL 编辑框 */
.pv-logo-url-edit{outline:none;font-size:12px;color:#888;word-break:break-all;text-align:center;max-width:420px;border:1px dashed #e0d8ff;border-radius:6px;padding:7px 12px;min-width:200px;line-height:1.6;cursor:text}
.pv-logo-url-edit:hover{border-color:#b8aeff;background:#faf9ff}
.pv-logo-url-edit:focus{outline:none;border-color:var(--primary);background:#f5f3ff;box-shadow:0 0 0 3px rgba(124,106,247,.1)}

/* 标签编辑态 */
.pv-tag-edit{outline:none;cursor:text;min-width:20px;transition:box-shadow .15s}
.pv-tag-edit:focus{box-shadow:0 0 0 2px rgba(124,106,247,.25)}

/* 添加标签按钮 */
.pv-tag-add{display:inline-flex;align-items:center;padding:4px 10px;border-radius:10px;font-size:11.5px;background:none;border:1.5px dashed #d4ccf9;color:#b8aeff;cursor:pointer;margin:2px;transition:all .15s;font-weight:500}
.pv-tag-add:hover{border-color:var(--primary);color:var(--primary);background:rgba(124,106,247,.06)}

/* 截图编辑区 */
.pv-shots-edit-wrap{padding:4px 0}
.pv-shots-edit{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:14px;min-height:20px}
.pv-shots-empty{grid-column:1/-1;text-align:center;padding:24px 0;font-size:12.5px;color:#ccc;font-style:italic}

/* 截图卡片 */
.pv-shot-item{position:relative;display:flex;flex-direction:column;gap:6px;border-radius:8px;transition:opacity .18s, box-shadow .18s;user-select:none}
.pv-shot-item img{width:100%;border-radius:7px;cursor:pointer;border:1px solid #eee;transition:all .18s;display:block;max-height:140px;object-fit:cover}
.pv-shot-item img:hover{border-color:var(--primary);box-shadow:0 4px 16px rgba(124,106,247,.2)}
.pv-shot-del{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.52);color:#fff;border:none;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:3}
.pv-shot-del:hover{background:var(--danger)}
.pv-shot-url{font-size:11.5px;color:#aaa;padding:5px 8px;border:1px dashed #ebebeb;border-radius:5px;word-break:break-all;line-height:1.5;min-height:28px;cursor:text;background:#fafafa}
.pv-shot-url:hover{border-color:#c4b8ff;background:#f9f7ff}
.pv-shot-url:focus{outline:none;border-color:var(--primary);background:#f5f3ff;box-shadow:0 0 0 2px rgba(124,106,247,.1)}
.pv-add-shot-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:1.5px dashed #d4ccf9;border-radius:8px;color:#b8aeff;background:none;cursor:pointer;font-size:13px;transition:all .15s;margin-top:2px}
.pv-add-shot-btn:hover{border-color:var(--primary);color:var(--primary);background:rgba(124,106,247,.06)}

/* 截图序号徽章 */
.pv-shot-badge{position:absolute;top:5px;left:5px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:rgba(0,0,0,.46);color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:3;line-height:1}

/* 拖拽把手 */
.pv-shot-drag-handle{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:22px;height:36px;display:flex;align-items:center;justify-content:center;cursor:grab;color:rgba(255,255,255,.75);z-index:3;border-radius:5px;background:rgba(0,0,0,.35);opacity:0;transition:opacity .18s;margin-top:-22px}
.pv-shot-item:hover .pv-shot-drag-handle{opacity:1}
.pv-shot-drag-handle:active{cursor:grabbing}
.pv-shot-drag-handle svg{width:14px;height:14px;pointer-events:none}

/* 拖拽中：被拖拽的元素变半透明 */
.pv-shot-item.pv-shot-ghost{opacity:.35;box-shadow:none !important}

/* 拖拽悬停指示线：插入到前面 */
.pv-shot-item.pv-shot-drag-over-before::before{
  content:'';
  position:absolute;
  top:-6px;
  left:0;right:0;
  height:3px;
  border-radius:3px;
  background:var(--primary);
  box-shadow:0 0 6px rgba(124,106,247,.6);
  z-index:10;
  animation:shotDropLine .2s ease;
}
/* 拖拽悬停指示线：插入到后面 */
.pv-shot-item.pv-shot-drag-over-after::after{
  content:'';
  position:absolute;
  bottom:-6px;
  left:0;right:0;
  height:3px;
  border-radius:3px;
  background:var(--primary);
  box-shadow:0 0 6px rgba(124,106,247,.6);
  z-index:10;
  animation:shotDropLine .2s ease;
}
@keyframes shotDropLine{from{opacity:0;transform:scaleX(.5)}to{opacity:1;transform:scaleX(1)}}

/* 拖拽容器高亮 */
.pv-shots-edit.drag-active{background:rgba(124,106,247,.03);border-radius:8px;outline:2px dashed rgba(124,106,247,.25)}

/* ===== 灯箱 ===== */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:99999;display:flex;align-items:center;justify-content:center;cursor:zoom-out}
.lightbox img{max-width:90%;max-height:90%;border-radius:6px}

/* ===== checkbox ===== */
input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--primary)}

/* ===== 导入管理页 ===== */
.import-page{flex:1;overflow-y:auto;padding:24px 28px}
.import-page::-webkit-scrollbar{width:5px}
.import-page::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}

/* 上传卡片 */
.import-upload-card{background:#fff;border-radius:12px;padding:24px 28px;border:1px solid var(--border);margin-bottom:20px;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.import-card-title{font-size:14px;font-weight:600;color:#1a1a2e;margin-bottom:20px;display:flex;align-items:center;gap:8px}
.import-card-title svg{width:16px;height:16px;color:var(--primary)}

/* 拖拽区 */
.import-drop{position:relative;border:2px dashed #d4ccf9;border-radius:12px;padding:52px 20px 44px;text-align:center;cursor:pointer;background:linear-gradient(135deg,#f5f3ff 0%,#ede9ff 100%);transition:all .22s;overflow:hidden}
.import-drop::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(124,106,247,.08) 0%,transparent 70%);pointer-events:none}
.import-drop:hover,.import-drop.drag-over{border-color:var(--primary);background:linear-gradient(135deg,#ede9ff 0%,#ddd5ff 100%);box-shadow:0 4px 20px rgba(124,106,247,.14)}
.import-drop.drag-over{transform:scale(1.01)}

.import-drop-icon{width:64px;height:64px;margin:0 auto 16px;background:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(124,106,247,.18);border:1px solid rgba(124,106,247,.15)}
.import-drop-icon svg{width:30px;height:30px;color:var(--primary)}

.import-drop-title{font-size:15px;font-weight:600;color:#3d2fa0;margin-bottom:6px}
.import-drop-sub{font-size:13px;color:#9585e8;margin-bottom:4px}
.import-drop-hint{font-size:12px;color:#b8aef5;display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:22px}
.import-drop-hint svg{width:12px;height:12px}
.import-drop-formats{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:22px}
.import-fmt-tag{background:rgba(124,106,247,.12);color:var(--primary);padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500;border:1px solid rgba(124,106,247,.2)}

.import-drop-btn{display:inline-flex;align-items:center;gap:7px;background:var(--primary);color:#fff;padding:10px 28px;border-radius:8px;border:none;cursor:pointer;font-size:13.5px;font-weight:600;box-shadow:0 4px 14px rgba(124,106,247,.35);transition:all .2s}
.import-drop-btn:hover{background:#6c5ce7;box-shadow:0 6px 20px rgba(124,106,247,.45);transform:translateY(-1px)}
.import-drop-btn svg{width:15px;height:15px}

/* 历史卡片 */
.import-history-card{background:#fff;border-radius:12px;padding:22px 28px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04)}
.import-history-card .import-card-title svg{color:#22c55e}

/* 统计概览行 */
.import-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.import-stat-mini{background:#f9fafb;border-radius:8px;padding:12px 16px;border:1px solid #f0f0f0;text-align:center}
.import-stat-mini .n{font-size:22px;font-weight:700;color:var(--primary);line-height:1.2}
.import-stat-mini .l{font-size:11px;color:#bbb;margin-top:3px}
.import-stat-mini:nth-child(2) .n{color:#22c55e}
.import-stat-mini:nth-child(3) .n{color:#f97316}

.import-log{display:flex;flex-direction:column;gap:8px}
.import-log-item{display:flex;align-items:center;gap:14px;padding:13px 16px;background:#f9fafb;border-radius:10px;border:1px solid #f0f0f0;transition:background .15s}
.import-log-item:hover{background:#f3f0ff;border-color:#e0d9ff}
.import-log-num{width:24px;height:24px;background:#ede9ff;color:var(--primary);border-radius:6px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.import-log-icon{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#7c6af7,#a78bfa);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(124,106,247,.25)}
.import-log-icon svg{width:18px;height:18px;color:#fff}
.import-log-info{flex:1;min-width:0}
.import-log-name{font-size:13px;font-weight:600;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px}
.import-log-meta{font-size:12px;color:#bbb;display:flex;align-items:center;gap:10px}
.import-log-meta span{display:flex;align-items:center;gap:3px}
.import-log-meta svg{width:11px;height:11px}
.import-log-count{text-align:right;flex-shrink:0}
.import-log-count .count-n{font-size:22px;font-weight:700;color:var(--primary);line-height:1.1}
.import-log-count .count-l{font-size:11px;color:#bbb;margin-top:2px}

.import-log-empty{text-align:center;padding:50px 20px;color:#ccc;font-size:13px}
.import-log-empty svg{width:44px;height:44px;display:block;margin:0 auto 12px;opacity:.25}
.import-log-empty p{margin-top:6px;font-size:12px;color:#ddd}

/* ===== body-wrap ===== */
.body-wrap{display:flex;flex:1;overflow:hidden;min-height:0}
.content-area{flex:1;overflow:hidden;display:flex;flex-direction:column;min-width:0}

/* ===== 草稿箱专属样式 ===== */

/* 还原按钮（草稿箱批量操作栏） */
.bb-btn-restore{background:rgba(74,222,128,.18);color:#dcfce7;border-color:rgba(74,222,128,.35) !important}
.bb-btn-restore:hover{background:rgba(74,222,128,.32) !important}

/* 草稿箱操作按钮（单行） */
.op-restore{background:none;border:none;color:#86efac;cursor:pointer;font-size:12px;padding:3px 6px;border-radius:3px;font-weight:500}
.op-restore:hover{color:#22c55e;background:#f0fdf4}
.op-draft-del{background:none;border:none;color:#fca5a5;cursor:pointer;font-size:12px;padding:3px 6px;border-radius:3px;font-weight:500;margin-top:2px}
.op-draft-del:hover{color:var(--danger);background:#fff1f2}
.op-draft-wrap{display:flex;flex-direction:column;align-items:center;gap:1px}

/* ===== URL 检测页 ===== */

/* 页面布局 */
.uchk-wrap{display:flex;flex:1;gap:16px;padding:0 20px 16px;overflow:hidden;min-height:0}
.uchk-left{width:320px;flex-shrink:0;display:flex;flex-direction:column;overflow-y:auto}
.uchk-left::-webkit-scrollbar{width:4px}
.uchk-left::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
.uchk-right{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}

/* 控制卡片 */
.uchk-ctrl-card{background:#fff;border-radius:12px;padding:20px 20px 16px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04)}
.uchk-ctrl-title{font-size:14px;font-weight:600;color:#1a1a2e;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.uchk-ctrl-title svg{width:16px;height:16px;color:var(--primary)}
.uchk-desc{font-size:12px;color:#aaa;line-height:1.7;margin-bottom:14px}

/* 选项行 */
.uchk-option-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.uchk-opt-lbl{font-size:13px;color:#555;font-weight:500}
.uchk-sel{min-width:130px;padding:6px 9px;border:1px solid var(--border);border-radius:5px;font-size:12.5px;outline:none;background:#fff;cursor:pointer;color:#555}
.uchk-sel:focus{border-color:var(--primary)}

/* 进度条 */
.uchk-progress-wrap{margin:12px 0 10px}
.uchk-progress-bar{height:6px;background:#f0f0f0;border-radius:4px;overflow:hidden}
.uchk-progress-fill{height:100%;background:linear-gradient(90deg,#7c6af7,#a78bfa);transition:width .2s;width:0;border-radius:4px}
.uchk-progress-info{font-size:11.5px;color:#bbb;margin-top:5px;text-align:right}

/* 按钮行 */
.uchk-btn-row{display:flex;gap:8px;margin-top:14px}
.uchk-btn-start{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--primary);color:#fff;padding:9px 16px;border-radius:7px;border:none;cursor:pointer;font-size:13.5px;font-weight:600;box-shadow:0 3px 12px rgba(124,106,247,.3);transition:all .2s}
.uchk-btn-start:hover{background:#6c5ce7;box-shadow:0 5px 18px rgba(124,106,247,.4);transform:translateY(-1px)}
.uchk-btn-start svg{width:14px;height:14px}
.uchk-btn-stop{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#ef4444;color:#fff;padding:9px 16px;border-radius:7px;border:none;cursor:pointer;font-size:13.5px;font-weight:600;transition:all .2s}
.uchk-btn-stop:hover{background:#dc2626}
.uchk-btn-stop svg{width:14px;height:14px}
.uchk-btn-start.hide,.uchk-btn-stop.hide{display:none}

/* 清理卡片 */
.uchk-clean-card{margin-top:16px;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:16px}
.uchk-clean-title{font-size:13px;font-weight:600;color:#c2410c;margin-bottom:8px;display:flex;align-items:center;gap:7px}
.uchk-clean-title svg{width:14px;height:14px}
.uchk-clean-desc{font-size:12px;color:#9a3412;margin-bottom:10px;line-height:1.6}
.uchk-clean-opts{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}
.uchk-chk-lbl{display:flex;align-items:center;gap:8px;font-size:13px;color:#555;cursor:pointer}
.uchk-chk-lbl input{accent-color:var(--primary)}
.uchk-btn-clean{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#ef4444;color:#fff;padding:8px 14px;border-radius:7px;border:none;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}
.uchk-btn-clean:hover:not(:disabled){background:#dc2626}
.uchk-btn-clean:disabled{background:#fca5a5;cursor:not-allowed;opacity:.7}
.uchk-btn-clean svg{width:13px;height:13px}

/* 日志卡片 */
.uchk-log-card{background:#fff;border-radius:12px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04);flex:1;display:flex;flex-direction:column;overflow:hidden}
.uchk-log-hd{display:flex;align-items:center;gap:10px;padding:14px 18px 12px;border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}
.uchk-log-title{font-size:14px;font-weight:600;color:#1a1a2e;display:flex;align-items:center;gap:7px;flex:1}
.uchk-log-title svg{width:15px;height:15px;color:var(--primary)}
.uchk-log-filters{display:flex;gap:4px}
.uchk-filter-btn{background:#f5f5f5;color:#888;border:1px solid #e8e8e8;padding:4px 11px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .15s}
.uchk-filter-btn:hover{border-color:var(--primary);color:var(--primary)}
.uchk-filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.uchk-clear-log-btn{display:inline-flex;align-items:center;gap:5px;background:#fff;color:#ef4444;border:1px solid #fca5a5;padding:4px 11px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .15s;white-space:nowrap}
.uchk-clear-log-btn:hover{background:#fff1f2}
.uchk-clear-log-btn svg{width:12px;height:12px}

/* 日志列表 */
.uchk-log-list{flex:1;overflow-y:auto;padding:8px 0}
.uchk-log-list::-webkit-scrollbar{width:4px}
.uchk-log-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}

/* 日志空态 */
.uchk-log-empty{text-align:center;padding:50px 20px;color:#ccc;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:8px}
.uchk-log-empty svg{width:44px;height:44px;opacity:.2}
.uchk-log-empty p{font-size:12px;color:#ddd;margin:0}

/* 任务分隔行 */
.uchk-log-session-row{text-align:center;font-size:11.5px;color:#bbb;padding:8px 18px;position:relative;user-select:none}
.uchk-log-session-row::before,.uchk-log-session-row::after{content:'';position:absolute;top:50%;width:20%;height:1px;background:#eee}
.uchk-log-session-row::before{left:18px}
.uchk-log-session-row::after{right:18px}

/* 分页条 */
.uchk-pager{display:flex;align-items:center;gap:6px;padding:10px 18px;border-top:1px solid var(--border);flex-shrink:0;background:#fafafa;flex-wrap:wrap}
.uchk-pg-btn{min-width:32px;height:30px;padding:0 8px;border:1px solid var(--border);background:#fff;border-radius:5px;cursor:pointer;font-size:14px;color:#555;transition:all .15s;line-height:1}
.uchk-pg-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#f3f0ff}
.uchk-pg-btn:disabled{opacity:.35;cursor:default}
.uchk-pg-info{font-size:12px;color:#888;white-space:nowrap;flex:1;text-align:center}
.uchk-pg-jump{display:flex;align-items:center;gap:5px;font-size:12px;color:#888;white-space:nowrap}
.uchk-pg-jump-input{width:46px;height:28px;border:1px solid var(--border);border-radius:4px;text-align:center;font-size:12px;outline:none;padding:0 4px}
.uchk-pg-jump-input:focus{border-color:var(--primary)}

/* 日志行 */
.uchk-log-row{display:flex;align-items:center;justify-content:space-between;padding:8px 18px;border-bottom:1px solid #f7f7f7;gap:12px;transition:background .12s}
.uchk-log-row:hover{background:#fafafa}
.uchk-log-row.uchk-log-fail{background:#fff9f9}
.uchk-log-row.uchk-log-fail:hover{background:#fff3f3}
.uchk-log-row-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.uchk-log-row-right{flex-shrink:0}

/* 类型标签 */
.uchk-type-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;flex-shrink:0}
.uchk-type-badge.logo{background:#ede9ff;color:#7c6af7}
.uchk-type-badge.shot{background:#e0f2fe;color:#0284c7}

/* 日志内容 */
.uchk-log-info{flex:1;min-width:0}
.uchk-log-title-txt{font-size:12.5px;font-weight:500;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.uchk-log-url{font-size:11.5px;color:#bbb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;text-decoration:none}
.uchk-log-url:hover{color:var(--primary);text-decoration:underline}

/* 状态标签 */
.uchk-status{display:inline-block;padding:3px 9px;border-radius:10px;font-size:12px;font-weight:600}
.uchk-status.ok{background:#dcfce7;color:#16a34a}
.uchk-status.fail{background:#fee2e2;color:#dc2626}

/* ===== WordPress 上传页 ===== */

/* 页面整体布局：上下两段 */
.wp-page{display:flex;flex:1;flex-direction:column;gap:14px;padding:14px 20px 16px;overflow:hidden;min-height:0}
.wp-page::-webkit-scrollbar{width:5px}
.wp-page::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}

.wp-grid{display:grid;grid-template-columns:minmax(560px,1fr) minmax(340px,440px);grid-template-areas:'left right';gap:14px;flex:1;min-height:0}
.wp-grid-left{grid-area:left;display:flex;min-height:0}
.wp-grid-right{grid-area:right;display:flex;flex-direction:column;gap:14px;min-height:0}

/* 通用卡片 */
.wp-card{background:#fff;border-radius:12px;padding:18px 20px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04)}
.wp-card-title{font-size:14px;font-weight:600;color:#1a1a2e;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.wp-card-title svg{width:16px;height:16px;color:#0073aa}

/* 配置卡片标题行 */
.wp-card-hd-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:10px}
.wp-btn-add-site{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;border-radius:6px;border:1px solid #0073aa;background:#fff;color:#0073aa;font-size:12.5px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}
.wp-btn-add-site:hover{background:#f0f9ff}
.wp-btn-add-site svg{width:12px;height:12px}

/* 站点列表（chip 样式） */
.wp-site-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:4px;min-height:28px}
.wp-no-site{font-size:12px;color:#bbb;padding:6px 0;width:100%}
.wp-site-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 8px;border:1px solid var(--border);border-radius:20px;background:#f8f8f8;cursor:default;transition:all .15s;max-width:220px}
.wp-site-chip:hover{border-color:#d4ccf9;background:#faf9ff}
.wp-site-chip.editing{border-color:#0073aa;background:#f0f9ff}
.wp-site-chip-dot{width:7px;height:7px;background:#0073aa;border-radius:50%;flex-shrink:0}
.wp-site-chip-name{font-size:12.5px;font-weight:500;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.wp-site-chip-ops{display:flex;gap:2px;flex-shrink:0}
.wp-site-op-btn{background:none;border:none;border-radius:3px;padding:2px 4px;cursor:pointer;color:#bbb;transition:all .15s;display:flex;align-items:center}
.wp-site-op-btn svg{width:11px;height:11px}
.wp-site-op-btn:hover{color:var(--primary)}
.wp-site-op-btn.del:hover{color:#ef4444}

/* 表单（折叠） */
.wp-site-form{border-top:1px solid #f0f0f0;padding-top:14px;margin-top:4px}
.wp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.wp-form-row{margin-bottom:0}
.wp-form-lbl{display:block;font-size:12px;color:#555;font-weight:500;margin-bottom:4px}
.wp-req{color:#ef4444}
.wp-input{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;outline:none;background:#fff;color:#333;transition:border-color .15s}
.wp-input:focus{border-color:#0073aa;box-shadow:0 0 0 2px rgba(0,115,170,.1)}
.wp-form-hint{font-size:11px;color:#bbb;margin-top:4px;line-height:1.5}
.wp-eye-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#bbb;padding:2px;display:flex;align-items:center}
.wp-eye-btn:hover{color:#555}
.wp-eye-btn svg{width:15px;height:15px}
.wp-form-btns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.wp-btn-test{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:7px;border:1px solid #0073aa;background:#fff;color:#0073aa;font-size:12.5px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}
.wp-btn-test:hover{background:#f0f9ff;border-color:#005f8e}
.wp-btn-test svg{width:13px;height:13px}
.wp-btn-test:disabled{opacity:.5;cursor:not-allowed}
.wp-btn-save{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:7px;border:none;background:#0073aa;color:#fff;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;box-shadow:0 2px 8px rgba(0,115,170,.25)}
.wp-btn-save:hover{background:#005f8e;box-shadow:0 4px 12px rgba(0,115,170,.35)}
.wp-btn-save svg{width:13px;height:13px}
.wp-btn-cancel{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:7px;border:1px solid var(--border);background:#fff;color:#888;font-size:12.5px;cursor:pointer;transition:all .15s}
.wp-btn-cancel:hover{border-color:#ef4444;color:#ef4444}
.wp-btn-cancel.hide{display:none}

/* 连接检测结果 */
.wp-test-result{margin-top:10px;padding:8px 12px;border-radius:6px;font-size:12px;line-height:1.6}
.wp-test-result.hide{display:none}
.wp-test-result.ok{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}
.wp-test-result.fail{background:#fff1f2;color:#dc2626;border:1px solid #fecaca}

/* 上传规则 */
.wp-rule-card .wp-card-title{margin-bottom:10px}
.wp-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:10px}
.wp-rule-item{display:flex;flex-direction:column;gap:5px}
.wp-rule-lbl{font-size:12px;color:#555;font-weight:500}
.wp-sel{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:12.5px;outline:none;background:#fff;color:#555;cursor:pointer}
.wp-sel:focus{border-color:#0073aa}
.wp-btn-refresh{background:#fff;border:1px solid var(--border);border-radius:6px;padding:7px 10px;cursor:pointer;color:#888;transition:all .15s;display:flex;align-items:center;flex-shrink:0}
.wp-btn-refresh:hover{border-color:#0073aa;color:#0073aa;background:#f0f9ff}
.wp-btn-refresh:disabled{opacity:.4;cursor:not-allowed}
.wp-btn-refresh svg{width:14px;height:14px}
.wp-rule-note{display:flex;align-items:flex-start;gap:7px;padding:9px 12px;background:#f0f9ff;border-radius:7px;font-size:12px;color:#0369a1;border:1px solid #bae6fd;line-height:1.6;margin-top:4px}
.wp-rule-note svg{width:14px;height:14px;flex-shrink:0;margin-top:1px}

/* 文章卡片 */
.wp-article-card{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0}
.wp-card-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px;flex-wrap:wrap;flex-shrink:0}
.wp-article-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wp-chk-all-label{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:#888;cursor:pointer;user-select:none}
.wp-sel-count{font-size:12.5px;color:#888;white-space:nowrap}

/* 内联进度条 */
.wp-inline-progress{display:flex;align-items:center;gap:8px;flex:1;min-width:100px}
.wp-total-bar{flex:1;height:5px;background:#f0f0f0;border-radius:4px;overflow:hidden}
.wp-total-fill{height:100%;background:linear-gradient(90deg,#0073aa,#00a0d2);transition:width .2s;width:0;border-radius:4px}
.wp-total-info{font-size:11px;color:#888;white-space:nowrap}
.wp-progress-txt{font-size:12px;color:#888;white-space:nowrap}

.wp-btn-upload{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:7px;border:none;background:#0073aa;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 2px 8px rgba(0,115,170,.25)}
.wp-btn-upload:hover:not(:disabled){background:#005f8e;box-shadow:0 4px 12px rgba(0,115,170,.35);transform:translateY(-1px)}
.wp-btn-upload:disabled{background:#7fc8e8;cursor:not-allowed;box-shadow:none;transform:none}
.wp-btn-upload svg{width:13px;height:13px}

/* 文章列表 */
.wp-article-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:5px;padding-right:2px}
.wp-article-list::-webkit-scrollbar{width:4px}
.wp-article-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
.wp-article-empty{text-align:center;padding:40px 20px;color:#ccc;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:8px}
.wp-article-empty svg{width:40px;height:40px;opacity:.2}
.wp-article-empty p{font-size:12px;color:#ddd;margin:0}

.wp-article-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s;background:#fff;user-select:none;flex-shrink:0}
.wp-article-item:hover{background:#faf9ff;border-color:#d4ccf9}
.wp-article-item.selected{background:#f0f9ff;border-color:#7fc8e8}
.wp-art-chk{width:15px;height:15px;flex-shrink:0;accent-color:#0073aa;cursor:pointer}
.wp-art-info{flex:1;min-width:0}
.wp-art-title{font-size:13px;font-weight:500;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px}
.wp-art-meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.wp-art-site{background:#f0f0f2;color:#888;padding:1px 6px;border-radius:4px;font-size:11px}
.wp-art-tag{background:#ede9ff;color:#7c6af7;padding:1px 6px;border-radius:4px;font-size:11px}
.wp-art-flag{padding:1px 6px;border-radius:4px;font-size:11px}
.wp-art-flag.ok{background:#dcfce7;color:#16a34a}
.wp-art-flag.no{background:#f5f5f5;color:#bbb}
.wp-art-status{flex-shrink:0;font-size:12px}
.wp-art-uploading{color:#888;animation:pulse .8s ease-in-out infinite alternate}
@keyframes pulse{from{opacity:.5}to{opacity:1}}
.wp-art-ok{color:#16a34a;font-weight:600}
.wp-art-fail{color:#dc2626;font-weight:600}

/* 日志卡片 */
.wp-log-card{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0}
.wp-log-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px;flex-wrap:wrap;flex-shrink:0}
.wp-log-count{font-size:12px;color:#bbb;font-weight:400;margin-left:2px}
.wp-clear-log{background:#fff;border:1px solid #fca5a5;color:#ef4444;padding:4px 10px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .15s;white-space:nowrap;flex-shrink:0}
.wp-clear-log:hover{background:#fff1f2}

/* 日志列表 */
.wp-log-list{flex:1;overflow-y:auto}
.wp-log-list::-webkit-scrollbar{width:4px}
.wp-log-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
.wp-log-empty{text-align:center;padding:28px 20px;color:#ccc;font-size:12.5px;display:flex;flex-direction:column;align-items:center;gap:7px}
.wp-log-empty svg{width:36px;height:36px;opacity:.2}
.wp-log-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #f7f7f7;gap:10px;transition:background .12s}
.wp-log-row:hover{background:#fafafa}
.wp-log-row.ok{background:#fafff7}
.wp-log-row.fail{background:#fff9f9}
.wp-log-row-l{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.wp-log-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11.5px;font-weight:600;flex-shrink:0}
.wp-log-status.ok{background:#dcfce7;color:#16a34a}
.wp-log-status.fail{background:#fee2e2;color:#dc2626}
.wp-log-status.skip{background:#f5f5f5;color:#aaa}
.wp-log-info{flex:1;min-width:0}
.wp-log-title{font-size:12.5px;font-weight:500;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wp-log-msg{font-size:11.5px;color:#bbb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wp-log-link{color:#0073aa;text-decoration:none;margin-left:4px}
.wp-log-link:hover{text-decoration:underline}
.wp-log-time{font-size:11px;color:#ccc;flex-shrink:0;white-space:nowrap}

/* ===== 拆分数据子 Tab ===== */
.split-tabs{display:flex;gap:4px;padding:0 24px;margin-bottom:0;flex-shrink:0;border-bottom:1px solid var(--border);background:#fff}
.split-tab{display:flex;align-items:center;gap:4px;padding:10px 18px;font-size:13px;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;white-space:nowrap;user-select:none;border-radius:4px 4px 0 0}
.split-tab:hover{color:var(--primary);background:#faf9ff}
.split-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;background:#fff}
.split-tab-badge{background:var(--primary);color:#fff;font-size:10px;padding:1px 5px;border-radius:8px;min-width:16px;text-align:center;font-weight:500;margin-left:3px}
.split-subpage{display:none;flex-direction:column;flex:1;overflow:hidden}
.split-subpage.active{display:flex}

/* 响应式 ===== */
@media(max-width:900px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .sidebar{width:var(--sb-icon-w)}
  .sidebar .sb-iname,.sidebar .sb-logo-text,.sidebar .sb-badge,.sidebar .sb-section{display:none}
  .sidebar .sb-item{padding:10px 0;justify-content:center;border-left:none}
  .sidebar .sb-logo{padding:0;justify-content:center}
  .wp-page{overflow-y:auto;overflow-x:hidden}
  .wp-grid{grid-template-columns:1fr;grid-template-areas:'right' 'left'}
  .wp-grid-left,.wp-grid-right{min-height:auto}
  .wp-form-grid{grid-template-columns:1fr}
  .imgdl-wrap{flex-direction:column}
  .imgdl-left{width:100%}
}

/* ===== 图片本地化（imgdl）===== */
.imgdl-wrap{display:flex;flex:1;gap:16px;padding:0 20px 16px;overflow:hidden;min-height:0}
.imgdl-left{width:310px;flex-shrink:0;display:flex;flex-direction:column;gap:0;overflow-y:auto}
.imgdl-left::-webkit-scrollbar{width:4px}
.imgdl-left::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
.imgdl-right{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}

/* 卡片 */
.imgdl-card{background:#fff;border-radius:12px;padding:18px 18px 16px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04)}
.imgdl-card-title{font-size:13.5px;font-weight:600;color:#1a1a2e;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.imgdl-card-title svg{width:14px;height:14px;color:#059669}
.imgdl-divider{height:1px;background:var(--border);margin:14px 0}

/* 分组标题（小圆点+文字） */
.imgdl-section-hd{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:#444;margin-bottom:12px;letter-spacing:.2px}
.imgdl-section-dot{width:8px;height:8px;border-radius:50%;background:#059669;flex-shrink:0}

/* 连接区块 */
.imgdl-conn-block{background:#f8fafb;border:1px solid #e8edf2;border-radius:8px;padding:12px 14px;margin-bottom:4px}
.imgdl-conn-addr-row{display:flex;gap:8px;align-items:center;margin-bottom:9px}
.imgdl-host-input{flex:1;min-width:0;font-size:12.5px}

/* 连接状态 */
.imgdl-conn-status{display:flex;align-items:center;gap:7px;font-size:12px;color:#888}
.imgdl-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.imgdl-dot-gray{background:#d1d5db}
.imgdl-dot-ok{background:#10b981;box-shadow:0 0 5px rgba(16,185,129,.5)}
.imgdl-dot-fail{background:#ef4444}


/* 设置行 */
.imgdl-opt-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;gap:10px}
.imgdl-opt-lbl{font-size:13px;color:#555;font-weight:500;flex-shrink:0;min-width:62px}
.imgdl-sel{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:12.5px;outline:none;background:#fff;color:#555;cursor:pointer;min-width:130px;flex:1}
.imgdl-sel:focus{border-color:#059669}
.imgdl-input{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:12.5px;outline:none;background:#fff;color:#333}
.imgdl-input:focus{border-color:#059669}

/* 测试按钮 */
.imgdl-btn-test{display:inline-flex;align-items:center;gap:5px;background:#fff;color:#059669;border:1px solid #6ee7b7;padding:5px 12px;border-radius:6px;cursor:pointer;font-size:12.5px;font-weight:500;white-space:nowrap;transition:all .15s;flex-shrink:0}
.imgdl-btn-test:hover{background:#f0fdf4;border-color:#059669}
.imgdl-btn-test svg{width:12px;height:12px}
.imgdl-btn-test.loading{opacity:.6;cursor:not-allowed}

/* 进度 */
.imgdl-progress-wrap{margin:12px 0 4px}
.imgdl-progress-bar{height:6px;background:#f0f0f0;border-radius:4px;overflow:hidden}
.imgdl-progress-fill{height:100%;background:linear-gradient(90deg,#059669,#34d399);transition:width .25s;width:0;border-radius:4px}
.imgdl-progress-info{font-size:11.5px;color:#bbb;margin-top:5px;text-align:right}

/* 操作按钮 */
.imgdl-btn-start{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#059669;color:#fff;padding:9px 16px;border-radius:7px;border:none;cursor:pointer;font-size:13.5px;font-weight:600;box-shadow:0 3px 12px rgba(5,150,105,.3);transition:all .2s}
.imgdl-btn-start:hover{background:#047857;box-shadow:0 5px 18px rgba(5,150,105,.4);transform:translateY(-1px)}
.imgdl-btn-start:disabled,.imgdl-btn-start.loading{background:#6ee7b7;cursor:not-allowed;box-shadow:none;transform:none}
.imgdl-btn-start svg{width:14px;height:14px}
.imgdl-btn-stop{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#ef4444;color:#fff;padding:9px 16px;border-radius:7px;border:none;cursor:pointer;font-size:13.5px;font-weight:600;transition:all .2s}
.imgdl-btn-stop:hover{background:#dc2626}
.imgdl-btn-stop svg{width:14px;height:14px}
.imgdl-btn-start.hide,.imgdl-btn-stop.hide{display:none}

/* 说明步骤 */
.imgdl-help-list{display:flex;flex-direction:column;gap:9px;margin-bottom:14px}
.imgdl-help-step{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:#555;line-height:1.6}
.imgdl-step-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:#059669;color:#fff;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0;margin-top:1px}
.imgdl-help-step code{background:#f0fdf4;color:#059669;padding:1px 5px;border-radius:3px;font-size:11.5px}

/* 导出按钮 */
.imgdl-btn-export{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fff;color:#059669;border:1px solid #6ee7b7;padding:8px 14px;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s}
.imgdl-btn-export:hover{background:#f0fdf4;border-color:#059669}
.imgdl-btn-export svg{width:13px;height:13px}
.imgdl-btn-export.hide{display:none}

/* 日志卡片 */
.imgdl-log-card{background:#fff;border-radius:12px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04);flex:1;display:flex;flex-direction:column;overflow:hidden}
.imgdl-log-hd{display:flex;align-items:center;gap:10px;padding:14px 18px 12px;border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}
.imgdl-log-title{font-size:14px;font-weight:600;color:#1a1a2e;display:flex;align-items:center;gap:7px;flex:1}
.imgdl-log-title svg{width:14px;height:14px;color:#059669}
.imgdl-log-filters{display:flex;gap:4px}
.imgdl-filter-btn{background:#f5f5f5;color:#888;border:1px solid #e8e8e8;padding:4px 11px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .15s}
.imgdl-filter-btn:hover{border-color:#059669;color:#059669}
.imgdl-filter-btn.active{background:#059669;color:#fff;border-color:#059669}
.imgdl-clear-btn{display:inline-flex;align-items:center;gap:5px;background:#fff;color:#ef4444;border:1px solid #fca5a5;padding:4px 11px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .15s;white-space:nowrap}
.imgdl-clear-btn:hover{background:#fff1f2}
.imgdl-clear-btn svg{width:12px;height:12px}

/* 日志列表 */
.imgdl-log-list{flex:1;overflow-y:auto;padding:4px 0}
.imgdl-log-list::-webkit-scrollbar{width:4px}
.imgdl-log-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
.imgdl-log-empty{text-align:center;padding:50px 20px;color:#ccc;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:8px}
.imgdl-log-empty svg{width:44px;height:44px;opacity:.2}
.imgdl-log-empty p{font-size:12px;color:#ddd;margin:0}

/* 日志行 */
.imgdl-log-row{display:flex;align-items:flex-start;gap:10px;padding:9px 18px;border-bottom:1px solid #f7f7f7;transition:background .12s}
.imgdl-log-row:hover{background:#fafafa}
.imgdl-log-row.idl-ok .imgdl-log-badge{background:#dcfce7;color:#16a34a}
.imgdl-log-row.idl-fail .imgdl-log-badge{background:#fee2e2;color:#dc2626}
.imgdl-log-row.idl-skip .imgdl-log-badge{background:#f3f4f6;color:#9ca3af}
.imgdl-log-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11.5px;font-weight:600;flex-shrink:0;margin-top:1px;white-space:nowrap}
.imgdl-log-body{flex:1;min-width:0}
.imgdl-log-article{font-size:12.5px;font-weight:500;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px}
.imgdl-log-detail{font-size:11.5px;color:#bbb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.imgdl-log-detail.ok{color:#059669}
.imgdl-log-detail.fail{color:#ef4444}
.imgdl-log-time{font-size:11px;color:#ccc;flex-shrink:0;white-space:nowrap;margin-top:2px}

/* ===== 草稿导出下拉按钮组 ===== */
.draft-export-wrap{position:relative;display:inline-flex;align-items:stretch}
.draft-export-wrap .draft-export-main{border-radius:5px 0 0 5px!important}
.draft-export-wrap .draft-export-arrow{border-radius:0 5px 5px 0!important;border-left:1px solid rgba(255,255,255,.35)!important;padding:7px 8px!important}
.draft-export-wrap .draft-export-arrow svg{transition:transform .18s}
.draft-export-wrap.open .draft-export-arrow svg{transform:rotate(180deg)}
.draft-export-menu{position:absolute;top:calc(100% + 5px);right:0;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.1);min-width:220px;z-index:9999;overflow:hidden}
.draft-export-menu.hide{display:none}
.draft-export-menu-item{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;cursor:pointer;transition:background .13s;border-bottom:1px solid #f5f5f5}
.draft-export-menu-item:last-child{border-bottom:none}
.draft-export-menu-item:hover{background:#f5f3ff}
.draft-export-menu-item svg{width:15px;height:15px;color:var(--primary);flex-shrink:0;margin-top:2px}
.draft-export-menu-title{font-size:13px;font-weight:600;color:#1a1a2e;margin-bottom:2px}
.draft-export-menu-desc{font-size:11.5px;color:#aaa;line-height:1.5}

/* ===== AI 改写页面样式 ===== */

/* 配置折叠面板 */
.ar-cfg-panel{background:#fff;border-bottom:1px solid var(--border);flex-shrink:0}
.ar-cfg-hd{display:flex;align-items:center;gap:8px;padding:10px 20px;cursor:pointer;font-size:13px;font-weight:600;color:#1a1a2e;user-select:none;transition:background .15s}
.ar-cfg-hd:hover{background:#fffbf0}
.ar-cfg-body{padding:14px 20px 16px;border-top:1px solid #f5f5f5}
.ar-cfg-body.hide{display:none}
.ar-cfg-grid{display:flex;flex-direction:column;gap:10px}
.ar-cfg-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ar-cfg-row label{font-size:12.5px;color:#888;width:70px;flex-shrink:0;font-weight:500}
.ar-cfg-row-full{align-items:flex-start}
.ar-cfg-row-full label{margin-top:7px}
.ar-cfg-input{padding:7px 10px;border:1px solid var(--border);border-radius:5px;font-size:13px;outline:none;background:#fff;color:#333;flex:1;min-width:0;transition:border-color .15s}
.ar-cfg-input:focus{border-color:#f59e0b;box-shadow:0 0 0 2px rgba(245,158,11,.12)}
.ar-cfg-textarea{padding:8px 10px;border:1px solid var(--border);border-radius:5px;font-size:13px;outline:none;background:#fff;color:#333;flex:1;resize:vertical;min-height:80px;font-family:inherit;line-height:1.6;transition:border-color .15s}
.ar-cfg-textarea:focus{border-color:#f59e0b;box-shadow:0 0 0 2px rgba(245,158,11,.12)}
.ar-cfg-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid #f5f5f5}
.ar-modules{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:7px 0}
.ar-modules label{display:inline-flex;align-items:center;gap:6px;width:auto;font-size:12.5px;color:#555;cursor:pointer}
.ar-modules input{accent-color:#f59e0b}

/* 改写状态徽章 */
.ar-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:10px;font-size:11.5px;font-weight:600;white-space:nowrap}
.ar-badge-pending{background:#f5f5f5;color:#bbb}
.ar-badge-running{background:#eff6ff;color:#3b82f6}
.ar-badge-success{background:#f0fdf4;color:#16a34a}
.ar-badge-fail{background:#fff1f2;color:#ef4444}

/* 改写中旋转动画 */
.ar-spin{width:10px;height:10px;border:2px solid #bfdbfe;border-top-color:#3b82f6;border-radius:50%;animation:spin .65s linear infinite;flex-shrink:0}

/* 失败原因 */
.ar-fail-info{font-size:11px;color:#ef4444;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px;cursor:help}

/* 模型徽章 */
.ar-model-badge{display:inline-block;background:#fef3c7;color:#d97706;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;border:1px solid #fde68a}
.col-rel{width:220px}
.ar-rel-line{font-size:11.5px;color:#777;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.55}
.ar-rel-line span{display:inline-block;color:#aaa;margin-right:6px}
.ar-rel-summary{font-size:11.5px;color:#bbb;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45;margin-top:3px}
.ar-module-info{font-size:11px;color:#bbb;margin-top:4px;line-height:1.4}

/* 操作按钮 */
.ar-op-btn{padding:4px 10px;border-radius:4px;border:none;cursor:pointer;font-size:12px;font-weight:500;transition:all .15s;white-space:nowrap}
.ar-op-view{background:#ede9ff;color:#7c6af7}.ar-op-view:hover{background:#ddd5ff}
.ar-op-apply{background:#dcfce7;color:#16a34a}.ar-op-apply:hover{background:#bbf7d0}
.ar-op-retry{background:#fef3c7;color:#d97706}.ar-op-retry:hover{background:#fde68a}
.ar-op-reset{background:#f5f5f5;color:#888}.ar-op-reset:hover{background:#e5e5e5}

/* 开始/停止按钮 */
.ar-btn-start{background:#f59e0b;color:#fff}.ar-btn-start:hover:not(:disabled){background:#d97706}
.ar-btn-stop{background:#fff;color:#ef4444;border:1px solid #fca5a5}.ar-btn-stop:hover:not(:disabled){background:#fff1f2}
