Check-in separates streaming clients, responds instantly and shows new bookings
The class check-in list now shows in-studio clients first and streaming clients in their own section, checks a client in without reloading the list, adds a Refresh button and shows a client who has just booked within seconds.
**In studio and Streaming are separate.** The check-in list for a class now shows the clients who are coming to the studio first. Clients who booked the live stream are listed below in a **Streaming** section, which starts folded so the desk list stays short. Open it to see who is **watching now**, who has **attended** and who has **not started yet**. Streaming clients are marked attended automatically when their stream starts playing, so they no longer have a Check in button. If a client watched but the stream did not record it, choose **Mark attended** on their row (it also works after the late-arrival cutoff). This is noted in the activity log. The same grouping applies to the class page in Schedule, the instructor schedule and partner class lists: they offer Mark attended and No show for a streaming client instead of a plain Check in. A sale to a streaming client at the desk offers Mark attended when it completes. **Check in is instant.** Pressing Check in, No show or Undo now updates only that client's row. The rest of the list stays where it is, and you can keep checking in other clients while the first one is saving. If something goes wrong, only that row goes back and the reason is shown. **New bookings appear by themselves.** While the check-in page is open, the list checks for changes every few seconds. A client who has just booked appears with a short highlight. A **Refresh** button at the top of the class reloads the whole list without clearing it. When you use the check-in list inside the Schedule drawer, the schedule's seat counts update when you close the drawer.
Membership termination works again, and paid renewals are recorded
Staff can terminate memberships again, refusals say why, abandoned attempts clear themselves, and renewals paid after a failed attempt are recorded automatically.