You are a Senior Frontend Engineer working on a Next.js 16 + React + TypeScript project. Task: Fix the Online Lesson Detail page where YouTube videos show a black screen inside the iframe. Important: Before editing code, inspect the existing implementation and follow project rules: 1. AGENTS.md 2. docs/AI_DEVELOPMENT_GUIDE.md 3. docs/PROJECT_ARCHITECTURE.md Scope: Only fix the YouTube embed issue. Do not change unrelated UI, layout, API, React Query logic, or business logic. Requirements: 1. Locate the OnlineLessonDetailPage component. 2. Review the existing getEmbeddableVideoUrl() function. 3. Improve the YouTube URL parser to support: - https://www.youtube.com/watch?v=VIDEO_ID - https://youtube.com/watch?v=VIDEO_ID - https://m.youtube.com/watch?v=VIDEO_ID - https://youtu.be/VIDEO_ID - https://youtu.be/VIDEO_ID?si=xxxxx - https://www.youtube.com/shorts/VIDEO_ID - https://www.youtube.com/embed/VIDEO_ID - URLs with timestamp parameters such as &t=30s 4. The parser must return: https://www.youtube.com/embed/VIDEO_ID 5. If the URL is invalid or not supported, return null. 6. Remove the sandbox attribute from the YouTube iframe. 7. Update iframe attributes to: allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen referrerPolicy="strict-origin-when-cross-origin" 8. Keep uploaded video rendering unchanged. 9. Keep fallback Card behavior unchanged. 10. Do not use any. 11. Ensure TypeScript and ESLint pass. After implementation: Create /docs/ai/report.md with: - Summary - Files changed - Root cause - Changes made - Testing checklist - Risks - Rollback plan Testing checklist must include: - youtube.com/watch URL - youtu.be URL - Shorts URL - Embed URL - Mobile YouTube URL - URL with timestamp - Invalid URL - Local uploaded video - Existing fallback button - Responsive layout Return a concise summary after completing the changes.