Replaces the PlaceholderScreen at /app/collections with a real screen that covers manual and smart collections, matching the SPA's extracted-screen pattern (screens/CollectionsScreen.tsx; App.tsx gets only the route branch + import). Manual collections: list, create, rename, delete, and a per-row toggle for UseCustomPlaybackOrder (PUT). Item management: an add-items picker that searches the library (library/browse) and buckets results into the typed AddItemsToCollectionRequest, plus per-item remove. Smart collections: list, create, edit (name + query), delete, with a live result preview that runs the query through library/browse. API layer: new api/collections.ts owns the typed CRUD (getCollections/ getSmartCollections moved here from schedules.ts; schedules imports them). Unit tests cover the client, the add-items bucket mapping, and the screen. Honest gap: no API endpoint lists a manual collection's items by id. The items view uses a best-effort collection:"name" Lucene search (movies/shows/seasons/ artists only) behind a prominent note. Multi/rerun/playlist collections are out of scope (no API) and pointed to the Classic UI. Follow-ups #151/#152/#153. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>