T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/lavocat.ca/private_html/src/components/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.ca/private_html/src/components/MobileLegalApp.tsx
import React, { useState, useEffect } from 'react';
import { Smartphone, Camera, MapPin, Clock, MessageSquare, FileText, Phone, Bell, Wifi, Battery, Signal, Calendar, Users, Briefcase } from 'lucide-react';

interface MobileFeature {
  id: string;
  name: string;
  description: string;
  icon: React.ReactNode;
  usage: number;
  satisfaction: number;
  status: 'live' | 'beta' | 'coming_soon';
}

interface ClientMeeting {
  id: string;
  clientName: string;
  location: string;
  time: string;
  type: 'detention_visit' | 'office_meeting' | 'court_appearance' | 'virtual_meeting';
  status: 'upcoming' | 'in_progress' | 'completed';
  notes?: string;
  duration: string;
}

interface MobileNotification {
  id: string;
  type: 'urgent' | 'reminder' | 'update' | 'message';
  title: string;
  message: string;
  time: string;
  read: boolean;
  actionRequired: boolean;
}

const MobileLegalApp: React.FC = () => {
  const [activeView, setActiveView] = useState<'overview' | 'features' | 'schedule' | 'demo'>('overview');
  const [mobileFeatures, setMobileFeatures] = useState<MobileFeature[]>([]);
  const [todayMeetings, setTodayMeetings] = useState<ClientMeeting[]>([]);
  const [notifications, setNotifications] = useState<MobileNotification[]>([]);

  useEffect(() => {
    loadMobileFeatures();
    loadTodaySchedule();
    loadNotifications();
  }, []);

  const loadMobileFeatures = () => {
    const features: MobileFeature[] = [
      {
        id: 'detention_check_in',
        name: 'Smart Detention Check-In',
        description: 'Automated check-in at Quebec detention centers with real-time lawyer verification',
        icon: <MapPin className="h-6 w-6" />,
        usage: 94,
        satisfaction: 97,
        status: 'live'
      },
      {
        id: 'voice_notes',
        name: 'AI Voice Transcription',
        description: 'Convert voice notes to legal documents with 98.5% accuracy in French and English',
        icon: <MessageSquare className="h-6 w-6" />,
        usage: 87,
        satisfaction: 95,
        status: 'live'
      },
      {
        id: 'document_camera',
        name: 'Document Scanner Pro',
        description: 'Scan and categorize legal documents with AI-powered text extraction',
        icon: <Camera className="h-6 w-6" />,
        usage: 91,
        satisfaction: 93,
        status: 'live'
      },
      {
        id: 'emergency_alerts',
        name: 'Emergency Case Alerts',
        description: 'Instant notifications for urgent deadlines, court changes, and client emergencies',
        icon: <Bell className="h-6 w-6" />,
        usage: 99,
        satisfaction: 98,
        status: 'live'
      },
      {
        id: 'offline_sync',
        name: 'Offline Case Access',
        description: 'Access critical case information without internet connection',
        icon: <Wifi className="h-6 w-6" />,
        usage: 76,
        satisfaction: 89,
        status: 'live'
      },
      {
        id: 'secure_calls',
        name: 'Encrypted Client Calls',
        description: 'Secure, privileged communication with end-to-end encryption',
        icon: <Phone className="h-6 w-6" />,
        usage: 83,
        satisfaction: 96,
        status: 'beta'
      },
      {
        id: 'ar_courtroom',
        name: 'AR Courtroom Assistant',
        description: 'Augmented reality overlay with case facts, precedents, and speaking notes',
        icon: <Briefcase className="h-6 w-6" />,
        usage: 0,
        satisfaction: 0,
        status: 'coming_soon'
      },
      {
        id: 'ai_legal_advisor',
        name: 'Pocket Legal AI',
        description: 'On-demand AI legal research and strategy recommendations',
        icon: <FileText className="h-6 w-6" />,
        usage: 68,
        satisfaction: 92,
        status: 'beta'
      }
    ];

    setMobileFeatures(features);
  };

  const loadTodaySchedule = () => {
    const meetings: ClientMeeting[] = [
      {
        id: 'meeting_1',
        clientName: 'Jean-Marc Dubois',
        location: 'Bordeaux Detention Center',
        time: '09:00 AM',
        type: 'detention_visit',
        status: 'upcoming',
        duration: '45 min',
        notes: 'Class action consultation - prepare updated case status'
      },
      {
        id: 'meeting_2',
        clientName: 'Maria Santos',
        location: 'Virtual Meeting',
        time: '11:30 AM',
        type: 'virtual_meeting',
        status: 'upcoming',
        duration: '30 min',
        notes: 'Immigration appeal hearing preparation'
      },
      {
        id: 'meeting_3',
        clientName: 'Class Action Hearing',
        location: 'Quebec Superior Court',
        time: '02:00 PM',
        type: 'court_appearance',
        status: 'upcoming',
        duration: '120 min',
        notes: 'Case 2024QCCS4539 - Motion for certification'
      }
    ];

    setTodayMeetings(meetings);
  };

  const loadNotifications = () => {
    const notifs: MobileNotification[] = [
      {
        id: 'notif_1',
        type: 'urgent',
        title: 'Court Date Changed',
        message: 'Bordeaux class action hearing moved to next Friday 2:00 PM',
        time: '5 min ago',
        read: false,
        actionRequired: true
      },
      {
        id: 'notif_2',
        type: 'reminder',
        title: 'Client Visit in 30 minutes',
        message: 'Jean-Marc Dubois at Bordeaux Detention Center',
        time: '30 min ago',
        read: false,
        actionRequired: false
      },
      {
        id: 'notif_3',
        type: 'update',
        title: 'New Document Uploaded',
        message: 'Medical records received for Santos case',
        time: '1 hour ago',
        read: true,
        actionRequired: false
      }
    ];

    setNotifications(notifs);
  };

  const getStatusColor = (status: string) => {
    switch (status) {
      case 'live': return 'bg-green-100 text-green-800';
      case 'beta': return 'bg-yellow-100 text-yellow-800';
      case 'coming_soon': return 'bg-gray-100 text-gray-800';
      default: return 'bg-gray-100 text-gray-800';
    }
  };

  const getMeetingTypeIcon = (type: string) => {
    switch (type) {
      case 'detention_visit': return <MapPin className="h-4 w-4 text-red-500" />;
      case 'office_meeting': return <Users className="h-4 w-4 text-blue-500" />;
      case 'court_appearance': return <Briefcase className="h-4 w-4 text-purple-500" />;
      case 'virtual_meeting': return <MessageSquare className="h-4 w-4 text-green-500" />;
      default: return <Calendar className="h-4 w-4 text-gray-500" />;
    }
  };

  const getNotificationColor = (type: string) => {
    switch (type) {
      case 'urgent': return 'border-l-red-500 bg-red-50';
      case 'reminder': return 'border-l-yellow-500 bg-yellow-50';
      case 'update': return 'border-l-blue-500 bg-blue-50';
      case 'message': return 'border-l-green-500 bg-green-50';
      default: return 'border-l-gray-500 bg-gray-50';
    }
  };

  return (
    <div className="p-6 bg-white">
      {/* Header */}
      <div className="mb-8">
        <div className="flex items-center space-x-3 mb-4">
          <Smartphone className="h-8 w-8 text-blue-600" />
          <h1 className="text-3xl font-bold text-gray-900">Legal Mobile Suite</h1>
        </div>
        <p className="text-gray-600">
          Revolutionary mobile platform for Quebec legal professionals - Practice law anywhere, anytime
        </p>
      </div>

      {/* Mobile App Stats */}
      <div className="grid grid-cols-1 md:grid-cols-4 gap-6 mb-8">
        <div className="bg-gradient-to-r from-blue-500 to-blue-600 p-6 rounded-lg text-white">
          <div className="flex items-center justify-between">
            <div>
              <p className="text-blue-100">Daily Active Users</p>
              <p className="text-2xl font-bold">1,247</p>
            </div>
            <Users className="h-8 w-8 text-blue-200" />
          </div>
        </div>
        <div className="bg-gradient-to-r from-green-500 to-green-600 p-6 rounded-lg text-white">
          <div className="flex items-center justify-between">
            <div>
              <p className="text-green-100">App Store Rating</p>
              <p className="text-2xl font-bold">4.9★</p>
            </div>
            <Smartphone className="h-8 w-8 text-green-200" />
          </div>
        </div>
        <div className="bg-gradient-to-r from-purple-500 to-purple-600 p-6 rounded-lg text-white">
          <div className="flex items-center justify-between">
            <div>
              <p className="text-purple-100">Mobile Efficiency</p>
              <p className="text-2xl font-bold">247%</p>
            </div>
            <Clock className="h-8 w-8 text-purple-200" />
          </div>
        </div>
        <div className="bg-gradient-to-r from-orange-500 to-orange-600 p-6 rounded-lg text-white">
          <div className="flex items-center justify-between">
            <div>
              <p className="text-orange-100">Data Security</p>
              <p className="text-2xl font-bold">256-bit</p>
            </div>
            <Bell className="h-8 w-8 text-orange-200" />
          </div>
        </div>
      </div>

      {/* Navigation Tabs */}
      <div className="border-b border-gray-200 mb-6">
        <nav className="-mb-px flex space-x-8">
          {[
            { id: 'overview', label: 'App Overview', icon: Smartphone },
            { id: 'features', label: 'Mobile Features', icon: FileText },
            { id: 'schedule', label: 'Today\'s Schedule', icon: Calendar },
            { id: 'demo', label: 'Live Demo', icon: Camera }
          ].map(({ id, label, icon: Icon }) => (
            <button
              key={id}
              onClick={() => setActiveView(id as any)}
              className={`py-2 px-1 border-b-2 font-medium text-sm flex items-center space-x-2 ${
                activeView === id
                  ? 'border-blue-500 text-blue-600'
                  : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300'
              }`}
            >
              <Icon className="h-5 w-5" />
              <span>{label}</span>
            </button>
          ))}
        </nav>
      </div>

      {/* Overview Tab */}
      {activeView === 'overview' && (
        <div className="space-y-8">
          {/* Mobile App Preview */}
          <div className="bg-gradient-to-r from-blue-50 to-purple-50 p-8 rounded-lg">
            <div className="flex flex-col lg:flex-row items-center space-y-6 lg:space-y-0 lg:space-x-12">
              <div className="flex-1">
                <h3 className="text-2xl font-bold text-gray-900 mb-4">Legal Practice in Your Pocket</h3>
                <p className="text-gray-700 mb-6">
                  Access your entire legal practice from anywhere in Quebec. Our mobile app provides 
                  full functionality optimized for detention center visits, court appearances, and client meetings.
                </p>
                <div className="grid grid-cols-2 gap-4 mb-6">
                  <div className="text-center">
                    <p className="text-2xl font-bold text-blue-600">99.9%</p>
                    <p className="text-sm text-gray-600">Uptime</p>
                  </div>
                  <div className="text-center">
                    <p className="text-2xl font-bold text-green-600">3.2s</p>
                    <p className="text-sm text-gray-600">Load Time</p>
                  </div>
                  <div className="text-center">
                    <p className="text-2xl font-bold text-purple-600">256-bit</p>
                    <p className="text-sm text-gray-600">Encryption</p>
                  </div>
                  <div className="text-center">
                    <p className="text-2xl font-bold text-orange-600">24/7</p>
                    <p className="text-sm text-gray-600">Support</p>
                  </div>
                </div>
                <div className="flex space-x-4">
                  <button className="bg-black text-white px-6 py-3 rounded-lg flex items-center space-x-2">
                    <span>📱</span>
                    <span>Download iOS</span>
                  </button>
                  <button className="bg-green-600 text-white px-6 py-3 rounded-lg flex items-center space-x-2">
                    <span>🤖</span>
                    <span>Download Android</span>
                  </button>
                </div>
              </div>
              
              {/* Mobile Phone Mockup */}
              <div className="flex-shrink-0">
                <div className="bg-gray-900 rounded-3xl p-2 w-72 h-96">
                  <div className="bg-white rounded-2xl w-full h-full p-4 overflow-hidden">
                    {/* Status Bar */}
                    <div className="flex items-center justify-between mb-4 text-xs">
                      <div className="flex items-center space-x-1">
                        <Signal className="h-3 w-3" />
                        <Wifi className="h-3 w-3" />
                        <span>9:41 AM</span>
                      </div>
                      <div className="flex items-center space-x-1">
                        <span>100%</span>
                        <Battery className="h-3 w-3" />
                      </div>
                    </div>
                    
                    {/* App Interface */}
                    <div className="space-y-3">
                      <div className="text-lg font-bold text-center mb-4">Legal Suite Pro</div>
                      
                      {/* Quick Actions */}
                      <div className="grid grid-cols-2 gap-2">
                        <div className="bg-blue-100 p-3 rounded-lg text-center">
                          <MapPin className="h-6 w-6 mx-auto text-blue-600 mb-1" />
                          <span className="text-xs text-blue-800">Check In</span>
                        </div>
                        <div className="bg-green-100 p-3 rounded-lg text-center">
                          <MessageSquare className="h-6 w-6 mx-auto text-green-600 mb-1" />
                          <span className="text-xs text-green-800">Voice Note</span>
                        </div>
                        <div className="bg-purple-100 p-3 rounded-lg text-center">
                          <Camera className="h-6 w-6 mx-auto text-purple-600 mb-1" />
                          <span className="text-xs text-purple-800">Scan Doc</span>
                        </div>
                        <div className="bg-orange-100 p-3 rounded-lg text-center">
                          <Calendar className="h-6 w-6 mx-auto text-orange-600 mb-1" />
                          <span className="text-xs text-orange-800">Schedule</span>
                        </div>
                      </div>

                      {/* Today's Schedule Preview */}
                      <div className="bg-gray-50 p-3 rounded-lg">
                        <div className="text-sm font-semibold mb-2">Today's Schedule</div>
                        <div className="space-y-2">
                          <div className="flex items-center space-x-2 text-xs">
                            <div className="w-2 h-2 bg-red-500 rounded-full"></div>
                            <span>9:00 AM - Bordeaux Visit</span>
                          </div>
                          <div className="flex items-center space-x-2 text-xs">
                            <div className="w-2 h-2 bg-blue-500 rounded-full"></div>
                            <span>2:00 PM - Court Hearing</span>
                          </div>
                        </div>
                      </div>

                      {/* Notifications */}
                      <div className="bg-red-50 border border-red-200 p-2 rounded-lg">
                        <div className="flex items-center space-x-2">
                          <Bell className="h-4 w-4 text-red-600" />
                          <span className="text-xs text-red-800">Court date changed</span>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>

          {/* Key Mobile Advantages */}
          <div className="grid grid-cols-1 md:grid-cols-3 gap-6">
            <div className="bg-white border border-gray-200 rounded-lg p-6">
              <MapPin className="h-8 w-8 text-red-500 mb-4" />
              <h4 className="font-semibold text-gray-900 mb-2">Detention Center Integration</h4>
              <p className="text-gray-600 text-sm">
                Seamless check-in at all 56 Quebec detention facilities with automatic lawyer verification and visit logging.
              </p>
            </div>
            <div className="bg-white border border-gray-200 rounded-lg p-6">
              <Camera className="h-8 w-8 text-blue-500 mb-4" />
              <h4 className="font-semibold text-gray-900 mb-2">AI Document Processing</h4>
              <p className="text-gray-600 text-sm">
                Scan, categorize, and extract text from legal documents with 98.5% accuracy in both French and English.
              </p>
            </div>
            <div className="bg-white border border-gray-200 rounded-lg p-6">
              <Clock className="h-8 w-8 text-green-500 mb-4" />
              <h4 className="font-semibold text-gray-900 mb-2">Real-Time Sync</h4>
              <p className="text-gray-600 text-sm">
                All changes sync instantly across desktop and mobile, with offline capabilities for secure environments.
              </p>
            </div>
          </div>
        </div>
      )}

      {/* Features Tab */}
      {activeView === 'features' && (
        <div className="space-y-6">
          <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
            {mobileFeatures.map(feature => (
              <div key={feature.id} className="border border-gray-200 rounded-lg p-6">
                <div className="flex items-start space-x-4">
                  <div className="bg-blue-100 p-3 rounded-lg">
                    {feature.icon}
                  </div>
                  <div className="flex-1">
                    <div className="flex items-center space-x-2 mb-2">
                      <h4 className="font-semibold text-gray-900">{feature.name}</h4>
                      <span className={`px-2 py-1 rounded text-xs ${getStatusColor(feature.status)}`}>
                        {feature.status.replace('_', ' ').toUpperCase()}
                      </span>
                    </div>
                    <p className="text-gray-600 text-sm mb-4">{feature.description}</p>
                    
                    {feature.status !== 'coming_soon' && (
                      <div className="grid grid-cols-2 gap-4">
                        <div>
                          <p className="text-xs text-gray-500 mb-1">Usage Rate</p>
                          <div className="flex items-center space-x-2">
                            <div className="flex-1 bg-gray-200 rounded-full h-2">
                              <div 
                                className="bg-blue-600 h-2 rounded-full" 
                                style={{ width: `${feature.usage}%` }}
                              ></div>
                            </div>
                            <span className="text-sm font-medium text-gray-900">{feature.usage}%</span>
                          </div>
                        </div>
                        <div>
                          <p className="text-xs text-gray-500 mb-1">Satisfaction</p>
                          <div className="flex items-center space-x-2">
                            <div className="flex-1 bg-gray-200 rounded-full h-2">
                              <div 
                                className="bg-green-600 h-2 rounded-full" 
                                style={{ width: `${feature.satisfaction}%` }}
                              ></div>
                            </div>
                            <span className="text-sm font-medium text-gray-900">{feature.satisfaction}%</span>
                          </div>
                        </div>
                      </div>
                    )}
                  </div>
                </div>
              </div>
            ))}
          </div>
        </div>
      )}

      {/* Schedule Tab */}
      {activeView === 'schedule' && (
        <div className="space-y-6">
          <div className="bg-blue-50 p-6 rounded-lg">
            <h3 className="text-lg font-semibold text-gray-900 mb-2">Today's Mobile Schedule</h3>
            <p className="text-gray-600">Optimized for mobile access during client visits and court appearances.</p>
          </div>

          <div className="grid grid-cols-1 lg:grid-cols-3 gap-6">
            {/* Schedule */}
            <div className="lg:col-span-2 space-y-4">
              {todayMeetings.map(meeting => (
                <div key={meeting.id} className="border border-gray-200 rounded-lg p-6">
                  <div className="flex items-start justify-between mb-4">
                    <div className="flex items-center space-x-3">
                      {getMeetingTypeIcon(meeting.type)}
                      <div>
                        <h4 className="font-semibold text-gray-900">{meeting.clientName}</h4>
                        <p className="text-sm text-gray-600">{meeting.location}</p>
                      </div>
                    </div>
                    <div className="text-right">
                      <p className="font-medium text-gray-900">{meeting.time}</p>
                      <p className="text-sm text-gray-500">{meeting.duration}</p>
                    </div>
                  </div>
                  
                  {meeting.notes && (
                    <div className="bg-gray-50 p-3 rounded-lg mb-4">
                      <p className="text-sm text-gray-700">{meeting.notes}</p>
                    </div>
                  )}
                  
                  <div className="flex space-x-3">
                    <button className="bg-blue-600 text-white px-4 py-2 rounded-lg text-sm flex items-center space-x-2">
                      <MapPin className="h-4 w-4" />
                      <span>Navigate</span>
                    </button>
                    <button className="bg-gray-100 text-gray-700 px-4 py-2 rounded-lg text-sm flex items-center space-x-2">
                      <MessageSquare className="h-4 w-4" />
                      <span>Quick Note</span>
                    </button>
                    <button className="bg-green-100 text-green-700 px-4 py-2 rounded-lg text-sm flex items-center space-x-2">
                      <Camera className="h-4 w-4" />
                      <span>Scan Docs</span>
                    </button>
                  </div>
                </div>
              ))}
            </div>

            {/* Notifications Panel */}
            <div className="space-y-4">
              <h4 className="font-semibold text-gray-900">Mobile Notifications</h4>
              {notifications.map(notification => (
                <div key={notification.id} className={`border-l-4 p-4 rounded-lg ${getNotificationColor(notification.type)}`}>
                  <div className="flex items-start justify-between mb-2">
                    <h5 className="font-medium text-gray-900 text-sm">{notification.title}</h5>
                    <span className="text-xs text-gray-500">{notification.time}</span>
                  </div>
                  <p className="text-sm text-gray-700 mb-3">{notification.message}</p>
                  {notification.actionRequired && (
                    <button className="bg-blue-600 text-white px-3 py-1 rounded text-xs">
                      Take Action
                    </button>
                  )}
                </div>
              ))}
            </div>
          </div>
        </div>
      )}

      {/* Demo Tab */}
      {activeView === 'demo' && (
        <div className="space-y-6">
          <div className="bg-gradient-to-r from-purple-50 to-blue-50 p-6 rounded-lg">
            <h3 className="text-lg font-semibold text-gray-900 mb-2">Live Mobile Demo</h3>
            <p className="text-gray-600">Interactive demonstration of key mobile features in action.</p>
          </div>

          <div className="grid grid-cols-1 lg:grid-cols-2 gap-8">
            {/* Demo Video/Interface */}
            <div className="bg-gray-900 rounded-lg p-8 text-center">
              <div className="bg-white rounded-lg p-6 h-96 flex items-center justify-center">
                <div className="text-center">
                  <Camera className="h-16 w-16 text-gray-400 mx-auto mb-4" />
                  <p className="text-gray-600 mb-4">Interactive Mobile Demo</p>
                  <button className="bg-blue-600 text-white px-6 py-3 rounded-lg">
                    Start Demo
                  </button>
                </div>
              </div>
            </div>

            {/* Demo Features */}
            <div className="space-y-4">
              <h4 className="font-semibold text-gray-900">Demo Scenarios</h4>
              
              <div className="space-y-3">
                {[
                  {
                    title: 'Detention Center Check-In',
                    description: 'Experience automated lawyer verification and visit scheduling',
                    duration: '2 min',
                    difficulty: 'Easy'
                  },
                  {
                    title: 'Voice-to-Legal Document',
                    description: 'Convert spoken notes into formatted legal briefs',
                    duration: '3 min',
                    difficulty: 'Medium'
                  },
                  {
                    title: 'Emergency Court Alert',
                    description: 'Handle urgent court date changes on mobile',
                    duration: '1 min',
                    difficulty: 'Easy'
                  },
                  {
                    title: 'Document Scanner Workflow',
                    description: 'Scan, categorize, and file court documents',
                    duration: '4 min',
                    difficulty: 'Medium'
                  }
                ].map((scenario, idx) => (
                  <div key={idx} className="border border-gray-200 rounded-lg p-4">
                    <div className="flex items-center justify-between mb-2">
                      <h5 className="font-medium text-gray-900">{scenario.title}</h5>
                      <div className="flex items-center space-x-2">
                        <span className="text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded">
                          {scenario.duration}
                        </span>
                        <span className={`text-xs px-2 py-1 rounded ${
                          scenario.difficulty === 'Easy' ? 'bg-green-100 text-green-800' : 'bg-yellow-100 text-yellow-800'
                        }`}>
                          {scenario.difficulty}
                        </span>
                      </div>
                    </div>
                    <p className="text-sm text-gray-600 mb-3">{scenario.description}</p>
                    <button className="bg-gray-100 text-gray-700 px-4 py-2 rounded text-sm hover:bg-gray-200">
                      Try Demo
                    </button>
                  </div>
                ))}
              </div>

              <div className="bg-green-50 border border-green-200 p-4 rounded-lg">
                <h5 className="font-medium text-green-900 mb-2">Download Beta App</h5>
                <p className="text-sm text-green-700 mb-3">
                  Get early access to our mobile beta with exclusive Quebec legal features.
                </p>
                <div className="flex space-x-2">
                  <button className="bg-green-600 text-white px-4 py-2 rounded text-sm">
                    iOS TestFlight
                  </button>
                  <button className="bg-green-600 text-white px-4 py-2 rounded text-sm">
                    Android Beta
                  </button>
                </div>
              </div>
            </div>
          </div>
        </div>
      )}
    </div>
  );
};

export default MobileLegalApp; 

CasperSecurity Mini