import { useState, useEffect } from "react";
import { motion } from "motion/react";
import { 
  Shield, 
  Users, 
  Activity, 
  CreditCard, 
  TrendingUp, 
  Search,
  Filter,
  Plus,
  Edit,
  Trash2,
  Eye,
  AlertTriangle,
  UserPlus,
  UserMinus,
  ArrowLeft,
  Sun,
  Moon,
  Settings,
  Download,
  Upload,
  Mail,
  MessageSquare,
  Bell,
  Calendar,
  Target,
  Clock,
  CheckCircle,
  XCircle,
  BarChart3,
  PieChart,
  TrendingDown,
  Wallet,
  Building,
  Phone,
  Send,
  FileText,
  Banknote,
  Receipt,
  AlertCircleIcon,
  ArrowUpRight,
  ArrowDownLeft,
  Smartphone,
  Zap,
  Home,
  PiggyBank,
  RefreshCw,
  Filter as FilterIcon,
  CalendarDays,
  Percent,
  CheckSquare,
  XSquare,
  UserCheck,
  Clock3
} from "lucide-react";
import { Button } from "./ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "./ui/card";
import { Input } from "./ui/input";
import { Label } from "./ui/label";
import { Badge } from "./ui/badge";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs";
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "./ui/table";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./ui/select";
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "./ui/dialog";
import { Alert, AlertDescription } from "./ui/alert";
import { Textarea } from "./ui/textarea";
import { Switch } from "./ui/switch";
import { Progress } from "./ui/progress";
import { Separator } from "./ui/separator";
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, BarChart, Bar, PieChart as RechartsPieChart, Cell } from "recharts";
import { formatNaira } from "../utils/currency";
import { toast } from "sonner@2.0.3";
import { useTheme } from "./ThemeProvider";
import { ImageWithFallback } from "./figma/ImageWithFallback";
import enamelLogo from 'figma:asset/2e2e3fad7673e8eef9a255215dd6ac2cf27cc590.png';

interface EnhancedAdminDashboardProps {
  onBack: () => void;
  currentUser: any;
}

interface Member {
  id: string;
  membershipNumber: string;
  firstName: string;
  lastName: string;
  email: string;
  phone: string;
  nextOfKin: string;
  nextOfKinPhone: string;
  savingsPlan: string;
  dailyContribution: number;
  totalContributed: number;
  balance: number;
  nextPayoutDate: string;
  status: 'active' | 'suspended' | 'defaulter' | 'pending';
  joinedDate: string;
  lastContribution: string;
  payoutPosition: number;
  groupSize: number;
  kycStatus: 'verified' | 'pending' | 'rejected';
  assignedAgent?: string;
}

interface Contribution {
  id: string;
  memberId: string;
  memberName: string;
  amount: number;
  date: string;
  type: 'daily' | 'weekly' | 'monthly';
  method: 'cash' | 'bank_transfer' | 'ussd' | 'card';
  status: 'completed' | 'pending' | 'failed';
  agentId?: string;
  reference?: string;
}

interface Payout {
  id: string;
  memberId: string;
  memberName: string;
  amount: number;
  commission: number;
  netAmount: number;
  date: string;
  status: 'pending' | 'approved' | 'disbursed' | 'completed';
  approvedBy?: string;
  disbursedBy?: string;
  bankDetails?: {
    bankName: string;
    accountNumber: string;
    accountName: string;
  };
}

interface Agent {
  id: string;
  name: string;
  phone: string;
  email: string;
  assignedMembers: number;
  totalCollections: number;
  commission: number;
  status: 'active' | 'inactive';
  joinedDate: string;
}

