.rule-flow-diagram .diagram-viewport{overflow-x:auto;overflow-y:auto;max-height:500px;border:1px solid #e8e8ee;border-radius:6px;background:#fafbfc}.rule-flow-diagram .diagram-canvas{position:relative;min-width:100%}.rule-flow-diagram .edge-layer{position:absolute;top:0;left:0;pointer-events:none}.rule-flow-diagram .flow-node{position:absolute;border:2px solid #ccc;border-radius:8px;background:#fff;font-size:11px;box-shadow:0 1px 4px rgba(0,0,0,0.06);overflow:hidden}.rule-flow-diagram .fn-header{display:flex;align-items:center;gap:4px;padding:4px 8px;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:0.3px}.rule-flow-diagram .fn-body{padding:4px 8px 6px;line-height:1.4}.rule-flow-diagram .fn-start{border-color:#48c774;background:#e8f5e9}.rule-flow-diagram .fn-start .fn-header{color:#2e7d32}.rule-flow-diagram .fn-condition{border-color:#7c3aed;background:#faf5ff}.rule-flow-diagram .fn-condition .fn-header{color:#7c3aed}.rule-flow-diagram .fn-action{border-color:#3273dc;background:#eff6ff}.rule-flow-diagram .fn-action .fn-header{color:#3273dc}.rule-flow-diagram .fn-transform{border-color:#0d9488;background:#f0fdfa}.rule-flow-diagram .fn-transform .fn-header{color:#0d9488}.rule-flow-diagram .fn-delay{border-color:#a29bfe;background:#f5f3ff}.rule-flow-diagram .fn-delay .fn-header{color:#7c3aed}.rule-flow-diagram .fn-field{font-family:monospace;font-weight:600;color:#333}.rule-flow-diagram .fn-op{font-weight:700;color:#7c3aed}.rule-flow-diagram .fn-val{font-family:monospace;color:#0d6efd}.rule-flow-diagram .fn-cond{padding:1px 4px;margin:2px 0;background:rgba(124,58,237,0.06);border-left:2px solid #d8d0f5;border-radius:2px;font-size:10px}.rule-flow-diagram .fn-channel{font-weight:700;color:#3273dc;text-transform:uppercase}.rule-flow-diagram .fn-detail{font-size:10px;color:#666}.rule-flow-diagram .fn-more{font-size:9px;color:#aaa}.rule-flow-diagram .fn-trace-true{border-color:#22c55e!important;box-shadow:0 0 0 3px rgba(34,197,94,0.25);background:#f0fdf4!important}.rule-flow-diagram .fn-trace-false{border-color:#ef4444!important;box-shadow:0 0 0 3px rgba(239,68,68,0.2);background:#fef2f2!important}.rule-flow-diagram .fn-trace-action{border-color:#22c55e!important;box-shadow:0 0 0 3px rgba(34,197,94,0.3);background:#dcfce7!important}.rule-flow-diagram .fn-trace-visited{border-color:#3273dc!important;box-shadow:0 0 0 2px rgba(50,115,220,0.25)}.rule-flow-diagram .fn-unvisited{opacity:0.3;filter:grayscale(0.6)}