Feature: User preferences (theme) As a signed-in user I want to choose a light, dark, or system theme So that the app matches how I like to read it Scenario: A visitor without a session cannot read preferences When I send a GET request to "/preferences" Then the response status should be 401 And the response error code should be "NOT_AUTHENTICATED" Scenario: A signed-in user with no preferences yet defaults to SYSTEM Given a profile already exists with email "alice@example.com" and password "correct-horse-battery-staple" And I log in with email "alice@example.com" and password "correct-horse-battery-staple" When I request my preferences Then the response status should be 200 And my theme preference should be "SYSTEM" Scenario: A signed-in user sets their theme preference Given a profile already exists with email "alice@example.com" and password "correct-horse-battery-staple" And I log in with email "alice@example.com" and password "correct-horse-battery-staple" When I set my theme preference to "DARK" Then the response status should be 200 And my theme preference should be "DARK"