[hidden]{display:none!important}
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0f1420;--panel:#151d2c;--panel2:#131a27;--line:#222d42;--line2:#212b3d;
  --text:#e6ecf7;--dim:#8fa1bb;--dim2:#6d7d97;
  --blue:#3ea6ff;--green:#5ee0a0;--yellow:#ffcc66;--red:#ff7b7b;--purple:#c08bff;
}
html,body{height:100%}
body{font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC",Segoe UI,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}

/* ---------- 登录 ---------- */
.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 50% -10%,#182338,#0f1420)}
.login-card{width:340px;background:#151d2c;border:1px solid var(--line);border-radius:14px;padding:26px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.login-brand{font-size:18px;font-weight:700}
.login-brand b{color:var(--blue)}
.login-sub{font-size:11.5px;color:var(--dim2);margin-top:-8px}
.login-err{font-size:11.5px;color:var(--red);min-height:16px}
.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--dim)}
.field input,.field select,.field textarea{background:#0f1622;border:1px solid #253149;border-radius:8px;padding:9px 10px;color:#dfe9f7;font-size:12.5px;font-family:inherit;outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#2f5f96}
.field textarea{resize:vertical;min-height:70px;line-height:1.6}

/* ---------- 布局 ---------- */
.app{height:100vh;display:flex;flex-direction:column}
.top{height:52px;flex:none;display:flex;align-items:center;gap:11px;padding:0 16px;background:#141b29;border-bottom:1px solid var(--line2)}
.logo{font-weight:700;font-size:15px;letter-spacing:.5px}
.logo b{color:var(--blue)}
.chip{font-size:11.5px;padding:3px 9px;border-radius:20px;background:#1b2436;border:1px solid #26314a;color:#9fb0c9;white-space:nowrap}
.chip.ok{color:var(--green);border-color:#1f4a3a;background:#13251e}
.chip.warn{color:var(--yellow);border-color:#4a3d1f;background:#241f12}
.chip.err{color:var(--red);border-color:#4a2020;background:#241616}
.grow{flex:1}
.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#3ea6ff,#7a5cff);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.body{flex:1;display:flex;min-height:0}
.side{width:186px;flex:none;background:#121926;border-right:1px solid var(--line2);padding:10px 8px;overflow:auto}
.grp{font-size:10.5px;color:#5d6b84;padding:10px 8px 5px;letter-spacing:1px}
.nav{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;font-size:13px;color:#a9b8cf;cursor:pointer;user-select:none}
.nav:hover{background:#182235;color:#dbe6f5}
.nav .ic{width:16px;text-align:center;opacity:.85}
.nav.on{background:#1c2b45;color:#e8f1ff;box-shadow:inset 2px 0 0 var(--blue)}
.nav .badge{margin-left:auto;font-size:10px;background:#20304c;padding:1px 6px;border-radius:9px;color:#7fa8e0}
.nav .badge:empty{display:none}
.nav .live{width:6px;height:6px;border-radius:50%;background:#334159;margin-left:auto}
.nav .live.on{background:#39d98a;box-shadow:0 0 6px #39d98a}
.side-note{font-size:10.5px;color:#5f6d85;padding:6px 10px;line-height:1.7}
.main{flex:1;min-width:0;overflow:auto;padding:14px 16px 18px}
.foot{flex:none;height:26px;display:flex;align-items:center;gap:14px;padding:0 16px;background:#0c1119;border-top:1px solid #1c2434;font-size:10.5px;color:#5f6d85}
.foot .l{color:#39d98a}
.foot .l.off{color:var(--red)}

/* ---------- 通用组件 ---------- */
.h1{font-size:13px;color:var(--dim);margin-bottom:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.h1 .tag{font-size:10.5px;color:var(--green);background:#13251e;border:1px solid #1f4a3a;padding:1px 7px;border-radius:9px}
.h1 .muted{font-size:11px;color:var(--dim2)}
.cards{display:grid;gap:10px;margin-bottom:13px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 13px}
.card .k{font-size:11px;color:#7f8fa9}
.card .v{font-size:22px;font-weight:700;margin-top:3px;letter-spacing:.5px}
.card .s{font-size:10.5px;color:#5f6d85;margin-top:2px}
.card.acc .v{color:var(--green)}.card.send .v{color:var(--blue)}.card.ai .v{color:var(--purple)}
.card.risk .v{color:var(--yellow)}.card.err .v{color:var(--red)}
.row{display:flex;gap:12px;align-items:flex-start}
.col{min-width:0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:12px}
.panel .ph{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line2);font-size:12.5px;color:#c6d4e8}
.panel .ph .dot{width:7px;height:7px;border-radius:50%;background:#39d98a;box-shadow:0 0 7px #39d98a}
.panel .ph .right{margin-left:auto;display:flex;gap:6px;align-items:center}
.panel .pb{padding:11px 12px}
table{width:100%;border-collapse:collapse;font-size:12px}
th{text-align:left;font-weight:400;color:var(--dim2);font-size:10.5px;padding:7px 11px;background:var(--panel2);border-bottom:1px solid var(--line2);white-space:nowrap}
td{padding:7px 11px;border-bottom:1px solid #1b2434;color:#c2cfe2;white-space:nowrap}
tr:last-child td{border-bottom:none}
tbody tr:hover td{background:#172031}
.mono{font-family:Consolas,"SF Mono",Menlo,monospace;font-size:11.5px;color:#dfe9f7}
.muted{color:var(--dim2);font-size:11px}
.pill{font-size:10.5px;padding:1.5px 7px;border-radius:9px;border:1px solid transparent;display:inline-block}
.p-run{color:var(--green);background:#13251e;border-color:#1f4a3a}
.p-idle{color:#8fa1bb;background:#1b2436;border-color:#26314a}
.p-warn{color:var(--yellow);background:#241f12;border-color:#4a3d1f}
.p-off{color:var(--red);background:#2a1616;border-color:#4a2020}
.p-blue{color:#8fb6ea;background:#16233a;border-color:#27395a}
.btn{font-size:11.5px;border:1px solid #2a3a58;border-radius:7px;padding:4px 10px;color:#a9c4e6;background:#182336;cursor:pointer;font-family:inherit;white-space:nowrap}
.btn:hover{background:#1f2c44;color:#dce9f9}
.btn.primary{background:#1d4f86;border-color:#2f6fb2;color:#e8f2ff}
.btn.primary:hover{background:#24619f}
.btn.ok{color:var(--green);border-color:#1f4a3a;background:#13251e}
.btn.red{color:#ff8f8f;border-color:#4a2020;background:#241616}
.btn.ghost{background:transparent}
.btn.block{width:100%;text-align:center;padding:9px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.kv{display:grid;grid-template-columns:1fr auto;column-gap:12px;font-size:11.5px;color:#a9b8cf;line-height:1.95;align-items:baseline}
.kv b{font-weight:400;color:#c2cfe2;text-align:right}
.sw{position:relative;display:inline-block;width:32px;height:17px;border-radius:9px;background:#22304a;cursor:pointer;vertical-align:middle;transition:background .15s}
.sw i{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#8fa1bb;transition:left .15s,background .15s}
.sw.on{background:#1e7a52}
.sw.on i{left:17px;background:var(--green)}
.log{font-family:Consolas,"SF Mono",Menlo,monospace;font-size:11px;line-height:1.75;height:100%;overflow:auto;color:#9db0c9;background:#0d131d;padding:8px 11px}
.log div{white-space:pre-wrap;word-break:break-all}
.log .t{color:#55657e;margin-right:6px}
.log .src{color:#6f8bb3;margin-right:6px}
.log .er{color:var(--red)}.log .wa{color:var(--yellow)}.log .ok{color:var(--green)}
.empty{font-size:11.5px;color:var(--dim2);padding:14px 12px}
.prog{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #1b2434}
.prog:last-child{border-bottom:none}
.prog .ic{width:30px;height:30px;flex:none;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;background:#1b2436;border:1px solid #26314a}
.prog .nm{font-size:12.5px;color:#dbe6f5}
.prog .sub{font-size:10.5px;color:var(--dim2);margin-top:2px}
.prog .rt{margin-left:auto;display:flex;align-items:center;gap:7px}
.toast{position:fixed;right:18px;bottom:44px;background:#1c2739;border:1px solid #2d3d5b;color:#dbe6f5;font-size:12px;padding:9px 14px;border-radius:9px;box-shadow:0 8px 30px rgba(0,0,0,.4);max-width:60vw;z-index:99}
.toast.err{border-color:#5a2626;color:#ffb3b3}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hint{font-size:11px;color:var(--dim2);line-height:1.75}
.search{background:#0f1622;border:1px solid #253149;border-radius:7px;padding:5px 9px;color:#dfe9f7;font-size:11.5px;outline:none}
.bar{height:4px;border-radius:3px;background:#22304a;overflow:hidden;width:62px;display:inline-block;vertical-align:middle}
.bar i{display:block;height:100%;background:linear-gradient(90deg,#3ea6ff,#7a5cff)}
@media (max-width:900px){
  .side{width:56px;padding:8px 6px}
  .side .grp,.side .side-note{display:none}
  .nav{justify-content:center;padding:9px 0}
  .nav .ic{width:auto}
  .nav{font-size:0}
  .nav .badge{display:none}
  .row{flex-direction:column}
  .row>.col{width:100%!important;flex:1 1 auto!important}
}

/* ---------- 频道克隆：档案卡片 ---------- */
.pcard{background:#151d2c;border:1px solid #222d42;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;margin-bottom:0}
.pcard.on{border-color:#2f6fb2;box-shadow:0 0 0 1px #24486f inset}
.pc-head{display:flex;align-items:center;gap:9px;padding:11px 13px;border-bottom:1px solid #212b3d}
.pc-ic{width:32px;height:32px;flex:none;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;background:#1b2436;border:1px solid #26314a}
.pc-name{font-size:13px;font-weight:700;color:#e6ecf7}
.pc-sub{font-size:10.5px;color:#6d7d97;margin-top:2px}
.pc-body{padding:10px 13px;font-size:11.5px;color:#a9b8cf;line-height:2}
.pc-body .k{color:#7f8fa9;display:inline-block;width:52px}
.pc-body b{color:#c2cfe2;font-weight:400}
.pc-body .muted{color:#6d7d97}
.pc-body .tasks{border-top:1px solid #1b2434;margin:6px -13px 0;padding:0}
.task{display:flex;align-items:center;gap:7px;padding:6px 13px;font-size:10.5px;color:#7f8fa9;border-bottom:1px solid #1b2434}
.task:last-child{border-bottom:none}
.task .src{color:#9fb0c9;font-family:Consolas,monospace}
.task .arw{color:#3ea6ff}
.task .dst{font-family:Consolas,monospace;color:#8fb6ea;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task .n{margin-left:auto;color:#5f6d85}
.pc-foot{display:flex;align-items:center;gap:6px;padding:9px 13px;border-top:1px solid #212b3d;background:#131a27;margin-top:auto}
.note{font-size:11px;color:#6d7d97;line-height:1.8}

/* ---------- 标签页 / 表格内下拉 ---------- */
.tabs{display:flex;gap:6px;margin-bottom:12px}
.tabs .t{font-size:11.5px;color:#8fa1bb;padding:4px 13px;border-radius:14px;background:#1b2436;border:1px solid #26314a;cursor:pointer;user-select:none}
.tabs .t:hover{color:#dbe6f5}
.tabs .t.on{color:#e8f1ff;background:#1c2b45;border-color:#2f4b76;box-shadow:inset 0 0 0 1px #24486f}
select.search{appearance:none;-webkit-appearance:none;background:#0f1622 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%237f8fa9'/></svg>") no-repeat right 8px center;padding:5px 22px 5px 9px;border:1px solid #253149;border-radius:7px;color:#dfe9f7;font-size:11.5px;font-family:inherit;outline:none}
select.search:focus{border-color:#2f5f96}
.field select{background:#0f1622;border:1px solid #253149;border-radius:7px;padding:7px 9px;color:#dfe9f7;font-size:12px;font-family:inherit;outline:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.swrow{display:flex;align-items:center;gap:8px;font-size:11.5px;color:#a9b8cf;padding:4px 0}
.swrow .g{flex:1}

/* ---------- 多机器人清单 ---------- */
.bot{display:flex;align-items:center;gap:9px}
.bi{width:30px;height:30px;flex:none;border-radius:8px;background:#1b2436;border:1px solid #26314a;display:flex;align-items:center;justify-content:center;font-size:14px}
.bn{font-size:12px;color:#e6ecf7}
.bs{font-size:10.5px;color:#6d7d97;margin-top:1px}


/* 高频（debug）日志弱化显示 */
.log .dbg{opacity:.45}
.log .dbg .src{color:#4a5568}

/* ================= 明亮主题（可切换） =================
   切换方式：<html data-theme="light">，偏好存 localStorage.theme
   ===================================================== */
[data-theme="light"]{
  --bg:#f4f7fb;
  --panel:#ffffff;
  --panel2:#f7f9fc;
  --line:#e2e8f2;
  --line2:#e8edf5;
  --text:#1b2430;
  --dim:#5c6b82;
  --dim2:#8896ab;
  --blue:#1f7ae0;
  --green:#12a56a;
  --yellow:#c98a00;
  --red:#e04b4b;
  --purple:#7a52d6;
  color-scheme: light;
}

/* 布局骨架 */
[data-theme="light"] body{background:#f4f7fb;color:#1b2430}
[data-theme="light"] .login-wrap{background:radial-gradient(1200px 600px at 50% -10%, #e8f0fb, #f4f7fb)}
[data-theme="light"] .login-card{background:#fff;border:1px solid #e2e8f2;box-shadow:0 18px 50px rgba(24,44,80,.12)}
[data-theme="light"] .top{background:#fff;border-bottom:1px solid #e6ebf4}
[data-theme="light"] .side{background:#fff;border-right:1px solid #e6ebf4}
[data-theme="light"] .foot{background:#fff;border-top:1px solid #e6ebf4}
[data-theme="light"] .grp{color:#98a6ba}
[data-theme="light"] .nav{color:#44536b}
[data-theme="light"] .nav:hover{background:#f1f5fb}
[data-theme="light"] .nav.on{background:#e8f1fd;color:#0f5fbb;box-shadow:inset 2px 0 0 #1f7ae0}
[data-theme="light"] .side-note{color:#5c6b82}

/* 顶部小胶囊 */
[data-theme="light"] .chip{background:#f2f6fc;border:1px solid #e2e8f2;color:#5c6b82}
[data-theme="light"] .chip.ok{background:#e8f8f0;border-color:#bfe8d5;color:#12a56a}
[data-theme="light"] .chip.warn{background:#fff7e6;border-color:#f2dfae;color:#a97a00}
[data-theme="light"] .chip.err{background:#fdecec;border-color:#f3c9c9;color:#d43b3b}

/* 面板 / 卡片 */
[data-theme="light"] .panel{background:#fff;border:1px solid #e6ebf4}
[data-theme="light"] .panel .ph{background:#fbfcfe;border-bottom:1px solid #eef2f8;color:#283548}
[data-theme="light"] .card{background:#fff;border:1px solid #e6ebf4}
[data-theme="light"] .card .k{color:#8896ab}
[data-theme="light"] .card .v{color:#1b2430}
[data-theme="light"] .card .s{color:#8896ab}

/* 表格 */
[data-theme="light"] table{color:#283548}
[data-theme="light"] th{background:#f7f9fc;color:#7b8aa1;border-bottom:1px solid #e6ebf4}
[data-theme="light"] td{border-bottom:1px solid #f0f3f9;color:#283548}
[data-theme="light"] tr:hover td{background:#fafcff}

/* 表单控件（含 JS 里内联写的深色背景） */
[data-theme="light"] input,
[data-theme="light"] select,
[data-theme="light"] textarea,
[data-theme="light"] .field input,
[data-theme="light"] .field select,
[data-theme="light"] .field textarea,
[data-theme="light"] input.search,
[data-theme="light"] select.search{
  background:#fff !important;
  color:#1b2430 !important;
  border:1px solid #d7dee9 !important;
}
[data-theme="light"] input::placeholder,
[data-theme="light"] textarea::placeholder{color:#a6b2c4}
[data-theme="light"] select.search{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%238896ab'/></svg>") !important;
  background-repeat:no-repeat !important;
  background-position:right 8px center !important;
}

/* 按钮 */
[data-theme="light"] .btn{background:#fff;border:1px solid #d7dee9;color:#3a4a63}
[data-theme="light"] .btn:hover{background:#f4f8ff;border-color:#b9cbe4}
[data-theme="light"] .btn.primary{background:#1f7ae0;border-color:#1f7ae0;color:#fff}
[data-theme="light"] .btn.primary:hover{background:#1a6cc9}
[data-theme="light"] .btn.red{background:#fff;border-color:#f0c4c4;color:#d43b3b}
[data-theme="light"] .btn.red:hover{background:#fdf1f1}
[data-theme="light"] .btn.ok{background:#fff;border-color:#bfe8d5;color:#12a56a}
[data-theme="light"] .btn.ghost{background:transparent;border-color:transparent;color:#5c6b82}

/* 标签页 / 药丸 */
[data-theme="light"] .tabs .t{background:#f2f6fc;border:1px solid #e2e8f2;color:#5c6b82}
[data-theme="light"] .tabs .t.on{background:#e8f1fd;border-color:#bfd6f4;color:#0f5fbb;box-shadow:none}
[data-theme="light"] .pill{background:#f2f6fc;border-color:#e2e8f2}
[data-theme="light"] .p-run{color:#12a56a;background:#e8f8f0;border-color:#bfe8d5}
[data-theme="light"] .p-idle{color:#6b7a91;background:#f2f4f8;border-color:#e2e8f2}
[data-theme="light"] .p-warn{color:#a97a00;background:#fff7e6;border-color:#f2dfae}
[data-theme="light"] .p-off{color:#d43b3b;background:#fdecec;border-color:#f3c9c9}
[data-theme="light"] .p-blue{color:#1f7ae0;background:#e8f1fd;border-color:#bfd6f4}

/* 日志框 */
[data-theme="light"] .log,
[data-theme="light"] div.log{
  background:#f8fafd !important;
  color:#3a4a63 !important;
  border-color:#e6ebf4 !important;
}
[data-theme="light"] .log .t{color:#98a6ba}
[data-theme="light"] .log .src{color:#7b8aa1}
[data-theme="light"] .log .er{color:#d43b3b}
[data-theme="light"] .log .wa{color:#a97a00}
[data-theme="light"] .log .ok{color:#12a56a}
[data-theme="light"] .log .dbg{opacity:.5}

/* 克隆档案卡 / 任务行 */
[data-theme="light"] .pcard{background:#fff;border:1px solid #e6ebf4}
[data-theme="light"] .pcard.on{border-color:#8fbdf0;box-shadow:0 0 0 1px #cfe2fa inset}
[data-theme="light"] .pc-ic{background:#f2f6fc;border-color:#e2e8f2}
[data-theme="light"] .pc-name{color:#1b2430}
[data-theme="light"] .pc-sub{color:#8896ab}
[data-theme="light"] .pc-body{color:#5c6b82}
[data-theme="light"] .pc-body b{color:#283548}
[data-theme="light"] .pc-foot{background:#fbfcfe;border-top:1px solid #eef2f8}
[data-theme="light"] .task{border-bottom:1px solid #f0f3f9;color:#7b8aa1}
[data-theme="light"] .task .src{color:#5c6b82}
[data-theme="light"] .task .dst{color:#1f7ae0}

/* 开关 */
[data-theme="light"] .sw{background:#d7dee9}
[data-theme="light"] .sw i{background:#fff;box-shadow:0 1px 2px rgba(24,44,80,.2)}
[data-theme="light"] .sw.on{background:#12a56a}

/* 文字工具类 */
[data-theme="light"] .muted{color:#8896ab}
[data-theme="light"] .hint{color:#8896ab}
[data-theme="light"] .note{color:#8896ab}
[data-theme="light"] .mono{color:#283548}
[data-theme="light"] .empty{color:#8896ab}
[data-theme="light"] .toast{background:#1b2430;color:#fff}

/* 滚动条 */
[data-theme="light"] ::-webkit-scrollbar{width:10px;height:10px}
[data-theme="light"] ::-webkit-scrollbar-track{background:#f4f7fb}
[data-theme="light"] ::-webkit-scrollbar-thumb{background:#cfd8e6;border-radius:6px}
[data-theme="light"] ::-webkit-scrollbar-thumb:hover{background:#b7c3d6}

/* 主题切换按钮 */
.theme-btn{font-size:14px;line-height:1;padding:6px 9px}

/* ---------- 明亮主题补丁：程序行 / 键值 / 其余深色残留 ---------- */
[data-theme="light"] .prog{border-bottom:1px solid #eef2f8}
[data-theme="light"] .prog:hover{background:#fafcff}
[data-theme="light"] .prog .ic{background:#eaf2fd;border:1px solid #d8e6f8;color:#1f7ae0}
[data-theme="light"] .prog .nm{color:#1b2430}
[data-theme="light"] .prog .sub{color:#7b8aa1}

[data-theme="light"] .kv div{color:#7b8aa1}
[data-theme="light"] .kv b{color:#1b2430}

[data-theme="light"] .card .k{color:#6b7a91}
[data-theme="light"] .card .s{color:#8896ab}
[data-theme="light"] .card .v{color:#132039}

[data-theme="light"] .side .grp{color:#9aa8bc}
[data-theme="light"] .side-note{color:#5c6b82}
[data-theme="light"] .foot{color:#8896ab}

[data-theme="light"] .h1{color:#5c6b82}
[data-theme="light"] .h1 .tag{background:#e8f8f0;border-color:#bfe8d5;color:#0f8a58}
[data-theme="light"] .panel .ph .dot{background:#12a56a;box-shadow:none}

[data-theme="light"] .login-brand{color:#1b2430}
[data-theme="light"] .login-sub{color:#8896ab}

[data-theme="light"] .avatar{background:linear-gradient(135deg,#1f7ae0,#7a52d6);color:#fff}

[data-theme="light"] .bar{background:#e4ebf5}
[data-theme="light"] .bar i{background:linear-gradient(90deg,#1f7ae0,#7a52d6)}

[data-theme="light"] .empty{color:#8896ab}
[data-theme="light"] .toast{background:#1b2430;color:#fff;box-shadow:0 10px 30px rgba(24,44,80,.25)}
