:root{--blue:#409eff;--green:#85c447;--line:#e5e7eb;--text:#606266;--muted:#909399;--light:#f5f7fa;--danger:#f56c6c;font-synthesis:none}*{box-sizing:border-box}body,html{margin:0;height:100%;color:var(--text);font:14px/1.45 -apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft Yahei,Arial,sans-serif;background:#fff}body{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input[type=checkbox],input[type=radio]{accent-color:var(--blue)}a{color:var(--blue);text-decoration:none}h1,h2,h3,p{margin-top:0}h2{font-size:16px;font-weight:500}a:focus-visible,button:focus-visible{outline:2px solid #409eff;outline-offset:2px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#c8cbd1;border-radius:6px}::-webkit-scrollbar-track{background:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:6px 14px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#606266;white-space:nowrap;line-height:1.3}.btn:hover{color:var(--blue);border-color:#b3d8ff;background:#ecf5ff}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-primary:hover{background:#66b1ff;color:#fff}.btn-success{background:#85c447;border-color:#85c447;color:#fff}.btn-success:hover{background:#95cf60;color:#fff;border-color:#95cf60}.btn-danger{color:#f56c6c;border-color:#fbc4c4;background:#fef0f0}.btn-text{border:0;background:transparent;color:var(--blue);padding:4px 6px;min-height:24px}.btn-small{padding:4px 8px;min-height:26px;font-size:12px}.field{min-height:34px;max-width:100%;padding:7px 10px;color:#606266;background:#fff;border:1px solid #dcdfe6;border-radius:4px;outline:none}.field:focus{border-color:var(--blue)}.field::placeholder{color:#c0c4cc}textarea.field{resize:vertical;line-height:1.65}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0}.toolbar .field{width:180px}.muted,.notice{color:#909399}.notice{font-size:12px;line-height:1.7;padding:9px 12px;background:#f5f7fa;border:1px solid #ebeef5;border-radius:4px}.notice.warning{color:#b88230;background:#fdf6ec;border-color:#faecd8}.tag{display:inline-block;border-radius:4px;border:1px solid #d9ecff;background:#ecf5ff;color:#409eff;padding:2px 6px;font-size:12px}.tag.warning{background:#fdf6ec;border-color:#faecd8;color:#e6a23c}.panel{border:1px solid var(--line);background:#fff;border-radius:4px}.empty-state{display:flex;min-height:130px;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#c0c4cc}.data-table{width:100%;border-collapse:collapse;table-layout:auto}.data-table th{background:#f5f7fa;color:#909399;font-weight:500;white-space:nowrap}.data-table td,.data-table th{padding:12px 10px;border:1px solid #ebeef5;text-align:left;font-size:13px;overflow-wrap:anywhere}.data-table tbody tr:hover{background:#f5f7fa}.data-table .empty-cell{height:120px;text-align:center;color:#909399}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:15px 0;font-size:13px;color:#606266}.pagination .field{width:60px;min-height:28px;padding:3px 5px}.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:9vh 16px 30px;overflow:auto}.modal{width:min(720px,95vw);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 2px 12px #0003;background:#fff;border-radius:4px}.modal-head{padding:18px 20px 12px;display:flex;align-items:center;justify-content:space-between;color:#303133;font-size:18px}.modal-head button{border:0;background:none;color:#909399;font-size:22px}.modal-body{padding:14px 22px 22px;overflow:auto;min-height:0}.modal-foot{padding:12px 20px 20px;display:flex;justify-content:flex-end;gap:10px}.form-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.form-row>label{width:110px;flex-shrink:0;text-align:right;padding-top:7px}.form-row>.field,.form-row>.form-control{flex:1;min-width:0}.radio-row{gap:18px;flex-wrap:wrap;min-height:34px}.radio-row,.radio-row label{display:flex;align-items:center}.radio-row label{gap:6px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--line);max-height:200px;overflow:auto}.check-grid label{display:flex;align-items:center;gap:6px}.upload-items{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.upload-item{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:4px;padding:5px;max-width:220px}.upload-item img{width:55px;height:55px;object-fit:cover}.upload-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell{height:100dvh;min-width:1100px;display:flex;flex-direction:column;border:1px solid #e5e7eb;overflow:hidden}.app-header{height:64px;flex-shrink:0;display:flex;align-items:center;color:white;background:#409eff}.app-logo{width:176px;padding:8px 14px;flex-shrink:0}.app-logo img{width:146px;height:46px;object-fit:contain}.main-nav,.main-nav button{display:flex;height:64px}.main-nav button{position:relative;width:84px;border:0;background:transparent;color:#fff;align-items:center;justify-content:center;flex-direction:column;gap:2px;font-size:12px}.main-nav button.active,.main-nav button:hover{background:#ffffff26}.main-nav button.active:after{content:"";position:absolute;bottom:1px;width:24px;height:2px;background:#fff;left:30px}.main-nav img,.main-nav svg{height:28px;width:30px;object-fit:contain;margin-bottom:2px}.header-right{display:flex;align-items:center;margin-left:auto;gap:18px;padding:0 20px}.connection-pill{border:0;border-radius:20px;background:#e9b658;color:white;padding:6px 12px;white-space:nowrap;font-size:13px}.header-user{position:relative}.header-user>button{border:0;background:none;color:white;display:flex;align-items:center;gap:8px}.header-user img{width:28px;height:28px;border-radius:50%}.user-menu{position:absolute;right:0;top:38px;width:145px;background:white;border:1px solid var(--line);box-shadow:0 2px 12px #0002;z-index:25;padding:7px 0;border-radius:4px}.user-menu button{display:block;padding:10px 18px;width:100%;text-align:left;border:0;background:white;color:#606266}.user-menu button:hover{background:#ecf5ff;color:#409eff}.app-body{display:flex;flex:1;min-height:0;overflow:hidden}.account-sidebar{width:160px;flex-shrink:0;border-right:1px solid var(--line);display:flex;flex-direction:column}.account-count{height:44px;display:flex;align-items:center;justify-content:space-evenly;background:#f6f7fb;border-bottom:1px solid var(--line);flex-shrink:0}.account-list{overflow-y:auto;flex:1}.account-item{position:relative;width:100%;height:68px;display:flex;align-items:center;gap:10px;padding:10px;border:0;border-bottom:1px dashed #ebeef5;background:white;color:#606266;text-align:left}.account-item img{width:40px;height:40px;border-radius:4px}.account-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-item.active{background:#ecf5ff}.account-item:hover{background:#f5f7fa}.account-item i{position:absolute;right:8px;top:5px;background:#f17a78;color:white;border-radius:14px;font-size:12px;font-style:normal;padding:1px 5px}.source-status{height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:11px;color:#999;border-top:1px solid #ebeef5;background:#fafbfd}.source-status button{background:none;border:0;color:#909399;font-size:11px}.app-toast{position:fixed;z-index:100;left:50%;top:80px;transform:translateX(-50%);padding:12px 22px;background:#f0f9eb;border:1px solid #e1f3d8;color:#67c23a;border-radius:4px;box-shadow:0 3px 12px #0001;max-width:600px}.page-loading{height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px}.page-error{color:#f56c6c}.main-nav img{filter:brightness(0) invert(1)}.large-ui{zoom:1.15;height:calc(100dvh / 1.15)}.account-label{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:3px}.account-label>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-label small{font-size:11px}.account-label .online{color:#579d35}.account-label .offline{color:#a0a6af}.add-wechat{flex-shrink:0;margin:8px;min-height:32px;border:1px solid #b3d8ff;border-radius:4px;color:#409eff;background:#ecf5ff}