:root{--bg: #04060f;--line: rgba(90, 160, 255, .28);--line-strong: rgba(90, 160, 255, .55);--txt: #d5e8ff;--txt-dim: #7f9dc4;--accent: #35a8ff}html,body,#root{width:100%;height:100%;margin:0;background:var(--bg);color:var(--txt);font-family:-apple-system,Segoe UI,Microsoft YaHei,system-ui,sans-serif;overflow:hidden}.hq-root{position:fixed;top:0;right:0;bottom:0;left:0}.canvas-layer{position:absolute;top:0;right:0;bottom:0;left:0}.hud-top{position:absolute;top:0;left:0;right:0;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;pointer-events:none;background:linear-gradient(180deg,#040a16eb,#040a1600);z-index:30}.hq-title{font-size:19px;letter-spacing:4px;font-weight:700;color:#eaf5ff;text-shadow:0 0 18px rgba(53,168,255,.75)}.hq-title span{font-weight:400;color:#77b6ff;letter-spacing:3px}.hud-right{display:flex;gap:10px;align-items:center}.hud-chip{font-size:12px;letter-spacing:1px;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:#081222b8;color:var(--txt-dim)}.hud-chip.ok{color:#2ee68a;border-color:#2ee68a73;box-shadow:0 0 14px #2ee68a38}.hud-chip.bad{color:#ff6b78;border-color:#ff6b7873}.hud-chip.hud-quality{display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:12px;letter-spacing:1px;cursor:pointer;transition:border-color .18s ease,color .18s ease}.hud-chip.hud-quality:hover{border-color:#3fa9ff8c}.panel{position:absolute;top:80px;width:296px;max-height:calc(100vh - 120px);padding:14px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#070e1ce6,#040912d1);box-shadow:0 0 32px #1450aa2e,inset 0 0 24px #1e64c80f;z-index:20;display:flex;flex-direction:column;overflow:hidden}.panel:before,.panel:after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--line-strong)}.panel:before{top:-1px;left:-1px;border-right:0;border-bottom:0}.panel:after{bottom:-1px;right:-1px;border-left:0;border-top:0}.panel-left{left:20px}.panel-right{right:20px}.panel-head{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:2px;color:#86bdf5;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid rgba(90,160,255,.18)}.dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:blink 1.6s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.prompt-input{width:100%;height:92px;resize:none;outline:none;padding:10px;font-size:13px;line-height:1.5;color:var(--txt);background:#020812d9;border:1px solid rgba(90,160,255,.22);border-radius:6px;font-family:inherit}.prompt-input:focus{border-color:#5aa0ff8c}.preset-row{display:flex;gap:6px;margin:10px 0;flex-wrap:wrap}.preset-btn{flex:1 1 30%;min-width:0;padding:5px 6px;font-size:11px;color:var(--txt-dim);background:#14284680;border:1px solid rgba(90,160,255,.18);border-radius:4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-btn:hover{color:#cfe8ff;border-color:#5aa0ff80}.dispatch-btn{width:100%;padding:11px;font-size:14px;font-weight:600;letter-spacing:2px;color:#fff;border:0;border-radius:6px;cursor:pointer;background:linear-gradient(90deg,#1160e0,#28b6ff);box-shadow:0 0 20px #2896ff66}.dispatch-btn:disabled{background:#283c5a99;box-shadow:none;cursor:not-allowed;color:#7f9dc4}.switch-row{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px;color:var(--txt-dim);cursor:pointer}.switch-row input{accent-color:#28b6ff}.task-id{margin-top:10px;font-size:11px;color:#5f83ad;letter-spacing:.5px;word-break:break-all}.legend{margin-top:14px;padding-top:12px;border-top:1px solid rgba(90,160,255,.16);display:grid;grid-template-columns:1fr 1fr;gap:7px 10px}.legend-item{display:flex;align-items:center;gap:7px;font-size:11.5px;color:#9fbddc}.legend-item i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 8px currentColor}.panel-tip{margin-top:12px;font-size:11px;line-height:1.6;color:#5f83ad}.feed{flex:1;overflow-y:auto;padding-right:4px;contain:content}.feed::-webkit-scrollbar{width:5px}.feed::-webkit-scrollbar-thumb{background:#5aa0ff59;border-radius:3px}.feed-empty{color:#5f83ad;font-size:12px;padding:12px 4px}.feed-item{display:flex;gap:8px;padding:8px 6px;border-bottom:1px solid rgba(90,160,255,.1);cursor:pointer;border-radius:4px;transition:background .15s}.feed-item:hover{background:#285aa02e}.feed-item i{width:5px;border-radius:3px;flex:0 0 5px;margin-top:2px}.feed-body{flex:1;min-width:0}.feed-top{display:flex;justify-content:space-between;gap:8px;font-size:12px}.feed-name{color:#cfe6ff;font-weight:600}.feed-state{flex:0 0 auto;font-size:11px}.feed-log{margin-top:3px;font-size:11.5px;line-height:1.5;color:#8fb0d3;word-break:break-all}.feed-tags{margin-top:5px;display:flex;flex-wrap:wrap;gap:5px}.tag{font-size:10.5px;padding:2px 6px;border-radius:3px;letter-spacing:.3px}.tag-skill{color:#ffd97a;background:#ffcb3a1f;border:1px solid rgba(255,203,58,.3)}.tag-mcp{color:#c79bff;background:#a855f71f;border:1px solid rgba(168,85,247,.3)}.node-label{min-width:84px;padding:4px 8px;text-align:center;border:1px solid rgba(120,190,255,.5);border-radius:5px;background:#040a16db;transform:translateY(6px);box-shadow:0 0 14px #1e64be59;-webkit-user-select:none;user-select:none;white-space:nowrap}.worker-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid rgba(120,190,255,.35);border-radius:999px;background:#050b18d1;box-shadow:0 2px 12px #0000008c;white-space:nowrap;-webkit-user-select:none;user-select:none;transform:translateY(2px)}.worker-tag.sel{border-color:#ffffffe6;box-shadow:0 0 16px #ffffff59}.worker-tag.dim{opacity:.62}.status-bubble{padding:2px 8px;border:1px solid rgba(255,255,255,.25);border-radius:4px;font-size:10px;letter-spacing:.5px;white-space:nowrap;-webkit-backdrop-filter:none;backdrop-filter:none;transform:translateY(-2px);box-shadow:0 2px 10px #00000080}.worker-dot{width:6px;height:6px;border-radius:50%;flex:none}.worker-tag b{font-size:11px;font-weight:700;letter-spacing:.5px;color:#e6f1ff}.worker-tag i{font-size:10px;font-style:normal;letter-spacing:.5px;opacity:.9}.node-label.is-core{border-width:1.5px;box-shadow:0 0 22px #2896ff8c}.node-name{font-size:11px;font-weight:700;letter-spacing:1px;color:#e8f4ff}.node-state{font-size:10px;letter-spacing:.5px;margin-top:1px}.node-extra{font-size:9.5px;color:#7fa6cc;margin-top:2px;max-width:130px;overflow:hidden;text-overflow:ellipsis}.detail-card{position:absolute;left:50%;bottom:26px;transform:translate(-50%);width:460px;padding:14px 16px;border:1px solid var(--line-strong);border-radius:10px;background:linear-gradient(180deg,#081222f0,#040912e6);box-shadow:0 0 30px #145abe47;z-index:32}.detail-head{display:flex;align-items:center;gap:9px;margin-bottom:8px}.detail-dot{width:9px;height:9px;border-radius:50%;box-shadow:0 0 10px currentColor}.detail-name{font-size:14px;font-weight:700;color:#ecf6ff;letter-spacing:1px}.detail-state{font-size:12px}.detail-close{margin-left:auto;width:22px;height:22px;border:1px solid rgba(90,160,255,.3);border-radius:4px;background:transparent;color:#8fb0d3;cursor:pointer;line-height:1}.detail-close:hover{color:#fff;border-color:#5aa0ffb3}.detail-line{font-size:12px;line-height:1.8;color:#9dbfe0;word-break:break-all}.scanline{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:12;background:repeating-linear-gradient(0deg,rgba(120,190,255,.035) 0px,rgba(120,190,255,.035) 1px,transparent 1px,transparent 3px);mix-blend-mode:screen}.node-glyph{font-size:11px;margin-right:5px;opacity:.9}.hover-card{width:208px;padding:10px 11px;border:1px solid rgba(120,190,255,.6);border-radius:8px;background:#030914f0;-webkit-user-select:none;user-select:none}.hover-head{display:flex;align-items:center;gap:7px;padding-bottom:7px;margin-bottom:7px;border-bottom:1px solid rgba(90,160,255,.2)}.hover-dot{width:7px;height:7px;border-radius:50%;box-shadow:0 0 8px currentColor}.hover-name{font-size:12px;font-weight:700;color:#ecf6ff;letter-spacing:.5px}.hover-state{margin-left:auto;font-size:10.5px}.hover-row{display:flex;gap:6px;font-size:10.5px;line-height:1.85}.hover-row i{flex:0 0 44px;font-style:normal;color:#6588ab}.hover-row b{flex:1;font-weight:500;color:#cfe4fa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hover-log{margin-top:7px;padding-top:7px;border-top:1px dashed rgba(90,160,255,.18);font-size:10.5px;line-height:1.55;color:#93b4d6;word-break:break-all}.hover-hint{margin-top:6px;font-size:9.5px;color:#4f6d8c;letter-spacing:.4px}.stage-bar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:#060d1adb;box-shadow:0 0 26px #1450aa38;z-index:22}.stage{display:flex;align-items:center;gap:7px;padding:0 9px}.stage-idx{width:18px;height:18px;line-height:17px;text-align:center;border-radius:50%;font-size:10.5px;border:1px solid rgba(90,160,255,.3);color:#6f90b4}.stage-label{font-size:11.5px;letter-spacing:.6px;color:#6f90b4;white-space:nowrap}.stage.done .stage-idx{border-color:#2ee68a99;background:#2ee68a29;color:#2ee68a}.stage.done .stage-label{color:#8fd8b6}.stage.now .stage-idx{border-color:#35a8ffe6;background:#35a8ff33;color:#9fdcff;box-shadow:0 0 14px #35a8ff99;animation:stagePulse 1.2s infinite}.stage.now .stage-label{color:#d8efff;font-weight:600;text-shadow:0 0 12px rgba(53,168,255,.6)}.stage-sep{width:16px;height:1px;background:#5aa0ff47;margin-left:6px}@keyframes stagePulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.approval-card{position:absolute;top:92px;left:50%;transform:translate(-50%);width:400px;padding:16px;border:1px solid rgba(255,138,61,.7);border-radius:12px;background:linear-gradient(180deg,#1c1008f5,#0a080cf2);box-shadow:0 0 46px #ff8a3d52,inset 0 0 30px #ff8a3d14;z-index:60;animation:approvalIn .28s ease-out}@keyframes approvalIn{0%{opacity:0;transform:translate(-50%,-10px) scale(.97)}to{opacity:1;transform:translate(-50%) scale(1)}}.approval-glow{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:12px;pointer-events:none;box-shadow:0 0 0 1px #ff8a3d40,0 0 40px #ff8a3d2e inset}.approval-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.approval-badge{font-size:9.5px;letter-spacing:1.4px;padding:3px 7px;border-radius:3px;color:#ffb27a;border:1px solid rgba(255,138,61,.5);background:#ff8a3d1f}.approval-title{font-size:13.5px;font-weight:700;color:#ffe0c9;letter-spacing:.5px}.approval-body{padding:12px;border-radius:8px;background:#ff8a3d0f;border:1px solid rgba(255,138,61,.18)}.approval-line{display:flex;gap:10px;font-size:12px;line-height:2}.approval-line .k{flex:0 0 62px;color:#b98a63}.approval-line .v{color:#f0d6c2}.approval-line .v.strong{font-weight:700;color:#ffd6b5}.approval-reason{margin-top:9px;padding-top:9px;border-top:1px dashed rgba(255,138,61,.22);font-size:12px;line-height:1.6;color:#ffb98a}.approval-actions{display:flex;gap:10px;margin-top:16px}.approval-actions button{flex:1;padding:10px;font-size:13px;font-weight:600;letter-spacing:1px;border-radius:7px;cursor:pointer;border:1px solid transparent}.btn-reject{background:#ff4d5e24;border-color:#ff4d5e80!important;color:#ff9aa4}.btn-reject:hover{background:#ff4d5e3d}.btn-approve{background:linear-gradient(90deg,#ff8a3d,#ffb266);color:#241005;box-shadow:0 0 22px #ff8a3d73}.btn-approve:hover{filter:brightness(1.08)}.approval-actions button:disabled{opacity:.6;cursor:not-allowed}.approval-tip{margin-top:10px;text-align:center;font-size:10.5px;color:#8a6a52}.detail-card{bottom:78px}@media (max-width: 1180px){.panel{width:250px}.detail-card{width:380px}.stage-bar{padding:8px 10px}.stage-label{font-size:10.5px}}.iso-host{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden}.iso-host canvas{display:block;width:100%;height:100%}.iso-hover{position:absolute;pointer-events:none;z-index:20}.approval-card{top:auto;bottom:62px;width:min(860px,calc(100% - 660px));min-width:560px;display:flex;align-items:center;gap:14px;padding:10px 14px}.approval-head{flex-direction:column;align-items:flex-start;gap:3px;flex:none}.approval-body{flex:1;display:flex;flex-wrap:wrap;gap:1px 16px;min-width:0}.approval-line{display:flex;gap:6px;align-items:baseline}.approval-reason{flex-basis:100%;margin-top:2px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.approval-actions{display:flex;flex-direction:row;flex-wrap:nowrap;gap:8px;flex:none;margin-top:0}.approval-actions button{flex:0 0 auto;padding:8px 18px;font-size:12.5px;white-space:nowrap}.approval-tip{position:absolute;right:16px;bottom:3px;font-size:10px;opacity:.55;margin:0}