export function EnhancedAdminDashboard({ onBack, currentUser }: EnhancedAdminDashboardProps) {
  const [activeTab, setActiveTab] = useState("overview");
  const [members, setMembers] = useState<Member[]>([]);
  const [contributions, setContributions] = useState<Contribution[]>([]);
  const [payouts, setPayouts] = useState<Payout[]>([]);
  const [agents, setAgents] = useState<Agent[]>([]);
  const [searchQuery, setSearchQuery] = useState("");
  const [filterStatus, setFilterStatus] = useState("all");
  const [selectedDateRange, setSelectedDateRange] = useState("today");
  const [isAddMemberOpen, setIsAddMemberOpen] = useState(false);
  const [isPayoutDialogOpen, setIsPayoutDialogOpen] = useState(false);
  const [isMessageDialogOpen, setIsMessageDialogOpen] = useState(false);
  const [selectedMember, setSelectedMember] = useState<Member | null>(null);
  const [messageText, setMessageText] = useState("");
  const [messageType, setMessageType] = useState<'sms' | 'email' | 'whatsapp'>('sms');
  const { theme, toggleTheme } = useTheme();

  // Enhanced member form state
  const [newMember, setNewMember] = useState({
    firstName: "",
    lastName: "",
    email: "",
    phone: "",
    nextOfKin: "",
    nextOfKinPhone: "",
    savingsPlan: "daily_500",
    dailyContribution: 500,
    groupSize: 10
  });

  // Mock data initialization
  useEffect(() => {
    const mockMembers: Member[] = [
      {
        id: '1',
        membershipNumber: 'EW001',
        firstName: 'Adaora',
        lastName: 'Okafor',
        email: 'adaora.okafor@example.com',
        phone: '+234 803 123 4567',
        nextOfKin: 'John Okafor',
        nextOfKinPhone: '+234 803 123 4568',
        savingsPlan: 'Daily ₦500',
        dailyContribution: 500,
        totalContributed: 15000,
        balance: 14250,
        nextPayoutDate: '2024-02-15',
        status: 'active',
        joinedDate: '2024-01-01',
        lastContribution: '2024-01-20',
        payoutPosition: 3,
        groupSize: 10,
        kycStatus: 'verified',
        assignedAgent: 'Agent001'
      },
      {
        id: '2',
        membershipNumber: 'EW002',
        firstName: 'Chidi',
        lastName: 'Eze',
        email: 'chidi.eze@example.com',
        phone: '+234 805 987 6543',
        nextOfKin: 'Mary Eze',
        nextOfKinPhone: '+234 805 987 6544',
        savingsPlan: 'Daily ₦1000',
        dailyContribution: 1000,
        totalContributed: 30000,
        balance: 28500,
        nextPayoutDate: '2024-03-01',
        status: 'active',
        joinedDate: '2024-01-01',
        lastContribution: '2024-01-19',
        payoutPosition: 5,
        groupSize: 10,
        kycStatus: 'verified',
        assignedAgent: 'Agent001'
      },
      {
        id: '3',
        membershipNumber: 'EW003',
        firstName: 'Funmi',
        lastName: 'Adebayo',
        email: 'funmi.adebayo@example.com',
        phone: '+234 807 555 0123',
        nextOfKin: 'Tunde Adebayo',
        nextOfKinPhone: '+234 807 555 0124',
        savingsPlan: 'Daily ₦500',
        dailyContribution: 500,
        totalContributed: 12000,
        balance: 11400,
        nextPayoutDate: '2024-01-30',
        status: 'defaulter',
        joinedDate: '2024-01-01',
        lastContribution: '2024-01-17',
        payoutPosition: 7,
        groupSize: 10,
        kycStatus: 'pending',
        assignedAgent: 'Agent002'
      }
    ];

    const mockContributions: Contribution[] = [
      {
        id: 'CON001',
        memberId: '1',
        memberName: 'Adaora Okafor',
        amount: 500,
        date: '2024-01-20',
        type: 'daily',
        method: 'bank_transfer',
        status: 'completed',
        agentId: 'Agent001',
        reference: 'BT202401200001'
      },
      {
        id: 'CON002',
        memberId: '2',
        memberName: 'Chidi Eze',
        amount: 1000,
        date: '2024-01-20',
        type: 'daily',
        method: 'ussd',
        status: 'completed',
        agentId: 'Agent001',
        reference: 'USSD202401200002'
      },
      {
        id: 'CON003',
        memberId: '1',
        memberName: 'Adaora Okafor',
        amount: 500,
        date: '2024-01-19',
        type: 'daily',
        method: 'cash',
        status: 'completed',
        agentId: 'Agent001'
      }
    ];

    const mockPayouts: Payout[] = [
      {
        id: 'PAY001',
        memberId: '1',
        memberName: 'Adaora Okafor',
        amount: 15000,
        commission: 750,
        netAmount: 14250,
        date: '2024-01-15',
        status: 'completed',
        approvedBy: 'Admin001',
        disbursedBy: 'Admin001',
        bankDetails: {
          bankName: 'GTBank',
          accountNumber: '0123456789',
          accountName: 'Adaora Okafor'
        }
      }
    ];

    const mockAgents: Agent[] = [
      {
        id: 'Agent001',
        name: 'Samuel Okoro',
        phone: '+234 901 234 5678',
        email: 'samuel.okoro@enamelwallets.com',
        assignedMembers: 2,
        totalCollections: 45000,
        commission: 2250,
        status: 'active',
        joinedDate: '2023-12-01'
      },
      {
        id: 'Agent002',
        name: 'Grace Abiola',
        phone: '+234 902 345 6789',
        email: 'grace.abiola@enamelwallets.com',
        assignedMembers: 1,
        totalCollections: 12000,
        commission: 600,
        status: 'active',
        joinedDate: '2023-12-15'
      }
    ];

    setMembers(mockMembers);
    setContributions(mockContributions);
    setPayouts(mockPayouts);
    setAgents(mockAgents);
  }, []);

  // Calculate enhanced statistics
  const stats = {
    totalActiveMembers: members.filter(m => m.status === 'active').length,
    totalContributionsToday: contributions
      .filter(c => c.date === '2024-01-20' && c.status === 'completed')
      .reduce((sum, c) => sum + c.amount, 0),
    totalContributionsThisMonth: contributions
      .filter(c => c.date.startsWith('2024-01') && c.status === 'completed')
      .reduce((sum, c) => sum + c.amount, 0),
    pendingPayouts: payouts.filter(p => p.status === 'pending').length,
    commissionEarned: payouts
      .filter(p => p.status === 'completed')
      .reduce((sum, p) => sum + p.commission, 0),
    defaulters: members.filter(m => m.status === 'defaulter').length,
    totalMembers: members.length,
    averageContribution: members.reduce((sum, m) => sum + m.dailyContribution, 0) / members.length,
    collectionRate: (contributions.filter(c => c.status === 'completed').length / contributions.length) * 100
  };

  // Chart data
  const contributionTrendData = [
    { date: '2024-01-15', amount: 25000 },
    { date: '2024-01-16', amount: 28000 },
    { date: '2024-01-17', amount: 22000 },
    { date: '2024-01-18', amount: 30000 },
    { date: '2024-01-19', amount: 32000 },
    { date: '2024-01-20', amount: 35000 }
  ];

  const paymentMethodData = [
    { method: 'Bank Transfer', value: 45, color: '#0066cc' },
    { method: 'USSD', value: 30, color: '#00875a' },
    { method: 'Cash', value: 20, color: '#ff6b35' },
    { method: 'Card', value: 5, color: '#8b5cf6' }
  ];

  const handleAddMember = async () => {
    if (!newMember.firstName || !newMember.lastName || !newMember.phone) {
      toast.error("Please fill in all required fields");
      return;
    }

    const member: Member = {
      id: Date.now().toString(),
      membershipNumber: `EW${String(members.length + 1).padStart(3, '0')}`,
      firstName: newMember.firstName,
      lastName: newMember.lastName,
      email: newMember.email,
      phone: newMember.phone,
      nextOfKin: newMember.nextOfKin,
      nextOfKinPhone: newMember.nextOfKinPhone,
      savingsPlan: newMember.savingsPlan,
      dailyContribution: newMember.dailyContribution,
      totalContributed: 0,
      balance: 0,
      nextPayoutDate: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0],
      status: 'active',
      joinedDate: new Date().toISOString().split('T')[0],
      lastContribution: '',
      payoutPosition: newMember.groupSize,
      groupSize: newMember.groupSize,
      kycStatus: 'pending'
    };

    setMembers(prev => [...prev, member]);
    setNewMember({
      firstName: "",
      lastName: "",
      email: "",
      phone: "",
      nextOfKin: "",
      nextOfKinPhone: "",
      savingsPlan: "daily_500",
      dailyContribution: 500,
      groupSize: 10
    });
    setIsAddMemberOpen(false);
    toast.success("Member added successfully");
  };

  const handleRecordContribution = (memberId: string, amount: number, method: string) => {
    const member = members.find(m => m.id === memberId);
    if (!member) return;

    const contribution: Contribution = {
      id: `CON${Date.now()}`,
      memberId,
      memberName: `${member.firstName} ${member.lastName}`,
      amount,
      date: new Date().toISOString().split('T')[0],
      type: 'daily',
      method: method as any,
      status: 'completed',
      agentId: 'Admin001'
    };

    setContributions(prev => [...prev, contribution]);
    
    // Update member's balance
    setMembers(prev => prev.map(m => 
      m.id === memberId 
        ? { 
            ...m, 
            totalContributed: m.totalContributed + amount,
            balance: m.balance + (amount * 0.95), // 5% commission
            lastContribution: new Date().toISOString().split('T')[0]
          }
        : m
    ));

    toast.success(`Contribution of ${formatNaira(amount)} recorded for ${member.firstName} ${member.lastName}`);
  };

  const handleApprovePayout = (memberId: string) => {
    const member = members.find(m => m.id === memberId);
    if (!member) return;

    const payout: Payout = {
      id: `PAY${Date.now()}`,
      memberId,
      memberName: `${member.firstName} ${member.lastName}`,
      amount: member.balance + (member.balance * 0.05), // Add back commission
      commission: member.balance * 0.05,
      netAmount: member.balance,
      date: new Date().toISOString().split('T')[0],
      status: 'approved',
      approvedBy: currentUser.id
    };

    setPayouts(prev => [...prev, payout]);
    toast.success(`Payout approved for ${member.firstName} ${member.lastName}`);
  };

  const handleSendMessage = () => {
    if (!messageText.trim()) {
      toast.error("Please enter a message");
      return;
    }

    // Simulate sending message
    toast.success(`${messageType.toUpperCase()} message sent successfully`);
    setMessageText("");
    setIsMessageDialogOpen(false);
  };

  const getStatusColor = (status: string) => {
    switch (status) {
      case 'active': return 'bg-secondary text-white';
      case 'suspended': return 'bg-destructive text-white';
      case 'defaulter': return 'bg-orange-500 text-white';
      case 'pending': return 'bg-yellow-500 text-white';
      default: return 'bg-muted';
    }
  };

  const getMethodIcon = (method: string) => {
    switch (method) {
      case 'bank_transfer': return <Building className="w-4 h-4" />;
      case 'ussd': return <Phone className="w-4 h-4" />;
      case 'cash': return <Banknote className="w-4 h-4" />;
      case 'card': return <CreditCard className="w-4 h-4" />;
      default: return <Wallet className="w-4 h-4" />;
    }
  };

  return (
    <div className={`min-h-screen ${
      theme === 'dark' 
        ? 'bg-gradient-to-br from-background via-card to-background' 
        : 'bg-gradient-to-br from-blue-50 via-white to-blue-100'
    }`}>
      {/* Header */}
      <div className="bg-card shadow-sm border-b p-4">
        <div className="flex items-center justify-between max-w-7xl mx-auto">
          <div className="flex items-center gap-3">
            <Button variant="ghost" size="sm" onClick={onBack}>
              <ArrowLeft className="w-4 h-4" />
            </Button>
            <div className="w-8 h-8 rounded-lg flex items-center justify-center">
              <ImageWithFallback
                src={enamelLogo}
                alt="Enamel Wallets Logo"
                className="w-full h-full object-contain"
              />
            </div>
            <div>
              <h1 className="text-xl font-bold">Enhanced Admin Dashboard</h1>
              <p className="text-sm text-muted-foreground">
                Comprehensive Cooperative Management System
              </p>
            </div>
          </div>
          
          <div className="flex items-center gap-2">
            <Button
              variant="ghost"
              size="sm"
              onClick={toggleTheme}
              className="rounded-full"
            >
              {theme === 'dark' ? <Sun className="w-4 h-4" /> : <Moon className="w-4 h-4" />}
            </Button>
            <Badge className="bg-purple-500 text-white">
              {currentUser.role?.toUpperCase() || 'ADMIN'}
            </Badge>
          </div>
        </div>
      </div>

      <div className="max-w-7xl mx-auto p-6 space-y-6">
        {/* Enhanced Stats Overview */}
        <motion.div
          initial={{ opacity: 0, y: 20 }}
          animate={{ opacity: 1, y: 0 }}
          transition={{ duration: 0.6 }}
          className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6 gap-4"
        >
          <Card className="bg-gradient-to-br from-primary to-primary/80 text-white">
            <CardContent className="p-4">
              <div className="flex items-center gap-2">
                <Users className="w-5 h-5" />
                <div>
                  <p className="text-primary-foreground/80 text-xs">Total Active Members</p>
                  <p className="text-2xl font-bold">{stats.totalActiveMembers}</p>
                </div>
              </div>
            </CardContent>
          </Card>

          <Card className="bg-gradient-to-br from-secondary to-secondary/80 text-white">
            <CardContent className="p-4">
              <div className="flex items-center gap-2">
                <TrendingUp className="w-5 h-5" />
                <div>
                  <p className="text-secondary-foreground/80 text-xs">Today's Collections</p>
                  <p className="text-lg font-bold">{formatNaira(stats.totalContributionsToday)}</p>
                </div>
              </div>
            </CardContent>
          </Card>

          <Card className="bg-gradient-to-br from-accent to-accent/80 text-white">
            <CardContent className="p-4">
              <div className="flex items-center gap-2">
                <Calendar className="w-5 h-5" />
                <div>
                  <p className="text-accent-foreground/80 text-xs">This Month</p>
                  <p className="text-lg font-bold">{formatNaira(stats.totalContributionsThisMonth)}</p>
                </div>
              </div>
            </CardContent>
          </Card>

          <Card className="bg-gradient-to-br from-yellow-500 to-yellow-600 text-white">
            <CardContent className="p-4">
              <div className="flex items-center gap-2">
                <Clock className="w-5 h-5" />
                <div>
                  <p className="text-yellow-100 text-xs">Pending Payouts</p>
                  <p className="text-2xl font-bold">{stats.pendingPayouts}</p>
                </div>
              </div>
            </CardContent>
          </Card>

          <Card className="bg-gradient-to-br from-green-500 to-green-600 text-white">
            <CardContent className="p-4">
              <div className="flex items-center gap-2">
                <Target className="w-5 h-5" />
                <div>
                  <p className="text-green-100 text-xs">Commission Earned</p>
                  <p className="text-lg font-bold">{formatNaira(stats.commissionEarned)}</p>
                </div>
              </div>
            </CardContent>
          </Card>

          <Card className="bg-gradient-to-br from-red-500 to-red-600 text-white">
            <CardContent className="p-4">
              <div className="flex items-center gap-2">
                <AlertTriangle className="w-5 h-5" />
                <div>
                  <p className="text-red-100 text-xs">Defaulters</p>
                  <p className="text-2xl font-bold">{stats.defaulters}</p>
                </div>
              </div>
            </CardContent>
          </Card>
        </motion.div>

        {/* Charts Section */}
        <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
          <Card>
            <CardHeader>
              <CardTitle>Contribution Trend</CardTitle>
            </CardHeader>
            <CardContent>
              <ResponsiveContainer width="100%" height={300}>
                <LineChart data={contributionTrendData}>
                  <CartesianGrid strokeDasharray="3 3" />
                  <XAxis dataKey="date" />
                  <YAxis />
                  <Tooltip formatter={(value) => formatNaira(Number(value))} />
                  <Line 
                    type="monotone" 
                    dataKey="amount" 
                    stroke="#0066cc" 
                    strokeWidth={2}
                    dot={{ fill: '#0066cc' }}
                  />
                </LineChart>
              </ResponsiveContainer>
            </CardContent>
          </Card>

          <Card>
            <CardHeader>
              <CardTitle>Payment Methods</CardTitle>
            </CardHeader>
            <CardContent>
              <ResponsiveContainer width="100%" height={300}>
                <RechartsPieChart>
                  <Pie
                    data={paymentMethodData}
                    cx="50%"
                    cy="50%"
                    outerRadius={80}
                    dataKey="value"
                    label={({ method, value }) => `${method}: ${value}%`}
                  >
                    {paymentMethodData.map((entry, index) => (
                      <Cell key={`cell-${index}`} fill={entry.color} />
                    ))}
                  </Pie>
                  <Tooltip />
                </RechartsPieChart>
              </ResponsiveContainer>
            </CardContent>
          </Card>
        </div>

        {/* Main Content Tabs */}
        <Tabs value={activeTab} onValueChange={setActiveTab}>
          <TabsList className="grid w-full grid-cols-8">
            <TabsTrigger value="overview">Overview</TabsTrigger>
            <TabsTrigger value="members">Members</TabsTrigger>
            <TabsTrigger value="contributions">Contributions</TabsTrigger>
            <TabsTrigger value="payouts">Payouts</TabsTrigger>
            <TabsTrigger value="agents">Agents</TabsTrigger>
            <TabsTrigger value="reports">Reports</TabsTrigger>
            <TabsTrigger value="communication">Communication</TabsTrigger>
            <TabsTrigger value="settings">Settings</TabsTrigger>
          </TabsList>

          {/* Overview Tab */}
          <TabsContent value="overview" className="space-y-6">
            <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
              <Card>
                <CardHeader>
                  <CardTitle>Recent Contributions</CardTitle>
                </CardHeader>
                <CardContent>
                  <div className="space-y-3">
                    {contributions.slice(0, 5).map((contribution) => (
                      <div key={contribution.id} className="flex items-center justify-between p-3 bg-muted/50 rounded-lg">
                        <div className="flex items-center gap-3">
                          <div className="w-8 h-8 rounded-full bg-secondary/10 flex items-center justify-center">
                            {getMethodIcon(contribution.method)}
                          </div>
                          <div>
                            <p className="font-medium text-sm">{contribution.memberName}</p>
                            <p className="text-xs text-muted-foreground">{contribution.date}</p>
                          </div>
                        </div>
                        <div className="text-right">
                          <p className="font-bold text-secondary">{formatNaira(contribution.amount)}</p>
                          <Badge variant="secondary" className="text-xs">{contribution.method.replace('_', ' ')}</Badge>
                        </div>
                      </div>
                    ))}
                  </div>
                </CardContent>
              </Card>

              <Card>
                <CardHeader>
                  <CardTitle>Members Due for Payout</CardTitle>
                </CardHeader>
                <CardContent>
                  <div className="space-y-3">
                    {members
                      .filter(m => new Date(m.nextPayoutDate) <= new Date(Date.now() + 7 * 24 * 60 * 60 * 1000))
                      .slice(0, 5)
                      .map((member) => (
                      <div key={member.id} className="flex items-center justify-between p-3 bg-muted/50 rounded-lg">
                        <div className="flex items-center gap-3">
                          <div className="w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center">
                            <Users className="w-4 h-4 text-primary" />
                          </div>
                          <div>
                            <p className="font-medium text-sm">{member.firstName} {member.lastName}</p>
                            <p className="text-xs text-muted-foreground">Due: {member.nextPayoutDate}</p>
                          </div>
                        </div>
                        <div className="text-right">
                          <p className="font-bold">{formatNaira(member.balance)}</p>
                          <Button size="sm" variant="outline" onClick={() => handleApprovePayout(member.id)}>
                            Approve
                          </Button>
                        </div>
                      </div>
                    ))}
                  </div>
                </CardContent>
              </Card>
            </div>
          </TabsContent>

          {/* Members Management Tab */}
          <TabsContent value="members" className="space-y-6">
            <Card>
              <CardHeader>
                <div className="flex items-center justify-between">
                  <CardTitle>Member Management</CardTitle>
                  <div className="flex gap-2">
                    <Dialog open={isAddMemberOpen} onOpenChange={setIsAddMemberOpen}>
                      <DialogTrigger asChild>
                        <Button className="bg-primary hover:bg-primary/90">
                          <UserPlus className="w-4 h-4 mr-2" />
                          Add Member
                        </Button>
                      </DialogTrigger>
                      <DialogContent className="max-w-2xl">
                        <DialogHeader>
                          <DialogTitle>Add New Member</DialogTitle>
                          <DialogDescription>
                            Register a new cooperative member
                          </DialogDescription>
                        </DialogHeader>
                        <div className="grid grid-cols-2 gap-4">
                          <div>
                            <Label htmlFor="firstName">First Name *</Label>
                            <Input
                              id="firstName"
                              value={newMember.firstName}
                              onChange={(e) => setNewMember(prev => ({ ...prev, firstName: e.target.value }))}
                              placeholder="Enter first name"
                            />
                          </div>
                          <div>
                            <Label htmlFor="lastName">Last Name *</Label>
                            <Input
                              id="lastName"
                              value={newMember.lastName}
                              onChange={(e) => setNewMember(prev => ({ ...prev, lastName: e.target.value }))}
                              placeholder="Enter last name"
                            />
                          </div>
                          <div>
                            <Label htmlFor="email">Email</Label>
                            <Input
                              id="email"
                              type="email"
                              value={newMember.email}
                              onChange={(e) => setNewMember(prev => ({ ...prev, email: e.target.value }))}
                              placeholder="Enter email address"
                            />
                          </div>
                          <div>
                            <Label htmlFor="phone">Phone Number *</Label>
                            <Input
                              id="phone"
                              value={newMember.phone}
                              onChange={(e) => setNewMember(prev => ({ ...prev, phone: e.target.value }))}
                              placeholder="Enter phone number"
                            />
                          </div>
                          <div>
                            <Label htmlFor="nextOfKin">Next of Kin</Label>
                            <Input
                              id="nextOfKin"
                              value={newMember.nextOfKin}
                              onChange={(e) => setNewMember(prev => ({ ...prev, nextOfKin: e.target.value }))}
                              placeholder="Enter next of kin name"
                            />
                          </div>
                          <div>
                            <Label htmlFor="nextOfKinPhone">Next of Kin Phone</Label>
                            <Input
                              id="nextOfKinPhone"
                              value={newMember.nextOfKinPhone}
                              onChange={(e) => setNewMember(prev => ({ ...prev, nextOfKinPhone: e.target.value }))}
                              placeholder="Enter next of kin phone"
                            />
                          </div>
                          <div>
                            <Label htmlFor="savingsPlan">Savings Plan</Label>
                            <Select 
                              value={newMember.savingsPlan} 
                              onValueChange={(value) => {
                                setNewMember(prev => ({ 
                                  ...prev, 
                                  savingsPlan: value,
                                  dailyContribution: value === 'daily_500' ? 500 : value === 'daily_1000' ? 1000 : 1500
                                }));
                              }}
                            >
                              <SelectTrigger>
                                <SelectValue placeholder="Select savings plan" />
                              </SelectTrigger>
                              <SelectContent>
                                <SelectItem value="daily_500">Daily ₦500</SelectItem>
                                <SelectItem value="daily_1000">Daily ₦1,000</SelectItem>
                                <SelectItem value="daily_1500">Daily ₦1,500</SelectItem>
                              </SelectContent>
                            </Select>
                          </div>
                          <div>
                            <Label htmlFor="groupSize">Group Size</Label>
                            <Select 
                              value={newMember.groupSize.toString()} 
                              onValueChange={(value) => setNewMember(prev => ({ ...prev, groupSize: Number(value) }))}
                            >
                              <SelectTrigger>
                                <SelectValue placeholder="Select group size" />
                              </SelectTrigger>
                              <SelectContent>
                                <SelectItem value="10">10 Members</SelectItem>
                                <SelectItem value="15">15 Members</SelectItem>
                                <SelectItem value="20">20 Members</SelectItem>
                              </SelectContent>
                            </Select>
                          </div>
                        </div>
                        <DialogFooter>
                          <Button variant="outline" onClick={() => setIsAddMemberOpen(false)}>
                            Cancel
                          </Button>
                          <Button onClick={handleAddMember}>
                            Add Member
                          </Button>
                        </DialogFooter>
                      </DialogContent>
                    </Dialog>
                    <Button variant="outline">
                      <Download className="w-4 h-4 mr-2" />
                      Export
                    </Button>
                  </div>
                </div>
              </CardHeader>
              <CardContent>
                {/* Search and Filters */}
                <div className="flex gap-4 mb-6">
                  <div className="flex-1">
                    <div className="relative">
                      <Search className="w-4 h-4 absolute left-3 top-1/2 transform -translate-y-1/2 text-muted-foreground" />
                      <Input
                        placeholder="Search members..."
                        value={searchQuery}
                        onChange={(e) => setSearchQuery(e.target.value)}
                        className="pl-10"
                      />
                    </div>
                  </div>
                  <Select value={filterStatus} onValueChange={setFilterStatus}>
                    <SelectTrigger className="w-48">
                      <SelectValue placeholder="Filter by status" />
                    </SelectTrigger>
                    <SelectContent>
                      <SelectItem value="all">All Status</SelectItem>
                      <SelectItem value="active">Active</SelectItem>
                      <SelectItem value="defaulter">Defaulters</SelectItem>
                      <SelectItem value="suspended">Suspended</SelectItem>
                      <SelectItem value="pending">Pending</SelectItem>
                    </SelectContent>
                  </Select>
                </div>

                {/* Members Table */}
                <div className="border rounded-lg">
                  <Table>
                    <TableHeader>
                      <TableRow>
                        <TableHead>Member</TableHead>
                        <TableHead>Contact</TableHead>
                        <TableHead>Plan</TableHead>
                        <TableHead>Contributed</TableHead>
                        <TableHead>Balance</TableHead>
                        <TableHead>Status</TableHead>
                        <TableHead>Next Payout</TableHead>
                        <TableHead>Actions</TableHead>
                      </TableRow>
                    </TableHeader>
                    <TableBody>
                      {members
                        .filter(member => {
                          const matchesSearch = 
                            member.firstName.toLowerCase().includes(searchQuery.toLowerCase()) ||
                            member.lastName.toLowerCase().includes(searchQuery.toLowerCase()) ||
                            member.membershipNumber.toLowerCase().includes(searchQuery.toLowerCase()) ||
                            member.phone.includes(searchQuery);
                          
                          const matchesFilter = filterStatus === 'all' || member.status === filterStatus;
                          
                          return matchesSearch && matchesFilter;
                        })
                        .map((member) => (
                        <TableRow key={member.id}>
                          <TableCell>
                            <div>
                              <p className="font-medium">{member.firstName} {member.lastName}</p>
                              <p className="text-sm text-muted-foreground">{member.membershipNumber}</p>
                            </div>
                          </TableCell>
                          <TableCell>
                            <div>
                              <p className="text-sm">{member.phone}</p>
                              <p className="text-sm text-muted-foreground">{member.email || 'N/A'}</p>
                            </div>
                          </TableCell>
                          <TableCell>
                            <div>
                              <p className="text-sm font-medium">{member.savingsPlan}</p>
                              <p className="text-xs text-muted-foreground">Daily: {formatNaira(member.dailyContribution)}</p>
                            </div>
                          </TableCell>
                          <TableCell className="font-medium">
                            {formatNaira(member.totalContributed)}
                          </TableCell>
                          <TableCell className="font-medium">
                            {formatNaira(member.balance)}
                          </TableCell>
                          <TableCell>
                            <Badge className={getStatusColor(member.status)}>
                              {member.status}
                            </Badge>
                          </TableCell>
                          <TableCell>
                            <div>
                              <p className="text-sm">{member.nextPayoutDate}</p>
                              <p className="text-xs text-muted-foreground">Pos: {member.payoutPosition}/{member.groupSize}</p>
                            </div>
                          </TableCell>
                          <TableCell>
                            <div className="flex gap-1">
                              <Button
                                size="sm"
                                variant="outline"
                                onClick={() => {
                                  const amount = prompt('Enter contribution amount:');
                                  const method = prompt('Payment method (cash/bank_transfer/ussd/card):') || 'cash';
                                  if (amount && !isNaN(Number(amount))) {
                                    handleRecordContribution(member.id, Number(amount), method);
                                  }
                                }}
                              >
                                <Plus className="w-3 h-3" />
                              </Button>
                              <Button
                                size="sm"
                                variant="outline"
                                onClick={() => setSelectedMember(member)}
                              >
                                <Eye className="w-3 h-3" />
                              </Button>
                              <Button
                                size="sm"
                                variant="outline"
                                onClick={() => handleApprovePayout(member.id)}
                                disabled={member.status !== 'active'}
                              >
                                <Send className="w-3 h-3" />
                              </Button>
                            </div>
                          </TableCell>
                        </TableRow>
                      ))}
                    </TableBody>
                  </Table>
                </div>
              </CardContent>
            </Card>
          </TabsContent>

          {/* Contributions Management Tab */}
          <TabsContent value="contributions" className="space-y-6">
            <Card>
              <CardHeader>
                <div className="flex items-center justify-between">
                  <CardTitle>Contributions Management</CardTitle>
                  <div className="flex gap-2">
                    <Select value={selectedDateRange} onValueChange={setSelectedDateRange}>
                      <SelectTrigger className="w-40">
                        <SelectValue />
                      </SelectTrigger>
                      <SelectContent>
                        <SelectItem value="today">Today</SelectItem>
                        <SelectItem value="week">This Week</SelectItem>
                        <SelectItem value="month">This Month</SelectItem>
                      </SelectContent>
                    </Select>
                    <Button variant="outline">
                      <Download className="w-4 h-4 mr-2" />
                      Export
                    </Button>
                  </div>
                </div>
              </CardHeader>
              <CardContent>
                <div className="border rounded-lg">
                  <Table>
                    <TableHeader>
                      <TableRow>
                        <TableHead>Date</TableHead>
                        <TableHead>Member</TableHead>
                        <TableHead>Amount</TableHead>
                        <TableHead>Method</TableHead>
                        <TableHead>Status</TableHead>
                        <TableHead>Reference</TableHead>
                        <TableHead>Agent</TableHead>
                      </TableRow>
                    </TableHeader>
                    <TableBody>
                      {contributions.map((contribution) => (
                        <TableRow key={contribution.id}>
                          <TableCell>{contribution.date}</TableCell>
                          <TableCell className="font-medium">{contribution.memberName}</TableCell>
                          <TableCell className="font-bold text-secondary">
                            {formatNaira(contribution.amount)}
                          </TableCell>
                          <TableCell>
                            <div className="flex items-center gap-2">
                              {getMethodIcon(contribution.method)}
                              <span className="text-sm">{contribution.method.replace('_', ' ')}</span>
                            </div>
                          </TableCell>
                          <TableCell>
                            <Badge className={getStatusColor(contribution.status)}>
                              {contribution.status}
                            </Badge>
                          </TableCell>
                          <TableCell className="font-mono text-xs">
                            {contribution.reference || 'N/A'}
                          </TableCell>
                          <TableCell>{contribution.agentId}</TableCell>
                        </TableRow>
                      ))}
                    </TableBody>
                  </Table>
                </div>
              </CardContent>
            </Card>
          </TabsContent>

          {/* Payouts Management Tab */}
          <TabsContent value="payouts" className="space-y-6">
            <Card>
              <CardHeader>
                <CardTitle>Payout Management</CardTitle>
              </CardHeader>
              <CardContent>
                <div className="border rounded-lg">
                  <Table>
                    <TableHeader>
                      <TableRow>
                        <TableHead>Date</TableHead>
                        <TableHead>Member</TableHead>
                        <TableHead>Gross Amount</TableHead>
                        <TableHead>Commission</TableHead>
                        <TableHead>Net Amount</TableHead>
                        <TableHead>Status</TableHead>
                        <TableHead>Actions</TableHead>
                      </TableRow>
                    </TableHeader>
                    <TableBody>
                      {payouts.map((payout) => (
                        <TableRow key={payout.id}>
                          <TableCell>{payout.date}</TableCell>
                          <TableCell className="font-medium">{payout.memberName}</TableCell>
                          <TableCell>{formatNaira(payout.amount)}</TableCell>
                          <TableCell>{formatNaira(payout.commission)}</TableCell>
                          <TableCell className="font-bold text-secondary">
                            {formatNaira(payout.netAmount)}
                          </TableCell>
                          <TableCell>
                            <Badge className={getStatusColor(payout.status)}>
                              {payout.status}
                            </Badge>
                          </TableCell>
                          <TableCell>
                            <div className="flex gap-2">
                              {payout.status === 'pending' && (
                                <Button size="sm" variant="outline">
                                  Approve
                                </Button>
                              )}
                              {payout.status === 'approved' && (
                                <Button size="sm" className="bg-secondary">
                                  Disburse
                                </Button>
                              )}
                              <Button size="sm" variant="outline">
                                <Eye className="w-3 h-3" />
                              </Button>
                            </div>
                          </TableCell>
                        </TableRow>
                      ))}
                    </TableBody>
                  </Table>
                </div>
              </CardContent>
            </Card>
          </TabsContent>

          {/* Agents Management Tab */}
          <TabsContent value="agents" className="space-y-6">
            <Card>
              <CardHeader>
                <div className="flex items-center justify-between">
                  <CardTitle>Agent/Collector Management</CardTitle>
                  <Button className="bg-primary hover:bg-primary/90">
                    <UserPlus className="w-4 h-4 mr-2" />
                    Add Agent
                  </Button>
                </div>
              </CardHeader>
              <CardContent>
                <div className="border rounded-lg">
                  <Table>
                    <TableHeader>
                      <TableRow>
                        <TableHead>Agent</TableHead>
                        <TableHead>Contact</TableHead>
                        <TableHead>Assigned Members</TableHead>
                        <TableHead>Total Collections</TableHead>
                        <TableHead>Commission</TableHead>
                        <TableHead>Status</TableHead>
                        <TableHead>Actions</TableHead>
                      </TableRow>
                    </TableHeader>
                    <TableBody>
                      {agents.map((agent) => (
                        <TableRow key={agent.id}>
                          <TableCell>
                            <div>
                              <p className="font-medium">{agent.name}</p>
                              <p className="text-sm text-muted-foreground">Since {agent.joinedDate}</p>
                            </div>
                          </TableCell>
                          <TableCell>
                            <div>
                              <p className="text-sm">{agent.phone}</p>
                              <p className="text-sm text-muted-foreground">{agent.email}</p>
                            </div>
                          </TableCell>
                          <TableCell className="font-medium">{agent.assignedMembers}</TableCell>
                          <TableCell className="font-bold">{formatNaira(agent.totalCollections)}</TableCell>
                          <TableCell className="font-bold text-secondary">{formatNaira(agent.commission)}</TableCell>
                          <TableCell>
                            <Badge className={getStatusColor(agent.status)}>
                              {agent.status}
                            </Badge>
                          </TableCell>
                          <TableCell>
                            <div className="flex gap-2">
                              <Button size="sm" variant="outline">
                                <Edit className="w-3 h-3" />
                              </Button>
                              <Button size="sm" variant="outline">
                                <Eye className="w-3 h-3" />
                              </Button>
                            </div>
                          </TableCell>
                        </TableRow>
                      ))}
                    </TableBody>
                  </Table>
                </div>
              </CardContent>
            </Card>
          </TabsContent>

          {/* Reports & Analytics Tab */}
          <TabsContent value="reports" className="space-y-6">
            <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
              <Card>
                <CardContent className="p-4">
                  <div className="flex items-center gap-2">
                    <BarChart3 className="w-5 h-5 text-primary" />
                    <div>
                      <p className="text-sm text-muted-foreground">Collection Rate</p>
                      <p className="text-2xl font-bold">{stats.collectionRate.toFixed(1)}%</p>
                    </div>
                  </div>
                </CardContent>
              </Card>

              <Card>
                <CardContent className="p-4">
                  <div className="flex items-center gap-2">
                    <Target className="w-5 h-5 text-secondary" />
                    <div>
                      <p className="text-sm text-muted-foreground">Avg. Contribution</p>
                      <p className="text-xl font-bold">{formatNaira(stats.averageContribution)}</p>
                    </div>
                  </div>
                </CardContent>
              </Card>

              <Card>
                <CardContent className="p-4">
                  <div className="flex items-center gap-2">
                    <Users className="w-5 h-5 text-accent" />
                    <div>
                      <p className="text-sm text-muted-foreground">Member Growth</p>
                      <p className="text-2xl font-bold">+{Math.floor(stats.totalMembers * 0.1)}</p>
                    </div>
                  </div>
                </CardContent>
              </Card>

              <Card>
                <CardContent className="p-4">
                  <div className="flex items-center gap-2">
                    <TrendingDown className="w-5 h-5 text-red-500" />
                    <div>
                      <p className="text-sm text-muted-foreground">Default Rate</p>
                      <p className="text-2xl font-bold">{((stats.defaulters / stats.totalMembers) * 100).toFixed(1)}%</p>
                    </div>
                  </div>
                </CardContent>
              </Card>
            </div>

            <Card>
              <CardHeader>
                <CardTitle>Generate Reports</CardTitle>
              </CardHeader>
              <CardContent>
                <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
                  <Button variant="outline" className="h-20 flex flex-col gap-2">
                    <FileText className="w-6 h-6" />
                    <span>Daily Report</span>
                  </Button>
                  <Button variant="outline" className="h-20 flex flex-col gap-2">
                    <Receipt className="w-6 h-6" />
                    <span>Monthly Report</span>
                  </Button>
                  <Button variant="outline" className="h-20 flex flex-col gap-2">
                    <BarChart3 className="w-6 h-6" />
                    <span>Analytics Report</span>
                  </Button>
                </div>
              </CardContent>
            </Card>
          </TabsContent>

          {/* Communication Tab */}
          <TabsContent value="communication" className="space-y-6">
            <Card>
              <CardHeader>
                <div className="flex items-center justify-between">
                  <CardTitle>Notifications & Communication</CardTitle>
                  <Dialog open={isMessageDialogOpen} onOpenChange={setIsMessageDialogOpen}>
                    <DialogTrigger asChild>
                      <Button className="bg-primary hover:bg-primary/90">
                        <Send className="w-4 h-4 mr-2" />
                        Send Message
                      </Button>
                    </DialogTrigger>
                    <DialogContent>
                      <DialogHeader>
                        <DialogTitle>Send Bulk Message</DialogTitle>
                        <DialogDescription>
                          Send notifications to members
                        </DialogDescription>
                      </DialogHeader>
                      <div className="space-y-4">
                        <div>
                          <Label>Message Type</Label>
                          <Select value={messageType} onValueChange={(value) => setMessageType(value as any)}>
                            <SelectTrigger>
                              <SelectValue />
                            </SelectTrigger>
                            <SelectContent>
                              <SelectItem value="sms">SMS</SelectItem>
                              <SelectItem value="email">Email</SelectItem>
                              <SelectItem value="whatsapp">WhatsApp</SelectItem>
                            </SelectContent>
                          </Select>
                        </div>
                        <div>
                          <Label>Message</Label>
                          <Textarea
                            value={messageText}
                            onChange={(e) => setMessageText(e.target.value)}
                            placeholder="Enter your message..."
                            rows={4}
                          />
                        </div>
                      </div>
                      <DialogFooter>
                        <Button variant="outline" onClick={() => setIsMessageDialogOpen(false)}>
                          Cancel
                        </Button>
                        <Button onClick={handleSendMessage}>
                          Send Message
                        </Button>
                      </DialogFooter>
                    </DialogContent>
                  </Dialog>
                </div>
              </CardHeader>
              <CardContent>
                <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
                  <div className="space-y-4">
                    <h3 className="font-semibold">Quick Actions</h3>
                    <div className="space-y-2">
                      <Button variant="outline" className="w-full justify-start">
                        <Bell className="w-4 h-4 mr-2" />
                        Send Payment Reminders
                      </Button>
                      <Button variant="outline" className="w-full justify-start">
                        <MessageSquare className="w-4 h-4 mr-2" />
                        Notify Defaulters
                      </Button>
                      <Button variant="outline" className="w-full justify-start">
                        <Mail className="w-4 h-4 mr-2" />
                        Payout Notifications
                      </Button>
                      <Button variant="outline" className="w-full justify-start">
                        <Send className="w-4 h-4 mr-2" />
                        Broadcast Announcement
                      </Button>
                    </div>
                  </div>
                  <div className="space-y-4">
                    <h3 className="font-semibold">Message Templates</h3>
                    <div className="space-y-2 text-sm">
                      <div className="p-3 bg-muted/50 rounded-lg">
                        <p className="font-medium">Payment Reminder</p>
                        <p className="text-muted-foreground">
                          "Hello {name}, your daily contribution of {amount} is due today..."
                        </p>
                      </div>
                      <div className="p-3 bg-muted/50 rounded-lg">
                        <p className="font-medium">Payout Ready</p>
                        <p className="text-muted-foreground">
                          "Congratulations {name}! Your payout of {amount} is ready..."
                        </p>
                      </div>
                      <div className="p-3 bg-muted/50 rounded-lg">
                        <p className="font-medium">Welcome Message</p>
                        <p className="text-muted-foreground">
                          "Welcome to Enamel Wallets! Your membership number is {number}..."
                        </p>
                      </div>
                    </div>
                  </div>
                </div>
              </CardContent>
            </Card>
          </TabsContent>

          {/* Settings Tab */}
          <TabsContent value="settings" className="space-y-6">
            <Card>
              <CardHeader>
                <CardTitle>System Settings</CardTitle>
              </CardHeader>
              <CardContent className="space-y-6">
                <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
                  <div className="space-y-4">
                    <h3 className="font-semibold">Contribution Plans</h3>
                    <div className="space-y-3">
                      <div className="flex items-center justify-between p-3 border rounded-lg">
                        <div>
                          <p className="font-medium">Daily ₦500</p>
                          <p className="text-sm text-muted-foreground">5% commission</p>
                        </div>
                        <Switch defaultChecked />
                      </div>
                      <div className="flex items-center justify-between p-3 border rounded-lg">
                        <div>
                          <p className="font-medium">Daily ₦1,000</p>
                          <p className="text-sm text-muted-foreground">5% commission</p>
                        </div>
                        <Switch defaultChecked />
                      </div>
                      <div className="flex items-center justify-between p-3 border rounded-lg">
                        <div>
                          <p className="font-medium">Daily ₦1,500</p>
                          <p className="text-sm text-muted-foreground">5% commission</p>
                        </div>
                        <Switch />
                      </div>
                    </div>
                  </div>

                  <div className="space-y-4">
                    <h3 className="font-semibold">System Configuration</h3>
                    <div className="space-y-3">
                      <div className="flex items-center justify-between p-3 border rounded-lg">
                        <div>
                          <p className="font-medium">Auto SMS Reminders</p>
                          <p className="text-sm text-muted-foreground">Send automatic payment reminders</p>
                        </div>
                        <Switch defaultChecked />
                      </div>
                      <div className="flex items-center justify-between p-3 border rounded-lg">
                        <div>
                          <p className="font-medium">Email Notifications</p>
                          <p className="text-sm text-muted-foreground">Send email updates</p>
                        </div>
                        <Switch defaultChecked />
                      </div>
                      <div className="flex items-center justify-between p-3 border rounded-lg">
                        <div>
                          <p className="font-medium">Auto Payout Processing</p>
                          <p className="text-sm text-muted-foreground">Automatically process due payouts</p>
                        </div>
                        <Switch />
                      </div>
                    </div>
                  </div>
                </div>

                <Separator />

                <div className="space-y-4">
                  <h3 className="font-semibold">User Roles & Permissions</h3>
                  <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
                    <Card>
                      <CardHeader className="pb-3">
                        <CardTitle className="text-base">Admin</CardTitle>
                      </CardHeader>
                      <CardContent className="space-y-2">
                        <div className="flex items-center gap-2">
                          <CheckCircle className="w-4 h-4 text-secondary" />
                          <span className="text-sm">Full access</span>
                        </div>
                        <div className="flex items-center gap-2">
                          <CheckCircle className="w-4 h-4 text-secondary" />
                          <span className="text-sm">Delete members</span>
                        </div>
                        <div className="flex items-center gap-2">
                          <CheckCircle className="w-4 h-4 text-secondary" />
                          <span className="text-sm">System settings</span>
                        </div>
                      </CardContent>
                    </Card>

                    <Card>
                      <CardHeader className="pb-3">
                        <CardTitle className="text-base">Staff</CardTitle>
                      </CardHeader>
                      <CardContent className="space-y-2">
                        <div className="flex items-center gap-2">
                          <CheckCircle className="w-4 h-4 text-secondary" />
                          <span className="text-sm">Add members</span>
                        </div>
                        <div className="flex items-center gap-2">
                          <CheckCircle className="w-4 h-4 text-secondary" />
                          <span className="text-sm">Record contributions</span>
                        </div>
                        <div className="flex items-center gap-2">
                          <XCircle className="w-4 h-4 text-muted-foreground" />
                          <span className="text-sm text-muted-foreground">Delete members</span>
                        </div>
                      </CardContent>
                    </Card>

                    <Card>
                      <CardHeader className="pb-3">
                        <CardTitle className="text-base">Agent</CardTitle>
                      </CardHeader>
                      <CardContent className="space-y-2">
                        <div className="flex items-center gap-2">
                          <CheckCircle className="w-4 h-4 text-secondary" />
                          <span className="text-sm">View assigned members</span>
                        </div>
                        <div className="flex items-center gap-2">
                          <CheckCircle className="w-4 h-4 text-secondary" />
                          <span className="text-sm">Record collections</span>
                        </div>
                        <div className="flex items-center gap-2">
                          <XCircle className="w-4 h-4 text-muted-foreground" />
                          <span className="text-sm text-muted-foreground">Add members</span>
                        </div>
                      </CardContent>
                    </Card>
                  </div>
                </div>
              </CardContent>
            </Card>
          </TabsContent>
        </Tabs>
      </div>
    </div>
  );
}