## 1. Data Layer - [x] 1.1 Create `app/src/data/courseDescriptions.ts` with description and instructors array for each course ID, extracted from the PDF and `ref/inovation-and-design.md` - [x] 1.2 Verify all course IDs in `courses.ts` have corresponding entries (no missing, no extras) ## 2. Popover Component - [x] 2.1 Build a `CourseInfoPopover` component that displays course name, instructor(s), and scrollable description - [x] 2.2 Add dismiss logic: click outside, Escape key, re-click info icon - [x] 2.3 Ensure only one popover is open at a time ## 3. Info Icon Integration - [x] 3.1 Add info icon button next to each course name in `CourseSelection.tsx` - [x] 3.2 Use `stopPropagation` on info icon click to prevent course pinning - [x] 3.3 Hide info icon for cancelled and disabled courses ## 4. Responsive / Polish - [x] 4.1 Handle popover positioning on narrow screens (centered overlay or full-width card on mobile) - [x] 4.2 Verify desktop and mobile parity (click/tap only, no hover/long-press)