- Fix Android PDF and report export permission denied by adding adaptive storage permission handling (MANAGE_EXTERNAL_STORAGE on Android 11+ and legacy storage on Android 10) and multi-tier fallback to app-specific external storage in DownloadService\n- Update DepEd Transparency Board PDF export and reports export to use DownloadService.saveBytes()\n- Make Settings screen About, Support, and System Information responsive across screen widths\n- Update Student and User screen top headers to segmented tabs design and tighten mobile drawer edge touch area
- Reports: Migrate DepEd Transparency Board PDF export to backend Puppeteer service with enlarged layout and per-section downloads
- Settings: Replace dynamic grace period days input with cutoff date picker and calculated days preview; separate schedule date pickers
- Documents: Default requirements section to collapsed/closed state in upload OCR modal with pulsing border container
- Fix contrast on Auto-Graduation trigger button and ensure desktop responsiveness across report buttons
- Split Android release into TIS_RMS_32bit, TIS_RMS_64, and TIS_RMS_Universal APKs in GitHub Actions and INSTALL.md
- Prioritize universal APK in AppUpdateService and update fallback labels
- Refactor settings academic collapse to 'Academic & Graduation' with automatic active school year card and relocated grace period
- Fix persistent loading indicators on student edit/add modals and list background
- Fix DepEd Transparency Board PDF report subheader layout to prevent title and period collision
- Update AGENTS.md backlog with document scanner and PDF processing items
- Fix 1px bottom overflow on Overall Compliance KPI card by adjusting height and padding
- Fix text truncation for Pending Docs KPI card
- Fix 49px bottom overflow on Students Per Year card by adjusting container and chart heights
- Fix LayoutBuilder inside IntrinsicHeight issue on desktop report charts
- Refine security settings, audit trail platform tracking, and document handling
- Clean up unused conversion providers and LibreOffice service
- Fix requirements strip to use missingRequirementsProvider (per-student) instead
of global documentRequirementsProvider, so Completed/Archived/Needed states
are accurately reflected for each student
- Fix dropdown 'Select Document Type' status labels (was always [Completed]);
now correctly shows [Needed], [Archived], or [Completed] using ID-based lookup
from missingRequirementsProvider
- Add collapsible/expandable requirements strip with AnimatedCrossFade and
chevron toggle; shows mandatory-needed badge count in collapsed header
- Split needed chips into Mandatory (red) and Optional (orange) sections;
add Archived (blueGrey) section distinct from Completed (green)
- Add JHS/SHS category tag on each chip (muted grey badge)
- Simplify chip styling to neutral background/border; color only on status icon
- Remove tap-to-assign chip interaction; chips are now display-only
- Clean up unused _isRequirementMissing, _isRequirementArchived, and
_assignRequirementToEntry methods
- Update AGENTS.md: move completed Document Screen tasks into commented section