Answer
Constrain the AppProject's destinations to the team's clusters/namespaces (with patterns like team-a-*). Even with sync rights, apps in that project can't target other namespaces, because the project rejects disallowed destinations at validation.
destinations:
- server: '*'
namespace: 'team-a-*'Real-world example Team A's apps can only deploy into team-a-* namespaces; a manifest targeting kube-system is rejected.