:root{color-scheme:dark;--bg: #080c11;--bg-soft: #0c1118;--panel: #111821;--panel-2: #151d28;--panel-3: #0e141c;--line: #24303d;--line-soft: #1b2531;--text: #e6edf3;--muted: #8d9aaa;--faint: #5f6d7d;--blue: #17a8f5;--blue-soft: rgba(23, 168, 245, .13);--green: #37d96b;--green-soft: rgba(55, 217, 107, .13);--amber: #f7b84b;--red: #ff5d5d;--red-soft: rgba(255, 93, 93, .13);--shadow: 0 18px 52px rgba(0, 0, 0, .32);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 70% -10%,rgba(23,168,245,.08),transparent 34%),linear-gradient(180deg,#090e14,#070a0f)}button,input,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;border:1px solid var(--line);border-radius:7px;background:#121a24;color:var(--text);padding:0 12px;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}button:hover{background:#182231;border-color:#324155}button:disabled{cursor:not-allowed;opacity:.52}input,textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:#0c121a;color:var(--text);outline:none}select{min-width:0}input{height:42px;padding:0 12px}textarea{min-height:44px;resize:vertical;padding:10px 12px;line-height:1.45}pre,code,.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}pre{margin:0;overflow:auto;border:1px solid var(--line-soft);border-radius:7px;background:#0a1017;color:#cad6e3;padding:12px;white-space:pre-wrap}.loading,.login-screen{display:grid;min-height:100vh;place-items:center}.login-panel{display:grid;gap:14px;width:min(420px,calc(100vw - 32px));border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#121a24,#0d131b);box-shadow:var(--shadow);padding:26px}.login-panel h1{margin:0;font-size:25px;line-height:1.1}.login-panel p{margin:0;color:var(--muted)}.cube-mark{display:grid;width:46px;height:46px;place-items:center;border:1px solid rgba(23,168,245,.45);border-radius:8px;background:var(--blue-soft);color:#39c3ff}.cube-mark.small{width:30px;height:30px;border-radius:6px}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;min-height:100vh;border-right:1px solid var(--line);background:#080c11eb;padding:18px 10px}.brand{display:flex;align-items:center;gap:10px;min-height:44px;margin:0 2px 22px;padding:0 8px;font-size:18px;font-weight:760}.sidebar nav{display:grid;gap:6px}.sidebar nav button,.logout{justify-content:flex-start;width:100%;border-color:transparent;background:transparent;color:var(--muted);font-size:14px;font-weight:650}.sidebar nav button.active{border-color:#17a8f538;background:var(--blue-soft);color:#d8f3ff;box-shadow:inset 3px 0 0 var(--blue)}.sidebar-footer{display:grid;gap:3px;margin-top:auto;border-top:1px solid var(--line-soft);padding:16px 10px}.sidebar-footer span{color:var(--faint);font-size:11px;text-transform:uppercase}.sidebar-footer strong{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.logout{margin-top:4px}.content{min-width:0;min-height:100vh;overflow:auto}.console-screen{display:grid;gap:16px;min-height:100vh;padding:18px}.command-strip{display:grid;grid-template-columns:minmax(0,1fr) 220px 132px;gap:12px;align-items:end;border:1px solid var(--line);border-radius:8px;background:#0f161fd1;box-shadow:var(--shadow);padding:12px}.command-strip label,.agent-field,.login-panel label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:680}.command-strip textarea{min-height:42px;max-height:132px}.create-run{height:42px}.command-error{grid-column:1 / -1}.metrics-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric{display:flex;align-items:center;justify-content:space-between;min-height:58px;border:1px solid var(--line-soft);border-radius:8px;background:#111821c2;padding:0 16px}.metric span{color:var(--muted);font-size:12px}.metric strong{font-size:24px}.metric-blue strong,.metric-cyan strong{color:#6ed0ff}.metric-green strong{color:var(--green)}.metric-red strong{color:var(--red)}.runs-grid{display:grid;grid-template-columns:minmax(420px,.92fr) minmax(520px,1.42fr) 244px;gap:12px;min-height:0}.panel{min-width:0;border:1px solid var(--line);border-radius:8px;background:#0f161fe6;box-shadow:var(--shadow)}.panel-title{display:flex;align-items:center;justify-content:space-between;min-height:56px;border-bottom:1px solid var(--line-soft);padding:0 14px}.panel-title>div{display:grid;gap:3px}.panel-title span{font-weight:760}.panel-title small,.section-label{color:var(--muted);font-size:12px}.icon-button{width:34px;padding:0}.run-index{overflow:hidden}.run-table{display:grid;grid-template-columns:minmax(150px,1.3fr) 92px minmax(96px,.8fr) 86px;gap:10px;align-items:center}.run-table.head{min-height:38px;border-bottom:1px solid var(--line-soft);color:var(--faint);font-size:12px;padding:0 14px}.run-table-body{max-height:calc(100vh - 270px);overflow:auto;padding:8px}.run-table.row{width:100%;min-height:42px;justify-content:initial;border-color:transparent;border-radius:6px;background:transparent;color:var(--muted);font-size:12px;text-align:left}.run-table.row:hover,.run-table.row.selected{border-color:#17a8f557;background:#17a8f517;color:var(--text)}.run-table.row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-detail{display:grid;align-content:start;gap:12px;padding:14px}.empty-detail{place-items:center;min-height:420px;color:var(--muted);text-align:center}.empty-detail strong{color:var(--text)}.detail-header,.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-header h2,.workspace-header h1{margin:3px 0 0;font-size:18px;line-height:1.2}.workspace-header h1{font-size:22px}.kv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.kv-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.kv{display:grid;gap:5px;border:1px solid var(--line-soft);border-radius:7px;background:#0d141d;padding:10px}.kv span{color:var(--faint);font-size:11px}.kv strong{overflow:hidden;color:#dce6f1;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.kv-field select{width:100%;min-width:0;height:30px;border:1px solid var(--line);border-radius:6px;background:#0c121a;color:#dce6f1;font:inherit;font-size:12px;outline:none}.path-box{display:grid;gap:5px;border:1px solid var(--line-soft);border-radius:7px;background:linear-gradient(180deg,#111a24,#0c131b);padding:10px 12px}.path-box span{color:var(--faint);font-size:11px}.path-box code{overflow:hidden;color:#d8e5f0;text-overflow:ellipsis;white-space:nowrap}.tabs-line{display:flex;gap:26px;border-bottom:1px solid var(--line-soft);color:var(--muted);font-size:13px}.tabs-line span{padding:10px 0}.tabs-line .active{border-bottom:2px solid var(--blue);color:#d8f3ff}.event-list{display:grid;max-height:268px;overflow:auto}.event-row{display:grid;grid-template-columns:16px 76px 116px minmax(0,1fr);gap:8px;align-items:center;min-height:32px;border-bottom:1px solid var(--line-soft);color:var(--muted);font-size:12px}.event-dot{width:8px;height:8px;border:1px solid var(--blue);border-radius:999px;background:#17a8f542}.event-row strong{color:#b9e8ff}.event-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-preview{display:grid;gap:10px}.result-preview>div{display:flex;justify-content:space-between;gap:10px}.result-preview small{overflow:hidden;color:var(--faint);text-overflow:ellipsis;white-space:nowrap}.result-preview pre{max-height:186px}.status-rail{display:grid;align-content:start;gap:12px}.rail-card{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:#0f161fe6;padding:14px}.rail-title,.rail-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.rail-title strong{font-size:13px}.rail-status{font-size:12px}.rail-status.green{color:var(--green)}.rail-status.blue{color:#6ed0ff}.rail-status.neutral{color:var(--muted)}.rail-row span{color:var(--faint);font-size:12px}.rail-row strong{overflow:hidden;max-width:128px;color:#cbd7e4;font-size:12px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.workspace-layout,.system-screen{display:grid;grid-template-columns:minmax(480px,1.2fr) minmax(360px,.8fr);gap:14px}.workspace-toolbar{display:flex;align-items:center;gap:8px;min-height:52px;padding:8px}.workspace-toolbar button{min-height:32px}.workspace-toolbar .active-soft{border-color:#17a8f557;background:#17a8f51f;color:#d8f3ff}.toolbar-spacer{flex:1}.workspace-file-layout{display:grid;grid-template-columns:minmax(320px,.55fr) minmax(520px,1fr);gap:14px;min-height:620px}.file-browser,.file-editor,.system-control-panel{display:grid;align-content:start}.file-list{display:grid;max-height:620px;overflow:auto;padding:8px}.file-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;min-height:38px}.file-open-button,.file-parent-row{display:grid;grid-template-columns:20px minmax(0,1fr) 92px 80px;gap:10px;width:100%;min-height:38px;justify-content:initial;border-color:transparent;background:transparent;color:var(--muted);font-size:12px;text-align:left}.file-open-button:hover,.file-row.selected .file-open-button,.file-parent-row:hover{border-color:#17a8f552;background:#17a8f514;color:var(--text)}.file-open-button span,.file-open-button small,.file-open-button time,.file-parent-row span,.file-parent-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-open-button span,.file-parent-row span{color:#d8e5f0}.file-open-button small,.file-open-button time,.file-parent-row small{color:var(--faint)}.delete-button{color:#faa}.delete-button:hover{border-color:#ff5d5d61;background:#ff5d5d1f}.protected-label{display:inline-grid;min-width:34px;min-height:28px;place-items:center;color:var(--faint);font-size:11px}.file-editor{grid-template-rows:auto minmax(0,1fr)}.config-screen{align-content:start}.config-page-panel{min-height:calc(100vh - 110px)}.config-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line-soft);padding:12px}.config-tabs button{display:inline-flex;align-items:center;min-height:34px;border-color:var(--line-soft);background:#0d141db8;color:var(--muted)}.config-tabs button.active,.config-tabs button:hover{border-color:#17a8f573;background:#17a8f51f;color:var(--text)}.config-page-actions{display:flex;gap:8px}.workspace-editor{min-height:620px;border:0;border-radius:0 0 8px 8px;background:#080e15;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55;-moz-tab-size:2;tab-size:2}.workspace-editor[readonly]{color:#9aa8b7}.config-editor{display:grid;align-content:start;gap:18px;min-height:620px;max-height:720px;overflow:auto;border-radius:0 0 8px 8px;background:#080e15;padding:16px}.config-section{display:grid;gap:12px;border-bottom:1px solid var(--line-soft);padding-bottom:16px}.config-subsection{display:grid;gap:12px;border:1px solid var(--line-soft);border-radius:8px;background:#080e1585;padding:12px}.config-section:last-child{border-bottom:0;padding-bottom:0}.config-section-title,.config-item-title,.config-section-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.config-section-title>div{display:grid;gap:3px}.config-section-title strong,.config-item-title strong{color:var(--text);font-size:13px}.config-section-title span{color:var(--faint);font-size:12px}.config-section-title.compact{min-height:26px}.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.config-grid.two{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.config-field{display:grid;min-width:0;gap:6px;color:var(--muted);font-size:12px}.config-field input,.config-field select,.config-field textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;background:#0d141d;color:var(--text);font:inherit;outline:none}.config-field input,.config-field select{height:36px;padding:0 10px}.config-field textarea{min-height:108px;resize:vertical;padding:10px;line-height:1.5}.config-field input:focus,.config-field select:focus,.config-field textarea:focus{border-color:#17a8f58a;box-shadow:0 0 0 1px #17a8f529}.config-toggle{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.config-toggle input{width:16px;height:16px;accent-color:var(--blue)}.field-toggle{align-self:end;min-height:36px}.config-list{display:grid;gap:10px}.config-item{display:grid;gap:12px;border:1px solid var(--line-soft);border-radius:8px;background:#0d141db8;padding:12px}.config-item-title,.config-section-actions button{min-height:30px}.workspace-empty-editor,.account-detail-empty{display:grid;place-items:center;align-content:center;gap:8px;min-height:420px;color:var(--muted);padding:24px;text-align:center}.workspace-empty-editor strong,.account-detail-empty strong{color:var(--text)}.workspace-empty-editor span,.account-detail-empty span{max-width:360px;font-size:13px;line-height:1.5}.workspace-map .tree-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tree-list,.model-stack{display:grid;gap:8px;padding:14px}.tree-row{display:grid;grid-template-columns:18px minmax(260px,.9fr) minmax(0,1fr);gap:10px;align-items:center;width:100%;min-height:38px;border-bottom:1px solid var(--line-soft);border-left-color:transparent;border-right-color:transparent;border-top-color:transparent;border-radius:0;background:transparent;text-align:left}.tree-row code{color:#d8e5f0}.tree-row span,.model-line span{color:var(--muted);font-size:13px}.model-line{display:grid;grid-template-columns:20px 88px minmax(0,1fr);gap:10px;align-items:center;min-height:44px;border:1px solid var(--line-soft);border-radius:7px;background:#0d141d;padding:0 12px}.account-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.account-panel,.account-detail{display:grid;gap:14px;padding:14px}.wechat-layout{display:grid;grid-template-columns:minmax(330px,.42fr) minmax(560px,1fr);gap:14px}.wechat-list{overflow:hidden}.wechat-account-list{display:grid;gap:8px;max-height:calc(100vh - 260px);overflow:auto;padding:10px}.wechat-account-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:10px;align-items:center;justify-content:initial;width:100%;min-height:58px;border-color:var(--line-soft);background:#0d141d;text-align:left}.wechat-account-row.selected,.wechat-account-row:hover{border-color:#17a8f55c;background:#17a8f514}.wechat-account-row span{overflow:hidden;color:#d8e5f0;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.wechat-account-row small{grid-column:2 / 4;overflow:hidden;color:var(--faint);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.account-hero{display:flex;align-items:start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line-soft);padding-bottom:12px}.account-hero h2{margin:3px 0 0;font-size:22px;line-height:1.2}.wechat-detail-grid{display:grid;grid-template-columns:224px minmax(0,1fr);gap:14px}.wechat-qr-zone{display:grid;align-content:start;gap:12px}.qr-placeholder{display:grid;width:210px;height:210px;place-items:center;align-content:center;gap:10px;border:1px dashed #334155;border-radius:8px;background:#0a1017;color:var(--muted);font-size:13px}.wechat-facts{display:grid;align-content:start;gap:12px}.delivery-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.wechat-log{display:grid;gap:8px}.wechat-log pre{max-height:210px}.actions,.log-files{display:flex;flex-wrap:wrap;gap:8px}.qr{width:210px;height:210px;border:8px solid #fff;border-radius:8px;background:#fff;object-fit:contain}.system-control-panel{gap:14px;padding-bottom:14px}.system-control-panel .ok,.system-control-panel .error,.system-actions,.ops-stack{margin-inline:14px}.system-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px}.ops-stack{display:grid;gap:10px}.config-panel,.logs-panel{display:grid;align-content:start}.config-editor{min-height:650px;border:0;border-radius:0 0 8px 8px;background:#080e15;font-family:SFMono-Regular,Consolas,monospace;line-height:1.5}.logs-panel{gap:12px;padding-bottom:14px}.logs-panel .log-files,.logs-panel .log-output,.logs-panel .update-button{margin-inline:14px}.log-output{max-height:520px}.primary{border-color:#1aa7f3;background:linear-gradient(180deg,#20b8ff,#068cd1);color:#02131d;font-weight:760}.primary:hover{border-color:#4dc8ff;background:linear-gradient(180deg,#45c8ff,#0b9ae3)}.error,.ok{margin:0;border-radius:7px;padding:10px 12px;font-size:13px}.error{border:1px solid rgba(255,93,93,.34);background:var(--red-soft);color:#ffb0b0}.ok{border:1px solid rgba(55,217,107,.28);background:var(--green-soft);color:#a6f5ba}.empty-state{color:var(--faint);padding:18px 10px;text-align:center}.status{display:inline-flex;align-items:center;gap:5px;width:fit-content;border:1px solid #334155;border-radius:999px;color:#cbd5e1;font-size:12px;line-height:1;padding:5px 8px}.status-completed,.status-logged_in,.status-落盘运行{border-color:#37d96b61;color:#9af7b1}.status-running,.status-queued,.status-scan,.status-connecting{border-color:#17a8f570;color:#89dcff}.status-failed,.status-exited{border-color:#ff5d5d6b;color:#faa}@media (max-width: 1180px){.runs-grid,.workspace-layout,.workspace-file-layout,.wechat-layout,.system-screen{grid-template-columns:1fr}.status-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 820px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:2;min-height:0;flex-direction:row;align-items:center;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0 8px 0 0}.sidebar nav{display:flex;flex:1}.sidebar-footer{display:none}.logout{width:auto;margin-top:0}.command-strip,.metrics-row,.kv-grid,.kv-grid.two,.delivery-strip,.workspace-map .tree-list,.wechat-detail-grid,.status-rail{grid-template-columns:1fr}.console-screen{padding:12px}.run-table{grid-template-columns:minmax(150px,1fr) 86px}.run-table.head span:nth-child(3),.run-table.head span:nth-child(4),.run-table.row span:nth-child(3),.run-table.row span:nth-child(4){display:none}.tree-row{grid-template-columns:18px minmax(0,1fr)}.tree-row span{grid-column:2}.workspace-toolbar{flex-wrap:wrap}.toolbar-spacer{display:none}.file-open-button,.file-parent-row{grid-template-columns:20px minmax(0,1fr) 80px}.file-open-button time{display:none}}
