diff --git a/.claude/claude_project.json b/.claude/claude_project.json
new file mode 100644
index 0000000..198c32b
--- /dev/null
+++ b/.claude/claude_project.json
@@ -0,0 +1,66 @@
+{
+ "mcpServers": {
+ "serena": {
+ "type": "stdio",
+ "command": "uvx",
+ "args": [
+ "--from",
+ "git+https://github.com/oraios/serena",
+ "serena",
+ "start-mcp-server",
+ "--context",
+ "ide-assistant",
+ "--project",
+ "${workspaceFolder}"
+ ],
+ "env": {}
+ },
+ "zen": {
+ "type": "stdio",
+ "command": "pwsh",
+ "args": [
+ "-NoLogo",
+ "-NoProfile",
+ "-Command",
+ "$p=(Get-Command uvx -ErrorAction SilentlyContinue).Source; if(-not $p){$c=@(\"$HOME\\.local\\bin\\uvx.exe\",\"C:\\\\Program Files\\\\uv\\\\bin\\\\uvx.exe\"); foreach($i in $c){ if(Test-Path $i){$p=$i; break}}}; if($p){ & $p --from git+https://github.com/BeehiveInnovations/zen-mcp-server.git zen-mcp-server } else { Write-Error 'uvx not found'; exit 1 }"
+ ],
+ "env": {
+ "GEMINI_API_KEY": "your_gemini_key",
+ "OPENAI_API_KEY": "your_openai_key"
+ }
+ },
+ "playwright": {
+ "type": "stdio",
+ "command": "cmd",
+ "args": [
+ "/c",
+ "npx",
+ "-y",
+ "@playwright/mcp@latest"
+ ],
+ "env": {}
+ },
+ "context7": {
+ "type": "stdio",
+ "command": "npx",
+ "args": [
+ "-y",
+ "@upstash/context7-mcp@latest"
+ ],
+ "env": {}
+ },
+ "@21st-dev/magic": {
+ "type": "stdio",
+ "command": "cmd",
+ "args": [
+ "/c",
+ "npx",
+ "-y",
+ "@21st-dev/magic@latest"
+ ],
+ "env": {
+ "API_KEY": "adb246737aabae0b2f124fc85dc03737a0f65d9660b786732c31578649da10e5"
+ }
+ }
+ },
+}
\ No newline at end of file
diff --git a/.claude/settings.local.json b/.claude/settings.local.json
new file mode 100644
index 0000000..6ca5127
--- /dev/null
+++ b/.claude/settings.local.json
@@ -0,0 +1,27 @@
+{
+ "permissions": {
+ "allow": [
+ "Bash(mkdir:*)",
+ "Read(C:\\Users\\mpcia/**)",
+ "Read(C:\\Users\\mpcia/**)",
+ "mcp__serena__activate_project",
+ "mcp__serena__list_dir",
+ "mcp__playwright__browser_navigate",
+ "mcp__playwright__browser_take_screenshot",
+ "mcp__playwright__browser_snapshot",
+ "mcp__playwright__browser_type",
+ "mcp__playwright__browser_click",
+ "mcp__playwright__browser_press_key",
+ "mcp__playwright__browser_wait_for",
+ "mcp__serena__find_symbol",
+ "mcp__serena__search_for_pattern",
+ "mcp___21st-dev_magic__21st_magic_component_inspiration",
+ "mcp__context7__resolve-library-id",
+ "mcp__context7__get-library-docs",
+ "Bash(npm install:*)",
+ "Bash(git add:*)"
+ ],
+ "deny": [],
+ "ask": []
+ }
+}
\ No newline at end of file
diff --git a/.playwright-mcp/dashboard-admin.png b/.playwright-mcp/dashboard-admin.png
new file mode 100644
index 0000000..a577de1
Binary files /dev/null and b/.playwright-mcp/dashboard-admin.png differ
diff --git a/.playwright-mcp/dashboard-events.png b/.playwright-mcp/dashboard-events.png
new file mode 100644
index 0000000..fece509
Binary files /dev/null and b/.playwright-mcp/dashboard-events.png differ
diff --git a/.playwright-mcp/dashboard-main.png b/.playwright-mcp/dashboard-main.png
new file mode 100644
index 0000000..34191c0
Binary files /dev/null and b/.playwright-mcp/dashboard-main.png differ
diff --git a/.playwright-mcp/dashboard-member-list.png b/.playwright-mcp/dashboard-member-list.png
new file mode 100644
index 0000000..afd0cba
Binary files /dev/null and b/.playwright-mcp/dashboard-member-list.png differ
diff --git a/.playwright-mcp/dashboard-profile.png b/.playwright-mcp/dashboard-profile.png
new file mode 100644
index 0000000..27fa046
Binary files /dev/null and b/.playwright-mcp/dashboard-profile.png differ
diff --git a/.playwright-mcp/landing-page.png b/.playwright-mcp/landing-page.png
new file mode 100644
index 0000000..d9edb0e
Binary files /dev/null and b/.playwright-mcp/landing-page.png differ
diff --git a/.serena/cache/typescript/document_symbols_cache_v23-06-25.pkl b/.serena/cache/typescript/document_symbols_cache_v23-06-25.pkl
new file mode 100644
index 0000000..a62d947
Binary files /dev/null and b/.serena/cache/typescript/document_symbols_cache_v23-06-25.pkl differ
diff --git a/.serena/project.yml b/.serena/project.yml
new file mode 100644
index 0000000..c6ec35a
--- /dev/null
+++ b/.serena/project.yml
@@ -0,0 +1,68 @@
+# language of the project (csharp, python, rust, java, typescript, go, cpp, or ruby)
+# * For C, use cpp
+# * For JavaScript, use typescript
+# Special requirements:
+# * csharp: Requires the presence of a .sln file in the project folder.
+language: typescript
+
+# whether to use the project's gitignore file to ignore files
+# Added on 2025-04-07
+ignore_all_files_in_gitignore: true
+# list of additional paths to ignore
+# same syntax as gitignore, so you can use * and **
+# Was previously called `ignored_dirs`, please update your config if you are using that.
+# Added (renamed) on 2025-04-07
+ignored_paths: []
+
+# whether the project is in read-only mode
+# If set to true, all editing tools will be disabled and attempts to use them will result in an error
+# Added on 2025-04-18
+read_only: false
+
+
+# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details.
+# Below is the complete list of tools for convenience.
+# To make sure you have the latest list of tools, and to view their descriptions,
+# execute `uv run scripts/print_tool_overview.py`.
+#
+# * `activate_project`: Activates a project by name.
+# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
+# * `create_text_file`: Creates/overwrites a file in the project directory.
+# * `delete_lines`: Deletes a range of lines within a file.
+# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
+# * `execute_shell_command`: Executes a shell command.
+# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
+# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
+# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
+# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
+# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
+# * `initial_instructions`: Gets the initial instructions for the current project.
+# Should only be used in settings where the system prompt cannot be set,
+# e.g. in clients you have no control over, like Claude Desktop.
+# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
+# * `insert_at_line`: Inserts content at a given line in a file.
+# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
+# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
+# * `list_memories`: Lists memories in Serena's project-specific memory store.
+# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
+# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
+# * `read_file`: Reads a file within the project directory.
+# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
+# * `remove_project`: Removes a project from the Serena configuration.
+# * `replace_lines`: Replaces a range of lines within a file with new content.
+# * `replace_symbol_body`: Replaces the full definition of a symbol.
+# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
+# * `search_for_pattern`: Performs a search for a pattern in the project.
+# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
+# * `switch_modes`: Activates modes by providing a list of their names
+# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
+# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
+# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
+# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
+excluded_tools: []
+
+# initial prompt for the project. It will always be given to the LLM upon activating the project
+# (contrary to the memories, which are loaded on demand).
+initial_prompt: ""
+
+project_name: "monacousa-portal"
diff --git a/Design/README.md b/Design/README.md
new file mode 100644
index 0000000..479057b
--- /dev/null
+++ b/Design/README.md
@@ -0,0 +1,480 @@
+# MonacoUSA Portal Design System Implementation Guide
+
+## 🎨 Overview
+
+This comprehensive guide outlines the complete visual redesign of the MonacoUSA Portal, transitioning from a standard Vuetify implementation to a premium, custom design system featuring Monaco's signature red and white color scheme with modern glass morphism effects.
+
+## 📋 Table of Contents
+
+1. [Design Philosophy](#design-philosophy)
+2. [Technical Stack](#technical-stack)
+3. [Migration Strategy](#migration-strategy)
+4. [Component Architecture](#component-architecture)
+5. [Implementation Roadmap](#implementation-roadmap)
+6. [Performance Guidelines](#performance-guidelines)
+7. [Accessibility Standards](#accessibility-standards)
+
+## Design Philosophy
+
+### Core Principles
+- **Premium Feel**: Every interaction should feel smooth and sophisticated
+- **Brand Identity**: Monaco's red (#dc2626) as the primary accent color
+- **Modern Aesthetics**: Glass morphism, subtle animations, and floating elements
+- **User Experience**: Intuitive navigation with clear visual hierarchy
+- **Performance**: Animations that enhance, not hinder, user experience
+
+### Visual Language
+- **Glass Morphism**: Semi-transparent surfaces with backdrop blur
+- **Gradient Accents**: Dynamic gradients from Monaco red to deeper shades
+- **Floating Elements**: Subtle shadows and depth for interactive components
+- **Micro-animations**: Smooth transitions on hover, click, and state changes
+- **Consistent Spacing**: 8px grid system for alignment and padding
+
+## Technical Stack
+
+### Current Setup
+- **Framework**: Nuxt 3.8.2
+- **UI Library**: Vuetify 3.4.7 (to be replaced)
+- **Icons**: Material Design Icons (transitioning to Lucide)
+- **Authentication**: Keycloak integration
+- **Styling**: SCSS with scoped components
+
+### New Additions
+- **Animation Libraries**:
+ - VueUse Motion (preferred for Vue integration)
+ - GSAP (for complex animations)
+ - Anime.js (lightweight alternative)
+- **Icons**: Lucide Icons (modern, customizable)
+- **Utilities**: Tailwind CSS (for rapid prototyping)
+- **State Management**: Pinia (already implemented)
+
+## Migration Strategy
+
+### Phase 1: Foundation (Week 1-2)
+1. Set up new style architecture
+2. Create base component library
+3. Implement color system and typography
+4. Set up animation utilities
+
+### Phase 2: Core Components (Week 3-4)
+1. Replace navigation components
+2. Implement custom dropdowns and selects
+3. Create button variants
+4. Build card components
+
+### Phase 3: Page Templates (Week 5-6)
+1. Dashboard layouts
+2. Data tables with glass effects
+3. Form components
+4. Modal and dialog systems
+
+### Phase 4: Polish & Optimization (Week 7-8)
+1. Performance tuning
+2. Accessibility audit
+3. Cross-browser testing
+4. Documentation completion
+
+## Component Architecture
+
+### File Structure
+```
+components/
+├── ui/ # Base UI components
+│ ├── MonacoButton.vue
+│ ├── GlassCard.vue
+│ ├── AnimatedDropdown.vue
+│ └── FloatingInput.vue
+├── layout/ # Layout components
+│ ├── DashboardSidebar.vue
+│ ├── AppHeader.vue
+│ └── PageContainer.vue
+├── features/ # Feature-specific components
+│ ├── MemberCard.vue
+│ ├── EventCalendar.vue
+│ └── DuesTracker.vue
+└── shared/ # Shared utilities
+ ├── LoadingSpinner.vue
+ ├── ErrorBoundary.vue
+ └── TransitionWrapper.vue
+```
+
+### Component Guidelines
+
+#### Naming Convention
+- PascalCase for component files
+- Prefix with "Monaco" for custom branded components
+- Use descriptive names (e.g., `GlassDropdownMenu` not `Dropdown`)
+
+#### Props & Events
+```vue
+
+```
+
+#### Composition API Pattern
+```vue
+
+```
+
+## Implementation Roadmap
+
+### Week 1: Setup & Foundation
+- [ ] Configure animation libraries
+- [ ] Set up SCSS architecture
+- [ ] Create color system utilities
+- [ ] Implement base glass morphism styles
+- [ ] Set up Lucide icons integration
+
+### Week 2: Core Components
+- [ ] Custom dropdown components
+- [ ] Button system with variants
+- [ ] Card components with glass effects
+- [ ] Form inputs with floating labels
+- [ ] Navigation components
+
+### Week 3: Dashboard Implementation
+- [ ] Member dashboard layout
+- [ ] Board dashboard enhancements
+- [ ] Admin panel structure
+- [ ] Widget components
+- [ ] Chart integrations
+
+### Week 4: Advanced Features
+- [ ] Event calendar with animations
+- [ ] Member management interface
+- [ ] Dues payment flow
+- [ ] Profile components
+- [ ] Settings panels
+
+### Week 5: Responsive Design
+- [ ] Mobile navigation
+- [ ] Tablet optimizations
+- [ ] Touch interactions
+- [ ] Gesture support
+- [ ] PWA enhancements
+
+### Week 6: Testing & Optimization
+- [ ] Performance profiling
+- [ ] Bundle optimization
+- [ ] Lazy loading implementation
+- [ ] Animation performance tuning
+- [ ] Memory leak detection
+
+## Performance Guidelines
+
+### Animation Performance
+```scss
+// Use transform and opacity for animations
+.animated-element {
+ will-change: transform, opacity;
+ transform: translateZ(0); // Enable hardware acceleration
+}
+
+// Avoid animating expensive properties
+// BAD: width, height, padding, margin
+// GOOD: transform, opacity, filter
+```
+
+### Component Optimization
+```vue
+
+