.agent-canvas-page { display: flex; flex-direction: column; height: calc(100vh - 60px); background: #0f1117; } .canvas-toolbar { display: flex; align-items: center; gap: 12px; padding: 10px 16px; background: #1a1d27; border-bottom: 1px solid rgba(255,255,255,0.06); flex-shrink: 0; } .agent-name-input { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 6px; color: #e0e0e0; padding: 6px 12px; font-size: 14px; width: 200px; } .toolbar-actions { display: flex; gap: 8px; margin-left: auto; } .tb-btn { padding: 6px 14px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.05); color: #ccc; font-size: 13px; cursor: pointer; transition: all 0.2s; } .tb-btn:hover { background: rgba(255,255,255,0.1); } .tb-btn.primary { background: #5B5FED; border-color: #5B5FED; color: #fff; } .tb-btn.primary:hover { background: #4A4ECC; } .tb-btn.secondary { background: rgba(255,255,255,0.03); } .canvas-container { flex: 1; min-height: 0; } .agent-node { padding: 10px 14px; border-radius: 10px; min-width: 140px; font-size: 12px; border: 2px solid rgba(255,255,255,0.1); background: #1e2130; } .agent-node .node-icon { width: 28px; height: 28px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; margin-bottom: 4px; } .skill-node .node-icon { background: rgba(91,95,237,0.2); color: #5B5FED; } .llm-node .node-icon { background: rgba(46,204,113,0.2); color: #2ecc71; } .mcp-node .node-icon { background: rgba(241,196,15,0.2); color: #f1c40f; } .io-node .node-icon { background: rgba(52,152,219,0.2); color: #3498db; } .io-node.output .node-icon { background: rgba(231,76,60,0.2); color: #e74c3c; } .node-label { font-weight: 600; color: #e0e0e0; margin: 2px 0; font-size: 13px; } .node-meta { color: #888; font-size: 11px; } .canvas-hint { color: #555; font-size: 12px; } .react-flow__controls button { background: #1a1d27; border-color: rgba(255,255,255,0.1); color: #ccc; } .react-flow__minimap { background: #1a1d27; }