# Focus Desk A self-contained, vanilla task management web app. No dependencies, no build step. ## Running ```bash cd /path/to/project python3 -m http.server 8000 ``` Then open http://localhost:8000 in a browser. ## Manual Verification Checklist ### Create - Fill "Title" (required) and optionally Notes, Priority, Due Date, then click **Add Task**. - Submit with a blank/whitespace title → inline error appears, task not added. - Task appears at top of list with correct priority color border and badge. ### Edit - Click the pencil icon on a task → modal opens pre-filled. - Change any field, click **Save** → task updates. - Clear the title, click Save → error shown, modal stays open. - Press Escape or click backdrop or Cancel → modal closes without saving. ### Complete / Incomplete toggle - Check the checkbox → task moves to "completed" style (strikethrough). - Uncheck → reverts to active style. ### Delete - Click the trash icon → task removed immediately. ### Search & Filters - Type in the search box → filters titles AND notes case-insensitively. - Change Status filter (All / Active / Completed) → list updates. - Change Priority filter → list updates. - Combine all three → only matching tasks shown. - No matches → empty state message appears. ### Counts - Header chips show correct Total / Active / Completed at all times. ### Persistence - Add tasks, reload page → tasks still present. - Manually corrupt `focus_desk_tasks` in localStorage to invalid JSON → app starts with empty list, no crash. ### Responsive layout - At 390 px viewport: no horizontal overflow, form fields stack vertically, filters stack. - At 1440 px viewport: centered layout, comfortable spacing.