## ADDED Requirements ### Requirement: Reserved bottom chrome on video study stage On iPad and PC video study surfaces, the system SHALL reserve fixed bottom regions for a waveform strip and an AI toolbar so that the video stage height excludes those regions. Native browser media controls MUST NOT occupy the reserved chrome. #### Scenario: Video stage leaves room for chrome - **WHEN** a learner opens a video (or video+PDF) study session on iPad or PC - **THEN** the playable video area sits above a waveform strip and an AI toolbar whose combined height remains available and is not covered by the video frame ### Requirement: Waveform strip playback chrome The waveform strip SHALL show media progress with an amplitude visualization and minimal transport controls (play/pause and time). Seeking via the strip MUST update media currentTime. #### Scenario: Seek on waveform - **WHEN** the learner taps or drags on the waveform strip - **THEN** playback position moves to the corresponding time and the time label updates ### Requirement: AI toolbar replaces floating AI FAB The study UI SHALL expose AI actions on the bottom toolbar (previous-sentence / audio clip, voice call, video preview, annotate/pencil, message) and MUST NOT rely on a floating AI FAB as the primary entry on video stages when this chrome is enabled. #### Scenario: Primary AI entry is toolbar - **WHEN** video study chrome is enabled and AI config is available - **THEN** the learner can reach ask / call / annotate actions from the bottom toolbar without opening a floating AI FAB ### Requirement: Minimal SVG toolbar icons Toolbar action icons for phone, video, pencil, message (and related TTS/mic affordances) MUST use stroke SVG icons consistent with the app icon set (`Icons.tsx` style). Emoji MUST NOT be used as primary toolbar glyphs. #### Scenario: Voice and video use SVG icons - **WHEN** the AI toolbar is rendered - **THEN** voice-call and video controls display SVG icons (not emoji) that follow the app’s minimal outline style ### Requirement: Toolbar opens ask modal by media kind Activating audio/previous-sentence, video, screenshot/pencil-confirm, or message controls SHALL open the Ask modal with the matching left-pane preview kind (audio clip, video, image, or paused frame). Bottom chips/tags for buffer or clip SHALL also open the corresponding preview. #### Scenario: Message icon opens dialog with frame - **WHEN** the learner taps the message icon - **THEN** playback pauses, a full-frame capture is prepared, and the Ask modal opens with image preview and conversation pane #### Scenario: Video icon opens video preview dialog - **WHEN** the learner taps the video toolbar icon - **THEN** the Ask modal opens with a video preview pane (screen-share call entry lives in the modal chrome, not as an immediate full-screen call) ### Requirement: Feature and config gating on toolbar actions Toolbar actions MUST be hidden or disabled when the corresponding `AiFeatures` flag is off or when no usable endpoint for that action can be resolved. Unavailable actions MUST show clear disabled or messaging state rather than sending requests. #### Scenario: Voice call disabled by feature flag - **WHEN** `features.realtimeVoiceCall` is false - **THEN** the phone/voice-call control is hidden or disabled and does not start a call session