{"version":3,"sources":["../src/components/BirhausSEPRELADDashboard.tsx","../src/components/BirhausAuditTrail.tsx","../src/components/BirhausPrivacyManager.tsx","../src/components/v3/BirhausSEPRELADDashboardV3.tsx","../src/components/v3/BirhausAuditTrailV3.tsx"],"names":["cn","inputs","twMerge","clsx","reportTypeConfig","jsx","AlertTriangle","DollarSign","Flag","statusConfig","Clock","Send","CheckCircle","XCircle","BirhausSEPRELADDashboard","reportes","onCreateReport","onViewReport","onSubmitReport","showCreateButton","className","props","language","reportViolation","useBirhaus","searchTerm","setSearchTerm","React","filterStatus","setFilterStatus","filterType","setFilterType","filteredReports","filtered","term","report","a","b","summaryStats","total","pending","r","sent","processed","rejected","totalUSD","sum","highRisk","handleCreateReport","handleViewReport","handleSubmitReport","reportId","isOverdue","jsxs","Plus","FileText","Shield","Search","e","key","config","typeConfig","statusInfo","overdue","subject","Users","Building","Calendar","Eye","indicator","index","eventTypeConfig","Edit","Trash2","Download","Upload","Key","Settings","severityConfig","Info","BirhausAuditTrail","events","filters","onEventClick","onExport","showExport","showFilters","pageSize","localFilters","setLocalFilters","showFiltersPanel","setShowFiltersPanel","currentPage","setCurrentPage","expandedEvents","setExpandedEvents","filteredEvents","event","userTerm","resourceTerm","totalPages","paginatedEvents","start","critical","high","riskEvents","uniqueUsers","yesterday","recentActivity","handleEventClick","handleExport","toggleEventExpansion","eventId","prev","newSet","updateFilters","updates","clearFilters","Filter","ChevronDown","option","Activity","severityInfo","isExpanded","isClickable","User","MapPin","Monitor","page","rightsConfig","Lock","AlertCircle","BirhausPrivacyManager","requests","onRequestClick","onCreateRequest","onUpdateStatus","showStatusActions","showOverdueOnly","setShowOverdueOnly","request","isApproachingDeadline","daysUntilDeadline","filteredRequests","data","aOverdue","bOverdue","aApproaching","bApproaching","approaching","completed","completedWithTime","avgResponseTime","days","handleRequestClick","handleCreateRequest","handleUpdateStatus","requestId","status","rightConfig","approachingDeadline","Mail","Fragment","Database","Globe","system","seprelaDashboardV3Variants","cva","metricCardVariants","BirhausSEPRELADDashboardV3","reports","metrics","enableGlass","glassVariant","borderRadius","spacing","complianceStatus","floating","showMetrics","showRecentReports","showComplianceStatus","showRiskMatrix","maxRecentReports","canViewReports","canSubmitReports","canApproveReports","canDownloadReports","reducedMotion","themeName","onReportClick","onDownloadReport","onRefreshData","title","titleEs","titleEn","useTheme","isRefreshing","setIsRefreshing","selectedTimeRange","setSelectedTimeRange","overallComplianceStatus","complianceRate","formatCurrency","value","currency","locale","getReportTypeInfo","type","TrendingUp","getStatusInfo","statuses","handleRefresh","recentReports","Sparkles","RefreshCw","count","typeInfo","auditTrailV3Variants","auditEventVariants","BirhausAuditTrailV3","showSearch","showUserDetails","showMetadata","showTimeline","itemsPerPage","canViewDetails","canExportAudit","canReviewEvents","onFilterChange","onExportAudit","onReviewEvent","loading","setFilters","showFilterPanel","setShowFilterPanel","expandedEvent","setExpandedEvent","getActionIcon","action","resourceType","actionLower","Unlock","getSeverityInfo","severity","severities","end","handleSearch","handleFilterChange","newFilters","toggleEventDetails","_","i","isActive","s","ActionIcon"],"mappings":"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","file":"index.mjs","sourcesContent":["'use client'\n\nimport React from 'react'\nimport { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\nimport { useBirhaus } from '@birhaus/provider'\nimport { \n  AlertTriangle,\n  FileText,\n  Send,\n  Clock,\n  CheckCircle,\n  XCircle,\n  Plus,\n  Search,\n  Filter,\n  Download,\n  Eye,\n  Users,\n  Building,\n  DollarSign,\n  Calendar,\n  Shield,\n  Flag\n} from 'lucide-react'\nimport type { \n  BirhausSEPRELADDashboardProps,\n  SEPRELADReport,\n  SEPRELADReportType,\n  SEPRELADStatus\n} from '../types/compliance'\n\n// Local cn utility\nconst cn = (...inputs: any[]) => twMerge(clsx(inputs))\n\n// SEPRELAD report type configuration\nconst reportTypeConfig: Record<SEPRELADReportType, {\n  icon: React.ReactNode\n  colorClass: string\n  nameEs: string\n  nameEn: string\n}> = {\n  operacion_sospechosa: {\n    icon: <AlertTriangle size={20} />,\n    colorClass: 'text-red-600 bg-red-100',\n    nameEs: 'Operación Sospechosa',\n    nameEn: 'Suspicious Operation'\n  },\n  operacion_efectivo: {\n    icon: <DollarSign size={20} />,\n    colorClass: 'text-orange-600 bg-orange-100',\n    nameEs: 'Operación en Efectivo',\n    nameEn: 'Cash Operation'\n  },\n  transaccion_umbral: {\n    icon: <Flag size={20} />,\n    colorClass: 'text-yellow-600 bg-yellow-100',\n    nameEs: 'Transacción Umbral',\n    nameEn: 'Threshold Transaction'\n  },\n  actividad_inusual: {\n    icon: <AlertTriangle size={20} />,\n    colorClass: 'text-purple-600 bg-purple-100',\n    nameEs: 'Actividad Inusual',\n    nameEn: 'Unusual Activity'\n  }\n}\n\n// SEPRELAD status configuration\nconst statusConfig: Record<SEPRELADStatus, {\n  icon: React.ReactNode\n  colorClass: string\n  nameEs: string\n  nameEn: string\n}> = {\n  pendiente: {\n    icon: <Clock size={16} />,\n    colorClass: 'text-yellow-700 bg-yellow-100',\n    nameEs: 'Pendiente',\n    nameEn: 'Pending'\n  },\n  enviado: {\n    icon: <Send size={16} />,\n    colorClass: 'text-blue-700 bg-blue-100',\n    nameEs: 'Enviado',\n    nameEn: 'Sent'\n  },\n  procesado: {\n    icon: <CheckCircle size={16} />,\n    colorClass: 'text-green-700 bg-green-100',\n    nameEs: 'Procesado',\n    nameEn: 'Processed'\n  },\n  rechazado: {\n    icon: <XCircle size={16} />,\n    colorClass: 'text-red-700 bg-red-100',\n    nameEs: 'Rechazado',\n    nameEn: 'Rejected'\n  }\n}\n\n/**\n * BirhausSEPRELADDashboard - SEPRELAD compliance dashboard component\n * \n * Features:\n * - Comprehensive SEPRELAD report management for Paraguay compliance\n * - Real-time status tracking and submission workflow\n * - Multi-language support (Spanish-first for regulatory requirements)\n * - Report type categorization with visual indicators\n * - Search, filter, and export functionality\n * - Regulatory deadline tracking and alerts\n * - Person/Entity information management\n * - Risk assessment integration\n * - Document attachment support\n * - Miller's Law compliance (max 7 visible reports per view)\n */\nexport function BirhausSEPRELADDashboard({\n  reportes = [],\n  onCreateReport,\n  onViewReport,\n  onSubmitReport,\n  showCreateButton = true,\n  className,\n  ...props\n}: BirhausSEPRELADDashboardProps) {\n  const { language, reportViolation } = useBirhaus()\n  const [searchTerm, setSearchTerm] = React.useState('')\n  const [filterStatus, setFilterStatus] = React.useState<SEPRELADStatus | 'all'>('all')\n  const [filterType, setFilterType] = React.useState<SEPRELADReportType | 'all'>('all')\n\n  // BIRHAUS validation: Check cognitive load (max 7 reports - Miller's Law)\n  React.useEffect(() => {\n    if (reportes.length > 7) {\n      reportViolation({\n        type: 'cognitive',\n        severity: 'warning',\n        element: document.createElement('div'),\n        message: `SEPRELAD dashboard shows ${reportes.length} reports (max recommended: 7)`,\n        messageEs: `Panel SEPRELAD muestra ${reportes.length} reportes (máximo recomendado: 7)`,\n        messageEn: `SEPRELAD dashboard shows ${reportes.length} reports (max recommended: 7)`,\n        recommendation: 'Use pagination or filtering to reduce cognitive load',\n        birhausPrinciple: 1 // Cognitive load reduction\n      })\n    }\n  }, [reportes.length, reportViolation])\n\n  // Filter reports based on search and filters\n  const filteredReports = React.useMemo(() => {\n    let filtered = reportes\n\n    // Search filter\n    if (searchTerm) {\n      const term = searchTerm.toLowerCase()\n      filtered = filtered.filter(report =>\n        report.numeroReporte.toLowerCase().includes(term) ||\n        report.descripcionOperacion.toLowerCase().includes(term) ||\n        report.entidadReportante.toLowerCase().includes(term) ||\n        report.personaFisica?.nombres.toLowerCase().includes(term) ||\n        report.personaFisica?.apellidos.toLowerCase().includes(term) ||\n        report.personaJuridica?.razonSocial.toLowerCase().includes(term)\n      )\n    }\n\n    // Status filter\n    if (filterStatus !== 'all') {\n      filtered = filtered.filter(report => report.estado === filterStatus)\n    }\n\n    // Type filter\n    if (filterType !== 'all') {\n      filtered = filtered.filter(report => report.tipo === filterType)\n    }\n\n    return filtered.sort((a, b) => new Date(b.fechaCreacion).getTime() - new Date(a.fechaCreacion).getTime())\n  }, [reportes, searchTerm, filterStatus, filterType])\n\n  // Calculate summary statistics\n  const summaryStats = React.useMemo(() => {\n    const total = filteredReports.length\n    const pending = filteredReports.filter(r => r.estado === 'pendiente').length\n    const sent = filteredReports.filter(r => r.estado === 'enviado').length\n    const processed = filteredReports.filter(r => r.estado === 'procesado').length\n    const rejected = filteredReports.filter(r => r.estado === 'rechazado').length\n    \n    // Calculate total USD amount\n    const totalUSD = filteredReports.reduce((sum, report) => sum + report.montoUSD, 0)\n    \n    // High-risk reports\n    const highRisk = filteredReports.filter(r => r.nivelRiesgo === 'alto').length\n    \n    return {\n      total,\n      pending,\n      sent,\n      processed,\n      rejected,\n      totalUSD,\n      highRisk\n    }\n  }, [filteredReports])\n\n  // Handle actions\n  const handleCreateReport = React.useCallback(() => {\n    onCreateReport?.()\n  }, [onCreateReport])\n\n  const handleViewReport = React.useCallback((report: SEPRELADReport) => {\n    onViewReport?.(report)\n  }, [onViewReport])\n\n  const handleSubmitReport = React.useCallback((reportId: string) => {\n    onSubmitReport?.(reportId)\n  }, [onSubmitReport])\n\n  // Check if report is overdue\n  const isOverdue = React.useCallback((report: SEPRELADReport) => {\n    const daysSinceCreation = Math.floor(\n      (Date.now() - report.fechaCreacion.getTime()) / (1000 * 60 * 60 * 24)\n    )\n    // SEPRELAD requires reporting within 15 days for suspicious operations\n    return daysSinceCreation > 15 && report.estado === 'pendiente'\n  }, [])\n\n  return (\n    <div className={cn('space-y-6', className)} {...props}>\n      {/* Header */}\n      <div className=\"flex items-center justify-between\">\n        <div>\n          <h1 className=\"text-2xl font-bold text-birhaus-foreground\">\n            {language === 'es' ? 'Panel SEPRELAD' : 'SEPRELAD Dashboard'}\n          </h1>\n          <p className=\"text-birhaus-muted-foreground\">\n            {language === 'es' \n              ? 'Gestión de reportes de cumplimiento normativo paraguayo'\n              : 'Paraguay regulatory compliance report management'\n            }\n          </p>\n        </div>\n        \n        {showCreateButton && onCreateReport && (\n          <button\n            onClick={handleCreateReport}\n            className=\"flex items-center gap-2 px-4 py-2 bg-birhaus-primary text-white rounded-lg hover:bg-birhaus-primary/90 transition-colors\"\n          >\n            <Plus size={16} />\n            <span>{language === 'es' ? 'Nuevo Reporte' : 'New Report'}</span>\n          </button>\n        )}\n      </div>\n\n      {/* Summary Statistics */}\n      <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\">\n        <div className=\"bg-white p-4 border border-birhaus-border rounded-lg\">\n          <div className=\"flex items-center gap-3\">\n            <div className=\"p-2 bg-blue-100 text-blue-600 rounded-full\">\n              <FileText size={20} />\n            </div>\n            <div>\n              <p className=\"text-2xl font-bold text-birhaus-foreground\">{summaryStats.total}</p>\n              <p className=\"text-sm text-birhaus-muted-foreground\">\n                {language === 'es' ? 'Total Reportes' : 'Total Reports'}\n              </p>\n            </div>\n          </div>\n        </div>\n\n        <div className=\"bg-white p-4 border border-birhaus-border rounded-lg\">\n          <div className=\"flex items-center gap-3\">\n            <div className=\"p-2 bg-yellow-100 text-yellow-600 rounded-full\">\n              <Clock size={20} />\n            </div>\n            <div>\n              <p className=\"text-2xl font-bold text-birhaus-foreground\">{summaryStats.pending}</p>\n              <p className=\"text-sm text-birhaus-muted-foreground\">\n                {language === 'es' ? 'Pendientes' : 'Pending'}\n              </p>\n            </div>\n          </div>\n        </div>\n\n        <div className=\"bg-white p-4 border border-birhaus-border rounded-lg\">\n          <div className=\"flex items-center gap-3\">\n            <div className=\"p-2 bg-red-100 text-red-600 rounded-full\">\n              <Shield size={20} />\n            </div>\n            <div>\n              <p className=\"text-2xl font-bold text-birhaus-foreground\">{summaryStats.highRisk}</p>\n              <p className=\"text-sm text-birhaus-muted-foreground\">\n                {language === 'es' ? 'Alto Riesgo' : 'High Risk'}\n              </p>\n            </div>\n          </div>\n        </div>\n\n        <div className=\"bg-white p-4 border border-birhaus-border rounded-lg\">\n          <div className=\"flex items-center gap-3\">\n            <div className=\"p-2 bg-green-100 text-green-600 rounded-full\">\n              <DollarSign size={20} />\n            </div>\n            <div>\n              <p className=\"text-lg font-bold text-birhaus-foreground\">\n                ${summaryStats.totalUSD.toLocaleString()} USD\n              </p>\n              <p className=\"text-sm text-birhaus-muted-foreground\">\n                {language === 'es' ? 'Monto Total' : 'Total Amount'}\n              </p>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      {/* Search and Filters */}\n      <div className=\"flex items-center gap-4 flex-wrap\">\n        {/* Search */}\n        <div className=\"relative flex-1 max-w-md\">\n          <Search size={16} className=\"absolute left-3 top-1/2 transform -translate-y-1/2 text-birhaus-muted-foreground\" />\n          <input\n            type=\"text\"\n            value={searchTerm}\n            onChange={(e) => setSearchTerm(e.target.value)}\n            placeholder={language === 'es' ? 'Buscar reportes...' : 'Search reports...'}\n            className=\"w-full pl-10 pr-4 py-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary focus:border-birhaus-primary\"\n          />\n        </div>\n\n        {/* Status Filter */}\n        <select\n          value={filterStatus}\n          onChange={(e) => setFilterStatus(e.target.value as SEPRELADStatus | 'all')}\n          className=\"px-4 py-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary\"\n        >\n          <option value=\"all\">{language === 'es' ? 'Todos los Estados' : 'All Statuses'}</option>\n          {Object.entries(statusConfig).map(([key, config]) => (\n            <option key={key} value={key}>\n              {language === 'es' ? config.nameEs : config.nameEn}\n            </option>\n          ))}\n        </select>\n\n        {/* Type Filter */}\n        <select\n          value={filterType}\n          onChange={(e) => setFilterType(e.target.value as SEPRELADReportType | 'all')}\n          className=\"px-4 py-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary\"\n        >\n          <option value=\"all\">{language === 'es' ? 'Todos los Tipos' : 'All Types'}</option>\n          {Object.entries(reportTypeConfig).map(([key, config]) => (\n            <option key={key} value={key}>\n              {language === 'es' ? config.nameEs : config.nameEn}\n            </option>\n          ))}\n        </select>\n      </div>\n\n      {/* Reports List */}\n      <div className=\"space-y-4\">\n        {filteredReports.length === 0 ? (\n          <div className=\"text-center py-12 bg-white border border-birhaus-border rounded-lg\">\n            <FileText size={48} className=\"mx-auto mb-4 text-birhaus-muted-foreground/50\" />\n            <h3 className=\"text-lg font-semibold text-birhaus-foreground mb-2\">\n              {language === 'es' ? 'No hay reportes' : 'No reports found'}\n            </h3>\n            <p className=\"text-birhaus-muted-foreground mb-4\">\n              {searchTerm || filterStatus !== 'all' || filterType !== 'all' ? (\n                language === 'es' \n                  ? 'No se encontraron reportes con los filtros aplicados'\n                  : 'No reports found with applied filters'\n              ) : (\n                language === 'es'\n                  ? 'Crea tu primer reporte SEPRELAD'\n                  : 'Create your first SEPRELAD report'\n              )}\n            </p>\n            {showCreateButton && onCreateReport && (\n              <button\n                onClick={handleCreateReport}\n                className=\"inline-flex items-center gap-2 px-4 py-2 bg-birhaus-primary text-white rounded-lg hover:bg-birhaus-primary/90 transition-colors\"\n              >\n                <Plus size={16} />\n                <span>{language === 'es' ? 'Crear Reporte' : 'Create Report'}</span>\n              </button>\n            )}\n          </div>\n        ) : (\n          filteredReports.map((report) => {\n            const typeConfig = reportTypeConfig[report.tipo]\n            const statusInfo = statusConfig[report.estado]\n            const overdue = isOverdue(report)\n            const subject = report.personaFisica \n              ? `${report.personaFisica.nombres} ${report.personaFisica.apellidos}`\n              : report.personaJuridica?.razonSocial || 'N/A'\n\n            return (\n              <div\n                key={report.id}\n                className={cn(\n                  'bg-white p-6 border rounded-lg transition-all duration-200 hover:shadow-md',\n                  overdue ? 'border-red-300 bg-red-50' : 'border-birhaus-border',\n                  onViewReport && 'cursor-pointer hover:border-birhaus-primary/50'\n                )}\n                onClick={() => onViewReport && handleViewReport(report)}\n              >\n                <div className=\"flex items-start justify-between mb-4\">\n                  <div className=\"flex items-start gap-4\">\n                    <div className={cn('p-3 rounded-full', typeConfig.colorClass)}>\n                      {typeConfig.icon}\n                    </div>\n                    \n                    <div className=\"flex-1\">\n                      <div className=\"flex items-center gap-2 mb-2\">\n                        <h3 className=\"text-lg font-semibold text-birhaus-foreground\">\n                          {report.numeroReporte}\n                        </h3>\n                        <span className={cn(\n                          'flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full',\n                          statusInfo.colorClass\n                        )}>\n                          {statusInfo.icon}\n                          <span>{language === 'es' ? statusInfo.nameEs : statusInfo.nameEn}</span>\n                        </span>\n                        \n                        {overdue && (\n                          <span className=\"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full text-red-700 bg-red-100\">\n                            <AlertTriangle size={12} />\n                            <span>{language === 'es' ? 'Vencido' : 'Overdue'}</span>\n                          </span>\n                        )}\n                      </div>\n                      \n                      <p className=\"text-sm text-birhaus-muted-foreground mb-2\">\n                        {language === 'es' ? typeConfig.nameEs : typeConfig.nameEn}\n                      </p>\n                      \n                      <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 text-sm\">\n                        <div>\n                          <p className=\"text-birhaus-muted-foreground mb-1\">\n                            {language === 'es' ? 'Sujeto' : 'Subject'}\n                          </p>\n                          <p className=\"font-medium flex items-center gap-1\">\n                            {report.personaFisica ? <Users size={12} /> : <Building size={12} />}\n                            {subject}\n                          </p>\n                        </div>\n                        \n                        <div>\n                          <p className=\"text-birhaus-muted-foreground mb-1\">\n                            {language === 'es' ? 'Monto USD' : 'USD Amount'}\n                          </p>\n                          <p className=\"font-medium\">\n                            ${report.montoUSD.toLocaleString()}\n                          </p>\n                        </div>\n                        \n                        <div>\n                          <p className=\"text-birhaus-muted-foreground mb-1\">\n                            {language === 'es' ? 'Nivel de Riesgo' : 'Risk Level'}\n                          </p>\n                          <p className={cn(\n                            'font-medium',\n                            report.nivelRiesgo === 'alto' && 'text-red-600',\n                            report.nivelRiesgo === 'medio' && 'text-yellow-600',\n                            report.nivelRiesgo === 'bajo' && 'text-green-600'\n                          )}>\n                            {report.nivelRiesgo.charAt(0).toUpperCase() + report.nivelRiesgo.slice(1)}\n                          </p>\n                        </div>\n                        \n                        <div>\n                          <p className=\"text-birhaus-muted-foreground mb-1\">\n                            {language === 'es' ? 'Fecha Creación' : 'Created'}\n                          </p>\n                          <p className=\"font-medium flex items-center gap-1\">\n                            <Calendar size={12} />\n                            {report.fechaCreacion.toLocaleDateString(language === 'es' ? 'es-PY' : 'en-US')}\n                          </p>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  \n                  {/* Action buttons */}\n                  <div className=\"flex items-center gap-2\">\n                    {report.estado === 'pendiente' && onSubmitReport && (\n                      <button\n                        onClick={(e) => {\n                          e.stopPropagation()\n                          handleSubmitReport(report.id)\n                        }}\n                        className=\"flex items-center gap-1 px-3 py-1 text-sm bg-blue-600 text-white rounded hover:bg-blue-700 transition-colors\"\n                      >\n                        <Send size={12} />\n                        <span>{language === 'es' ? 'Enviar' : 'Submit'}</span>\n                      </button>\n                    )}\n                    \n                    {onViewReport && (\n                      <button\n                        onClick={(e) => {\n                          e.stopPropagation()\n                          handleViewReport(report)\n                        }}\n                        className=\"p-2 text-birhaus-muted-foreground hover:text-birhaus-foreground hover:bg-birhaus-muted rounded transition-colors\"\n                        aria-label={language === 'es' ? 'Ver reporte' : 'View report'}\n                      >\n                        <Eye size={16} />\n                      </button>\n                    )}\n                  </div>\n                </div>\n                \n                {/* Description */}\n                <p className=\"text-sm text-birhaus-foreground mb-3 line-clamp-2\">\n                  {report.descripcionOperacion}\n                </p>\n                \n                {/* Risk indicators */}\n                {report.indicadoresRiesgo.length > 0 && (\n                  <div className=\"flex flex-wrap gap-2 mb-3\">\n                    <span className=\"text-xs text-birhaus-muted-foreground\">\n                      {language === 'es' ? 'Indicadores:' : 'Indicators:'}\n                    </span>\n                    {report.indicadoresRiesgo.slice(0, 3).map((indicator, index) => (\n                      <span\n                        key={index}\n                        className=\"px-2 py-1 text-xs bg-yellow-100 text-yellow-700 rounded\"\n                      >\n                        {indicator}\n                      </span>\n                    ))}\n                    {report.indicadoresRiesgo.length > 3 && (\n                      <span className=\"px-2 py-1 text-xs bg-birhaus-muted text-birhaus-muted-foreground rounded\">\n                        +{report.indicadoresRiesgo.length - 3}\n                      </span>\n                    )}\n                  </div>\n                )}\n                \n                {/* Timeline */}\n                <div className=\"flex items-center gap-4 text-xs text-birhaus-muted-foreground\">\n                  <span>\n                    {language === 'es' ? 'Creado por:' : 'Created by:'} {report.creadoPor}\n                  </span>\n                  {report.fechaEnvio && (\n                    <span>\n                      {language === 'es' ? 'Enviado:' : 'Sent:'} {report.fechaEnvio.toLocaleDateString()}\n                    </span>\n                  )}\n                  {report.fechaProcesamiento && (\n                    <span>\n                      {language === 'es' ? 'Procesado:' : 'Processed:'} {report.fechaProcesamiento.toLocaleDateString()}\n                    </span>\n                  )}\n                </div>\n              </div>\n            )\n          })\n        )}\n      </div>\n    </div>\n  )\n}\n\nexport type { BirhausSEPRELADDashboardProps }","'use client'\n\nimport React from 'react'\nimport { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\nimport { useBirhaus } from '@birhaus/provider'\nimport { \n  Activity,\n  User,\n  Edit,\n  Trash2,\n  Plus,\n  Download,\n  Upload,\n  Key,\n  Shield,\n  Settings,\n  Eye,\n  Search,\n  Filter,\n  Calendar,\n  Clock,\n  AlertTriangle,\n  CheckCircle,\n  Info,\n  MapPin,\n  Monitor,\n  ChevronDown,\n  FileText\n} from 'lucide-react'\nimport type { \n  BirhausAuditTrailProps,\n  AuditEvent,\n  AuditEventType,\n  AuditSeverity\n} from '../types/compliance'\n\n// Local cn utility\nconst cn = (...inputs: any[]) => twMerge(clsx(inputs))\n\n// Audit event type configuration\nconst eventTypeConfig: Record<AuditEventType, {\n  icon: React.ReactNode\n  colorClass: string\n  nameEs: string\n  nameEn: string\n}> = {\n  acceso: {\n    icon: <Eye size={16} />,\n    colorClass: 'text-blue-600 bg-blue-100',\n    nameEs: 'Acceso',\n    nameEn: 'Access'\n  },\n  modificacion: {\n    icon: <Edit size={16} />,\n    colorClass: 'text-yellow-600 bg-yellow-100',\n    nameEs: 'Modificación',\n    nameEn: 'Modification'\n  },\n  eliminacion: {\n    icon: <Trash2 size={16} />,\n    colorClass: 'text-red-600 bg-red-100',\n    nameEs: 'Eliminación',\n    nameEn: 'Deletion'\n  },\n  creacion: {\n    icon: <Plus size={16} />,\n    colorClass: 'text-green-600 bg-green-100',\n    nameEs: 'Creación',\n    nameEn: 'Creation'\n  },\n  exportacion: {\n    icon: <Download size={16} />,\n    colorClass: 'text-purple-600 bg-purple-100',\n    nameEs: 'Exportación',\n    nameEn: 'Export'\n  },\n  importacion: {\n    icon: <Upload size={16} />,\n    colorClass: 'text-indigo-600 bg-indigo-100',\n    nameEs: 'Importación',\n    nameEn: 'Import'\n  },\n  autenticacion: {\n    icon: <Key size={16} />,\n    colorClass: 'text-orange-600 bg-orange-100',\n    nameEs: 'Autenticación',\n    nameEn: 'Authentication'\n  },\n  autorizacion: {\n    icon: <Shield size={16} />,\n    colorClass: 'text-cyan-600 bg-cyan-100',\n    nameEs: 'Autorización',\n    nameEn: 'Authorization'\n  },\n  configuracion: {\n    icon: <Settings size={16} />,\n    colorClass: 'text-gray-600 bg-gray-100',\n    nameEs: 'Configuración',\n    nameEn: 'Configuration'\n  }\n}\n\n// Audit severity configuration\nconst severityConfig: Record<AuditSeverity, {\n  icon: React.ReactNode\n  colorClass: string\n  nameEs: string\n  nameEn: string\n}> = {\n  baja: {\n    icon: <Info size={16} />,\n    colorClass: 'text-green-700 bg-green-100',\n    nameEs: 'Baja',\n    nameEn: 'Low'\n  },\n  media: {\n    icon: <Clock size={16} />,\n    colorClass: 'text-yellow-700 bg-yellow-100',\n    nameEs: 'Media',\n    nameEn: 'Medium'\n  },\n  alta: {\n    icon: <AlertTriangle size={16} />,\n    colorClass: 'text-orange-700 bg-orange-100',\n    nameEs: 'Alta',\n    nameEn: 'High'\n  },\n  critica: {\n    icon: <AlertTriangle size={16} />,\n    colorClass: 'text-red-700 bg-red-100',\n    nameEs: 'Crítica',\n    nameEn: 'Critical'\n  }\n}\n\n/**\n * BirhausAuditTrail - Comprehensive audit trail component\n * \n * Features:\n * - Complete activity logging and monitoring for compliance\n * - Multi-level filtering by event type, severity, user, and time range\n * - Real-time search across all audit event properties\n * - Spanish-first event descriptions and categorization\n * - Risk indicator highlighting and alerting\n * - Detailed event context with before/after states\n * - User activity tracking with IP and device information\n * - Export functionality for compliance reporting\n * - Miller's Law compliance (max 7 visible events per view)\n * - Integrity verification with event hashing\n */\nexport function BirhausAuditTrail({\n  events = [],\n  filters = {},\n  onEventClick,\n  onExport,\n  showExport = true,\n  showFilters = true,\n  pageSize = 7,\n  className,\n  ...props\n}: BirhausAuditTrailProps) {\n  const { language, reportViolation } = useBirhaus()\n  \n  // State\n  const [searchTerm, setSearchTerm] = React.useState('')\n  const [localFilters, setLocalFilters] = React.useState(filters)\n  const [showFiltersPanel, setShowFiltersPanel] = React.useState(false)\n  const [currentPage, setCurrentPage] = React.useState(1)\n  const [expandedEvents, setExpandedEvents] = React.useState<Set<string>>(new Set())\n\n  // BIRHAUS validation: Check cognitive load\n  React.useEffect(() => {\n    if (pageSize > 7) {\n      reportViolation({\n        type: 'cognitive',\n        severity: 'warning',\n        element: document.createElement('div'),\n        message: `Audit trail shows ${pageSize} events per page (max recommended: 7)`,\n        messageEs: `Pista de auditoría muestra ${pageSize} eventos por página (máximo recomendado: 7)`,\n        messageEn: `Audit trail shows ${pageSize} events per page (max recommended: 7)`,\n        recommendation: 'Use pagination to maintain cognitive load limits',\n        birhausPrinciple: 1 // Cognitive load reduction\n      })\n    }\n  }, [pageSize, reportViolation])\n\n  // Filter events\n  const filteredEvents = React.useMemo(() => {\n    let filtered = events\n\n    // Search filter\n    if (searchTerm) {\n      const term = searchTerm.toLowerCase()\n      filtered = filtered.filter(event =>\n        event.descripcion.toLowerCase().includes(term) ||\n        event.recurso.toLowerCase().includes(term) ||\n        event.accion.toLowerCase().includes(term) ||\n        event.usuario.nombre.toLowerCase().includes(term) ||\n        event.usuario.email.toLowerCase().includes(term) ||\n        event.contexto.modulo.toLowerCase().includes(term) ||\n        event.contexto.funcionalidad.toLowerCase().includes(term)\n      )\n    }\n\n    // Date range filters\n    if (localFilters.dateFrom) {\n      filtered = filtered.filter(event => new Date(event.timestamp) >= new Date(localFilters.dateFrom!))\n    }\n    if (localFilters.dateTo) {\n      filtered = filtered.filter(event => new Date(event.timestamp) <= new Date(localFilters.dateTo!))\n    }\n\n    // Event type filter\n    if (localFilters.eventTypes?.length) {\n      filtered = filtered.filter(event => localFilters.eventTypes!.includes(event.tipo))\n    }\n\n    // Severity filter\n    if (localFilters.severity?.length) {\n      filtered = filtered.filter(event => localFilters.severity!.includes(event.severidad))\n    }\n\n    // User filter\n    if (localFilters.user) {\n      const userTerm = localFilters.user.toLowerCase()\n      filtered = filtered.filter(event =>\n        event.usuario.nombre.toLowerCase().includes(userTerm) ||\n        event.usuario.email.toLowerCase().includes(userTerm)\n      )\n    }\n\n    // Resource filter\n    if (localFilters.resource) {\n      const resourceTerm = localFilters.resource.toLowerCase()\n      filtered = filtered.filter(event =>\n        event.recurso.toLowerCase().includes(resourceTerm)\n      )\n    }\n\n    return filtered.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime())\n  }, [events, searchTerm, localFilters])\n\n  // Paginate results\n  const totalPages = Math.ceil(filteredEvents.length / pageSize)\n  const paginatedEvents = React.useMemo(() => {\n    const start = (currentPage - 1) * pageSize\n    return filteredEvents.slice(start, start + pageSize)\n  }, [filteredEvents, currentPage, pageSize])\n\n  // Calculate summary statistics\n  const summaryStats = React.useMemo(() => {\n    const total = filteredEvents.length\n    const critical = filteredEvents.filter(e => e.severidad === 'critica').length\n    const high = filteredEvents.filter(e => e.severidad === 'alta').length\n    const riskEvents = filteredEvents.filter(e => e.indicadorRiesgo).length\n    const uniqueUsers = new Set(filteredEvents.map(e => e.usuario.id)).size\n    \n    // Recent activity (last 24 hours)\n    const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000)\n    const recentActivity = filteredEvents.filter(e => new Date(e.timestamp) >= yesterday).length\n\n    return {\n      total,\n      critical,\n      high,\n      riskEvents,\n      uniqueUsers,\n      recentActivity\n    }\n  }, [filteredEvents])\n\n  // Handle actions\n  const handleEventClick = React.useCallback((event: AuditEvent) => {\n    onEventClick?.(event)\n  }, [onEventClick])\n\n  const handleExport = React.useCallback(() => {\n    onExport?.(filteredEvents)\n  }, [onExport, filteredEvents])\n\n  const toggleEventExpansion = React.useCallback((eventId: string) => {\n    setExpandedEvents(prev => {\n      const newSet = new Set(prev)\n      if (newSet.has(eventId)) {\n        newSet.delete(eventId)\n      } else {\n        newSet.add(eventId)\n      }\n      return newSet\n    })\n  }, [])\n\n  const updateFilters = React.useCallback((updates: typeof filters) => {\n    setLocalFilters(prev => ({ ...prev, ...updates }))\n    setCurrentPage(1)\n  }, [])\n\n  const clearFilters = React.useCallback(() => {\n    setLocalFilters({})\n    setSearchTerm('')\n    setCurrentPage(1)\n  }, [])\n\n  return (\n    <div className={cn('space-y-6', className)} {...props}>\n      {/* Header */}\n      <div className=\"flex items-center justify-between\">\n        <div>\n          <h1 className=\"text-2xl font-bold text-birhaus-foreground\">\n            {language === 'es' ? 'Pista de Auditoría' : 'Audit Trail'}\n          </h1>\n          <p className=\"text-birhaus-muted-foreground\">\n            {language === 'es' \n              ? 'Seguimiento completo de actividad del sistema'\n              : 'Complete system activity tracking'\n            }\n          </p>\n        </div>\n        \n        {showExport && (\n          <button\n            onClick={handleExport}\n            className=\"flex items-center gap-2 px-4 py-2 bg-birhaus-primary text-white rounded-lg hover:bg-birhaus-primary/90 transition-colors\"\n          >\n            <Download size={16} />\n            <span>{language === 'es' ? 'Exportar' : 'Export'}</span>\n          </button>\n        )}\n      </div>\n\n      {/* Summary Statistics */}\n      <div className=\"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-4\">\n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-birhaus-foreground\">{summaryStats.total}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Total' : 'Total'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-red-600\">{summaryStats.critical}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Crítico' : 'Critical'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-orange-600\">{summaryStats.high}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Alto' : 'High'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-yellow-600\">{summaryStats.riskEvents}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Riesgo' : 'Risk'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-blue-600\">{summaryStats.uniqueUsers}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Usuarios' : 'Users'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-green-600\">{summaryStats.recentActivity}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? '24h' : '24h'}\n          </p>\n        </div>\n      </div>\n\n      {/* Search and Filters */}\n      {(showFilters || searchTerm) && (\n        <div className=\"space-y-4\">\n          <div className=\"flex items-center gap-4 flex-wrap\">\n            {/* Search */}\n            <div className=\"relative flex-1 max-w-md\">\n              <Search size={16} className=\"absolute left-3 top-1/2 transform -translate-y-1/2 text-birhaus-muted-foreground\" />\n              <input\n                type=\"text\"\n                value={searchTerm}\n                onChange={(e) => setSearchTerm(e.target.value)}\n                placeholder={language === 'es' ? 'Buscar eventos...' : 'Search events...'}\n                className=\"w-full pl-10 pr-4 py-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary focus:border-birhaus-primary\"\n              />\n            </div>\n\n            {/* Filter toggle */}\n            {showFilters && (\n              <button\n                onClick={() => setShowFiltersPanel(!showFiltersPanel)}\n                className=\"flex items-center gap-2 px-4 py-2 border border-birhaus-border rounded-lg hover:bg-birhaus-muted/50 transition-colors\"\n              >\n                <Filter size={16} />\n                <span>{language === 'es' ? 'Filtros' : 'Filters'}</span>\n                <ChevronDown size={16} className={cn(\n                  'transition-transform duration-200',\n                  showFiltersPanel && 'rotate-180'\n                )} />\n              </button>\n            )}\n          </div>\n\n          {/* Filters panel */}\n          {showFilters && showFiltersPanel && (\n            <div className=\"p-4 border border-birhaus-border rounded-lg bg-birhaus-muted/10 space-y-4\">\n              <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\">\n                {/* Date from */}\n                <div>\n                  <label className=\"block text-sm font-medium mb-2\">\n                    {language === 'es' ? 'Fecha Desde' : 'Date From'}\n                  </label>\n                  <input\n                    type=\"datetime-local\"\n                    value={localFilters.dateFrom ? new Date(localFilters.dateFrom).toISOString().slice(0, 16) : ''}\n                    onChange={(e) => updateFilters({ dateFrom: e.target.value ? new Date(e.target.value) : undefined })}\n                    className=\"w-full p-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary\"\n                  />\n                </div>\n\n                {/* Date to */}\n                <div>\n                  <label className=\"block text-sm font-medium mb-2\">\n                    {language === 'es' ? 'Fecha Hasta' : 'Date To'}\n                  </label>\n                  <input\n                    type=\"datetime-local\"\n                    value={localFilters.dateTo ? new Date(localFilters.dateTo).toISOString().slice(0, 16) : ''}\n                    onChange={(e) => updateFilters({ dateTo: e.target.value ? new Date(e.target.value) : undefined })}\n                    className=\"w-full p-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary\"\n                  />\n                </div>\n\n                {/* Event type */}\n                <div>\n                  <label className=\"block text-sm font-medium mb-2\">\n                    {language === 'es' ? 'Tipo de Evento' : 'Event Type'}\n                  </label>\n                  <select\n                    multiple\n                    value={localFilters.eventTypes || []}\n                    onChange={(e) => updateFilters({ \n                      eventTypes: Array.from(e.target.selectedOptions, option => option.value as AuditEventType) \n                    })}\n                    className=\"w-full p-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary\"\n                  >\n                    {Object.entries(eventTypeConfig).map(([key, config]) => (\n                      <option key={key} value={key}>\n                        {language === 'es' ? config.nameEs : config.nameEn}\n                      </option>\n                    ))}\n                  </select>\n                </div>\n\n                {/* Severity */}\n                <div>\n                  <label className=\"block text-sm font-medium mb-2\">\n                    {language === 'es' ? 'Severidad' : 'Severity'}\n                  </label>\n                  <select\n                    multiple\n                    value={localFilters.severity || []}\n                    onChange={(e) => updateFilters({ \n                      severity: Array.from(e.target.selectedOptions, option => option.value as AuditSeverity) \n                    })}\n                    className=\"w-full p-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary\"\n                  >\n                    {Object.entries(severityConfig).map(([key, config]) => (\n                      <option key={key} value={key}>\n                        {language === 'es' ? config.nameEs : config.nameEn}\n                      </option>\n                    ))}\n                  </select>\n                </div>\n              </div>\n\n              {/* Clear filters */}\n              <div className=\"flex justify-end\">\n                <button\n                  onClick={clearFilters}\n                  className=\"px-4 py-2 text-sm text-birhaus-muted-foreground hover:text-birhaus-foreground transition-colors\"\n                >\n                  {language === 'es' ? 'Limpiar Filtros' : 'Clear Filters'}\n                </button>\n              </div>\n            </div>\n          )}\n        </div>\n      )}\n\n      {/* Events List */}\n      <div className=\"space-y-4\">\n        {paginatedEvents.length === 0 ? (\n          <div className=\"text-center py-12 bg-white border border-birhaus-border rounded-lg\">\n            <Activity size={48} className=\"mx-auto mb-4 text-birhaus-muted-foreground/50\" />\n            <h3 className=\"text-lg font-semibold text-birhaus-foreground mb-2\">\n              {language === 'es' ? 'No hay eventos de auditoría' : 'No audit events found'}\n            </h3>\n            <p className=\"text-birhaus-muted-foreground\">\n              {searchTerm || Object.keys(localFilters).length > 0 ? (\n                language === 'es' \n                  ? 'No se encontraron eventos con los filtros aplicados'\n                  : 'No events found with applied filters'\n              ) : (\n                language === 'es'\n                  ? 'Los eventos de auditoría aparecerán aquí cuando ocurran actividades'\n                  : 'Audit events will appear here when activities occur'\n              )}\n            </p>\n          </div>\n        ) : (\n          paginatedEvents.map((event) => {\n            const typeConfig = eventTypeConfig[event.tipo]\n            const severityInfo = severityConfig[event.severidad]\n            const isExpanded = expandedEvents.has(event.id)\n            const isClickable = Boolean(onEventClick)\n\n            return (\n              <div\n                key={event.id}\n                className={cn(\n                  'bg-white border rounded-lg transition-all duration-200',\n                  event.indicadorRiesgo ? 'border-yellow-300 bg-yellow-50' : 'border-birhaus-border',\n                  event.severidad === 'critica' && 'border-red-300 bg-red-50',\n                  isClickable && 'cursor-pointer hover:shadow-md hover:border-birhaus-primary/50'\n                )}\n                onClick={() => isClickable && handleEventClick(event)}\n              >\n                <div className=\"p-4\">\n                  <div className=\"flex items-start justify-between mb-3\">\n                    <div className=\"flex items-start gap-3 flex-1\">\n                      <div className={cn('p-2 rounded-full flex-shrink-0', typeConfig.colorClass)}>\n                        {typeConfig.icon}\n                      </div>\n                      \n                      <div className=\"flex-1 min-w-0\">\n                        <div className=\"flex items-center gap-2 mb-2\">\n                          <h3 className=\"font-semibold text-birhaus-foreground\">\n                            {event.descripcion}\n                          </h3>\n                          <span className={cn(\n                            'flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full',\n                            severityInfo.colorClass\n                          )}>\n                            {severityInfo.icon}\n                            <span>{language === 'es' ? severityInfo.nameEs : severityInfo.nameEn}</span>\n                          </span>\n                          \n                          {event.indicadorRiesgo && (\n                            <span className=\"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full text-yellow-700 bg-yellow-100\">\n                              <AlertTriangle size={12} />\n                              <span>{language === 'es' ? 'Riesgo' : 'Risk'}</span>\n                            </span>\n                          )}\n                        </div>\n                        \n                        <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 text-sm\">\n                          <div>\n                            <p className=\"text-birhaus-muted-foreground mb-1\">\n                              {language === 'es' ? 'Usuario' : 'User'}\n                            </p>\n                            <p className=\"font-medium flex items-center gap-1\">\n                              <User size={12} />\n                              {event.usuario.nombre}\n                            </p>\n                          </div>\n                          \n                          <div>\n                            <p className=\"text-birhaus-muted-foreground mb-1\">\n                              {language === 'es' ? 'Recurso' : 'Resource'}\n                            </p>\n                            <p className=\"font-medium\">\n                              {event.recurso}\n                            </p>\n                          </div>\n                          \n                          <div>\n                            <p className=\"text-birhaus-muted-foreground mb-1\">\n                              {language === 'es' ? 'Acción' : 'Action'}\n                            </p>\n                            <p className=\"font-medium\">\n                              {event.accion}\n                            </p>\n                          </div>\n                          \n                          <div>\n                            <p className=\"text-birhaus-muted-foreground mb-1\">\n                              {language === 'es' ? 'Fecha/Hora' : 'Date/Time'}\n                            </p>\n                            <p className=\"font-medium flex items-center gap-1\">\n                              <Clock size={12} />\n                              {event.timestamp.toLocaleString(language === 'es' ? 'es-PY' : 'en-US')}\n                            </p>\n                          </div>\n                        </div>\n                      </div>\n                    </div>\n                    \n                    {/* Expand button */}\n                    <button\n                      onClick={(e) => {\n                        e.stopPropagation()\n                        toggleEventExpansion(event.id)\n                      }}\n                      className=\"p-2 text-birhaus-muted-foreground hover:text-birhaus-foreground hover:bg-birhaus-muted rounded transition-colors\"\n                      aria-label={isExpanded ? (language === 'es' ? 'Contraer' : 'Collapse') : (language === 'es' ? 'Expandir' : 'Expand')}\n                    >\n                      <ChevronDown size={16} className={cn(\n                        'transition-transform duration-200',\n                        isExpanded && 'rotate-180'\n                      )} />\n                    </button>\n                  </div>\n                  \n                  {/* Additional info */}\n                  <div className=\"flex items-center gap-4 text-xs text-birhaus-muted-foreground mb-3\">\n                    <span className=\"flex items-center gap-1\">\n                      <MapPin size={12} />\n                      {event.usuario.ip || 'N/A'}\n                    </span>\n                    <span className=\"flex items-center gap-1\">\n                      <Monitor size={12} />\n                      {event.contexto.modulo}\n                    </span>\n                    <span>\n                      {language === 'es' ? 'Sesión:' : 'Session:'} {event.contexto.sesionId.slice(0, 8)}...\n                    </span>\n                  </div>\n                </div>\n\n                {/* Expanded content */}\n                {isExpanded && (\n                  <div className=\"px-4 pb-4 border-t border-birhaus-border bg-birhaus-muted/10\">\n                    <div className=\"pt-4 space-y-4\">\n                      {/* User details */}\n                      <div>\n                        <h4 className=\"font-medium text-birhaus-foreground mb-2\">\n                          {language === 'es' ? 'Detalles del Usuario' : 'User Details'}\n                        </h4>\n                        <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4 text-sm\">\n                          <div>\n                            <span className=\"text-birhaus-muted-foreground\">Email:</span> {event.usuario.email}\n                          </div>\n                          <div>\n                            <span className=\"text-birhaus-muted-foreground\">\n                              {language === 'es' ? 'Rol:' : 'Role:'}\n                            </span> {event.usuario.rol}\n                          </div>\n                          {event.usuario.userAgent && (\n                            <div className=\"sm:col-span-2\">\n                              <span className=\"text-birhaus-muted-foreground\">User Agent:</span> {event.usuario.userAgent}\n                            </div>\n                          )}\n                        </div>\n                      </div>\n\n                      {/* Context */}\n                      <div>\n                        <h4 className=\"font-medium text-birhaus-foreground mb-2\">\n                          {language === 'es' ? 'Contexto' : 'Context'}\n                        </h4>\n                        <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4 text-sm\">\n                          <div>\n                            <span className=\"text-birhaus-muted-foreground\">\n                              {language === 'es' ? 'Módulo:' : 'Module:'}\n                            </span> {event.contexto.modulo}\n                          </div>\n                          <div>\n                            <span className=\"text-birhaus-muted-foreground\">\n                              {language === 'es' ? 'Funcionalidad:' : 'Function:'}\n                            </span> {event.contexto.funcionalidad}\n                          </div>\n                          {event.contexto.requestId && (\n                            <div className=\"sm:col-span-2\">\n                              <span className=\"text-birhaus-muted-foreground\">Request ID:</span> {event.contexto.requestId}\n                            </div>\n                          )}\n                        </div>\n                      </div>\n\n                      {/* Risk assessment */}\n                      {event.indicadorRiesgo && (\n                        <div>\n                          <h4 className=\"font-medium text-birhaus-foreground mb-2\">\n                            {language === 'es' ? 'Evaluación de Riesgo' : 'Risk Assessment'}\n                          </h4>\n                          <div className=\"text-sm\">\n                            <p>\n                              <span className=\"text-birhaus-muted-foreground\">\n                                {language === 'es' ? 'Puntuación de Riesgo:' : 'Risk Score:'}\n                              </span> {event.puntuacionRiesgo || 'N/A'}\n                            </p>\n                          </div>\n                        </div>\n                      )}\n\n                      {/* State changes */}\n                      {(event.estadoAnterior || event.estadoNuevo) && (\n                        <div>\n                          <h4 className=\"font-medium text-birhaus-foreground mb-2\">\n                            {language === 'es' ? 'Cambios de Estado' : 'State Changes'}\n                          </h4>\n                          <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-4\">\n                            {event.estadoAnterior && (\n                              <div>\n                                <p className=\"text-sm font-medium text-birhaus-muted-foreground mb-2\">\n                                  {language === 'es' ? 'Estado Anterior:' : 'Previous State:'}\n                                </p>\n                                <pre className=\"text-xs bg-red-50 p-3 rounded border overflow-x-auto\">\n                                  {JSON.stringify(event.estadoAnterior, null, 2)}\n                                </pre>\n                              </div>\n                            )}\n                            {event.estadoNuevo && (\n                              <div>\n                                <p className=\"text-sm font-medium text-birhaus-muted-foreground mb-2\">\n                                  {language === 'es' ? 'Estado Nuevo:' : 'New State:'}\n                                </p>\n                                <pre className=\"text-xs bg-green-50 p-3 rounded border overflow-x-auto\">\n                                  {JSON.stringify(event.estadoNuevo, null, 2)}\n                                </pre>\n                              </div>\n                            )}\n                          </div>\n                        </div>\n                      )}\n\n                      {/* Metadata */}\n                      {event.metadatos && Object.keys(event.metadatos).length > 0 && (\n                        <div>\n                          <h4 className=\"font-medium text-birhaus-foreground mb-2\">\n                            {language === 'es' ? 'Metadatos' : 'Metadata'}\n                          </h4>\n                          <pre className=\"text-xs bg-birhaus-muted/20 p-3 rounded border overflow-x-auto\">\n                            {JSON.stringify(event.metadatos, null, 2)}\n                          </pre>\n                        </div>\n                      )}\n\n                      {/* Integrity hash */}\n                      <div>\n                        <h4 className=\"font-medium text-birhaus-foreground mb-2\">\n                          {language === 'es' ? 'Integridad' : 'Integrity'}\n                        </h4>\n                        <div className=\"text-xs text-birhaus-muted-foreground font-mono bg-gray-100 p-2 rounded\">\n                          {event.hash}\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                )}\n              </div>\n            )\n          })\n        )}\n      </div>\n\n      {/* Pagination */}\n      {totalPages > 1 && (\n        <div className=\"flex items-center justify-between\">\n          <button\n            onClick={() => setCurrentPage(page => Math.max(1, page - 1))}\n            disabled={currentPage === 1}\n            className=\"px-4 py-2 text-sm border border-birhaus-border rounded-lg disabled:opacity-50 disabled:cursor-not-allowed hover:bg-birhaus-muted/50 transition-colors\"\n          >\n            {language === 'es' ? 'Anterior' : 'Previous'}\n          </button>\n\n          <span className=\"text-sm text-birhaus-muted-foreground\">\n            {language === 'es' \n              ? `Página ${currentPage} de ${totalPages} (${filteredEvents.length} eventos)`\n              : `Page ${currentPage} of ${totalPages} (${filteredEvents.length} events)`\n            }\n          </span>\n\n          <button\n            onClick={() => setCurrentPage(page => Math.min(totalPages, page + 1))}\n            disabled={currentPage === totalPages}\n            className=\"px-4 py-2 text-sm border border-birhaus-border rounded-lg disabled:opacity-50 disabled:cursor-not-allowed hover:bg-birhaus-muted/50 transition-colors\"\n          >\n            {language === 'es' ? 'Siguiente' : 'Next'}\n          </button>\n        </div>\n      )}\n    </div>\n  )\n}\n\nexport type { BirhausAuditTrailProps }","'use client'\n\nimport React from 'react'\nimport { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\nimport { useBirhaus } from '@birhaus/provider'\nimport { \n  Shield,\n  User,\n  Download,\n  Trash2,\n  Edit,\n  Lock,\n  Unlock,\n  FileText,\n  Clock,\n  CheckCircle,\n  XCircle,\n  AlertCircle,\n  AlertTriangle,\n  Plus,\n  Search,\n  Filter,\n  Calendar,\n  ChevronDown,\n  Eye,\n  Users,\n  Database,\n  Globe,\n  Settings,\n  Mail\n} from 'lucide-react'\nimport type { \n  BirhausPrivacyManagerProps,\n  PrivacyRequest,\n  DataSubjectRight,\n  PrivacyRequestStatus\n} from '../types/compliance'\n\n// Local cn utility\nconst cn = (...inputs: any[]) => twMerge(clsx(inputs))\n\n// Data subject rights configuration\nconst rightsConfig: Record<DataSubjectRight, {\n  icon: React.ReactNode\n  colorClass: string\n  nameEs: string\n  nameEn: string\n  descriptionEs: string\n  descriptionEn: string\n}> = {\n  acceso: {\n    icon: <Eye size={20} />,\n    colorClass: 'text-blue-600 bg-blue-100',\n    nameEs: 'Derecho de Acceso',\n    nameEn: 'Right to Access',\n    descriptionEs: 'Acceder a datos personales procesados',\n    descriptionEn: 'Access personal data being processed'\n  },\n  rectificacion: {\n    icon: <Edit size={20} />,\n    colorClass: 'text-green-600 bg-green-100',\n    nameEs: 'Derecho de Rectificación',\n    nameEn: 'Right to Rectification',\n    descriptionEs: 'Corregir datos personales inexactos',\n    descriptionEn: 'Correct inaccurate personal data'\n  },\n  eliminacion: {\n    icon: <Trash2 size={20} />,\n    colorClass: 'text-red-600 bg-red-100',\n    nameEs: 'Derecho al Olvido',\n    nameEn: 'Right to Erasure',\n    descriptionEs: 'Solicitar eliminación de datos personales',\n    descriptionEn: 'Request deletion of personal data'\n  },\n  portabilidad: {\n    icon: <Download size={20} />,\n    colorClass: 'text-purple-600 bg-purple-100',\n    nameEs: 'Derecho de Portabilidad',\n    nameEn: 'Right to Portability',\n    descriptionEs: 'Recibir datos en formato estructurado',\n    descriptionEn: 'Receive data in structured format'\n  },\n  limitacion: {\n    icon: <Lock size={20} />,\n    colorClass: 'text-orange-600 bg-orange-100',\n    nameEs: 'Derecho de Limitación',\n    nameEn: 'Right to Restriction',\n    descriptionEs: 'Limitar el procesamiento de datos',\n    descriptionEn: 'Restrict data processing'\n  },\n  oposicion: {\n    icon: <XCircle size={20} />,\n    colorClass: 'text-yellow-600 bg-yellow-100',\n    nameEs: 'Derecho de Oposición',\n    nameEn: 'Right to Object',\n    descriptionEs: 'Oponerse al procesamiento de datos',\n    descriptionEn: 'Object to data processing'\n  },\n  no_automatizacion: {\n    icon: <Settings size={20} />,\n    colorClass: 'text-indigo-600 bg-indigo-100',\n    nameEs: 'No Decisiones Automatizadas',\n    nameEn: 'No Automated Decisions',\n    descriptionEs: 'No estar sujeto a decisiones automatizadas',\n    descriptionEn: 'Not be subject to automated decisions'\n  }\n}\n\n// Request status configuration\nconst statusConfig: Record<PrivacyRequestStatus, {\n  icon: React.ReactNode\n  colorClass: string\n  nameEs: string\n  nameEn: string\n}> = {\n  recibida: {\n    icon: <Clock size={16} />,\n    colorClass: 'text-blue-700 bg-blue-100',\n    nameEs: 'Recibida',\n    nameEn: 'Received'\n  },\n  en_proceso: {\n    icon: <Settings size={16} />,\n    colorClass: 'text-yellow-700 bg-yellow-100',\n    nameEs: 'En Proceso',\n    nameEn: 'In Progress'\n  },\n  completada: {\n    icon: <CheckCircle size={16} />,\n    colorClass: 'text-green-700 bg-green-100',\n    nameEs: 'Completada',\n    nameEn: 'Completed'\n  },\n  rechazada: {\n    icon: <XCircle size={16} />,\n    colorClass: 'text-red-700 bg-red-100',\n    nameEs: 'Rechazada',\n    nameEn: 'Rejected'\n  },\n  parcialmente_completada: {\n    icon: <AlertCircle size={16} />,\n    colorClass: 'text-orange-700 bg-orange-100',\n    nameEs: 'Parcialmente Completada',\n    nameEn: 'Partially Completed'\n  }\n}\n\n/**\n * BirhausPrivacyManager - Data privacy request management component\n * \n * Features:\n * - Comprehensive GDPR/LGPD compliance for data subject rights\n * - Automated deadline tracking (30 days response requirement)\n * - Multi-language support (Spanish-first for local regulations)\n * - Request type categorization with visual indicators\n * - Identity verification tracking and documentation\n * - System impact analysis and affected data tracking\n * - Response template management and history\n * - Miller's Law compliance (max 7 visible requests per view)\n * - Integration with audit trail for compliance documentation\n */\nexport function BirhausPrivacyManager({\n  requests = [],\n  onRequestClick,\n  onCreateRequest,\n  onUpdateStatus,\n  showCreateButton = true,\n  showStatusActions = true,\n  className,\n  ...props\n}: BirhausPrivacyManagerProps) {\n  const { language, reportViolation } = useBirhaus()\n  const [searchTerm, setSearchTerm] = React.useState('')\n  const [filterStatus, setFilterStatus] = React.useState<PrivacyRequestStatus | 'all'>('all')\n  const [filterType, setFilterType] = React.useState<DataSubjectRight | 'all'>('all')\n  const [showOverdueOnly, setShowOverdueOnly] = React.useState(false)\n\n  // BIRHAUS validation: Check cognitive load\n  React.useEffect(() => {\n    if (requests.length > 7) {\n      reportViolation({\n        type: 'cognitive',\n        severity: 'warning',\n        element: document.createElement('div'),\n        message: `Privacy manager shows ${requests.length} requests (max recommended: 7)`,\n        messageEs: `Gestor de privacidad muestra ${requests.length} solicitudes (máximo recomendado: 7)`,\n        messageEn: `Privacy manager shows ${requests.length} requests (max recommended: 7)`,\n        recommendation: 'Use pagination or filtering to reduce cognitive load',\n        birhausPrinciple: 1 // Cognitive load reduction\n      })\n    }\n  }, [requests.length, reportViolation])\n\n  // Check if request is overdue (GDPR: 30 days, can extend to 90 days in complex cases)\n  const isOverdue = React.useCallback((request: PrivacyRequest) => {\n    return new Date() > request.fechaLimite && !['completada', 'rechazada'].includes(request.estado)\n  }, [])\n\n  // Check if request is approaching deadline (within 7 days)\n  const isApproachingDeadline = React.useCallback((request: PrivacyRequest) => {\n    const daysUntilDeadline = Math.floor(\n      (request.fechaLimite.getTime() - Date.now()) / (1000 * 60 * 60 * 24)\n    )\n    return daysUntilDeadline <= 7 && daysUntilDeadline >= 0 && !['completada', 'rechazada'].includes(request.estado)\n  }, [])\n\n  // Filter requests\n  const filteredRequests = React.useMemo(() => {\n    let filtered = requests\n\n    // Search filter\n    if (searchTerm) {\n      const term = searchTerm.toLowerCase()\n      filtered = filtered.filter(request =>\n        request.solicitante.nombres.toLowerCase().includes(term) ||\n        request.solicitante.apellidos.toLowerCase().includes(term) ||\n        request.solicitante.email.toLowerCase().includes(term) ||\n        request.descripcion.toLowerCase().includes(term) ||\n        request.datosAfectados.some(data => data.toLowerCase().includes(term))\n      )\n    }\n\n    // Status filter\n    if (filterStatus !== 'all') {\n      filtered = filtered.filter(request => request.estado === filterStatus)\n    }\n\n    // Type filter\n    if (filterType !== 'all') {\n      filtered = filtered.filter(request => request.tipo === filterType)\n    }\n\n    // Overdue filter\n    if (showOverdueOnly) {\n      filtered = filtered.filter(request => isOverdue(request))\n    }\n\n    return filtered.sort((a, b) => {\n      // Prioritize overdue requests\n      const aOverdue = isOverdue(a)\n      const bOverdue = isOverdue(b)\n      if (aOverdue && !bOverdue) return -1\n      if (!aOverdue && bOverdue) return 1\n      \n      // Then by deadline approaching\n      const aApproaching = isApproachingDeadline(a)\n      const bApproaching = isApproachingDeadline(b)\n      if (aApproaching && !bApproaching) return -1\n      if (!aApproaching && bApproaching) return 1\n      \n      // Finally by request date\n      return new Date(b.fechaSolicitud).getTime() - new Date(a.fechaSolicitud).getTime()\n    })\n  }, [requests, searchTerm, filterStatus, filterType, showOverdueOnly, isOverdue, isApproachingDeadline])\n\n  // Calculate summary statistics\n  const summaryStats = React.useMemo(() => {\n    const total = filteredRequests.length\n    const pending = filteredRequests.filter(r => ['recibida', 'en_proceso'].includes(r.estado)).length\n    const overdue = filteredRequests.filter(r => isOverdue(r)).length\n    const approaching = filteredRequests.filter(r => isApproachingDeadline(r)).length\n    const completed = filteredRequests.filter(r => r.estado === 'completada').length\n    \n    // Average response time for completed requests\n    const completedWithTime = filteredRequests.filter(r => r.estado === 'completada' && r.fechaCompletado)\n    const avgResponseTime = completedWithTime.length > 0\n      ? Math.round(\n          completedWithTime.reduce((sum, r) => {\n            const days = Math.floor(\n              (r.fechaCompletado!.getTime() - r.fechaSolicitud.getTime()) / (1000 * 60 * 60 * 24)\n            )\n            return sum + days\n          }, 0) / completedWithTime.length\n        )\n      : 0\n\n    return {\n      total,\n      pending,\n      overdue,\n      approaching,\n      completed,\n      avgResponseTime\n    }\n  }, [filteredRequests, isOverdue, isApproachingDeadline])\n\n  // Handle actions\n  const handleRequestClick = React.useCallback((request: PrivacyRequest) => {\n    onRequestClick?.(request)\n  }, [onRequestClick])\n\n  const handleCreateRequest = React.useCallback(() => {\n    onCreateRequest?.()\n  }, [onCreateRequest])\n\n  const handleUpdateStatus = React.useCallback((requestId: string, status: PrivacyRequestStatus) => {\n    onUpdateStatus?.(requestId, status)\n  }, [onUpdateStatus])\n\n  return (\n    <div className={cn('space-y-6', className)} {...props}>\n      {/* Header */}\n      <div className=\"flex items-center justify-between\">\n        <div>\n          <h1 className=\"text-2xl font-bold text-birhaus-foreground\">\n            {language === 'es' ? 'Gestor de Privacidad' : 'Privacy Manager'}\n          </h1>\n          <p className=\"text-birhaus-muted-foreground\">\n            {language === 'es' \n              ? 'Gestión de solicitudes de derechos de datos personales'\n              : 'Data subject rights request management'\n            }\n          </p>\n        </div>\n        \n        {showCreateButton && onCreateRequest && (\n          <button\n            onClick={handleCreateRequest}\n            className=\"flex items-center gap-2 px-4 py-2 bg-birhaus-primary text-white rounded-lg hover:bg-birhaus-primary/90 transition-colors\"\n          >\n            <Plus size={16} />\n            <span>{language === 'es' ? 'Nueva Solicitud' : 'New Request'}</span>\n          </button>\n        )}\n      </div>\n\n      {/* Summary Statistics */}\n      <div className=\"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-4\">\n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-birhaus-foreground\">{summaryStats.total}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Total' : 'Total'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-yellow-600\">{summaryStats.pending}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Pendientes' : 'Pending'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-red-600\">{summaryStats.overdue}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Vencidas' : 'Overdue'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-orange-600\">{summaryStats.approaching}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Próx. Venc.' : 'Due Soon'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-green-600\">{summaryStats.completed}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Completadas' : 'Completed'}\n          </p>\n        </div>\n        \n        <div className=\"bg-white p-3 border border-birhaus-border rounded-lg text-center\">\n          <p className=\"text-2xl font-bold text-blue-600\">{summaryStats.avgResponseTime}</p>\n          <p className=\"text-xs text-birhaus-muted-foreground\">\n            {language === 'es' ? 'Días Prom.' : 'Avg Days'}\n          </p>\n        </div>\n      </div>\n\n      {/* Search and Filters */}\n      <div className=\"flex items-center gap-4 flex-wrap\">\n        {/* Search */}\n        <div className=\"relative flex-1 max-w-md\">\n          <Search size={16} className=\"absolute left-3 top-1/2 transform -translate-y-1/2 text-birhaus-muted-foreground\" />\n          <input\n            type=\"text\"\n            value={searchTerm}\n            onChange={(e) => setSearchTerm(e.target.value)}\n            placeholder={language === 'es' ? 'Buscar solicitudes...' : 'Search requests...'}\n            className=\"w-full pl-10 pr-4 py-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary focus:border-birhaus-primary\"\n          />\n        </div>\n\n        {/* Status Filter */}\n        <select\n          value={filterStatus}\n          onChange={(e) => setFilterStatus(e.target.value as PrivacyRequestStatus | 'all')}\n          className=\"px-4 py-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary\"\n        >\n          <option value=\"all\">{language === 'es' ? 'Todos los Estados' : 'All Statuses'}</option>\n          {Object.entries(statusConfig).map(([key, config]) => (\n            <option key={key} value={key}>\n              {language === 'es' ? config.nameEs : config.nameEn}\n            </option>\n          ))}\n        </select>\n\n        {/* Type Filter */}\n        <select\n          value={filterType}\n          onChange={(e) => setFilterType(e.target.value as DataSubjectRight | 'all')}\n          className=\"px-4 py-2 border border-birhaus-border rounded-lg focus:outline-none focus:ring-2 focus:ring-birhaus-primary\"\n        >\n          <option value=\"all\">{language === 'es' ? 'Todos los Derechos' : 'All Rights'}</option>\n          {Object.entries(rightsConfig).map(([key, config]) => (\n            <option key={key} value={key}>\n              {language === 'es' ? config.nameEs : config.nameEn}\n            </option>\n          ))}\n        </select>\n\n        {/* Overdue Only Toggle */}\n        <label className=\"flex items-center gap-2 text-sm\">\n          <input\n            type=\"checkbox\"\n            checked={showOverdueOnly}\n            onChange={(e) => setShowOverdueOnly(e.target.checked)}\n            className=\"rounded border-birhaus-border\"\n          />\n          <span>{language === 'es' ? 'Solo vencidas' : 'Overdue only'}</span>\n        </label>\n      </div>\n\n      {/* Requests List */}\n      <div className=\"space-y-4\">\n        {filteredRequests.length === 0 ? (\n          <div className=\"text-center py-12 bg-white border border-birhaus-border rounded-lg\">\n            <Shield size={48} className=\"mx-auto mb-4 text-birhaus-muted-foreground/50\" />\n            <h3 className=\"text-lg font-semibold text-birhaus-foreground mb-2\">\n              {language === 'es' ? 'No hay solicitudes de privacidad' : 'No privacy requests found'}\n            </h3>\n            <p className=\"text-birhaus-muted-foreground mb-4\">\n              {searchTerm || filterStatus !== 'all' || filterType !== 'all' || showOverdueOnly ? (\n                language === 'es' \n                  ? 'No se encontraron solicitudes con los filtros aplicados'\n                  : 'No requests found with applied filters'\n              ) : (\n                language === 'es'\n                  ? 'Las solicitudes de derechos de datos aparecerán aquí'\n                  : 'Data subject rights requests will appear here'\n              )}\n            </p>\n            {showCreateButton && onCreateRequest && (\n              <button\n                onClick={handleCreateRequest}\n                className=\"inline-flex items-center gap-2 px-4 py-2 bg-birhaus-primary text-white rounded-lg hover:bg-birhaus-primary/90 transition-colors\"\n              >\n                <Plus size={16} />\n                <span>{language === 'es' ? 'Crear Solicitud' : 'Create Request'}</span>\n              </button>\n            )}\n          </div>\n        ) : (\n          filteredRequests.map((request) => {\n            const rightConfig = rightsConfig[request.tipo]\n            const statusInfo = statusConfig[request.estado]\n            const overdue = isOverdue(request)\n            const approachingDeadline = isApproachingDeadline(request)\n            const isClickable = Boolean(onRequestClick)\n\n            const daysUntilDeadline = Math.floor(\n              (request.fechaLimite.getTime() - Date.now()) / (1000 * 60 * 60 * 24)\n            )\n\n            return (\n              <div\n                key={request.id}\n                className={cn(\n                  'bg-white p-6 border rounded-lg transition-all duration-200',\n                  overdue ? 'border-red-300 bg-red-50' : \n                  approachingDeadline ? 'border-orange-300 bg-orange-50' : 'border-birhaus-border',\n                  isClickable && 'cursor-pointer hover:shadow-md hover:border-birhaus-primary/50'\n                )}\n                onClick={() => isClickable && handleRequestClick(request)}\n              >\n                <div className=\"flex items-start justify-between mb-4\">\n                  <div className=\"flex items-start gap-4 flex-1\">\n                    <div className={cn('p-3 rounded-full', rightConfig.colorClass)}>\n                      {rightConfig.icon}\n                    </div>\n                    \n                    <div className=\"flex-1\">\n                      <div className=\"flex items-center gap-2 mb-2\">\n                        <h3 className=\"text-lg font-semibold text-birhaus-foreground\">\n                          {request.solicitante.nombres} {request.solicitante.apellidos}\n                        </h3>\n                        <span className={cn(\n                          'flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full',\n                          statusInfo.colorClass\n                        )}>\n                          {statusInfo.icon}\n                          <span>{language === 'es' ? statusInfo.nameEs : statusInfo.nameEn}</span>\n                        </span>\n                        \n                        {overdue && (\n                          <span className=\"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full text-red-700 bg-red-100\">\n                            <AlertTriangle size={12} />\n                            <span>{language === 'es' ? 'Vencida' : 'Overdue'}</span>\n                          </span>\n                        )}\n                        \n                        {approachingDeadline && !overdue && (\n                          <span className=\"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full text-orange-700 bg-orange-100\">\n                            <Clock size={12} />\n                            <span>\n                              {daysUntilDeadline} {language === 'es' ? 'días' : 'days'}\n                            </span>\n                          </span>\n                        )}\n                      </div>\n                      \n                      <p className=\"text-sm text-birhaus-muted-foreground mb-3\">\n                        {language === 'es' ? rightConfig.nameEs : rightConfig.nameEn}\n                      </p>\n                      \n                      <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 text-sm\">\n                        <div>\n                          <p className=\"text-birhaus-muted-foreground mb-1\">\n                            {language === 'es' ? 'Contacto' : 'Contact'}\n                          </p>\n                          <p className=\"font-medium flex items-center gap-1\">\n                            <Mail size={12} />\n                            {request.solicitante.email}\n                          </p>\n                        </div>\n                        \n                        <div>\n                          <p className=\"text-birhaus-muted-foreground mb-1\">\n                            {language === 'es' ? 'Fecha Solicitud' : 'Request Date'}\n                          </p>\n                          <p className=\"font-medium flex items-center gap-1\">\n                            <Calendar size={12} />\n                            {request.fechaSolicitud.toLocaleDateString(language === 'es' ? 'es-PY' : 'en-US')}\n                          </p>\n                        </div>\n                        \n                        <div>\n                          <p className=\"text-birhaus-muted-foreground mb-1\">\n                            {language === 'es' ? 'Fecha Límite' : 'Deadline'}\n                          </p>\n                          <p className={cn(\n                            'font-medium flex items-center gap-1',\n                            overdue ? 'text-red-600' : approachingDeadline ? 'text-orange-600' : ''\n                          )}>\n                            <Clock size={12} />\n                            {request.fechaLimite.toLocaleDateString(language === 'es' ? 'es-PY' : 'en-US')}\n                          </p>\n                        </div>\n                        \n                        <div>\n                          <p className=\"text-birhaus-muted-foreground mb-1\">\n                            {language === 'es' ? 'Responsable' : 'Assignee'}\n                          </p>\n                          <p className=\"font-medium flex items-center gap-1\">\n                            <User size={12} />\n                            {request.responsable}\n                          </p>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  \n                  {/* Status action buttons */}\n                  {showStatusActions && onUpdateStatus && (\n                    <div className=\"flex items-center gap-2\">\n                      {request.estado === 'recibida' && (\n                        <button\n                          onClick={(e) => {\n                            e.stopPropagation()\n                            handleUpdateStatus(request.id, 'en_proceso')\n                          }}\n                          className=\"flex items-center gap-1 px-3 py-1 text-sm bg-yellow-600 text-white rounded hover:bg-yellow-700 transition-colors\"\n                        >\n                          <Settings size={12} />\n                          <span>{language === 'es' ? 'Procesar' : 'Process'}</span>\n                        </button>\n                      )}\n                      \n                      {request.estado === 'en_proceso' && (\n                        <>\n                          <button\n                            onClick={(e) => {\n                              e.stopPropagation()\n                              handleUpdateStatus(request.id, 'completada')\n                            }}\n                            className=\"flex items-center gap-1 px-3 py-1 text-sm bg-green-600 text-white rounded hover:bg-green-700 transition-colors\"\n                          >\n                            <CheckCircle size={12} />\n                            <span>{language === 'es' ? 'Completar' : 'Complete'}</span>\n                          </button>\n                          \n                          <button\n                            onClick={(e) => {\n                              e.stopPropagation()\n                              handleUpdateStatus(request.id, 'rechazada')\n                            }}\n                            className=\"flex items-center gap-1 px-3 py-1 text-sm bg-red-600 text-white rounded hover:bg-red-700 transition-colors\"\n                          >\n                            <XCircle size={12} />\n                            <span>{language === 'es' ? 'Rechazar' : 'Reject'}</span>\n                          </button>\n                        </>\n                      )}\n                    </div>\n                  )}\n                </div>\n                \n                {/* Description */}\n                <p className=\"text-sm text-birhaus-foreground mb-4 line-clamp-2\">\n                  {request.descripcion}\n                </p>\n                \n                {/* Affected data and systems */}\n                <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4\">\n                  {request.datosAfectados.length > 0 && (\n                    <div>\n                      <p className=\"text-xs text-birhaus-muted-foreground mb-2 flex items-center gap-1\">\n                        <Database size={12} />\n                        {language === 'es' ? 'Datos Afectados:' : 'Affected Data:'}\n                      </p>\n                      <div className=\"flex flex-wrap gap-1\">\n                        {request.datosAfectados.slice(0, 5).map((data, index) => (\n                          <span\n                            key={index}\n                            className=\"px-2 py-1 text-xs bg-blue-100 text-blue-700 rounded\"\n                          >\n                            {data}\n                          </span>\n                        ))}\n                        {request.datosAfectados.length > 5 && (\n                          <span className=\"px-2 py-1 text-xs bg-birhaus-muted text-birhaus-muted-foreground rounded\">\n                            +{request.datosAfectados.length - 5}\n                          </span>\n                        )}\n                      </div>\n                    </div>\n                  )}\n                  \n                  {request.sistemasAfectados.length > 0 && (\n                    <div>\n                      <p className=\"text-xs text-birhaus-muted-foreground mb-2 flex items-center gap-1\">\n                        <Globe size={12} />\n                        {language === 'es' ? 'Sistemas Afectados:' : 'Affected Systems:'}\n                      </p>\n                      <div className=\"flex flex-wrap gap-1\">\n                        {request.sistemasAfectados.slice(0, 3).map((system, index) => (\n                          <span\n                            key={index}\n                            className=\"px-2 py-1 text-xs bg-purple-100 text-purple-700 rounded\"\n                          >\n                            {system}\n                          </span>\n                        ))}\n                        {request.sistemasAfectados.length > 3 && (\n                          <span className=\"px-2 py-1 text-xs bg-birhaus-muted text-birhaus-muted-foreground rounded\">\n                            +{request.sistemasAfectados.length - 3}\n                          </span>\n                        )}\n                      </div>\n                    </div>\n                  )}\n                </div>\n                \n                {/* Identity verification */}\n                <div className=\"flex items-center gap-4 text-xs text-birhaus-muted-foreground\">\n                  <span className=\"flex items-center gap-1\">\n                    {request.verificacionIdentidad ? (\n                      <>\n                        <CheckCircle size={12} className=\"text-green-600\" />\n                        <span>{language === 'es' ? 'Identidad verificada' : 'Identity verified'}</span>\n                      </>\n                    ) : (\n                      <>\n                        <AlertCircle size={12} className=\"text-yellow-600\" />\n                        <span>{language === 'es' ? 'Verificación pendiente' : 'Verification pending'}</span>\n                      </>\n                    )}\n                  </span>\n                  \n                  {request.procesadoPor && (\n                    <span>\n                      {language === 'es' ? 'Procesado por:' : 'Processed by:'} {request.procesadoPor}\n                    </span>\n                  )}\n                  \n                  {request.fechaCompletado && (\n                    <span>\n                      {language === 'es' ? 'Completado:' : 'Completed:'} {request.fechaCompletado.toLocaleDateString()}\n                    </span>\n                  )}\n                </div>\n              </div>\n            )\n          })\n        )}\n      </div>\n    </div>\n  )\n}\n\nexport type { BirhausPrivacyManagerProps }","'use client'\n\nimport React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\nimport { useBirhaus } from '@birhaus/provider'\nimport { useTheme } from '@birhaus/themes'\nimport { \n  Shield, \n  AlertTriangle, \n  CheckCircle, \n  Eye,\n  FileText,\n  TrendingUp,\n  TrendingDown,\n  Clock,\n  Users,\n  DollarSign,\n  Flag,\n  Sparkles,\n  Download,\n  RefreshCw\n} from 'lucide-react'\n\n// Local cn utility  \nconst cn = (...inputs: (string | boolean | undefined | null)[]) => twMerge(clsx(inputs))\n\n// V3 SEPRELAD Dashboard variants with glass morphism\nconst seprelaDashboardV3Variants = cva(\n  'group relative transition-all duration-700 ease-smooth overflow-hidden backdrop-blur-md border border-white/30',\n  {\n    variants: {\n      glassVariant: {\n        subtle: 'bg-white/40 shadow-lg hover:shadow-xl',\n        medium: 'bg-white/60 shadow-xl hover:shadow-2xl backdrop-saturate-150',\n        intense: 'bg-white/80 shadow-2xl hover:shadow-3xl backdrop-saturate-200'\n      },\n      borderRadius: {\n        moderate: 'rounded-2xl',\n        generous: 'rounded-3xl',\n        radical: 'rounded-[2.5rem]'\n      },\n      spacing: {\n        comfortable: 'p-6',\n        generous: 'p-8',\n        radical: 'p-12'\n      },\n      complianceStatus: {\n        compliant: 'border-green-300/50 bg-gradient-to-br from-green-50/30 to-white/50',\n        warning: 'border-amber-300/50 bg-gradient-to-br from-amber-50/30 to-white/50',\n        critical: 'border-red-300/50 bg-gradient-to-br from-red-50/30 to-white/50'\n      },\n      floating: {\n        true: 'hover:scale-[1.005] hover:-translate-y-0.5',\n        false: ''\n      }\n    },\n    defaultVariants: {\n      glassVariant: 'medium',\n      borderRadius: 'generous',\n      spacing: 'generous',\n      complianceStatus: 'compliant',\n      floating: false\n    }\n  }\n)\n\nconst metricCardVariants = cva(\n  'transition-all duration-300 backdrop-blur-sm border border-white/40 rounded-2xl hover:shadow-lg',\n  {\n    variants: {\n      status: {\n        success: 'bg-green-100/60 border-green-200/50',\n        warning: 'bg-amber-100/60 border-amber-200/50',\n        danger: 'bg-red-100/60 border-red-200/50',\n        neutral: 'bg-white/70 border-white/50'\n      }\n    },\n    defaultVariants: {\n      status: 'neutral'\n    }\n  }\n)\n\nexport interface SEPRELADReportV3 {\n  id: string\n  type: 'ROS' | 'ROI' | 'RTE' | 'RPF' // Paraguay SEPRELAD report types\n  date: Date\n  amount: number\n  currency: 'PYG' | 'USD'\n  status: 'pending' | 'submitted' | 'approved' | 'rejected'\n  entityName: string\n  entityId: string\n  transactionCount: number\n  riskLevel: 'low' | 'medium' | 'high'\n  description?: string\n  descriptionEs?: string\n  descriptionEn?: string\n  submittedBy?: string\n  reviewedBy?: string\n  dueDate?: Date\n}\n\nexport interface SEPRELADMetricsV3 {\n  totalReports: number\n  pendingReports: number\n  overdueReports: number\n  complianceRate: number\n  avgProcessingTime: number // days\n  monthlyTrend: {\n    reports: number\n    change: number\n  }\n  riskDistribution: {\n    low: number\n    medium: number\n    high: number\n  }\n  reportTypes: {\n    ROS: number\n    ROI: number  \n    RTE: number\n    RPF: number\n  }\n}\n\nexport interface BirhausSEPRELADDashboardV3Props extends VariantProps<typeof seprelaDashboardV3Variants> {\n  // SEPRELAD data\n  reports: SEPRELADReportV3[]\n  metrics: SEPRELADMetricsV3\n  \n  // V3 Glass styling\n  enableGlass?: boolean\n  glassIntensity?: 'subtle' | 'medium' | 'intense'\n  enableFloating?: boolean\n  reducedMotion?: boolean\n  \n  // Display options\n  showMetrics?: boolean\n  showRecentReports?: boolean\n  showComplianceStatus?: boolean\n  showRiskMatrix?: boolean\n  maxRecentReports?: number\n  \n  // Permissions\n  canViewReports?: boolean\n  canSubmitReports?: boolean\n  canApproveReports?: boolean\n  canDownloadReports?: boolean\n  \n  // Theme\n  themeName?: 'financial' | 'compliance' | 'educational' | 'default'\n  \n  // Interaction\n  onReportClick?: (report: SEPRELADReportV3) => void\n  onCreateReport?: (type: string) => void\n  onDownloadReport?: (reportId: string) => void\n  onRefreshData?: () => void\n  \n  // Standard props\n  className?: string\n  title?: string\n  titleEs?: string\n  titleEn?: string\n}\n\n/**\n * BirhausSEPRELADDashboardV3 - Glass morphism dashboard for Paraguay SEPRELAD compliance\n * \n * Features:\n * - Glass morphism compliance status indicators\n * - SEPRELAD-specific report types (ROS, ROI, RTE, RPF)\n * - Real-time compliance metrics with glass styling\n * - Risk assessment matrix with floating effects\n * - Spanish-first regulatory terminology\n * - Overdue report highlighting with amber glass tints\n * - Generous spacing for regulatory data clarity\n * - GPU-accelerated status transitions\n */\nexport function BirhausSEPRELADDashboardV3({\n  reports,\n  metrics,\n  enableGlass = true,\n  glassVariant = 'medium',\n  borderRadius = 'generous',\n  spacing = 'generous',\n  complianceStatus,\n  floating = false,\n  showMetrics = true,\n  showRecentReports = true,\n  showComplianceStatus = true,\n  showRiskMatrix = true,\n  maxRecentReports = 5,\n  canViewReports = true,\n  canSubmitReports = false,\n  canApproveReports = false,\n  canDownloadReports = false,\n  reducedMotion = false,\n  themeName = 'financial',\n  onReportClick,\n  onCreateReport,\n  onDownloadReport,\n  onRefreshData,\n  className,\n  title,\n  titleEs,\n  titleEn,\n  ...props\n}: BirhausSEPRELADDashboardV3Props) {\n  const { language } = useBirhaus()\n  const theme = useTheme(themeName)\n  const [isRefreshing, setIsRefreshing] = React.useState(false)\n  const [selectedTimeRange, setSelectedTimeRange] = React.useState<'7d' | '30d' | '90d' | '1y'>('30d')\n\n  // Calculate overall compliance status\n  const overallComplianceStatus = React.useMemo(() => {\n    const complianceRate = metrics.complianceRate\n    const overdueCount = metrics.overdueReports\n    \n    if (overdueCount > 0 || complianceRate < 80) return 'critical'\n    if (complianceRate < 95) return 'warning'\n    return 'compliant'\n  }, [metrics])\n\n  // Format currency for SEPRELAD reports\n  const formatCurrency = React.useCallback((value: number, currency: string): string => {\n    const locale = language === 'es' ? 'es-PY' : 'en-US'\n    return new Intl.NumberFormat(locale, {\n      style: 'currency',\n      currency: currency === 'PYG' ? 'PYG' : 'USD',\n      minimumFractionDigits: currency === 'PYG' ? 0 : 2,\n      maximumFractionDigits: currency === 'PYG' ? 0 : 2\n    }).format(value)\n  }, [language])\n\n  // Get report type info\n  const getReportTypeInfo = React.useCallback((type: string) => {\n    const types = {\n      ROS: {\n        name: language === 'es' ? 'Reporte de Operación Sospechosa' : 'Suspicious Operation Report',\n        icon: AlertTriangle,\n        color: 'text-red-600'\n      },\n      ROI: {\n        name: language === 'es' ? 'Reporte de Operación Inusual' : 'Unusual Operation Report',\n        icon: Eye,\n        color: 'text-amber-600'\n      },\n      RTE: {\n        name: language === 'es' ? 'Reporte de Transferencia Electrónica' : 'Electronic Transfer Report',\n        icon: TrendingUp,\n        color: 'text-blue-600'\n      },\n      RPF: {\n        name: language === 'es' ? 'Reporte de Persona Física/Jurídica' : 'Individual/Entity Report',\n        icon: Users,\n        color: 'text-purple-600'\n      }\n    }\n    \n    return types[type as keyof typeof types] || {\n      name: type,\n      icon: FileText,\n      color: 'text-gray-600'\n    }\n  }, [language])\n\n  // Get status info\n  const getStatusInfo = React.useCallback((status: string) => {\n    const statuses = {\n      pending: {\n        icon: Clock,\n        color: 'text-amber-600',\n        label: language === 'es' ? 'Pendiente' : 'Pending',\n        bgColor: 'bg-amber-100/60'\n      },\n      submitted: {\n        icon: CheckCircle,\n        color: 'text-blue-600',\n        label: language === 'es' ? 'Enviado' : 'Submitted',\n        bgColor: 'bg-blue-100/60'\n      },\n      approved: {\n        icon: CheckCircle,\n        color: 'text-green-600',\n        label: language === 'es' ? 'Aprobado' : 'Approved',\n        bgColor: 'bg-green-100/60'\n      },\n      rejected: {\n        icon: AlertTriangle,\n        color: 'text-red-600',\n        label: language === 'es' ? 'Rechazado' : 'Rejected',\n        bgColor: 'bg-red-100/60'\n      }\n    }\n    \n    return statuses[status as keyof typeof statuses] || statuses.pending\n  }, [language])\n\n  // Handle refresh\n  const handleRefresh = React.useCallback(async () => {\n    setIsRefreshing(true)\n    try {\n      await onRefreshData?.()\n    } finally {\n      setIsRefreshing(false)\n    }\n  }, [onRefreshData])\n\n  // Recent reports sorted by date\n  const recentReports = React.useMemo(() => {\n    return reports\n      .sort((a, b) => b.date.getTime() - a.date.getTime())\n      .slice(0, maxRecentReports)\n  }, [reports, maxRecentReports])\n\n  return (\n    <div\n      className={cn(\n        seprelaDashboardV3Variants({\n          glassVariant: enableGlass ? glassVariant : undefined,\n          borderRadius,\n          spacing,\n          complianceStatus: complianceStatus || overallComplianceStatus,\n          floating: floating && !reducedMotion\n        }),\n        'space-y-6',\n        !enableGlass && 'bg-white border-gray-200',\n        className\n      )}\n      {...props}\n    >\n      {/* Glass gradient overlay */}\n      {enableGlass && (\n        <div className=\"absolute inset-0 rounded-[inherit] bg-gradient-to-br from-white/20 via-transparent to-white/5 pointer-events-none\" />\n      )}\n\n      {/* Floating sparkle effects */}\n      {enableGlass && floating && (\n        <div className=\"absolute top-6 right-6 text-blue-400/40\">\n          <Sparkles size={20} className=\"animate-pulse\" />\n        </div>\n      )}\n\n      {/* Header */}\n      <div className=\"relative flex items-center justify-between\">\n        <div className=\"space-y-2\">\n          <h1 className=\"text-2xl font-bold text-gray-800 flex items-center gap-3\">\n            <Shield size={28} className=\"text-green-600\" />\n            {language === 'es' \n              ? (titleEs || title || 'Dashboard SEPRELAD')\n              : (titleEn || title || 'SEPRELAD Dashboard')\n            }\n          </h1>\n          <p className=\"text-gray-600\">\n            {language === 'es' \n              ? 'Monitoreo de cumplimiento regulatorio - Paraguay'\n              : 'Regulatory compliance monitoring - Paraguay'\n            }\n          </p>\n        </div>\n\n        <div className=\"flex items-center gap-3\">\n          {/* Refresh button */}\n          {onRefreshData && (\n            <button\n              onClick={handleRefresh}\n              disabled={isRefreshing}\n              className={cn(\n                'p-3 rounded-2xl transition-all duration-300',\n                enableGlass \n                  ? 'bg-white/60 hover:bg-white/80 backdrop-blur-sm border border-white/40'\n                  : 'bg-gray-100 hover:bg-gray-200',\n                isRefreshing && 'animate-spin'\n              )}\n            >\n              <RefreshCw size={20} className=\"text-gray-600\" />\n            </button>\n          )}\n\n          {/* Overall compliance status */}\n          {showComplianceStatus && (\n            <div className={cn(\n              'flex items-center gap-2 px-4 py-2 rounded-xl',\n              enableGlass \n                ? 'backdrop-blur-sm border border-white/40'\n                : 'border',\n              overallComplianceStatus === 'compliant' && 'bg-green-100/60 text-green-700 border-green-200/50',\n              overallComplianceStatus === 'warning' && 'bg-amber-100/60 text-amber-700 border-amber-200/50',\n              overallComplianceStatus === 'critical' && 'bg-red-100/60 text-red-700 border-red-200/50'\n            )}>\n              {overallComplianceStatus === 'compliant' && <CheckCircle size={16} />}\n              {overallComplianceStatus === 'warning' && <AlertTriangle size={16} />}\n              {overallComplianceStatus === 'critical' && <AlertTriangle size={16} />}\n              <span className=\"text-sm font-medium\">\n                {language === 'es' \n                  ? overallComplianceStatus === 'compliant' ? 'Conforme' :\n                    overallComplianceStatus === 'warning' ? 'Atención' : 'Crítico'\n                  : overallComplianceStatus === 'compliant' ? 'Compliant' :\n                    overallComplianceStatus === 'warning' ? 'Warning' : 'Critical'\n                }\n              </span>\n            </div>\n          )}\n        </div>\n      </div>\n\n      {/* Metrics cards */}\n      {showMetrics && (\n        <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4\">\n          {/* Total Reports */}\n          <div className={cn(\n            metricCardVariants({ status: 'neutral' }),\n            'p-4'\n          )}>\n            <div className=\"flex items-center gap-3\">\n              <div className={cn(\n                'p-3 rounded-xl',\n                enableGlass \n                  ? 'bg-white/60 backdrop-blur-sm border border-white/40'\n                  : 'bg-blue-100'\n              )}>\n                <FileText size={20} className=\"text-blue-600\" />\n              </div>\n              <div>\n                <p className=\"text-sm text-gray-600\">\n                  {language === 'es' ? 'Total Reportes' : 'Total Reports'}\n                </p>\n                <p className=\"text-xl font-bold text-gray-800\">\n                  {metrics.totalReports.toLocaleString()}\n                </p>\n              </div>\n            </div>\n          </div>\n\n          {/* Pending Reports */}\n          <div className={cn(\n            metricCardVariants({ \n              status: metrics.pendingReports > 0 ? 'warning' : 'success' \n            }),\n            'p-4'\n          )}>\n            <div className=\"flex items-center gap-3\">\n              <div className={cn(\n                'p-3 rounded-xl',\n                enableGlass \n                  ? 'bg-white/60 backdrop-blur-sm border border-white/40'\n                  : 'bg-amber-100'\n              )}>\n                <Clock size={20} className=\"text-amber-600\" />\n              </div>\n              <div>\n                <p className=\"text-sm text-gray-600\">\n                  {language === 'es' ? 'Pendientes' : 'Pending'}\n                </p>\n                <p className=\"text-xl font-bold text-gray-800\">\n                  {metrics.pendingReports}\n                </p>\n              </div>\n            </div>\n          </div>\n\n          {/* Overdue Reports */}\n          <div className={cn(\n            metricCardVariants({ \n              status: metrics.overdueReports > 0 ? 'danger' : 'success' \n            }),\n            'p-4'\n          )}>\n            <div className=\"flex items-center gap-3\">\n              <div className={cn(\n                'p-3 rounded-xl',\n                enableGlass \n                  ? 'bg-white/60 backdrop-blur-sm border border-white/40'\n                  : 'bg-red-100'\n              )}>\n                <AlertTriangle size={20} className=\"text-red-600\" />\n              </div>\n              <div>\n                <p className=\"text-sm text-gray-600\">\n                  {language === 'es' ? 'Vencidos' : 'Overdue'}\n                </p>\n                <p className=\"text-xl font-bold text-gray-800\">\n                  {metrics.overdueReports}\n                </p>\n              </div>\n            </div>\n          </div>\n\n          {/* Compliance Rate */}\n          <div className={cn(\n            metricCardVariants({ \n              status: metrics.complianceRate >= 95 ? 'success' : \n                     metrics.complianceRate >= 80 ? 'warning' : 'danger'\n            }),\n            'p-4'\n          )}>\n            <div className=\"flex items-center gap-3\">\n              <div className={cn(\n                'p-3 rounded-xl',\n                enableGlass \n                  ? 'bg-white/60 backdrop-blur-sm border border-white/40'\n                  : 'bg-green-100'\n              )}>\n                <TrendingUp size={20} className=\"text-green-600\" />\n              </div>\n              <div>\n                <p className=\"text-sm text-gray-600\">\n                  {language === 'es' ? 'Cumplimiento' : 'Compliance'}\n                </p>\n                <p className=\"text-xl font-bold text-gray-800\">\n                  {metrics.complianceRate.toFixed(1)}%\n                </p>\n              </div>\n            </div>\n          </div>\n        </div>\n      )}\n\n      {/* Report Types Distribution */}\n      {showRiskMatrix && (\n        <div className={cn(\n          'p-6 rounded-2xl transition-colors duration-300',\n          enableGlass \n            ? 'bg-white/40 backdrop-blur-sm border border-white/30'\n            : 'bg-gray-50'\n        )}>\n          <h3 className=\"text-lg font-semibold text-gray-800 mb-4\">\n            {language === 'es' ? 'Distribución por Tipo' : 'Distribution by Type'}\n          </h3>\n          <div className=\"grid grid-cols-2 lg:grid-cols-4 gap-4\">\n            {Object.entries(metrics.reportTypes).map(([type, count]) => {\n              const typeInfo = getReportTypeInfo(type)\n              return (\n                <div\n                  key={type}\n                  className={cn(\n                    'p-4 rounded-xl transition-all duration-300',\n                    enableGlass \n                      ? 'bg-white/50 hover:bg-white/70 backdrop-blur-sm border border-white/40'\n                      : 'bg-white hover:shadow-sm'\n                  )}\n                >\n                  <div className=\"flex items-center gap-3 mb-2\">\n                    <typeInfo.icon size={16} className={typeInfo.color} />\n                    <span className=\"text-sm font-medium text-gray-800\">\n                      {type}\n                    </span>\n                  </div>\n                  <div className=\"text-2xl font-bold text-gray-800\">{count}</div>\n                  <div className=\"text-xs text-gray-600 truncate\">\n                    {typeInfo.name}\n                  </div>\n                </div>\n              )\n            })}\n          </div>\n        </div>\n      )}\n\n      {/* Recent Reports */}\n      {showRecentReports && recentReports.length > 0 && (\n        <div className={cn(\n          'p-6 rounded-2xl transition-colors duration-300',\n          enableGlass \n            ? 'bg-white/40 backdrop-blur-sm border border-white/30'\n            : 'bg-gray-50'\n        )}>\n          <div className=\"flex items-center justify-between mb-4\">\n            <h3 className=\"text-lg font-semibold text-gray-800\">\n              {language === 'es' ? 'Reportes Recientes' : 'Recent Reports'}\n            </h3>\n            {canDownloadReports && (\n              <button\n                onClick={() => onDownloadReport?.('')}\n                className={cn(\n                  'flex items-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors',\n                  enableGlass \n                    ? 'bg-white/60 hover:bg-white/80 backdrop-blur-sm border border-white/40'\n                    : 'bg-white hover:bg-gray-50'\n                )}\n              >\n                <Download size={16} />\n                {language === 'es' ? 'Exportar' : 'Export'}\n              </button>\n            )}\n          </div>\n\n          <div className=\"space-y-3\">\n            {recentReports.map((report) => {\n              const typeInfo = getReportTypeInfo(report.type)\n              const statusInfo = getStatusInfo(report.status)\n              \n              return (\n                <div\n                  key={report.id}\n                  onClick={() => canViewReports && onReportClick?.(report)}\n                  className={cn(\n                    'p-4 rounded-xl border transition-all duration-300',\n                    enableGlass \n                      ? 'bg-white/50 hover:bg-white/70 border-white/40 backdrop-blur-sm'\n                      : 'bg-white hover:shadow-sm border-gray-200',\n                    canViewReports && 'cursor-pointer'\n                  )}\n                >\n                  <div className=\"flex items-start justify-between\">\n                    <div className=\"flex items-center gap-3\">\n                      <div className={cn(\n                        'p-2 rounded-lg',\n                        enableGlass \n                          ? 'bg-white/60 backdrop-blur-sm border border-white/40'\n                          : 'bg-gray-100'\n                      )}>\n                        <typeInfo.icon size={16} className={typeInfo.color} />\n                      </div>\n                      <div>\n                        <div className=\"font-medium text-gray-800\">\n                          {report.type} - {report.entityName}\n                        </div>\n                        <div className=\"text-sm text-gray-600\">\n                          {report.date.toLocaleDateString(\n                            language === 'es' ? 'es-PY' : 'en-US'\n                          )}\n                        </div>\n                      </div>\n                    </div>\n                    \n                    <div className=\"text-right\">\n                      <div className=\"font-medium text-gray-800\">\n                        {formatCurrency(report.amount, report.currency)}\n                      </div>\n                      <div className={cn(\n                        'inline-flex items-center gap-1 px-2 py-1 rounded text-xs',\n                        enableGlass \n                          ? statusInfo.bgColor + ' backdrop-blur-sm'\n                          : statusInfo.bgColor\n                      )}>\n                        <statusInfo.icon size={12} className={statusInfo.color} />\n                        {statusInfo.label}\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              )\n            })}\n          </div>\n        </div>\n      )}\n\n      {/* Actions */}\n      {canSubmitReports && (\n        <div className=\"flex items-center gap-3\">\n          <button\n            onClick={() => onCreateReport?.('ROS')}\n            className={cn(\n              'px-6 py-3 rounded-2xl font-medium text-white transition-all duration-300',\n              'bg-red-600 hover:bg-red-700 active:bg-red-800',\n              enableGlass && 'backdrop-blur-sm shadow-lg hover:shadow-xl'\n            )}\n          >\n            {language === 'es' ? 'Crear ROS' : 'Create ROS'}\n          </button>\n          <button\n            onClick={() => onCreateReport?.('ROI')}\n            className={cn(\n              'px-6 py-3 rounded-2xl font-medium transition-all duration-300',\n              enableGlass \n                ? 'bg-white/60 hover:bg-white/80 text-gray-700 backdrop-blur-sm border border-white/40'\n                : 'bg-gray-100 hover:bg-gray-200 text-gray-700'\n            )}\n          >\n            {language === 'es' ? 'Crear ROI' : 'Create ROI'}\n          </button>\n        </div>\n      )}\n    </div>\n  )\n}\n\nexport type { BirhausSEPRELADDashboardV3Props, SEPRELADReportV3, SEPRELADMetricsV3 }","'use client'\n\nimport React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\nimport { useBirhaus } from '@birhaus/provider'\nimport { useTheme } from '@birhaus/themes'\nimport { \n  Search,\n  Filter,\n  User,\n  Shield,\n  AlertTriangle,\n  CheckCircle,\n  Clock,\n  Eye,\n  Edit,\n  Trash2,\n  Download,\n  FileText,\n  Lock,\n  Unlock,\n  Settings,\n  Sparkles,\n  Calendar,\n  MapPin\n} from 'lucide-react'\n\n// Local cn utility\nconst cn = (...inputs: (string | boolean | undefined | null)[]) => twMerge(clsx(inputs))\n\n// V3 Audit Trail variants with glass morphism\nconst auditTrailV3Variants = cva(\n  'group relative transition-all duration-700 ease-smooth overflow-hidden backdrop-blur-md border border-white/30',\n  {\n    variants: {\n      glassVariant: {\n        subtle: 'bg-white/40 shadow-lg',\n        medium: 'bg-white/60 shadow-xl backdrop-saturate-150',\n        intense: 'bg-white/80 shadow-2xl backdrop-saturate-200'\n      },\n      borderRadius: {\n        moderate: 'rounded-2xl',\n        generous: 'rounded-3xl',\n        radical: 'rounded-[2.5rem]'\n      },\n      spacing: {\n        comfortable: 'p-6',\n        generous: 'p-8',\n        radical: 'p-12'\n      },\n      floating: {\n        true: 'hover:scale-[1.005] hover:-translate-y-0.5',\n        false: ''\n      }\n    },\n    defaultVariants: {\n      glassVariant: 'medium',\n      borderRadius: 'generous',\n      spacing: 'generous',\n      floating: false\n    }\n  }\n)\n\nconst auditEventVariants = cva(\n  'transition-all duration-300 backdrop-blur-sm border border-white/30 rounded-2xl hover:shadow-md',\n  {\n    variants: {\n      severity: {\n        info: 'bg-blue-50/60 border-blue-200/50 hover:bg-blue-50/80',\n        warning: 'bg-amber-50/60 border-amber-200/50 hover:bg-amber-50/80',\n        error: 'bg-red-50/60 border-red-200/50 hover:bg-red-50/80',\n        success: 'bg-green-50/60 border-green-200/50 hover:bg-green-50/80',\n        critical: 'bg-red-100/70 border-red-300/60 hover:bg-red-100/90'\n      }\n    },\n    defaultVariants: {\n      severity: 'info'\n    }\n  }\n)\n\nexport interface AuditEventV3 {\n  id: string\n  timestamp: Date\n  userId: string\n  userName: string\n  userRole: string\n  action: string\n  actionEs?: string\n  actionEn?: string\n  resource: string\n  resourceType: 'user' | 'document' | 'transaction' | 'system' | 'configuration'\n  severity: 'info' | 'warning' | 'error' | 'success' | 'critical'\n  description: string\n  descriptionEs?: string\n  descriptionEn?: string\n  metadata?: {\n    ipAddress?: string\n    userAgent?: string\n    location?: string\n    sessionId?: string\n    entityId?: string\n    beforeValue?: any\n    afterValue?: any\n    requestId?: string\n  }\n  status: 'logged' | 'reviewed' | 'investigated' | 'resolved'\n  reviewedBy?: string\n  reviewedAt?: Date\n  tags?: string[]\n}\n\nexport interface AuditFiltersV3 {\n  dateRange?: {\n    from: Date\n    to: Date\n  }\n  userIds?: string[]\n  actions?: string[]\n  severities?: ('info' | 'warning' | 'error' | 'success' | 'critical')[]\n  resourceTypes?: ('user' | 'document' | 'transaction' | 'system' | 'configuration')[]\n  statuses?: ('logged' | 'reviewed' | 'investigated' | 'resolved')[]\n  searchTerm?: string\n}\n\nexport interface BirhausAuditTrailV3Props extends VariantProps<typeof auditTrailV3Variants> {\n  // Audit data\n  events: AuditEventV3[]\n  \n  // V3 Glass styling\n  enableGlass?: boolean\n  glassIntensity?: 'subtle' | 'medium' | 'intense'\n  enableFloating?: boolean\n  reducedMotion?: boolean\n  \n  // Display options\n  showSearch?: boolean\n  showFilters?: boolean\n  showUserDetails?: boolean\n  showMetadata?: boolean\n  showTimeline?: boolean\n  itemsPerPage?: number\n  \n  // Permissions\n  canViewDetails?: boolean\n  canExportAudit?: boolean\n  canReviewEvents?: boolean\n  \n  // Theme\n  themeName?: 'compliance' | 'security' | 'financial' | 'default'\n  \n  // Interaction\n  onEventClick?: (event: AuditEventV3) => void\n  onFilterChange?: (filters: AuditFiltersV3) => void\n  onExportAudit?: () => void\n  onReviewEvent?: (eventId: string) => void\n  \n  // Standard props\n  className?: string\n  loading?: boolean\n  title?: string\n  titleEs?: string\n  titleEn?: string\n}\n\n/**\n * BirhausAuditTrailV3 - Glass morphism audit trail with comprehensive event tracking\n * \n * Features:\n * - Glass morphism event cards with severity-based color coding\n * - Real-time audit event filtering and search\n * - Comprehensive metadata display with glass styling\n * - User action tracking with IP and location data\n * - Spanish-first audit terminology and descriptions\n * - Timeline visualization with floating effects\n * - Security-focused event categorization\n * - Export capabilities for compliance reporting\n */\nexport function BirhausAuditTrailV3({\n  events,\n  enableGlass = true,\n  glassVariant = 'medium',\n  borderRadius = 'generous',\n  spacing = 'generous',\n  floating = false,\n  showSearch = true,\n  showFilters = true,\n  showUserDetails = true,\n  showMetadata = false,\n  showTimeline = true,\n  itemsPerPage = 20,\n  canViewDetails = true,\n  canExportAudit = false,\n  canReviewEvents = false,\n  reducedMotion = false,\n  themeName = 'compliance',\n  onEventClick,\n  onFilterChange,\n  onExportAudit,\n  onReviewEvent,\n  className,\n  loading = false,\n  title,\n  titleEs,\n  titleEn,\n  ...props\n}: BirhausAuditTrailV3Props) {\n  const { language } = useBirhaus()\n  const theme = useTheme(themeName)\n  \n  const [filters, setFilters] = React.useState<AuditFiltersV3>({})\n  const [searchTerm, setSearchTerm] = React.useState('')\n  const [showFilterPanel, setShowFilterPanel] = React.useState(false)\n  const [currentPage, setCurrentPage] = React.useState(1)\n  const [expandedEvent, setExpandedEvent] = React.useState<string | null>(null)\n\n  // Get action icon\n  const getActionIcon = React.useCallback((action: string, resourceType: string) => {\n    const actionLower = action.toLowerCase()\n    \n    if (actionLower.includes('login') || actionLower.includes('auth')) return User\n    if (actionLower.includes('create') || actionLower.includes('add')) return FileText\n    if (actionLower.includes('update') || actionLower.includes('edit') || actionLower.includes('modify')) return Edit\n    if (actionLower.includes('delete') || actionLower.includes('remove')) return Trash2\n    if (actionLower.includes('view') || actionLower.includes('access')) return Eye\n    if (actionLower.includes('download') || actionLower.includes('export')) return Download\n    if (actionLower.includes('lock') || actionLower.includes('block')) return Lock\n    if (actionLower.includes('unlock') || actionLower.includes('unblock')) return Unlock\n    if (actionLower.includes('config') || actionLower.includes('setting')) return Settings\n    \n    // Fallback by resource type\n    if (resourceType === 'user') return User\n    if (resourceType === 'transaction') return FileText\n    if (resourceType === 'system') return Settings\n    if (resourceType === 'configuration') return Settings\n    \n    return Shield\n  }, [])\n\n  // Get severity info\n  const getSeverityInfo = React.useCallback((severity: string) => {\n    const severities = {\n      info: {\n        icon: CheckCircle,\n        color: 'text-blue-600',\n        label: language === 'es' ? 'Información' : 'Info',\n        bgColor: 'bg-blue-100/60'\n      },\n      warning: {\n        icon: AlertTriangle,\n        color: 'text-amber-600',\n        label: language === 'es' ? 'Advertencia' : 'Warning',\n        bgColor: 'bg-amber-100/60'\n      },\n      error: {\n        icon: AlertTriangle,\n        color: 'text-red-600',\n        label: language === 'es' ? 'Error' : 'Error',\n        bgColor: 'bg-red-100/60'\n      },\n      success: {\n        icon: CheckCircle,\n        color: 'text-green-600',\n        label: language === 'es' ? 'Éxito' : 'Success',\n        bgColor: 'bg-green-100/60'\n      },\n      critical: {\n        icon: AlertTriangle,\n        color: 'text-red-700',\n        label: language === 'es' ? 'Crítico' : 'Critical',\n        bgColor: 'bg-red-100/70'\n      }\n    }\n    \n    return severities[severity as keyof typeof severities] || severities.info\n  }, [language])\n\n  // Filter events\n  const filteredEvents = React.useMemo(() => {\n    let filtered = events\n\n    // Search filter\n    if (searchTerm) {\n      filtered = filtered.filter(event => \n        event.userName.toLowerCase().includes(searchTerm.toLowerCase()) ||\n        event.action.toLowerCase().includes(searchTerm.toLowerCase()) ||\n        event.resource.toLowerCase().includes(searchTerm.toLowerCase()) ||\n        event.description.toLowerCase().includes(searchTerm.toLowerCase())\n      )\n    }\n\n    // Apply other filters\n    if (filters.userIds?.length) {\n      filtered = filtered.filter(event => filters.userIds!.includes(event.userId))\n    }\n\n    if (filters.severities?.length) {\n      filtered = filtered.filter(event => filters.severities!.includes(event.severity))\n    }\n\n    if (filters.resourceTypes?.length) {\n      filtered = filtered.filter(event => filters.resourceTypes!.includes(event.resourceType))\n    }\n\n    if (filters.dateRange) {\n      filtered = filtered.filter(event => \n        event.timestamp >= filters.dateRange!.from && \n        event.timestamp <= filters.dateRange!.to\n      )\n    }\n\n    return filtered.sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime())\n  }, [events, searchTerm, filters])\n\n  // Paginated events\n  const paginatedEvents = React.useMemo(() => {\n    const start = (currentPage - 1) * itemsPerPage\n    const end = start + itemsPerPage\n    return filteredEvents.slice(start, end)\n  }, [filteredEvents, currentPage, itemsPerPage])\n\n  const totalPages = Math.ceil(filteredEvents.length / itemsPerPage)\n\n  // Handle search\n  const handleSearch = React.useCallback((value: string) => {\n    setSearchTerm(value)\n    setCurrentPage(1)\n  }, [])\n\n  // Handle filter change\n  const handleFilterChange = React.useCallback((newFilters: AuditFiltersV3) => {\n    setFilters(newFilters)\n    setCurrentPage(1)\n    onFilterChange?.(newFilters)\n  }, [onFilterChange])\n\n  // Toggle event details\n  const toggleEventDetails = React.useCallback((eventId: string) => {\n    setExpandedEvent(prev => prev === eventId ? null : eventId)\n  }, [])\n\n  if (loading) {\n    return (\n      <div className={cn(\n        auditTrailV3Variants({\n          glassVariant: enableGlass ? glassVariant : undefined,\n          borderRadius,\n          spacing\n        }),\n        'animate-pulse',\n        !enableGlass && 'bg-white border-gray-200',\n        className\n      )}>\n        <div className=\"space-y-4\">\n          {[...Array(8)].map((_, i) => (\n            <div key={i} className=\"h-16 bg-gray-200/50 rounded-2xl\" />\n          ))}\n        </div>\n      </div>\n    )\n  }\n\n  return (\n    <div\n      className={cn(\n        auditTrailV3Variants({\n          glassVariant: enableGlass ? glassVariant : undefined,\n          borderRadius,\n          spacing,\n          floating: floating && !reducedMotion\n        }),\n        'space-y-6',\n        !enableGlass && 'bg-white border-gray-200',\n        className\n      )}\n      {...props}\n    >\n      {/* Glass gradient overlay */}\n      {enableGlass && (\n        <div className=\"absolute inset-0 rounded-[inherit] bg-gradient-to-br from-white/20 via-transparent to-white/5 pointer-events-none\" />\n      )}\n\n      {/* Floating sparkle effects */}\n      {enableGlass && floating && (\n        <div className=\"absolute top-6 right-6 text-blue-400/40\">\n          <Sparkles size={20} className=\"animate-pulse\" />\n        </div>\n      )}\n\n      {/* Header */}\n      <div className=\"relative flex items-center justify-between\">\n        <div className=\"space-y-2\">\n          <h2 className=\"text-2xl font-bold text-gray-800 flex items-center gap-3\">\n            <Shield size={28} className=\"text-blue-600\" />\n            {language === 'es' \n              ? (titleEs || title || 'Registro de Auditoría')\n              : (titleEn || title || 'Audit Trail')\n            }\n          </h2>\n          <p className=\"text-gray-600\">\n            {language === 'es' \n              ? 'Seguimiento completo de eventos del sistema'\n              : 'Comprehensive system event tracking'\n            }\n          </p>\n        </div>\n\n        <div className=\"flex items-center gap-3\">\n          {/* Export button */}\n          {canExportAudit && (\n            <button\n              onClick={onExportAudit}\n              className={cn(\n                'flex items-center gap-2 px-4 py-2 rounded-xl transition-all duration-300',\n                enableGlass \n                  ? 'bg-white/60 hover:bg-white/80 backdrop-blur-sm border border-white/40'\n                  : 'bg-gray-100 hover:bg-gray-200'\n              )}\n            >\n              <Download size={16} />\n              <span className=\"text-sm font-medium\">\n                {language === 'es' ? 'Exportar' : 'Export'}\n              </span>\n            </button>\n          )}\n\n          {/* Sparkle decoration */}\n          {enableGlass && (\n            <div className=\"text-blue-400/40\">\n              <Sparkles size={20} className=\"animate-pulse\" />\n            </div>\n          )}\n        </div>\n      </div>\n\n      {/* Search and filters */}\n      {(showSearch || showFilters) && (\n        <div className=\"relative space-y-4\">\n          {/* Search */}\n          {showSearch && (\n            <div className=\"relative\">\n              <div className=\"absolute left-4 top-1/2 -translate-y-1/2\">\n                <Search size={20} className=\"text-gray-500\" />\n              </div>\n              <input\n                type=\"text\"\n                placeholder={\n                  language === 'es' \n                    ? 'Buscar eventos, usuarios, acciones...' \n                    : 'Search events, users, actions...'\n                }\n                value={searchTerm}\n                onChange={(e) => handleSearch(e.target.value)}\n                className={cn(\n                  'w-full pl-12 pr-4 py-3 text-base rounded-2xl border-0 outline-0 transition-all duration-300',\n                  'focus:ring-2 focus:ring-blue-500/50',\n                  enableGlass \n                    ? 'bg-white/70 backdrop-blur-sm placeholder-gray-600 backdrop-saturate-150'\n                    : 'bg-gray-50 border border-gray-300 placeholder-gray-500'\n                )}\n              />\n            </div>\n          )}\n\n          {/* Filter toggle */}\n          {showFilters && (\n            <div className=\"flex items-center gap-4\">\n              <button\n                onClick={() => setShowFilterPanel(!showFilterPanel)}\n                className={cn(\n                  'flex items-center gap-2 px-4 py-2 rounded-xl transition-all duration-300',\n                  enableGlass \n                    ? 'bg-white/60 hover:bg-white/80 backdrop-blur-sm border border-white/40'\n                    : 'bg-gray-100 hover:bg-gray-200'\n                )}\n              >\n                <Filter size={16} />\n                <span className=\"text-sm font-medium\">\n                  {language === 'es' ? 'Filtros' : 'Filters'}\n                </span>\n              </button>\n\n              {/* Quick severity filters */}\n              <div className=\"flex items-center gap-2\">\n                {['info', 'warning', 'error', 'critical'].map((severity) => {\n                  const severityInfo = getSeverityInfo(severity)\n                  const isActive = filters.severities?.includes(severity as any)\n                  \n                  return (\n                    <button\n                      key={severity}\n                      onClick={() => handleFilterChange({\n                        ...filters,\n                        severities: isActive \n                          ? filters.severities?.filter(s => s !== severity)\n                          : [...(filters.severities || []), severity as any]\n                      })}\n                      className={cn(\n                        'flex items-center gap-1 px-3 py-2 rounded-lg text-sm transition-all duration-200',\n                        enableGlass ? [\n                          isActive\n                            ? `${severityInfo.bgColor} backdrop-blur-sm border border-white/40`\n                            : 'bg-white/50 hover:bg-white/70 backdrop-blur-sm border border-white/30'\n                        ] : [\n                          isActive\n                            ? severityInfo.bgColor\n                            : 'bg-gray-100 hover:bg-gray-200'\n                        ]\n                      )}\n                    >\n                      <severityInfo.icon size={12} className={severityInfo.color} />\n                      <span className={severityInfo.color}>\n                        {severityInfo.label}\n                      </span>\n                    </button>\n                  )\n                })}\n              </div>\n            </div>\n          )}\n        </div>\n      )}\n\n      {/* Results summary */}\n      <div className=\"text-sm text-gray-600\">\n        {language === 'es' \n          ? `${filteredEvents.length} eventos encontrados`\n          : `${filteredEvents.length} events found`\n        }\n      </div>\n\n      {/* Audit events list */}\n      <div className=\"relative space-y-3\">\n        {paginatedEvents.map((event) => {\n          const ActionIcon = getActionIcon(event.action, event.resourceType)\n          const severityInfo = getSeverityInfo(event.severity)\n          const isExpanded = expandedEvent === event.id\n          \n          return (\n            <div\n              key={event.id}\n              className={cn(\n                auditEventVariants({ severity: event.severity }),\n                'p-4',\n                !enableGlass && 'bg-white border border-gray-200'\n              )}\n            >\n              <div \n                className={cn(\n                  'flex items-start gap-4',\n                  canViewDetails && 'cursor-pointer'\n                )}\n                onClick={() => canViewDetails && toggleEventDetails(event.id)}\n              >\n                {/* Timeline indicator */}\n                {showTimeline && (\n                  <div className=\"flex flex-col items-center\">\n                    <div className={cn(\n                      'p-3 rounded-xl transition-colors duration-300',\n                      enableGlass \n                        ? 'bg-white/60 backdrop-blur-sm border border-white/40'\n                        : 'bg-gray-100'\n                    )}>\n                      <ActionIcon size={20} className={severityInfo.color} />\n                    </div>\n                    <div className=\"w-0.5 h-6 bg-gray-200 mt-2\"></div>\n                  </div>\n                )}\n\n                {/* Event details */}\n                <div className=\"flex-1 min-w-0\">\n                  <div className=\"flex items-start justify-between\">\n                    <div className=\"flex-1\">\n                      <div className=\"flex items-center gap-3 mb-2\">\n                        <h4 className=\"font-medium text-gray-800\">\n                          {language === 'es' \n                            ? (event.actionEs || event.action)\n                            : (event.actionEn || event.action)\n                          }\n                        </h4>\n                        <div className={cn(\n                          'inline-flex items-center gap-1 px-2 py-1 rounded text-xs',\n                          enableGlass \n                            ? severityInfo.bgColor + ' backdrop-blur-sm'\n                            : severityInfo.bgColor\n                        )}>\n                          <severityInfo.icon size={12} className={severityInfo.color} />\n                          {severityInfo.label}\n                        </div>\n                      </div>\n\n                      <p className=\"text-sm text-gray-600 mb-2\">\n                        {language === 'es' \n                          ? (event.descriptionEs || event.description)\n                          : (event.descriptionEn || event.description)\n                        }\n                      </p>\n\n                      {showUserDetails && (\n                        <div className=\"flex items-center gap-4 text-xs text-gray-500\">\n                          <div className=\"flex items-center gap-1\">\n                            <User size={12} />\n                            <span>{event.userName} ({event.userRole})</span>\n                          </div>\n                          <div className=\"flex items-center gap-1\">\n                            <Clock size={12} />\n                            <span>\n                              {event.timestamp.toLocaleString(\n                                language === 'es' ? 'es-PY' : 'en-US'\n                              )}\n                            </span>\n                          </div>\n                          {event.metadata?.ipAddress && (\n                            <div className=\"flex items-center gap-1\">\n                              <MapPin size={12} />\n                              <span>{event.metadata.ipAddress}</span>\n                            </div>\n                          )}\n                        </div>\n                      )}\n                    </div>\n\n                    {/* Actions */}\n                    <div className=\"flex items-center gap-2\">\n                      {canReviewEvents && event.status === 'logged' && (\n                        <button\n                          onClick={(e) => {\n                            e.stopPropagation()\n                            onReviewEvent?.(event.id)\n                          }}\n                          className={cn(\n                            'px-3 py-1 rounded-lg text-xs transition-colors',\n                            enableGlass \n                              ? 'bg-blue-100/60 text-blue-700 hover:bg-blue-100/80 backdrop-blur-sm'\n                              : 'bg-blue-100 text-blue-700 hover:bg-blue-200'\n                          )}\n                        >\n                          {language === 'es' ? 'Revisar' : 'Review'}\n                        </button>\n                      )}\n                    </div>\n                  </div>\n\n                  {/* Expanded metadata */}\n                  {isExpanded && showMetadata && event.metadata && (\n                    <div className={cn(\n                      'mt-4 p-4 rounded-xl transition-colors duration-300',\n                      enableGlass \n                        ? 'bg-white/40 backdrop-blur-sm border border-white/30'\n                        : 'bg-gray-50'\n                    )}>\n                      <h5 className=\"text-sm font-medium text-gray-700 mb-2\">\n                        {language === 'es' ? 'Metadatos' : 'Metadata'}\n                      </h5>\n                      <div className=\"grid grid-cols-2 gap-3 text-xs\">\n                        {event.metadata.sessionId && (\n                          <div>\n                            <span className=\"text-gray-500\">Session ID:</span>\n                            <span className=\"font-mono ml-2\">{event.metadata.sessionId}</span>\n                          </div>\n                        )}\n                        {event.metadata.userAgent && (\n                          <div className=\"col-span-2\">\n                            <span className=\"text-gray-500\">User Agent:</span>\n                            <span className=\"font-mono ml-2 break-all\">{event.metadata.userAgent}</span>\n                          </div>\n                        )}\n                        {event.metadata.beforeValue && (\n                          <div>\n                            <span className=\"text-gray-500\">Before:</span>\n                            <pre className=\"text-xs mt-1 p-2 bg-gray-100/60 rounded\">\n                              {JSON.stringify(event.metadata.beforeValue, null, 2)}\n                            </pre>\n                          </div>\n                        )}\n                        {event.metadata.afterValue && (\n                          <div>\n                            <span className=\"text-gray-500\">After:</span>\n                            <pre className=\"text-xs mt-1 p-2 bg-gray-100/60 rounded\">\n                              {JSON.stringify(event.metadata.afterValue, null, 2)}\n                            </pre>\n                          </div>\n                        )}\n                      </div>\n                    </div>\n                  )}\n                </div>\n              </div>\n            </div>\n          )\n        })}\n      </div>\n\n      {/* Pagination */}\n      {totalPages > 1 && (\n        <div className=\"flex items-center justify-center gap-2 pt-4\">\n          {[...Array(Math.min(totalPages, 10))].map((_, i) => (\n            <button\n              key={i + 1}\n              onClick={() => setCurrentPage(i + 1)}\n              className={cn(\n                'px-3 py-2 rounded-lg text-sm font-medium transition-all duration-200',\n                i + 1 === currentPage\n                  ? enableGlass\n                    ? 'bg-blue-100/80 text-blue-700 backdrop-blur-sm'\n                    : 'bg-blue-100 text-blue-700'\n                  : enableGlass\n                    ? 'bg-white/50 hover:bg-white/70 text-gray-600 backdrop-blur-sm'\n                    : 'bg-gray-100 hover:bg-gray-200 text-gray-600'\n              )}\n            >\n              {i + 1}\n            </button>\n          ))}\n        </div>\n      )}\n\n      {/* Empty state */}\n      {filteredEvents.length === 0 && !loading && (\n        <div className=\"text-center py-12\">\n          <div className=\"relative mb-4\">\n            <Shield size={48} className=\"text-gray-400 mx-auto\" />\n            {enableGlass && (\n              <div className=\"absolute inset-0 bg-gradient-to-br from-gray-400/20 to-transparent rounded-full blur-xl\" />\n            )}\n          </div>\n          <h3 className=\"text-lg font-medium text-gray-700 mb-2\">\n            {language === 'es' ? 'No se encontraron eventos' : 'No events found'}\n          </h3>\n          <p className=\"text-gray-500\">\n            {language === 'es' \n              ? 'Ajusta los filtros para ver más eventos'\n              : 'Adjust filters to see more events'\n            }\n          </p>\n        </div>\n      )}\n    </div>\n  )\n}\n\nexport type { BirhausAuditTrailV3Props, AuditEventV3, AuditFiltersV3 }"]}