feat(trips): live mid-trip truck load input with Pusher broadcast
- Migration: add current_load_kg (nullable unsigned int) to trips table
- Trip model: add current_load_kg to fillable + integer cast
- New TruckLoadBroadcast event (ShouldBroadcastNow)
- Channel: private admin.live
- Event name: truck.load
- Payload: trip_id, team_id, truck_id, current_load_kg, capacity_kg, is_full
- DriverTripController::updateLoad()
- PATCH /api/v1/driver/trips/{trip}/update-load
- Validates status is in_progress, saves current_load_kg, fires broadcast
- Route: PATCH driver/trips/{trip}/update-load registered
- CollectionTeamResource: truck_is_full uses current_load_kg (live estimate)
with fallback to total_load_kg (authoritative dumpsite weight)
- TripResource: expose current_load_kg field
- Admin Teams card:
- data-team-id attribute added to each card for Echo targeting
- Load bar uses current_load_kg when available
- Echo listener for truck.load event patches load bar + badge in real-time
- truck-status-badge class added to Collecting/Truck Full spans