Observer dashboard extraction, PDF reports, jury UX overhaul, and miscellaneous improvements

- Extract observer dashboard to client component, add PDF export button
- Add PDF report generator with jsPDF for analytics reports
- Overhaul jury evaluation page with improved layout and UX
- Add new analytics endpoints for observer/admin reports
- Improve round creation/edit forms with better settings
- Fix filtering rules page, CSV export dialog, notification bell
- Update auth, prisma schema, and various type fixes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-10 23:08:00 +01:00
parent 5c8d22ac11
commit d787a24921
31 changed files with 2565 additions and 930 deletions

View File

@@ -142,13 +142,13 @@
:root {
/* MOPC Brand Colors - mapped to shadcn/ui variables */
--background: 0 0% 99.5%;
--foreground: 198 85% 18%;
--foreground: 220 13% 18%;
--card: 0 0% 100%;
--card-foreground: 198 85% 18%;
--card-foreground: 220 13% 18%;
--popover: 0 0% 100%;
--popover-foreground: 198 85% 18%;
--popover-foreground: 220 13% 18%;
/* Primary - MOPC Red */
--primary: 354 90% 47%;
@@ -156,14 +156,14 @@
/* Secondary - Warm gray */
--secondary: 30 6% 96%;
--secondary-foreground: 198 85% 18%;
--secondary-foreground: 220 13% 18%;
--muted: 30 6% 96%;
--muted-foreground: 30 8% 38%;
--muted-foreground: 220 8% 46%;
/* Accent - MOPC Teal */
--accent: 194 25% 44%;
--accent-foreground: 0 0% 100%;
/* Accent - Light teal tint for hover states */
--accent: 194 30% 94%;
--accent-foreground: 220 13% 18%;
--destructive: 0 84% 60%;
--destructive-foreground: 0 0% 100%;
@@ -181,32 +181,32 @@
}
.dark {
--background: 198 85% 8%;
--background: 220 15% 8%;
--foreground: 0 0% 98%;
--card: 198 85% 10%;
--card: 220 15% 10%;
--card-foreground: 0 0% 98%;
--popover: 198 85% 10%;
--popover: 220 15% 10%;
--popover-foreground: 0 0% 98%;
--primary: 354 90% 50%;
--primary-foreground: 0 0% 100%;
--secondary: 198 30% 18%;
--secondary: 220 15% 18%;
--secondary-foreground: 0 0% 98%;
--muted: 198 30% 18%;
--muted: 220 15% 18%;
--muted-foreground: 0 0% 64%;
--accent: 194 25% 50%;
--accent-foreground: 0 0% 100%;
--accent: 194 20% 18%;
--accent-foreground: 0 0% 98%;
--destructive: 0 84% 55%;
--destructive-foreground: 0 0% 100%;
--border: 198 30% 22%;
--input: 198 30% 22%;
--border: 220 15% 22%;
--input: 220 15% 22%;
--ring: 354 90% 50%;
}
}