Develop a comprehensive MVP for a SaaS application called 'Focus Compass' using Next.js 14 (App Router), React, TypeScript, Drizzle ORM with PostgreSQL, Tailwind CSS, and NextAuth.js for authentication. The application aims to reduce 'collaborative friction' in small teams by streamlining decision-making, tool commitment, and task management.The application should include a multi-page structure with full CRUD (Create, Read, Update, Delete) functionality for core features.Database Schema (using Drizzle ORM):1. `users` table: id (string, PK), email (string, unique), name (string), image (string).2. `teams` table: id (string, PK), name (string), ownerId (string, FK to users.id), createdAt (timestamp), updatedAt (timestamp).3. `team_members` table: userId (string, FK to users.id), teamId (string, FK to teams.id), role (enum: 'owner', 'member'), PRIMARY KEY(userId, teamId).4. `focus_areas` table: id (string, PK), teamId (string, FK to teams.id), title (string), description (text), committedByUserId (string, FK to users.id, nullable), status (enum: 'pending', 'committed', 'completed'), createdAt (timestamp), updatedAt (timestamp).5. `decisions` table: id (string, PK), teamId (string, FK to teams.id), focusAreaId (string, FK to focus_areas.id, nullable), title (string), description (text), decisionMakerUserId (string, FK to users.id), status (enum: 'pending', 'decided'), outcome (text, nullable), createdAt (timestamp), updatedAt (timestamp).6. `tools` table: id (string, PK), teamId (string, FK to teams.id), name (string), description (text, nullable), category (string, nullable), url (string, nullable), committedByUserId (string, FK to users.id), createdAt (timestamp), updatedAt (timestamp).7. `tasks` table: id (string, PK), teamId (string, FK to teams.id), focusAreaId (string, FK to focus_areas.id), title (string), description (text, nullable), assignedToUserId (string, FK to users.id, nullable), deadline (date, nullable), status (enum: 'todo', 'in-progress', 'done'), createdAt (timestamp), updatedAt (timestamp).Core Features & CRUD Operations:1. **Authentication:** User registration and login using NextAuth.js (e.g., Google Provider). Protect all team-specific routes.2. **Team Management:** * Create new teams. * Invite/remove team members (only by owner). * View list of teams a user belongs to.3. **Focus Area Management:** * Create a new 'Focus Area' for a team (title, description). * Ability for any team member to 'Commit' to a focus area, recording who committed. * Update focus area status (e.g., 'completed'). * View all focus areas for a specific team.4. **Decision Manager:** * Create a new 'Decision' for a team (title, description, optional link to focus area). * Assign a 'Decision Maker' from team members. * Update decision status to 'decided' and record the 'outcome'. * View all decisions for a specific team.5. **Tool Commitment Register:** * Add new tools for a team (name, description, category, URL). * Mark a tool as 'Committed' by a user. * View a list of all committed tools for a specific team.6. **Quick Action Tasks:** * Create tasks linked to a 'Focus Area' (title, description, optional assignee, deadline). * Update task status (Todo, In Progress, Done). * View tasks filtered by focus area, assignee, or status for a team.Next.js App Router Structure:1. `/`: Basic marketing landing page.2. `/login`: Authentication page.3. `/dashboard`: User's main dashboard, showing teams they belong to, a quick overview of current focus areas, and pending decisions.4. `/teams/[teamId]/focus-areas`: List and create 'Focus Areas' for a specific team.5. `/teams/[teamId]/focus-areas/[focusAreaId]`: Detailed view of a 'Focus Area', including associated 'Tasks'.6. `/teams/[teamId]/decisions`: List and create 'Decisions' for a specific team.7. `/teams/[teamId]/tools`: List and add 'Tools' for a specific team.8. `/teams/[teamId]/settings`: Team management (invite/remove members), team details.API Routes (for each CRUD operation):1. `/api/teams`2. `/api/teams/[teamId]/members`3. `/api/teams/[teamId]/focus-areas`4. `/api/teams/[teamId]/decisions`5. `/api/teams/[teamId]/tools`6. `/api/teams/[teamId]/focus-areas/[focusAreaId]/tasks`Styling: Implement a clean, responsive user interface using Tailwind CSS.Important Considerations:1. Implement robust authentication and authorization to ensure users can only access data relevant to their teams.2. Include error handling for API calls and user input.3. Use Next.js Server Actions for form submissions and data mutations where appropriate, leveraging server components for efficient data fetching and rendering.4. Ensure clear separation of concerns between client and server components.