## ADDED Requirements ### Requirement: Skeleton placeholder during analysis When an elective set is not pinned and analysis is pending, the CourseSelection component SHALL display skeleton placeholder elements in place of the course choice buttons. The skeleton placeholders SHALL: - Visually approximate the size and layout of the course choice buttons they replace. - Display a pulsing/animated background to indicate loading. - Replace the current "analyzing..." text label. #### Scenario: Analysis pending for an unpinned set - **WHEN** an elective set is not pinned AND `loading` is true AND no analysis result exists for that set - **THEN** skeleton placeholder rectangles SHALL be displayed instead of course choice buttons #### Scenario: Analysis completes for a set - **WHEN** an analysis result arrives for a previously loading set - **THEN** the skeleton placeholders SHALL be replaced with the actual course choice buttons showing analysis data #### Scenario: Set is already pinned - **WHEN** an elective set has a pinned course - **THEN** no skeleton placeholders SHALL be shown regardless of loading state