/* 主平台全局样式 · 深色科技风（深空算力控制台） */
*{margin:0;padding:0;box-sizing:border-box;font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif}
html,body{height:100%}
body{background:#f5f2fa;color:#2a1740;font-size:14px}
::selection{background:rgba(124,58,237,.28)}
#app{display:flex;height:100vh;overflow:hidden}
/* ===== 左侧导航：深空暗色 ===== */
#sidebar{width:250px;min-width:250px;background:#ffffff;border-right:1px solid rgba(124,58,237,.10);display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:10px;padding:16px 16px 14px;border-bottom:1px solid rgba(124,58,237,.10)}
.brand svg{width:34px;height:34px;flex:none;filter:drop-shadow(0 0 6px rgba(124,58,237,.35))}
.brand .bt{font-size:13px;font-weight:700;line-height:1.35;color:#2a1740}
.brand .bs{font-size:10px;color:#8f7da3;letter-spacing:1.5px}
#nav{flex:1;overflow-y:auto;padding:10px 10px 24px}
#nav::-webkit-scrollbar{width:5px}
#nav::-webkit-scrollbar-thumb{background:rgba(124,58,237,.22);border-radius:4px}
.nav-home{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;font-size:13.5px;font-weight:600;color:#2a1740;cursor:pointer;text-decoration:none}
.nav-home:hover{background:rgba(124,58,237,.07)}
.nav-home.active{background:rgba(124,58,237,.12);color:#7c3aed;box-shadow:inset 2.5px 0 0 #7c3aed,0 0 14px rgba(124,58,237,.10)}
.g-title{display:flex;align-items:center;gap:7px;font-size:12px;color:#8f7da3;font-weight:600;margin:16px 6px 6px}
.g-icon{width:18px;height:18px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;color:#ffffff;flex:none;box-shadow:0 0 8px rgba(124,58,237,.18)}
.g-icon svg{width:11px;height:11px}
.nav-item{display:block;padding:6.5px 10px 6.5px 35px;font-size:13px;color:#a48fb8;border-radius:8px;cursor:pointer;text-decoration:none;position:relative}
.nav-item:hover{background:rgba(124,58,237,.07);color:#3d2a52}
.nav-item.active{background:rgba(124,58,237,.12);color:#7c3aed;font-weight:600;box-shadow:inset 2.5px 0 0 #7c3aed}
/* ===== 三级菜单：一级功能行 + 可折叠二级功能 ===== */
.nav-l1wrap{margin:1px 0}
.nav-l1{display:flex;align-items:center;gap:6px;padding:6.5px 8px 6.5px 12px;font-size:13px;font-weight:600;color:#4e3d63;border-radius:8px;cursor:pointer;user-select:none}
.nav-l1:hover{background:rgba(124,58,237,.07);color:#2a1740}
.nav-l1.active{background:rgba(124,58,237,.12);color:#7c3aed;box-shadow:inset 2.5px 0 0 #7c3aed}
.nav-l1.active-parent{color:#7c3aed}
.nl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nl-chev{flex:none;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:#8f7da3;border-radius:5px;transition:transform .22s ease}
.nl-chev:hover{background:rgba(124,58,237,.14);color:#7c3aed}
.nav-l1wrap.open .nl-chev{transform:rotate(180deg)}
.nav-sub{max-height:0;overflow:hidden;transition:max-height .28s ease}
.nav-l1wrap.open .nav-sub{max-height:420px}
.nav-l2{display:block;padding:5.5px 10px 5.5px 34px;font-size:12.5px;color:#6b5a7d;border-radius:7px;cursor:pointer;text-decoration:none;position:relative;margin:1px 0}
.nav-l2::before{content:'';position:absolute;left:20px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:rgba(124,58,237,.35);transition:all .18s ease}
.nav-l2:hover{background:rgba(124,58,237,.07);color:#3d2a52}
.nav-l2:hover::before{background:#7c3aed}
.nav-l2.active{background:rgba(124,58,237,.12);color:#7c3aed;font-weight:600}
.nav-l2.active::before{background:#7c3aed;box-shadow:0 0 6px rgba(124,58,237,.5)}
/* ===== 二级功能页头图 ===== */
.fhero{padding:20px 24px;border-left:3px solid transparent;border-image:linear-gradient(180deg,#7c3aed,#c026d3) 1}
.fh-crumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#8f7da3;margin-bottom:10px}
.fh-sep{color:rgba(124,58,237,.4)}
.fh-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fh-t{font-size:22px;font-weight:700;background:linear-gradient(120deg,#241335,#7c3aed 55%,#c026d3);-webkit-background-clip:text;background-clip:text;color:transparent}
.fh-d{font-size:13px;color:#6b5a7d;line-height:1.7;margin:10px 0 14px;max-width:920px}
.fh-meta{display:flex;gap:10px 26px;flex-wrap:wrap;font-size:12px;color:#8f7da3;border-top:1px dashed rgba(124,58,237,.16);padding-top:12px}
.fh-meta b{color:#7c3aed;font-weight:600;font-variant-numeric:tabular-nums}
/* ===== 顶栏 ===== */
.main{flex:1;display:flex;flex-direction:column;min-width:0}
#topbar{height:56px;min-height:56px;background:#ffffff;border-bottom:1px solid rgba(124,58,237,.10);display:flex;align-items:center;gap:18px;padding:0 22px}
.tb-name{font-size:15px;font-weight:700;white-space:nowrap;color:#2a1740;letter-spacing:.5px}
.tb-date{font-size:12.5px;color:#8f7da3;white-space:nowrap}
.tb-search{flex:1;max-width:420px;margin-left:auto;position:relative}
.tb-search input{width:100%;height:34px;border:1px solid rgba(124,58,237,.22);border-radius:8px;background:#faf8fd;padding:0 12px 0 32px;font-size:13px;outline:none;color:#2a1740}
.tb-search input::placeholder{color:#8f7da3}
.tb-search input:focus{border-color:#7c3aed;background:#ffffff;box-shadow:0 0 0 3px rgba(124,58,237,.15)}
.tb-search svg{position:absolute;left:10px;top:9px;width:15px;height:15px;color:#8f7da3}
.tb-bell{position:relative;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#a48fb8}
.tb-bell:hover{background:rgba(124,58,237,.08);color:#7c3aed}
.tb-bell .n{position:absolute;top:4px;right:4px;min-width:15px;height:15px;border-radius:99px;background:#dc2626;color:#ffffff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 0 8px rgba(220,38,38,.5)}
.tb-user{display:flex;align-items:center;gap:9px;cursor:pointer;padding:4px 6px;border-radius:8px}
.tb-user:hover{background:rgba(124,58,237,.08)}
.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#c026d3,#db2777);color:#ffffff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;box-shadow:0 0 12px rgba(124,58,237,.35)}
.tb-user .un{font-size:13px;font-weight:500;color:#2a1740}
.tb-user .ur{font-size:11px;color:#8f7da3}
#notify{position:absolute;top:48px;right:90px;width:320px;background:#ffffff;border:1px solid rgba(124,58,237,.16);border-radius:12px;box-shadow:0 18px 44px rgba(88,28,135,.2),0 0 24px rgba(124,58,237,.05);z-index:50;display:none}
#notify.show{display:block}
#notify .nh{padding:12px 14px;border-bottom:1px solid rgba(124,58,237,.10);font-weight:600;font-size:13px;display:flex;justify-content:space-between;color:#2a1740}
#notify .nh span{color:#7c3aed;font-weight:400;cursor:pointer;font-size:12px}
#notify .ni{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid rgba(124,58,237,.07);cursor:pointer}
#notify .ni:hover{background:rgba(124,58,237,.05)}
#notify .ni:last-child{border-bottom:none}
#notify .dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex:none}
#notify .nt{font-size:13px;color:#3d2a52;line-height:1.45}
#notify .ntime{font-size:11px;color:#8f7da3;margin-top:2px}
/* ===== 内容区 ===== */
#content{flex:1;overflow-y:auto;padding:22px 24px 40px;background:#f5f2fa;background-image:radial-gradient(900px 480px at 88% -8%,rgba(124,58,237,.09),transparent 62%),radial-gradient(760px 460px at -12% 108%,rgba(192,38,211,.07),transparent 60%),linear-gradient(rgba(124,58,237,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.045) 1px,transparent 1px);background-size:auto,auto,34px 34px,34px 34px}
#content::-webkit-scrollbar{width:8px}
#content::-webkit-scrollbar-thumb{background:rgba(124,58,237,.18);border-radius:6px}
#content::-webkit-scrollbar-thumb:hover{background:rgba(124,58,237,.35)}
.page-title{font-size:20px;font-weight:700;letter-spacing:.5px;background:linear-gradient(115deg,#241335 35%,#7c3aed 75%,#c026d3);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-sub{color:#8f7da3;font-size:13px;margin:5px 0 18px}
.cards{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
@media (max-width:1150px){.cards>.card{grid-column:span 12 !important}}
.card{background:#ffffff;border:1px solid rgba(124,58,237,.14);border-radius:12px;padding:16px 18px;box-shadow:0 2px 10px rgba(88,28,135,.07);transition:border-color .18s,box-shadow .18s}
.card:hover{border-color:rgba(124,58,237,.3);box-shadow:0 8px 24px rgba(88,28,135,.12),0 0 18px rgba(124,58,237,.1)}
.s3{grid-column:span 3}.s4{grid-column:span 4}.s5{grid-column:span 5}.s6{grid-column:span 6}.s7{grid-column:span 7}.s8{grid-column:span 8}.s12{grid-column:span 12}
.card h3{font-size:14px;font-weight:600;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;color:#2a1740}
.card h3 .more{font-size:12px;color:#7c3aed;font-weight:400;cursor:pointer}
.stat{display:flex;gap:12px;align-items:flex-start}
.stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#ffffff;flex:none;box-shadow:inset 0 -3px 6px rgba(88,28,135,.22),0 0 14px rgba(124,58,237,.14)}
.stat-icon svg{width:20px;height:20px}
.stat-lb{font-size:12.5px;color:#8f7da3;margin-bottom:4px}
.stat-val{font-size:25px;font-weight:700;line-height:1.1;color:#2a1740;font-variant-numeric:tabular-nums}
.stat-val small{font-size:13px;font-weight:500;color:#8f7da3;margin-left:2px}
.stat-sub{font-size:12px;margin-top:5px;color:#8f7da3}
.up{color:#16a34a}.down{color:#dc2626}
/* 图表 */
.chart{width:100%;height:auto;display:block}
.legend{display:flex;gap:14px;font-size:12px;color:#8f7da3;margin-bottom:10px;flex-wrap:wrap}
.legend.col{flex-direction:column;gap:7px;margin-bottom:0}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.legend b{color:#2a1740 !important}
.donut-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
/* 表格 */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;color:#8f7da3;font-weight:500;padding:8px 10px;border-bottom:1px solid rgba(124,58,237,.14);font-size:12px;white-space:nowrap}
.tbl td{padding:9px 10px;border-bottom:1px solid rgba(124,58,237,.08);color:#3d2a52;vertical-align:middle}
.tbl tbody tr:hover td{background:rgba(124,58,237,.05)}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;white-space:nowrap}
.b-green{background:rgba(22,163,74,.14);color:#16a34a}.b-orange{background:rgba(234,88,12,.15);color:#ea580c}.b-red{background:rgba(220,38,38,.15);color:#dc2626}
.b-blue{background:rgba(124,58,237,.15);color:#7c3aed}.b-purple{background:rgba(192,38,211,.16);color:#7c3aed}.b-gray{background:rgba(124,58,237,.14);color:#9e8bb2}
.b-pink{background:rgba(219,39,119,.15);color:#db2777}.b-teal{background:rgba(13,148,136,.14);color:#0d9488}.b-yellow{background:rgba(202,138,4,.14);color:#ca8a04}
.pbar{height:8px;background:rgba(124,58,237,.15);border-radius:99px;overflow:hidden;min-width:90px}
.pbar>div{height:100%;border-radius:99px;box-shadow:0 0 8px rgba(124,58,237,.25)}
.pbar-row{display:flex;align-items:center;gap:10px}
.pbar-row .pv{font-size:12px;color:#8f7da3;min-width:38px;text-align:right;font-variant-numeric:tabular-nums}
/* 动态列表 */
.feed{display:flex;flex-direction:column}
.feed-it{display:flex;gap:12px;padding:10px 2px;border-bottom:1px solid rgba(124,58,237,.08)}
.feed-it:last-child{border-bottom:none}
.feed-ic{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#ffffff;flex:none;font-size:13px;font-weight:600}
.feed-tt{font-size:13px;color:#3d2a52;line-height:1.45}
.feed-tm{font-size:11.5px;color:#8f7da3;margin-top:2px}
/* Agent 卡片 */
.agent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:1150px){.agent-grid{grid-template-columns:1fr}}
.acard{border:1px solid rgba(124,58,237,.14);border-radius:12px;padding:16px;background:#ffffff;transition:border-color .15s,box-shadow .15s}
.acard:hover{border-color:rgba(124,58,237,.3);box-shadow:0 8px 24px rgba(88,28,135,.14),0 0 18px rgba(124,58,237,.10)}
.acard .ah{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.acard .ai{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#ffffff;font-size:17px;font-weight:700}
.acard .an{font-weight:600;font-size:14px;color:#2a1740}
.acard .at{font-size:11.5px;color:#8f7da3}
.acard .ad{font-size:12.5px;color:#a48fb8;line-height:1.6;margin-bottom:12px;min-height:40px}
.acard .af{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#8f7da3}
.acard .af .star{color:#ca8a04}
.acard .inst{background:rgba(124,58,237,.14);color:#7c3aed;border:1px solid rgba(124,58,237,.3);padding:4px 12px;border-radius:6px;font-size:12px;cursor:pointer}
.acard .inst:hover{background:rgba(124,58,237,.22)}
.eng{border:1px solid rgba(124,58,237,.14);border-radius:12px;padding:18px;background:#ffffff}
.eng .et{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.eng .en{font-size:16px;font-weight:700;color:#7c3aed}
.eng .tag{font-size:11px;padding:2px 8px;border-radius:99px;background:rgba(124,58,237,.15);color:#7c3aed}
.eng p{font-size:12.5px;color:#a48fb8;line-height:1.7}
.eng .em{display:flex;gap:18px;margin-top:12px;font-size:12px;color:#8f7da3}
.eng .em b{color:#2a1740;font-size:15px;font-variant-numeric:tabular-nums}
.gauges{display:flex;justify-content:space-around;flex-wrap:wrap;gap:8px}
.gauge-box{text-align:center}
.gauge-box .gl{font-size:12px;color:#8f7da3;margin-top:2px}
.toast{position:fixed;top:70px;left:50%;transform:translateX(-50%);background:#ffffff;border:1px solid rgba(124,58,237,.35);color:#2a1740;font-size:13px;padding:9px 18px;border-radius:8px;z-index:99;box-shadow:0 10px 26px rgba(88,28,135,.18),0 0 16px rgba(124,58,237,.12)}
/* 表格横向溢出滚动 + 长文本换行 */
.tbl-wrap{width:100%;overflow-x:auto}
.tbl td{overflow-wrap:anywhere}
/* 行内操作链接 */
.lnk{color:#7c3aed;cursor:pointer;font-size:12.5px;white-space:nowrap}
.lnk:hover{text-decoration:underline}
/* 用户菜单 */
#userMenu{position:absolute;top:48px;right:22px;width:150px;background:#ffffff;border:1px solid rgba(124,58,237,.16);border-radius:10px;box-shadow:0 18px 44px rgba(88,28,135,.2);z-index:50;display:none;padding:6px}
#userMenu.show{display:block}
#userMenu .umi{padding:8px 10px;font-size:13px;color:#3d2a52;border-radius:6px;cursor:pointer}
#userMenu .umi:hover{background:rgba(124,58,237,.08);color:#7c3aed}
/* ===== 弹窗系统（深色专业版） ===== */
.mask{position:fixed;inset:0;background:rgba(46,16,64,.62);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;animation:maskIn .18s ease}
.modal{width:480px;max-width:94vw;max-height:86vh;background:#ffffff;border:1px solid rgba(124,58,237,.18);border-radius:14px;box-shadow:0 24px 60px rgba(88,28,135,.24),0 0 30px rgba(124,58,237,.06);display:flex;flex-direction:column;overflow:hidden;animation:popIn .22s cubic-bezier(.2,.9,.3,1.15)}
@keyframes maskIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.mHead{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 14px;border-bottom:1px solid rgba(124,58,237,.12)}
.mIcon{flex:none;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(124,58,237,.14);color:#7c3aed}
.mIcon svg{width:18px;height:18px}
.modal.t-danger .mIcon{background:rgba(220,38,38,.14);color:#dc2626}
.modal.t-success .mIcon{background:rgba(22,163,74,.14);color:#16a34a}
.modal.t-warning .mIcon{background:rgba(234,88,12,.15);color:#ea580c}
.mTitles{flex:1;min-width:0}
.mTitle{font-size:15.5px;font-weight:700;color:#2a1740}
.mSub{font-size:12.5px;color:#8f7da3;margin-top:3px;line-height:1.5}
.mClose{flex:none;width:28px;height:28px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:#8f7da3;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.mClose:hover{background:rgba(124,58,237,.12);color:#7c3aed;transform:rotate(90deg)}
.mBody{padding:18px 20px;font-size:13.5px;color:#3d2a52;line-height:1.7;overflow-y:auto}
.mFoot{display:flex;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid rgba(124,58,237,.12);background:rgba(124,58,237,.05)}
.mNote{flex:1;font-size:12px;color:#8f7da3;line-height:1.5}
.mActs{display:flex;gap:10px;margin-left:auto}
.mbtn{height:36px;padding:0 18px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;border:1px solid rgba(124,58,237,.25);background:rgba(124,58,237,.08);color:#3d2a52;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.mbtn:hover{background:rgba(124,58,237,.14);border-color:rgba(124,58,237,.4)}
.mbtn:active{transform:translateY(1px)}
.mbtn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(124,58,237,.18)}
.mbtn.ok{background:#7c3aed;border-color:#7c3aed;color:#ffffff;font-weight:600;box-shadow:0 2px 12px rgba(124,58,237,.35)}
.mbtn.ok:hover{background:#9333ea;border-color:#9333ea}
.modal.t-danger .mbtn.ok{background:#dc2626;border-color:#dc2626;color:#ffffff;box-shadow:0 2px 12px rgba(220,38,38,.35)}
.modal.t-danger .mbtn.ok:hover{background:#dc2626;border-color:#dc2626}
.modal.t-success .mbtn.ok{background:#16a34a;border-color:#16a34a;color:#ffffff}
.modal.t-success .mbtn.ok:hover{background:#16a34a}
.mbtn[disabled]{opacity:.6;cursor:not-allowed}
.mbtn .spin{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#ffffff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* 弹窗表单字段 */
.mfield{margin-bottom:14px}
.mfield:last-child{margin-bottom:0}
.mfield>label{display:block;font-size:12.5px;font-weight:600;color:#4e3d63;margin-bottom:6px}
.mfield .req{color:#dc2626;margin-left:2px;font-weight:600}
.mfield input,.mfield select{width:100%;height:38px;border:1px solid rgba(124,58,237,.25);border-radius:8px;padding:0 12px;font-size:13px;outline:none;background:#faf8fd;color:#2a1740;transition:border-color .15s,box-shadow .15s}
.mfield select option{background:#ffffff;color:#2a1740}
.mfield input:hover,.mfield select:hover{border-color:rgba(124,58,237,.45)}
.mfield input:focus,.mfield select:focus{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.15)}
.mfield input.err,.mfield select.err{border-color:#dc2626}
.mfield input.err:focus,.mfield select.err:focus{box-shadow:0 0 0 3px rgba(220,38,38,.15)}
.mfield .merr{display:none;font-size:12px;color:#dc2626;margin-top:5px}
.mfield.has-err .merr{display:block}
.mfield .mhelp{font-size:12px;color:#8f7da3;margin-top:5px;line-height:1.5}
/* 新增按钮（数据卡片标题栏，显眼主操作） */
.addbtn{display:inline-flex;align-items:center;gap:4px;background:#7c3aed;color:#ffffff;border:none;padding:5px 13px;border-radius:7px;font-size:12.5px;cursor:pointer;font-weight:600;font-family:inherit;white-space:nowrap;box-shadow:0 0 12px rgba(124,58,237,.3)}
.addbtn:hover{background:#9333ea}
.addbtn svg{width:11px;height:11px}
.addbtn.ghost{background:rgba(124,58,237,.12);color:#7c3aed;border:1px solid rgba(124,58,237,.3);box-shadow:none}
.addbtn.ghost:hover{background:rgba(124,58,237,.2)}
/* 顶栏帮助按钮 */
.tb-help{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#a48fb8;font-size:16px;font-weight:600;flex:none}
.tb-help:hover{background:rgba(124,58,237,.08);color:#7c3aed}
/* 使用指南弹窗内容 */
.help-bd{font-size:13px;color:#4e3d63;line-height:1.8}
.help-bd h4{font-size:13px;font-weight:600;color:#2a1740;margin:12px 0 4px}
.help-bd h4:first-child{margin-top:0}
.help-bd ul{padding-left:18px;color:#a48fb8}
.help-bd li{margin:2px 0}
.help-bd .kbd{background:rgba(124,58,237,.14);border:1px solid rgba(124,58,237,.2);border-radius:4px;padding:0 5px;font-size:12px;color:#3d2a52}
/* 使用帮助页（快速上手步骤） */
.help-steps{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hstep{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid rgba(124,58,237,.12);border-radius:10px;background:rgba(124,58,237,.05)}
.hstep b{font-size:13px;color:#2a1740}
.hstep p{font-size:12.5px;color:#8f7da3;margin:4px 0 0;line-height:1.7}
.hnum{flex:none;width:22px;height:22px;border-radius:50%;background:#7c3aed;color:#ffffff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px;box-shadow:0 0 10px rgba(124,58,237,.35)}
@media (max-width:1150px){.help-steps{grid-template-columns:1fr}}
/* ===== 智能体市场 ===== */
.market-head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;justify-content:space-between;padding:2px 0 16px}
.market-head .mh-title{font-size:20px;font-weight:700;color:#2a1740;letter-spacing:.5px}
.market-head .mh-sub{font-size:12.5px;color:#8f7da3;margin-top:4px}
.mkt-search{position:relative;flex:none;width:340px;max-width:100%}
.mkt-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:#8f7da3;pointer-events:none}
.mkt-search input{width:100%;padding:9px 12px 9px 34px;border:1px solid rgba(124,58,237,.22);border-radius:9px;font-size:13px;font-family:inherit;outline:none;background:#faf8fd;color:#2a1740;transition:.15s;box-sizing:border-box}
.mkt-search input::placeholder{color:#8f7da3}
.mkt-search input:focus{border-color:#7c3aed;background:#ffffff;box-shadow:0 0 0 3px rgba(124,58,237,.15)}
.mkt-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;padding-bottom:2px}
.mkt-tab{font-size:13px;color:#a48fb8;background:none;border:1px solid rgba(124,58,237,.18);padding:6px 16px;border-radius:20px;cursor:pointer;font-family:inherit;transition:.15s}
.mkt-tab:hover{background:rgba(124,58,237,.07);color:#3d2a52}
.mkt-tab.on{background:rgba(124,58,237,.14);color:#7c3aed;font-weight:600;border-color:#7c3aed;box-shadow:0 0 12px rgba(124,58,237,.18)}
.crm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:1150px){.crm-grid{grid-template-columns:1fr}}
.crm-card{position:relative;border:1px solid rgba(124,58,237,.14);border-radius:14px;padding:17px;background:#ffffff;cursor:pointer;transition:box-shadow .18s,transform .18s,border-color .18s;display:flex;flex-direction:column}
.crm-card:hover{box-shadow:0 14px 34px rgba(88,28,135,.16),0 0 22px rgba(124,58,237,.10);transform:translateY(-2px);border-color:rgba(124,58,237,.35)}
.crm-top{display:flex;align-items:center;gap:12px}
.crm-ava{width:44px;height:44px;border-radius:12px;color:#ffffff;font-size:19px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 0 14px rgba(124,58,237,.18)}
.crm-name{font-weight:700;font-size:15px;color:#2a1740}
.crm-cat{display:inline-block;margin-top:4px;font-size:11px;color:#8f7da3;background:rgba(124,58,237,.12);padding:1px 9px;border-radius:10px}
.crm-desc{font-size:12.5px;color:#a48fb8;line-height:1.7;margin:12px 0 0;flex:1}
.crm-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.crm-tags span{font-size:11px;color:#7c3aed;background:rgba(124,58,237,.12);padding:2px 9px;border-radius:8px}
.crm-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(124,58,237,.1);padding-top:11px;font-size:12px;color:#8f7da3}
.crm-stats{display:flex;gap:14px}
.crm-stats .star{color:#ca8a04;font-weight:700}
.crm-inst{border:none;background:#7c3aed;color:#ffffff;font-weight:600;padding:5px 15px;border-radius:8px;font-size:12.5px;cursor:pointer;font-family:inherit;box-shadow:0 0 12px rgba(124,58,237,.3)}
.crm-inst:hover{background:#9333ea}
.crm-inst.done{background:rgba(124,58,237,.12) !important;color:#8f7da3 !important;cursor:default;box-shadow:none}
/* 详情窗口内容 */
.agi-body{font-size:13px;color:#4e3d63;line-height:1.7}
.agi-desc{margin:0;color:#a48fb8}
.agi-meta{display:flex;gap:28px;flex-wrap:wrap;margin:14px 0;padding:13px 0;border-top:1px solid rgba(124,58,237,.12);border-bottom:1px solid rgba(124,58,237,.12)}
.agi-meta .m{min-width:56px}
.agi-meta .k{font-size:11px;color:#8f7da3}
.agi-meta .v{font-size:16px;font-weight:700;color:#2a1740;margin-top:2px;font-variant-numeric:tabular-nums}
.agi-sec{margin-top:14px}
.agi-sec h4{margin:0 0 6px;font-size:13px;font-weight:600;color:#2a1740}
.agi-feats{list-style:none;margin:0;padding:0}
.agi-feats li{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:#6b5a7d;padding:3px 0}
.agi-feats li svg{width:15px;height:15px;color:#16a34a;flex:none;margin-top:3px}
.agi-attach{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.agi-attach span{font-size:11px;color:#8f7da3;background:rgba(124,58,237,.12);padding:2px 10px;border-radius:8px}
.addtip{font-size:11px;font-weight:400;color:#8f7da3;margin-left:8px}
.card.no-pad{padding:0;overflow:hidden}
/* ===== 流程编排画布（亮色点阵） ===== */
.flow-editor{height:600px;display:flex;flex-direction:column;background:#ffffff;border:1px solid rgba(124,58,237,.14);border-radius:12px}
.fe-toolbar{height:52px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 14px;border-bottom:1px solid rgba(124,58,237,.12);background:#f9f6fd}
.fe-left,.fe-center,.fe-right{display:flex;align-items:center;gap:8px}
.fe-left b{font-size:14px;color:#2a1740;margin-right:4px}
.fe-select{height:30px;border:1px solid rgba(124,58,237,.25);border-radius:8px;background:#faf8fd;padding:0 8px;font-size:12px;color:#3d2a52}
.fe-select option{background:#ffffff}
.fe-tool{min-width:30px;height:30px;padding:0 8px;border:1px solid rgba(124,58,237,.25);border-radius:8px;background:rgba(124,58,237,.07);color:#a48fb8;font-size:13px;cursor:pointer}
.fe-tool:hover{background:rgba(124,58,237,.1);border-color:rgba(124,58,237,.35);color:#7c3aed}
#feZoomText{width:42px;text-align:center;font-size:12px;color:#8f7da3;font-variant-numeric:tabular-nums}
.fe-btn{height:30px;padding:0 12px;border-radius:8px;font-size:12px;cursor:pointer;border:1px solid rgba(124,58,237,.25);background:rgba(124,58,237,.07);color:#3d2a52}
.fe-btn:hover{background:rgba(124,58,237,.1);border-color:rgba(124,58,237,.35)}
.fe-btn.primary{background:#7c3aed;border-color:#7c3aed;color:#ffffff;font-weight:600;box-shadow:0 0 10px rgba(124,58,237,.3)}
.fe-btn.primary:hover{background:#9333ea}
.fe-btn.ghost{color:#7c3aed;border-color:rgba(124,58,237,.4);background:rgba(124,58,237,.1)}
.fe-body{flex:1;min-height:0;display:grid;grid-template-columns:220px 1fr 280px}
.fe-palette{border-right:1px solid rgba(124,58,237,.12);padding:14px;background:#f9f6fd;overflow:auto}
.fe-p-title{font-size:13px;font-weight:700;color:#2a1740;margin-bottom:4px}
.fe-p-tip{font-size:11px;color:#8f7da3;margin-bottom:12px}
.pal-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px;border:1px solid transparent;border-radius:9px;background:transparent;color:#4e3d63;font-size:12px;text-align:left;cursor:pointer;margin-bottom:4px}
.pal-item:hover{background:rgba(124,58,237,.08);border-color:rgba(124,58,237,.25)}
.fe-main{min-width:0;background:#f6f2fb;overflow:hidden;position:relative}
.flow-canvas{width:100%;height:100%;overflow:auto;background-color:#f6f2fb;background-image:radial-gradient(circle,rgba(124,58,237,.16) 1px,transparent 1px);background-size:22px 22px;cursor:grab}
.flow-world{position:relative;width:1600px;height:680px;transform-origin:0 0}
#edgeLayer{position:absolute;inset:0;width:1600px;height:680px;overflow:visible;pointer-events:none}
.wf-edge{fill:none;stroke:rgba(124,58,237,.45);stroke-width:1.8;pointer-events:stroke;cursor:pointer}
.wf-edge.on{stroke:#7c3aed;stroke-width:2.5;filter:drop-shadow(0 0 4px rgba(124,58,237,.6))}
.wf-temp{fill:none;stroke:#7c3aed;stroke-width:2;stroke-dasharray:6 4}
#nodeLayer{position:absolute;inset:0;pointer-events:none}
.wf-node{position:absolute;border:1px solid rgba(124,58,237,.28);border-radius:10px;background:#ffffff;box-shadow:0 4px 14px rgba(88,28,135,.12);display:flex;align-items:center;gap:9px;padding:0 10px;pointer-events:auto;cursor:move;box-sizing:border-box}
.wf-node:hover{border-color:rgba(124,58,237,.5);box-shadow:0 8px 22px rgba(88,28,135,.16),0 0 14px rgba(124,58,237,.15)}
.wf-node.selected{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.18),0 8px 22px rgba(88,28,135,.16),0 0 18px rgba(124,58,237,.25)}
.wf-ico{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#ffffff;font-size:15px;font-weight:700;flex:none}
.wf-ico.sm{width:28px;height:28px;border-radius:7px;font-size:13px}
.wf-info{display:flex;flex-direction:column;min-width:0}
.wf-info b{font-size:12px;color:#2a1740;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wf-info em{font-size:10px;color:#8f7da3;font-style:normal;margin-top:2px}
.wf-port{position:absolute;width:12px;height:12px;border-radius:50%;background:#ffffff;border:2px solid #9e8bb2;top:50%;transform:translateY(-50%);z-index:2}
.wf-port.in{left:-7px}
.wf-port.out{right:-7px;cursor:crosshair;background:rgba(124,58,237,.25);border-color:#7c3aed}
.fe-inspector{border-left:1px solid rgba(124,58,237,.12);padding:14px;background:#ffffff;overflow:auto}
.insp-title{font-size:13px;font-weight:700;color:#2a1740;margin-bottom:14px}
.insp-empty{font-size:12px;line-height:1.7;color:#8f7da3;background:rgba(124,58,237,.06);border:1px solid rgba(124,58,237,.12);border-radius:9px;padding:10px;margin-bottom:12px}
.insp-meta{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(124,58,237,.1);font-size:12px;color:#8f7da3}
.insp-meta b{color:#2a1740;font-weight:600}
.insp-label{display:block;font-size:12px;color:#a48fb8;margin-bottom:12px}
.insp-label input,.insp-label select{width:100%;height:34px;margin-top:6px;border:1px solid rgba(124,58,237,.25);border-radius:8px;padding:0 9px;font-size:12px;color:#2a1740;background:#faf8fd;box-sizing:border-box}
.insp-label select option{background:#ffffff}
.insp-label input:focus,.insp-label select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.15)}
.insp-delete{width:100%;height:34px;border:1px solid rgba(220,38,38,.35);background:rgba(220,38,38,.1);color:#dc2626;border-radius:8px;font-size:12px;cursor:pointer;margin-top:8px}
.insp-delete:hover{background:rgba(220,38,38,.18)}
.val-list{margin:0;padding-left:18px;font-size:13px;line-height:1.9;color:#4e3d63}
.lnk{color:#7c3aed;cursor:pointer;font-size:12px}
.lnk:hover{text-decoration:underline}
