How it works
Browser-level tab visibility API + classroom focus state are logged to D1. When a student's tab is hidden for >15 seconds, you see a banner toast: "Yuki has switched tabs". Same for "Yuki has poor connection".
After class
Every "tab hidden" event lands in the post-class summary email + your Reports dashboard. Use it to coach attention without being a jerk in front of the class.
We don't track what they're looking at — just whether the tab is focused. Privacy-respecting.