You now have a complete toolkit for topological sort. Kahn's algorithm (BFS with in-degree) and DFS-based sort both run in time. Kahn's gives you cycle detection for free and lexicographic control with a min-heap. DFS-based sort is compact when you already have DFS code.
You've seen how topological order enables DP on DAGs. Longest path, counting paths, and critical path scheduling all follow the same template: compute order, initialize base cases, propagate values forward. Any time a problem has directed dependencies, think topological sort.