Two bugs you pointed out (Time Log Detail / Project Type Summary had no
way to upload anything, yet were the pages that need an upload to show
data):
1. The big UploadButton lived only on Department. Moved a compact
HeaderUploads tray into the Navbar — three slots (Time Log /
Deliverable / Project Summary), each showing filename + row count
when loaded, "Upload" / "Replace" / clear actions, drag-and-drop
removed in favour of the simpler picker since the tray is small.
2. DataProvider was inside <ProtectedShell>, which is rendered per
Route. Every nav click remounted it and silently wiped the uploaded
timelog state, which is why Time Log Detail showed "Upload a time
log to see rows" even after a Department upload. Lifted DataProvider
to main.tsx, above <Routes>. Upload state now survives navigation.
3. Department page lost its duplicate big UploadButton (the tray
handles it now) — kept the parser-warning banner inline since it's
still useful context next to the filter bar.
typecheck / lint / build clean. No bundle-size regression.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>