@realtimex/email-automator 2.19.2 → 2.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,270 @@
1
+ import 'jsr:@supabase/functions-js/edge-runtime.d.ts';
2
+ import { supabaseAdmin } from '../_shared/supabaseAdmin.ts';
3
+ import { handleCors, createErrorResponse, createSuccessResponse } from '../_shared/cors.ts';
4
+ import { verifyUser } from '../_shared/auth.ts';
5
+
6
+ /**
7
+ * Drafts API - Draft Review Center
8
+ *
9
+ * GET /api-v1-drafts - List all pending drafts
10
+ * GET /api-v1-drafts/stats - Draft analytics
11
+ * POST /api-v1-drafts/:id/send - Send a draft via provider API
12
+ * POST /api-v1-drafts/:id/dismiss - Mark draft as dismissed
13
+ * POST /api-v1-drafts/:id/regenerate - Regenerate draft with new instructions
14
+ */
15
+
16
+ Deno.serve(async (req) => {
17
+ // Handle CORS preflight
18
+ const corsResponse = handleCors(req);
19
+ if (corsResponse) return corsResponse;
20
+
21
+ // Verify user authentication
22
+ const { user, error: authError } = await verifyUser(req);
23
+ if (authError || !user) {
24
+ return createErrorResponse(401, authError || 'Unauthorized');
25
+ }
26
+
27
+ try {
28
+ const url = new URL(req.url);
29
+ const pathParts = url.pathname.split('/').filter(Boolean);
30
+
31
+ // GET /api-v1-drafts/stats - Draft analytics
32
+ if (req.method === 'GET' && pathParts[1] === 'stats') {
33
+ // Get total pending drafts
34
+ const { count: pendingCount } = await supabaseAdmin
35
+ .from('emails')
36
+ .select('id', { count: 'exact', head: true })
37
+ .eq('draft_status', 'pending')
38
+ .not('draft_id', 'is', null)
39
+ .in('account_id',
40
+ supabaseAdmin
41
+ .from('email_accounts')
42
+ .select('id')
43
+ .eq('user_id', user.id)
44
+ );
45
+
46
+ // Get total sent drafts
47
+ const { count: sentCount } = await supabaseAdmin
48
+ .from('emails')
49
+ .select('id', { count: 'exact', head: true })
50
+ .eq('draft_status', 'sent')
51
+ .not('draft_id', 'is', null)
52
+ .in('account_id',
53
+ supabaseAdmin
54
+ .from('email_accounts')
55
+ .select('id')
56
+ .eq('user_id', user.id)
57
+ );
58
+
59
+ // Get total dismissed drafts
60
+ const { count: dismissedCount } = await supabaseAdmin
61
+ .from('emails')
62
+ .select('id', { count: 'exact', head: true })
63
+ .eq('draft_status', 'dismissed')
64
+ .not('draft_id', 'is', null)
65
+ .in('account_id',
66
+ supabaseAdmin
67
+ .from('email_accounts')
68
+ .select('id')
69
+ .eq('user_id', user.id)
70
+ );
71
+
72
+ // Calculate time saved (assuming 5 minutes per email)
73
+ const timeSavedMinutes = (sentCount || 0) * 5;
74
+
75
+ return createSuccessResponse({
76
+ pending: pendingCount || 0,
77
+ sent: sentCount || 0,
78
+ dismissed: dismissedCount || 0,
79
+ timeSavedMinutes,
80
+ });
81
+ }
82
+
83
+ // GET /api-v1-drafts - List all pending drafts
84
+ if (req.method === 'GET' && pathParts.length === 1) {
85
+ const limit = parseInt(url.searchParams.get('limit') || '50');
86
+ const offset = parseInt(url.searchParams.get('offset') || '0');
87
+ const account_id = url.searchParams.get('account_id');
88
+ const status = url.searchParams.get('status') || 'pending';
89
+
90
+ let query = supabaseAdmin
91
+ .from('emails')
92
+ .select(`
93
+ *,
94
+ email_accounts!inner(id, user_id, email_address, provider)
95
+ `, { count: 'exact' })
96
+ .eq('email_accounts.user_id', user.id)
97
+ .eq('draft_status', status)
98
+ .not('draft_id', 'is', null)
99
+ .order('draft_created_at', { ascending: false })
100
+ .range(offset, offset + limit - 1);
101
+
102
+ // Filter by account if specified
103
+ if (account_id) {
104
+ query = query.eq('account_id', account_id);
105
+ }
106
+
107
+ const { data, error, count } = await query;
108
+
109
+ if (error) {
110
+ console.error('Database error:', error);
111
+ return createErrorResponse(500, 'Failed to fetch drafts');
112
+ }
113
+
114
+ return createSuccessResponse({
115
+ drafts: data || [],
116
+ total: count || 0,
117
+ limit,
118
+ offset,
119
+ });
120
+ }
121
+
122
+ // POST /api-v1-drafts/:id/send - Send a draft
123
+ if (req.method === 'POST' && pathParts.length === 3 && pathParts[2] === 'send') {
124
+ const emailId = pathParts[1];
125
+
126
+ // Get email with draft
127
+ const { data: email, error: fetchError } = await supabaseAdmin
128
+ .from('emails')
129
+ .select(`
130
+ *,
131
+ email_accounts!inner(id, user_id, email_address, provider, access_token, refresh_token, token_expires_at, scopes)
132
+ `)
133
+ .eq('id', emailId)
134
+ .eq('email_accounts.user_id', user.id)
135
+ .eq('draft_status', 'pending')
136
+ .not('draft_id', 'is', null)
137
+ .single();
138
+
139
+ if (fetchError || !email) {
140
+ return createErrorResponse(404, 'Draft not found or already processed');
141
+ }
142
+
143
+ const account = email.email_accounts;
144
+ const draftId = email.draft_id;
145
+
146
+ if (!draftId) {
147
+ return createErrorResponse(400, 'Draft ID not found');
148
+ }
149
+
150
+ try {
151
+ // Send draft via provider API
152
+ if (account.provider === 'gmail') {
153
+ const { getGmailService } = await import('../_shared/gmail-service.ts');
154
+ const gmailService = getGmailService();
155
+
156
+ // Refresh token if needed
157
+ const refreshedAccount = await gmailService.refreshTokenIfNeeded(supabaseAdmin, account);
158
+
159
+ // Send the draft
160
+ await gmailService.sendDraft(refreshedAccount, draftId);
161
+ } else if (account.provider === 'outlook') {
162
+ const { getMicrosoftService } = await import('../_shared/microsoft-service.ts');
163
+ const microsoftService = getMicrosoftService();
164
+
165
+ // Refresh token if needed
166
+ const refreshedAccount = await microsoftService.refreshTokenIfNeeded(supabaseAdmin, account);
167
+
168
+ // Send the draft
169
+ await microsoftService.sendDraft(refreshedAccount, draftId);
170
+ } else {
171
+ return createErrorResponse(400, `Unsupported provider: ${account.provider}`);
172
+ }
173
+
174
+ // Update draft status in database
175
+ const { error: updateError } = await supabaseAdmin
176
+ .from('emails')
177
+ .update({
178
+ draft_status: 'sent',
179
+ draft_sent_at: new Date().toISOString(),
180
+ })
181
+ .eq('id', emailId);
182
+
183
+ if (updateError) {
184
+ console.error('Database error:', updateError);
185
+ return createErrorResponse(500, 'Failed to update draft status');
186
+ }
187
+
188
+ return createSuccessResponse({
189
+ success: true,
190
+ message: 'Draft sent successfully',
191
+ });
192
+ } catch (error) {
193
+ console.error('Error sending draft:', error);
194
+ return createErrorResponse(500, error instanceof Error ? error.message : 'Failed to send draft');
195
+ }
196
+ }
197
+
198
+ // POST /api-v1-drafts/:id/dismiss - Dismiss a draft
199
+ if (req.method === 'POST' && pathParts.length === 3 && pathParts[2] === 'dismiss') {
200
+ const emailId = pathParts[1];
201
+
202
+ // Verify ownership
203
+ const { data: email } = await supabaseAdmin
204
+ .from('emails')
205
+ .select('id, email_accounts!inner(user_id)')
206
+ .eq('id', emailId)
207
+ .eq('email_accounts.user_id', user.id)
208
+ .single();
209
+
210
+ if (!email) {
211
+ return createErrorResponse(404, 'Draft not found');
212
+ }
213
+
214
+ // Update draft status
215
+ const { error } = await supabaseAdmin
216
+ .from('emails')
217
+ .update({
218
+ draft_status: 'dismissed',
219
+ draft_dismissed_at: new Date().toISOString(),
220
+ })
221
+ .eq('id', emailId);
222
+
223
+ if (error) {
224
+ console.error('Database error:', error);
225
+ return createErrorResponse(500, 'Failed to dismiss draft');
226
+ }
227
+
228
+ return createSuccessResponse({
229
+ success: true,
230
+ message: 'Draft dismissed',
231
+ });
232
+ }
233
+
234
+ // POST /api-v1-drafts/:id/regenerate - Regenerate draft
235
+ if (req.method === 'POST' && pathParts.length === 3 && pathParts[2] === 'regenerate') {
236
+ const emailId = pathParts[1];
237
+ const body = await req.json();
238
+ const { instructions } = body;
239
+
240
+ if (!instructions) {
241
+ return createErrorResponse(400, 'Instructions are required');
242
+ }
243
+
244
+ // Verify ownership
245
+ const { data: email } = await supabaseAdmin
246
+ .from('emails')
247
+ .select('id, email_accounts!inner(user_id)')
248
+ .eq('id', emailId)
249
+ .eq('email_accounts.user_id', user.id)
250
+ .single();
251
+
252
+ if (!email) {
253
+ return createErrorResponse(404, 'Draft not found');
254
+ }
255
+
256
+ // TODO: Call AI service to regenerate draft with new instructions
257
+ // This will be implemented in Phase 3
258
+
259
+ return createSuccessResponse({
260
+ success: true,
261
+ message: 'Draft regeneration queued',
262
+ });
263
+ }
264
+
265
+ return createErrorResponse(405, 'Method not allowed');
266
+ } catch (error) {
267
+ console.error('Request error:', error);
268
+ return createErrorResponse(500, 'Internal server error');
269
+ }
270
+ });
@@ -0,0 +1,54 @@
1
+ -- Migration: Add Draft Tracking Fields to Emails Table
2
+ -- Enables Draft Review Center functionality
3
+
4
+ -- Add draft tracking columns
5
+ ALTER TABLE emails
6
+ ADD COLUMN IF NOT EXISTS draft_id TEXT,
7
+ ADD COLUMN IF NOT EXISTS draft_content TEXT,
8
+ ADD COLUMN IF NOT EXISTS draft_status TEXT DEFAULT 'pending' CHECK (draft_status IN ('pending', 'sent', 'dismissed')),
9
+ ADD COLUMN IF NOT EXISTS draft_created_at TIMESTAMPTZ,
10
+ ADD COLUMN IF NOT EXISTS draft_sent_at TIMESTAMPTZ,
11
+ ADD COLUMN IF NOT EXISTS draft_dismissed_at TIMESTAMPTZ;
12
+
13
+ -- Create index for efficient draft queries
14
+ CREATE INDEX IF NOT EXISTS idx_emails_draft_status
15
+ ON emails(draft_status, draft_created_at DESC)
16
+ WHERE draft_id IS NOT NULL;
17
+
18
+ -- Create index for pending drafts (most common query)
19
+ CREATE INDEX IF NOT EXISTS idx_emails_pending_drafts
20
+ ON emails(account_id, draft_created_at DESC)
21
+ WHERE draft_status = 'pending' AND draft_id IS NOT NULL;
22
+
23
+ -- Add comments
24
+ COMMENT ON COLUMN emails.draft_id IS 'External ID of the draft in Gmail/Outlook (used to send the draft)';
25
+ COMMENT ON COLUMN emails.draft_content IS 'Full text of the AI-generated draft reply';
26
+ COMMENT ON COLUMN emails.draft_status IS 'Status of the draft: pending (awaiting review), sent (user approved and sent), dismissed (user rejected)';
27
+ COMMENT ON COLUMN emails.draft_created_at IS 'Timestamp when the draft was created by AI';
28
+ COMMENT ON COLUMN emails.draft_sent_at IS 'Timestamp when the draft was sent';
29
+ COMMENT ON COLUMN emails.draft_dismissed_at IS 'Timestamp when the draft was dismissed';
30
+
31
+ -- Migrate existing draft data from ai_analysis to new fields
32
+ UPDATE emails
33
+ SET
34
+ draft_content = (ai_analysis->>'draft_response'),
35
+ draft_created_at = created_at,
36
+ draft_status = CASE
37
+ WHEN 'draft' = ANY(actions_taken) THEN 'pending'
38
+ ELSE 'pending'
39
+ END
40
+ WHERE ai_analysis->>'draft_response' IS NOT NULL
41
+ AND ai_analysis->>'draft_response' != ''
42
+ AND draft_content IS NULL;
43
+
44
+ -- Log the migration
45
+ DO $$
46
+ DECLARE
47
+ migrated_count INTEGER;
48
+ BEGIN
49
+ SELECT COUNT(*) INTO migrated_count
50
+ FROM emails
51
+ WHERE draft_content IS NOT NULL;
52
+
53
+ RAISE NOTICE 'Migrated % existing drafts to new tracking fields', migrated_count;
54
+ END $$;
@@ -1 +0,0 @@
1
- const e={"app.name":"Email Automator","app.connecting":"Conectando cuenta...","app.loadingWorkspace":"Cargando tu espacio de trabajo...","app.loggedOut":"Sesión cerrada exitosamente","app.statusLive":"EN VIVO","app.statusOffline":"DESCONECTADO","common.loading":"Cargando...","common.save":"Guardar cambios","common.cancel":"Cancelar","common.delete":"Eliminar","common.success":"Éxito","common.error":"Error","common.warning":"Advertencia","common.syncNow":"Sincronizar ahora","common.syncing":"Sincronizando...","common.stopSync":"Detener sincronización","common.systemSync":"Sincronización del sistema","common.viewLogs":"Ver registros","common.saveChanges":"Guardar cambios","common.errorOccurred":"Ocurrió un error","common.previous":"Anterior","common.next":"Siguiente","common.of":"de","common.yes":"Sí","common.no":"No","common.archive":"Archivar","common.flag":"Marcar","common.on":"Activado","common.off":"Desactivado","common.enabled":"Habilitado","common.disabled":"Deshabilitado","common.active":"Activo","common.inactive":"Inactivo","common.draft":"Borrador","common.star":"Estrella","nav.dashboard":"Panel de control","nav.autopilot":"Piloto automático","nav.analytics":"Analítica","nav.configuration":"Configuración","nav.accountSettings":"Configuración de cuenta","nav.signOut":"Cerrar sesión","login.title":"Bienvenido de nuevo","login.subtitle":"Inicia sesión en tu agente de email con IA","login.email":"Dirección de correo electrónico","login.password":"Contraseña","login.signIn":"Iniciar sesión","login.noAccount":"¿No tienes una cuenta?","login.alreadyHaveAccount":"¿Ya tienes una cuenta?","login.signUp":"Registrarse","login.forgotPassword":"¿Olvidaste tu contraseña?","login.initialize":"Inicializar Automator","login.secureLogin":"Inicio de sesión seguro","login.firstNamePlaceholder":"Juan","login.lastNamePlaceholder":"Pérez","login.emailPlaceholder":"admin@automator.ai","login.initializeMaster":"Inicializar maestro","login.sendMagicLink":"Enviar enlace mágico","login.openDashboard":"Abrir panel de control","setup.title":"Configuración del sistema","setup.initiation":"Bienvenido","setup.coordinates":"Detalles de conexión","setup.foundation":"Configuración de base de datos","setup.ignition":"Lanzamiento","setup.start":"Iniciar configuración","setup.welcomeTitle":"Inicializando Automator","setup.welcomeSubtitle":"Configurando tu entorno especializado para inteligencia de bandeja de entrada de alta frecuencia.","setup.encryptedTitle":"Encriptado","setup.encryptedDesc":"Seguridad de datos autoalojados.","setup.turboTitle":"Turbo","setup.turboDesc":"Inferencia de IA en menos de un segundo.","setup.getStarted":"Comenzar","setup.connectionMode":"Modo de conexión","setup.selectVector":"Seleccionar modo de implementación","setup.quickIgnition":"Inicio rápido","setup.autoProvision":"Aprovisionamiento automático mediante token","setup.manualSync":"Sincronización manual","setup.existingCredentials":"Credenciales existentes","setup.abortAccess":"Abortar acceso","setup.injectCoordinates":"Ingresar credenciales existentes","setup.platformUrl":"URL de la plataforma","setup.urlHelp":"Ingrese la URL completa o solo el ID del proyecto","setup.anonMatrixKey":"Clave anónima de Supabase","setup.keyHelp":"Se encuentra en la configuración de tu proyecto Supabase","setup.back":"Atrás","setup.engage":"Conectar","setup.installation":"Instalación","setup.applyingSchema":"Configurando base de datos...","setup.emptyProject":"Proyecto vacío detectado. La inicialización es obligatoria para instalar los sistemas de IA principales.","setup.versionMismatch":"Incompatibilidad de versión detectada. Se recomienda normalización.","setup.tokenRequired":"Token de gestión requerido","setup.migrateHelp":"Se usa una vez para ejecutar migraciones en tu backend.","setup.bypassRisk":"Omitir (Arriesgado)","setup.installSystems":"Instalar sistemas","setup.normalizeSystem":"Normalizar sistema","setup.retryInstallation":"Reintentar instalación","dashboard.recentAnalysis":"Análisis reciente","dashboard.emails":"correos electrónicos","dashboard.noEmails":"No se encontraron correos electrónicos","dashboard.noEmailsConnected":"Conecta tu cuenta de correo electrónico para comenzar.","dashboard.noEmailsFilters":"Intenta sincronizar o ajustar tus filtros.","dashboard.syncInProgress":"Sincronización en progreso...","dashboard.syncInProgressDesc":"Obteniendo y analizando correos electrónicos. Los nuevos correos aparecerán automáticamente a continuación.","dashboard.aiTrace":"Rastreo de procesamiento de IA","dashboard.aiTraceDesc":"Registros paso a paso de cómo la IA analizó y actuó sobre este correo electrónico.","dashboard.noTrace":"No se encontraron eventos de rastreo detallados para este correo electrónico.","dashboard.syncNow":"Sincronizar ahora","dashboard.syncing":"Sincronizando...","dashboard.searchPlaceholder":"Buscar correos electrónicos...","dashboard.search":"Buscar","dashboard.receivedTime":"Hora de recepción","dashboard.processedTime":"Hora de procesamiento","dashboard.receivedAbbr":"REC","dashboard.processedAbbr":"PROC","dashboard.sortOldest":"Ordenar: Más antiguo primero","dashboard.sortNewest":"Ordenar: Más reciente primero","dashboard.category.all":"Todos","dashboard.category.none":"ninguno","dashboard.emailDetails":"Detalles del correo electrónico","dashboard.emailContent":"Contenido del correo electrónico (enviado al LLM)","dashboard.from":"De:","dashboard.subject":"Asunto:","dashboard.summary":"Resumen:","dashboard.keyPoints":"Puntos clave:","dashboard.aiDraftReply":"Borrador de respuesta de IA","dashboard.draftSavedHelp":"* Este borrador ya está guardado en tu carpeta de Borradores de {provider}.","dashboard.syncScope":"Alcance de sincronización","dashboard.syncFrom":"Sincronizar desde","dashboard.maxEmails":"Correos electrónicos máximos","dashboard.lastSync":"Última sincronización:","dashboard.error":"Error:","dashboard.resetCheckpoint":"Restablecer punto de control (Forzar resincronización completa desde la fecha de inicio)","dashboard.syncHistory":"Historial de sincronización","dashboard.noSyncHistory":"No hay historial de sincronización disponible.","dashboard.processed":"Procesado:","dashboard.actioned":"Accionado:","dashboard.running":"En ejecución","dashboard.quickStats":"Estadísticas rápidas","dashboard.totalProcessed":"Total procesado","dashboard.connectedAccounts":"Cuentas conectadas","dashboard.activeRules":"Reglas activas","dashboard.noSubject":"Sin asunto","dashboard.queued":"En cola","dashboard.analyzing":"Analizando","dashboard.analyzed":"Analizado","dashboard.failed":"Fallido","dashboard.retryProcessing":"Reintentar procesamiento","dashboard.suggested":"Sugerido:","dashboard.done":"Hecho:","dashboard.deleteConfirm":"¿Eliminar?","dashboard.openIn":"Abrir en {provider}","dashboard.viewTraceTooltip":"Ver rastreo de IA (Prompt/Respuesta)","dashboard.syncSuccess":"¡Sincronización completada! Revisa tus correos electrónicos.","dashboard.syncFailed":"Sincronización fallida. Verifica el estado de la cuenta para más detalles.","config.title":"Automatización y reglas","config.rules":"Reglas de automatización","config.createRule":"Crear nueva regla","config.llmSettings":"Configuración de inteligencia de IA","config.accounts.title":"Cuentas de correo electrónico","config.accounts.desc":"Conectar y administrar tus cuentas de correo electrónico","config.accounts.addNew":"Agregar nueva cuenta","config.accounts.yourAccounts":"Tus cuentas conectadas","config.accounts.noAccounts":"Aún no hay cuentas de correo electrónico conectadas","config.accounts.connectHelp":"Conecta tu primera cuenta de correo electrónico para comenzar a automatizar","config.accounts.disconnect":"Desconectar","config.gmail.connect":"Conectar Gmail","config.gmail.connectDesc":"OAuth 2.0 o cuenta de servicio","config.gmail.credentialsDesc":"Pega el contenido JSON de las credenciales de Google Cloud","config.gmail.authCodeDesc":"Ingresa el código de autorización de Google","config.gmail.pasteJson":"Pega el contenido de credentials.json","config.gmail.downloadHelp":"Descarga desde Google Cloud Console → APIs & Services → Credentials","config.gmail.orEnterManually":"O ingresa manualmente","config.outlook.connect":"Conectar Outlook","config.outlook.connectDesc":"Microsoft 365 o Outlook.com","config.outlook.credentialsDesc":"Pega el contenido JSON de las credenciales de Azure App","config.outlook.instructions":"Sigue el flujo OAuth para conectarte","config.outlook.signinRequired":"Inicio de sesión requerido","config.outlook.waitingSignin":"Esperando inicio de sesión...","config.model.title":"Configuración del modelo de IA","config.model.desc":"Configura tu modelo de IA y ajustes de procesamiento","config.model.provider":"Proveedor de LLM","config.model.name":"Nombre del modelo","config.model.selectModel":"Seleccionar un modelo","config.model.storagePath":"Ruta de almacenamiento","config.model.storagePlaceholder":"Ruta para almacenamiento del modelo","config.model.storageHelp":"Directorio local para almacenar en caché los modelos","config.model.syncInterval":"Intervalo de sincronización (minutos)","config.model.syncHelp":"Frecuencia de verificación de nuevos correos electrónicos","config.model.intelligentRename":"Renombrado inteligente","config.model.renameHelp":"Usar IA para sugerir mejores nombres de archivo","config.model.checkConnection":"Verificar conexión","config.model.saveConfig":"Guardar configuración","config.byok.title":"Trae tu propia clave (BYOK)","config.byok.desc":"Usa tus propias claves API para proveedores de IA","config.byok.systemDefault":"Usar predeterminado del sistema","config.byok.save":"Guardar clave API","config.rules.edit":"Editar regla","config.rules.create":"Crear regla","config.rules.createRule":"Crear regla","config.rules.desc":"Definir condiciones y acciones para la automatización de correo electrónico","config.rules.name":"Nombre de la regla","config.rules.namePlaceholder":"ej. Archivar boletines","config.rules.description":"Descripción","config.rules.descriptionPlaceholder":"Qué hace esta regla","config.rules.semanticHelp":"La IA coincidirá los correos electrónicos según esta descripción","config.rules.intent":"Intención","config.rules.intentPlaceholder":"Qué debería suceder cuando se active esta regla","config.rules.intentHelp":"Se usa para generar respuestas apropiadas","config.rules.conditionField":"Campo de condición","config.rules.aiAnalysis":"Análisis de IA","config.rules.metadata":"Metadatos","config.rules.category":"Categoría","config.rules.sentiment":"Sentimiento","config.rules.priority":"Prioridad","config.rules.senderEmail":"Correo electrónico del remitente","config.rules.senderDomain":"Dominio del remitente","config.rules.senderContains":"El remitente contiene","config.rules.subjectContains":"El asunto contiene","config.rules.bodyContains":"El cuerpo contiene","config.rules.equalsValue":"Valor igual","config.rules.keywordsPlaceholder":"Ingresa palabras clave...","config.rules.olderThan":"Solo si el correo electrónico es más antiguo que (días)","config.rules.olderThanHelp":"Deja vacío o 0 para aplicar inmediatamente","config.rules.performActions":"Luego realizar acciones","config.rules.draftInstructions":"Instrucciones de borrador","config.rules.contextHelp":"Contexto específico para que la IA use al redactar","config.rules.addAttachment":"Agregar archivo adjunto","config.rules.attachmentHelp":"Los archivos se adjuntarán a los borradores generados","config.rules.uploading":"Subiendo...","config.rules.saveChanges":"Guardar cambios","account.title":"Configuración de cuenta","account.subtitle":"Administra tu perfil y preferencias","account.profile":"Perfil","account.security":"Seguridad","account.database":"Supabase","account.logout":"Cerrar sesión","account.logoutSuccess":"Sesión cerrada exitosamente","account.version":"Versión","account.profile.title":"Información del perfil","account.profile.desc":"Actualiza tu información personal","account.profile.firstName":"Nombre","account.profile.firstNamePlaceholder":"Juan","account.profile.lastName":"Apellido","account.profile.lastNamePlaceholder":"Pérez","account.profile.email":"Correo electrónico","account.profile.emailHelp":"Este es tu correo electrónico de inicio de sesión y no se puede cambiar","account.profile.sounds":"Sonido y retroalimentación háptica","account.profile.soundsHelp":"Reproducir sonidos para notificaciones de correo electrónico","account.profile.soundsEnabled":"Sonidos habilitados","account.profile.soundsDisabled":"Sonidos deshabilitados","account.profile.updated":"Perfil actualizado exitosamente","account.profile.avatarUpdated":"Avatar actualizado exitosamente","account.profile.avatarError":"Error al actualizar el avatar","account.security.title":"Seguridad","account.security.desc":"Actualiza tu contraseña","account.security.newPassword":"Nueva contraseña","account.security.confirmPassword":"Confirmar contraseña","account.security.updatePassword":"Actualizar contraseña","account.security.enterPassword":"Por favor ingresa una contraseña","account.security.passwordsMismatch":"Las contraseñas no coinciden","account.security.passwordTooShort":"La contraseña debe tener al menos 6 caracteres","account.security.passwordChanged":"Contraseña cambiada exitosamente","account.database.title":"Conexión a la base de datos","account.database.desc":"Administra tu conexión Supabase","account.database.connected":"Conectado","account.database.noConnection":"Sin conexión","account.database.configureHelp":"Configura tu conexión Supabase en el asistente de configuración","account.database.anonKey":"Clave anónima","account.database.envAlert":"Conexión configurada mediante variables de entorno","account.database.changeConnection":"Cambiar conexión","account.database.clearConfig":"Borrar configuración","account.database.clearConfirm":"¿Estás seguro de que deseas borrar tu configuración de base de datos?","account.database.setup":"Configurar base de datos","trace.runTrace":"Rastreo de ejecución de sincronización","trace.fullLogFor":"Registro completo para la cuenta: {email}","trace.historicalLog":"Registro histórico para esta ejecución de sincronización.","trace.loadingTrace":"Cargando rastreo...","trace.noTraceEvents":"No se encontraron eventos de rastreo granulares para esta ejecución.","analytics.title":"Panel de analítica","analytics.totalEmails":"Total de correos electrónicos","analytics.spamCaught":"Spam capturado","analytics.actionsTaken":"Acciones tomadas","analytics.accounts":"Cuentas","analytics.categories":"Categorías de correo electrónico","analytics.recentActivity":"Actividad de sincronización reciente","analytics.noActivity":"Aún no hay actividad de sincronización","analytics.emails":"{count} correos electrónicos","analytics.deleted":"{count} eliminados","analytics.drafted":"{count} borradores","autopilot.title":"Reglas de piloto automático","autopilot.rulesEnabled":"{enabled} de {total} reglas habilitadas","autopilot.loadingRules":"Cargando reglas...","autopilot.loadError":"Error al cargar reglas","autopilot.deleteConfirm":"¿Estás seguro de que deseas eliminar esta regla?","autopilot.ruleDeleted":"Regla eliminada","autopilot.ruleDeleteFailed":"Error al eliminar regla","autopilot.ruleDeleteError":"Ocurrió un error al eliminar la regla","autopilot.ruleUpdated":"Regla actualizada","autopilot.ruleCreated":"Regla creada","autopilot.ruleUpdateFailed":"Error al actualizar regla","autopilot.ruleCreateFailed":"Error al crear regla","autopilot.ruleSaveError":"Ocurrió un error al guardar la regla","autopilot.fileUploaded":"Archivo subido","autopilot.fileUploadFailed":"Error al subir archivo","autopilot.noRulesTitle":"Aún no hay reglas","autopilot.noRulesDesc":"Las reglas se crearán automáticamente cuando te registres o conectes tu primera cuenta de correo electrónico.","autopilot.addCustomRule":"Agregar regla personalizada","autopilot.refresh":"Actualizar","autopilot.infoDesc":"Las reglas de piloto automático usan IA para organizar automáticamente tu bandeja de entrada. Activa o desactiva cualquier regla para personalizar el comportamiento.","autopilot.customRules":"Reglas personalizadas","autopilot.customRulesDesc":"Reglas que has creado manualmente","autopilot.category.email_organization.label":"Organización de correo electrónico","autopilot.category.email_organization.desc":"Organizar automáticamente tipos comunes de correo electrónico","autopilot.category.priority_alerts.label":"Prioridad y alertas","autopilot.category.priority_alerts.desc":"Resaltar mensajes urgentes e importantes","autopilot.category.development.label":"Desarrollo","autopilot.category.development.desc":"Notificaciones de GitHub, CI/CD y herramientas de desarrollo","autopilot.category.sales_business.label":"Ventas y negocios","autopilot.category.sales_business.desc":"Gestión de clientes potenciales y comunicaciones comerciales","autopilot.category.operations.label":"Operaciones","autopilot.category.operations.desc":"Soporte, solicitudes internas y alertas del sistema","autopilot.enabledCount":"({enabled}/{total} habilitadas)","autopilot.badge":"Piloto automático","autopilot.editRuleTooltip":"Editar regla","autopilot.deleteRuleTooltip":"Eliminar regla","autopilot.triggeredToday":"{count} hoy","autopilot.pack.active":"Activo","autopilot.pack.partial":"Parcial","autopilot.pack.inactive":"Inactivo","autopilot.pack.disableTooltip":"Desactivar todas las reglas","autopilot.pack.enableTooltip":"Activar todas las reglas","autopilot.pack.rulesActive":"{active}/{total} reglas activas","autopilot.pack.actionsToday":"{count} acciones hoy","autopilot.pack.noRules":"No hay reglas en este paquete","autopilot.editDialog.editTitle":"Editar regla","autopilot.editDialog.createTitle":"Crear regla personalizada","autopilot.editDialog.desc":"Definir una condición basada en el análisis de IA para activar una acción.","autopilot.editDialog.ruleName":"Nombre de la regla","autopilot.editDialog.namePlaceholder":"ej. Archivar boletines","autopilot.editDialog.description":"Descripción","autopilot.editDialog.descPlaceholder":"ej. Manejar todos los boletines de marketing y contenido promocional de servicios de suscripción","autopilot.editDialog.descriptionHelp":"Describe para qué es esta regla. La IA usa esto para hacer coincidir semánticamente los correos electrónicos.","autopilot.editDialog.intent":"Intención","autopilot.editDialog.intentPlaceholder":"ej. Rechazar cortésmente todas las propuestas de ventas","autopilot.editDialog.intentHelp":"El objetivo de esta regla. Se usa para generar borradores de respuesta apropiados.","autopilot.editDialog.conditionField":"Campo de condición Si","autopilot.editDialog.aiAnalysisGroup":"Análisis de IA","autopilot.editDialog.metadataGroup":"Metadatos","autopilot.editDialog.category":"Categoría","autopilot.editDialog.sentiment":"Sentimiento","autopilot.editDialog.priority":"Prioridad","autopilot.editDialog.senderEmail":"Correo electrónico específico (Exacto)","autopilot.editDialog.senderDomain":"Dominio de correo electrónico (@...)","autopilot.editDialog.senderContains":"El remitente contiene...","autopilot.editDialog.subjectContains":"El asunto contiene...","autopilot.editDialog.bodyContains":"El cuerpo contiene...","autopilot.editDialog.equalsValue":"Valor igual","autopilot.editDialog.cat.newsletter":"Boletín","autopilot.editDialog.cat.spam":"Spam","autopilot.editDialog.cat.promotional":"Promocional","autopilot.editDialog.cat.transactional":"Transaccional","autopilot.editDialog.cat.social":"Social","autopilot.editDialog.cat.support":"Soporte","autopilot.editDialog.cat.client":"Cliente","autopilot.editDialog.cat.internal":"Interno","autopilot.editDialog.cat.personal":"Personal","autopilot.editDialog.cat.other":"Otro","autopilot.editDialog.sent.positive":"Positivo","autopilot.editDialog.sent.neutral":"Neutral","autopilot.editDialog.sent.negative":"Negativo","autopilot.editDialog.prio.high":"Alto","autopilot.editDialog.prio.medium":"Medio","autopilot.editDialog.prio.low":"Bajo","autopilot.editDialog.keywordsPlaceholder":"Palabras clave...","autopilot.editDialog.olderThan":"Solo si el correo electrónico es más antiguo que... (Opcional)","autopilot.editDialog.days":"días","autopilot.editDialog.olderThanHelp":"Deja vacío o 0 para aplicar la regla inmediatamente al recibirlo.","autopilot.editDialog.performActions":"Luego realizar acción(es)","autopilot.editDialog.actionsDesc":"Selecciona una o más acciones para ejecutar cuando la regla coincida","autopilot.editDialog.action.archive":"Archivar correo electrónico","autopilot.editDialog.action.delete":"Eliminar correo electrónico","autopilot.editDialog.action.draft":"Borrador de respuesta","autopilot.editDialog.action.star":"Estrella / Marcar","autopilot.editDialog.draftInstructions":"Instrucciones de borrador (Contexto)","autopilot.editDialog.draftInstPlaceholder":"ej. Diles que estoy ocupado hasta el viernes, pero interesado en la propuesta.","autopilot.editDialog.draftInstHelp":"Contexto específico para el escritor fantasma de IA.","autopilot.editDialog.attachments":"Archivos adjuntos (Opcional)","autopilot.editDialog.uploading":"Subiendo...","autopilot.editDialog.addAttachment":"Agregar archivo adjunto","autopilot.editDialog.attachmentsHelp":"Los archivos se adjuntarán a cada borrador generado por esta regla.","autopilot.onboarding.allSet":"¡Todo listo!","autopilot.onboarding.enabledDesc":"Hemos habilitado {count} reglas de automatización para ti","autopilot.onboarding.rules":"reglas","autopilot.onboarding.universalDesc":"Reglas esenciales que ayudan a todos a mantenerse organizados","autopilot.onboarding.executiveDesc":"Enfocarse en comunicaciones de alta prioridad y asuntos estratégicos","autopilot.onboarding.developerDesc":"Resaltar alertas críticas y filtrar ruido de herramientas","autopilot.onboarding.salesDesc":"Priorizar clientes potenciales y comunicaciones con clientes","autopilot.onboarding.operationsDesc":"Organizar tickets y comunicaciones internas","autopilot.onboarding.tip":"Consejo: Todas las reglas están habilitadas por defecto, pero puedes personalizarlas o deshabilitarlas en cualquier momento en la sección de Piloto automático.","autopilot.onboarding.start":"Comenzar a usar Email Automator →","autopilot.role.title":"¡Un último paso!","autopilot.role.subtitle":"¿Qué describe mejor tu rol? Configuraremos las reglas de automatización adecuadas para ti.","autopilot.role.executive.label":"Ejecutivo / Liderazgo","autopilot.role.executive.desc":"Enfocarse en VIP, contratos y comunicaciones estratégicas","autopilot.role.executive.preview":"Priorizador de clientes VIP;Organizador de viajes;Legal y contratos","autopilot.role.sales.label":"Ventas / Desarrollo de negocios","autopilot.role.sales.desc":"Priorizar clientes potenciales y comunicaciones con clientes","autopilot.role.sales.preview":"Preguntas de clientes;Organizador de CRM;Seguimiento de propuestas","autopilot.role.developer.label":"Desarrollador / Ingeniero","autopilot.role.developer.desc":"Resaltar alertas críticas y filtrar ruido de herramientas","autopilot.role.developer.preview":"Alertas del sistema;Revisiones de código;Gestión de proyectos","autopilot.role.operations.label":"Operaciones / Soporte","autopilot.role.operations.desc":"Organizar tickets y comunicaciones internas","autopilot.role.operations.preview":"Tickets de soporte;Monitoreo del sistema;Comunicaciones internas","autopilot.role.marketing.label":"Marketing","autopilot.role.marketing.desc":"Seguir campañas y participación de clientes","autopilot.role.marketing.preview":"Seguimiento de campañas;Informes de analítica;Redes sociales","autopilot.role.other.label":"Otro / Configuración manual","autopilot.role.other.desc":"Configuraré mis propias reglas de automatización","autopilot.role.includes":"Incluye:","autopilot.role.skip":"Omitir por ahora","autopilot.role.settingUp":"Configurando...","autopilot.role.continue":"Continuar →","terminal.title":"Terminal del agente","terminal.liveActivity":"Actividad en vivo","terminal.syncing":"SINCRONIZANDO","terminal.live":"EN VIVO","terminal.stopSync":"DETENER SINCRONIZACIÓN","terminal.clear":"Borrar","terminal.waiting":"Esperando actividad del agente...","terminal.details":"Detalles","terminal.useless":"INÚTIL","terminal.relevant":"RELEVANTE","terminal.executionComplete":"Ejecución completada","terminal.batchFinished":"Sincronización por lotes finalizada","terminal.processed":"Procesado","terminal.actions":"Acciones","terminal.action.delete":"Movido a la papelera","terminal.action.archive":"Correo electrónico archivado","terminal.action.draft":"Borrador de respuesta creado","terminal.action.star":"Correo electrónico marcado con estrella"};export{e as default};
@@ -1 +0,0 @@
1
- @import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-yellow-950:oklch(28.6% .066 53.813);--color-green-100:oklch(96.2% .044 156.743);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:oklch(var(--border));--color-input:oklch(var(--input));--color-ring:oklch(var(--ring));--color-background:oklch(var(--background));--color-foreground:oklch(var(--foreground));--color-primary:oklch(var(--primary));--color-primary-foreground:oklch(var(--primary-foreground));--color-secondary:oklch(var(--secondary));--color-secondary-foreground:oklch(var(--secondary-foreground));--color-destructive:oklch(var(--destructive));--color-destructive-foreground:oklch(var(--destructive-foreground));--color-muted:oklch(var(--muted));--color-muted-foreground:oklch(var(--muted-foreground));--color-accent:oklch(var(--accent));--color-accent-foreground:oklch(var(--accent-foreground));--color-card:oklch(var(--card));--color-card-foreground:oklch(var(--card-foreground))}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--background:1 0 0;--foreground:.145 0 0;--card:1 0 0;--card-foreground:.145 0 0;--popover:1 0 0;--popover-foreground:.145 0 0;--primary:.205 0 0;--primary-foreground:.985 0 0;--secondary:.97 0 0;--secondary-foreground:.205 0 0;--muted:.97 0 0;--muted-foreground:.556 0 0;--accent:.97 0 0;--accent-foreground:.205 0 0;--destructive:.577 .245 27.325;--destructive-foreground:.985 0 0;--border:.922 0 0;--input:.922 0 0;--ring:.205 0 0;--radius:.5rem}.dark{--background:.145 0 0;--foreground:.985 0 0;--card:.145 0 0;--card-foreground:.985 0 0;--popover:.145 0 0;--popover-foreground:.985 0 0;--primary:.985 0 0;--primary-foreground:.145 0 0;--secondary:.269 0 0;--secondary-foreground:.985 0 0;--muted:.269 0 0;--muted-foreground:.708 0 0;--accent:.269 0 0;--accent-foreground:.985 0 0;--destructive:.396 .141 25.723;--destructive-foreground:.985 0 0;--border:.269 0 0;--input:.269 0 0;--ring:.869 0 0}*{border-color:var(--color-border);outline-color:var(--color-ring)}body{background-color:var(--color-background);color:var(--color-foreground);font-family:Inter,system-ui,sans-serif}.glass{border-style:var(--tw-border-style);border-width:1px;border-color:color-mix(in srgb,oklch(var(--border))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.glass{border-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.glass{background-color:color-mix(in srgb,oklch(var(--background))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.glass{background-color:color-mix(in oklab,var(--color-background)60%,transparent)}}.glass{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.glow-primary{box-shadow:0 0 20px -5px oklch(var(--primary)/.3)}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.-top-2{top:calc(var(--spacing)*-2)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-6{top:calc(var(--spacing)*6)}.top-7{top:calc(var(--spacing)*7)}.top-8{top:calc(var(--spacing)*8)}.top-16{top:calc(var(--spacing)*16)}.top-\[50\%\]{top:50%}.-right-2{right:calc(var(--spacing)*-2)}.right-0{right:calc(var(--spacing)*0)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-20{bottom:calc(var(--spacing)*20)}.bottom-\[-24px\]{bottom:-24px}.left-0{left:calc(var(--spacing)*0)}.left-3{left:calc(var(--spacing)*3)}.left-4{left:calc(var(--spacing)*4)}.left-\[13px\]{left:13px}.left-\[15px\]{left:15px}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[60\]{z-index:60}.col-start-2{grid-column-start:2}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.container{margin-inline:auto;padding-inline:2rem}@media(min-width:40rem){.container{max-width:none}}@media(min-width:1400px){.container{max-width:1400px}}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.-mt-1{margin-top:calc(var(--spacing)*-1)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing)*-1)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-24{height:calc(var(--spacing)*24)}.h-64{height:calc(var(--spacing)*64)}.h-\[1\.2rem\]{height:1.2rem}.h-\[240px\]{height:240px}.h-\[650px\]{height:650px}.h-auto{height:auto}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing)*32)}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[160px\]{max-height:160px}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-\[60px\]{min-height:60px}.min-h-\[80px\]{min-height:80px}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-48{width:calc(var(--spacing)*48)}.w-\[1\.2rem\]{width:1.2rem}.w-\[1px\]{width:1px}.w-\[280px\]{width:280px}.w-\[550px\]{width:550px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[100px\]{max-width:100px}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-90{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[1\.5fr_1fr\]{grid-template-columns:1.5fr 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.border-background{border-color:var(--color-background)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-500\/10{border-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/10{border-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.border-blue-500\/20{border-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/20{border-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.border-border{border-color:var(--color-border)}.border-border\/10{border-color:color-mix(in srgb,oklch(var(--border))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/10{border-color:color-mix(in oklab,var(--color-border)10%,transparent)}}.border-border\/40{border-color:color-mix(in srgb,oklch(var(--border))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,var(--color-border)40%,transparent)}}.border-border\/50{border-color:color-mix(in srgb,oklch(var(--border))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.border-destructive{border-color:var(--color-destructive)}.border-destructive\/20{border-color:color-mix(in srgb,oklch(var(--destructive))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}.border-emerald-500\/10{border-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/10{border-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.border-emerald-500\/50{border-color:#00bb7f80}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/50{border-color:color-mix(in oklab,var(--color-emerald-500)50%,transparent)}}.border-gray-300{border-color:var(--color-gray-300)}.border-green-500\/20{border-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.border-green-500\/20{border-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.border-input{border-color:var(--color-input)}.border-primary{border-color:var(--color-primary)}.border-primary\/10{border-color:color-mix(in srgb,oklch(var(--primary))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-primary\/10{border-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.border-primary\/20{border-color:color-mix(in srgb,oklch(var(--primary))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.border-primary\/50{border-color:color-mix(in srgb,oklch(var(--primary))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.border-purple-500\/10{border-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/10{border-color:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/50{border-color:color-mix(in oklab,var(--color-purple-500)50%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-500\/10{border-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.border-red-500\/10{border-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500)50%,transparent)}}.border-transparent{border-color:#0000}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-500{border-color:var(--color-yellow-500)}.border-yellow-500\/20{border-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/20{border-color:color-mix(in oklab,var(--color-yellow-500)20%,transparent)}}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.bg-amber-50\/50{background-color:#fffbeb80}@supports (color:color-mix(in lab,red,red)){.bg-amber-50\/50{background-color:color-mix(in oklab,var(--color-amber-50)50%,transparent)}}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500)5%,transparent)}}.bg-background{background-color:var(--color-background)}.bg-background\/50{background-color:color-mix(in srgb,oklch(var(--background))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-background\/50{background-color:color-mix(in oklab,var(--color-background)50%,transparent)}}.bg-background\/60{background-color:color-mix(in srgb,oklch(var(--background))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,var(--color-background)60%,transparent)}}.bg-background\/80{background-color:color-mix(in srgb,oklch(var(--background))80%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-background\/80{background-color:color-mix(in oklab,var(--color-background)80%,transparent)}}.bg-background\/95{background-color:color-mix(in srgb,oklch(var(--background))95%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--color-background)95%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/5{background-color:#3080ff0d}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/5{background-color:color-mix(in oklab,var(--color-blue-500)5%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-border{background-color:var(--color-border)}.bg-border\/50{background-color:color-mix(in srgb,oklch(var(--border))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-border\/50{background-color:color-mix(in oklab,var(--color-border)50%,transparent)}}.bg-card{background-color:var(--color-card)}.bg-destructive{background-color:var(--color-destructive)}.bg-destructive\/5{background-color:color-mix(in srgb,oklch(var(--destructive))5%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--color-destructive)5%,transparent)}}.bg-destructive\/10{background-color:color-mix(in srgb,oklch(var(--destructive))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--color-destructive)10%,transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/5{background-color:color-mix(in oklab,var(--color-emerald-500)5%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-emerald-500\/40{background-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/40{background-color:color-mix(in oklab,var(--color-emerald-500)40%,transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-500\/10{background-color:#6a72821a}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/10{background-color:color-mix(in oklab,var(--color-gray-500)10%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-input{background-color:var(--color-input)}.bg-muted{background-color:var(--color-muted)}.bg-muted\/20{background-color:color-mix(in srgb,oklch(var(--muted))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--color-muted)20%,transparent)}}.bg-muted\/30{background-color:color-mix(in srgb,oklch(var(--muted))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--color-muted)30%,transparent)}}.bg-muted\/40{background-color:color-mix(in srgb,oklch(var(--muted))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,var(--color-muted)40%,transparent)}}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/10{background-color:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500)10%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary\/5{background-color:color-mix(in srgb,oklch(var(--primary))5%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.bg-primary\/10{background-color:color-mix(in srgb,oklch(var(--primary))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-purple-500\/5{background-color:#ac4bff0d}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/5{background-color:color-mix(in oklab,var(--color-purple-500)5%,transparent)}}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500)5%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-red-600\/70{background-color:#e40014b3}@supports (color:color-mix(in lab,red,red)){.bg-red-600\/70{background-color:color-mix(in oklab,var(--color-red-600)70%,transparent)}}.bg-red-700{background-color:var(--color-red-700)}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary\/5{background-color:color-mix(in srgb,oklch(var(--secondary))5%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-secondary\/5{background-color:color-mix(in oklab,var(--color-secondary)5%,transparent)}}.bg-secondary\/30{background-color:color-mix(in srgb,oklch(var(--secondary))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-secondary\/30{background-color:color-mix(in oklab,var(--color-secondary)30%,transparent)}}.bg-secondary\/50{background-color:color-mix(in srgb,oklch(var(--secondary))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-secondary\/50{background-color:color-mix(in oklab,var(--color-secondary)50%,transparent)}}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-950{background-color:var(--color-slate-950)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500)10%,transparent)}}.bg-yellow-600{background-color:var(--color-yellow-600)}.fill-current{fill:currentColor}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-10{padding:calc(var(--spacing)*10)}.p-12{padding:calc(var(--spacing)*12)}.p-20{padding:calc(var(--spacing)*20)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-20{padding-block:calc(var(--spacing)*20)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\.5{padding-top:calc(var(--spacing)*1.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-10{padding-right:calc(var(--spacing)*10)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-3\.5{padding-left:calc(var(--spacing)*3.5)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-9{padding-left:calc(var(--spacing)*9)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.4em\]{--tw-tracking:.4em;letter-spacing:.4em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-500{color:var(--color-amber-500)}.text-amber-700{color:var(--color-amber-700)}.text-blue-300{color:var(--color-blue-300)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-card-foreground{color:var(--color-card-foreground)}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground{color:var(--color-foreground)}.text-foreground\/70{color:color-mix(in srgb,oklch(var(--foreground))70%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/70{color:color-mix(in oklab,var(--color-foreground)70%,transparent)}}.text-foreground\/80{color:color-mix(in srgb,oklch(var(--foreground))80%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--color-foreground)80%,transparent)}}.text-foreground\/90{color:color-mix(in srgb,oklch(var(--foreground))90%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,var(--color-foreground)90%,transparent)}}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-green-400{color:var(--color-green-400)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-indigo-500{color:var(--color-indigo-500)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-muted-foreground\/30{color:color-mix(in srgb,oklch(var(--muted-foreground))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/30{color:color-mix(in oklab,var(--color-muted-foreground)30%,transparent)}}.text-muted-foreground\/40{color:color-mix(in srgb,oklch(var(--muted-foreground))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,var(--color-muted-foreground)40%,transparent)}}.text-muted-foreground\/50{color:color-mix(in srgb,oklch(var(--muted-foreground))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--color-muted-foreground)50%,transparent)}}.text-muted-foreground\/60{color:color-mix(in srgb,oklch(var(--muted-foreground))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--color-muted-foreground)60%,transparent)}}.text-muted-foreground\/70{color:color-mix(in srgb,oklch(var(--muted-foreground))70%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--color-muted-foreground)70%,transparent)}}.text-muted-foreground\/80{color:color-mix(in srgb,oklch(var(--muted-foreground))80%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,var(--color-muted-foreground)80%,transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-pink-600{color:var(--color-pink-600)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-primary\/30{color:color-mix(in srgb,oklch(var(--primary))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-primary\/30{color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.text-primary\/60{color:color-mix(in srgb,oklch(var(--primary))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-primary\/60{color:color-mix(in oklab,var(--color-primary)60%,transparent)}}.text-primary\/70{color:color-mix(in srgb,oklch(var(--primary))70%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-primary\/70{color:color-mix(in oklab,var(--color-primary)70%,transparent)}}.text-purple-500{color:var(--color-purple-500)}.text-purple-600{color:var(--color-purple-600)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-600{color:var(--color-yellow-600)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.text-yellow-900{color:var(--color-yellow-900)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(234\,179\,8\,0\.5\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#eab30880);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-blue-500{--tw-ring-color:var(--color-blue-500)}.ring-primary{--tw-ring-color:var(--color-primary)}.ring-primary\/10{--tw-ring-color:color-mix(in srgb,oklch(var(--primary))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/10{--tw-ring-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.ring-primary\/20{--tw-ring-color:color-mix(in srgb,oklch(var(--primary))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/20{--tw-ring-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.ring-ring{--tw-ring-color:var(--color-ring)}.ring-ring\/10{--tw-ring-color:color-mix(in srgb,oklch(var(--ring))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.ring-ring\/10{--tw-ring-color:color-mix(in oklab,var(--color-ring)10%,transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-ring\/50{outline-color:color-mix(in srgb,oklch(var(--ring))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.outline-ring\/50{outline-color:color-mix(in oklab,var(--color-ring)50%,transparent)}}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing)*0)}@media(hover:hover){.hover\:border-border:hover{border-color:var(--color-border)}.hover\:border-primary\/20:hover{border-color:color-mix(in srgb,oklch(var(--primary))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/20:hover{border-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.hover\:border-primary\/40:hover{border-color:color-mix(in srgb,oklch(var(--primary))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-black\/10:hover{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/10:hover{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-destructive\/10:hover{background-color:color-mix(in srgb,oklch(var(--destructive))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--color-destructive)10%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:color-mix(in srgb,oklch(var(--destructive))90%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--color-destructive)90%,transparent)}}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-muted\/30:hover{background-color:color-mix(in srgb,oklch(var(--muted))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab,var(--color-muted)30%,transparent)}}.hover\:bg-muted\/50:hover{background-color:color-mix(in srgb,oklch(var(--muted))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--color-muted)50%,transparent)}}.hover\:bg-primary\/5:hover{background-color:color-mix(in srgb,oklch(var(--primary))5%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.hover\:bg-primary\/10:hover{background-color:color-mix(in srgb,oklch(var(--primary))10%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.hover\:bg-primary\/90:hover{background-color:color-mix(in srgb,oklch(var(--primary))90%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary)90%,transparent)}}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-secondary:hover{background-color:var(--color-secondary)}.hover\:bg-secondary\/30:hover{background-color:color-mix(in srgb,oklch(var(--secondary))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/30:hover{background-color:color-mix(in oklab,var(--color-secondary)30%,transparent)}}.hover\:bg-secondary\/50:hover{background-color:color-mix(in srgb,oklch(var(--secondary))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/50:hover{background-color:color-mix(in oklab,var(--color-secondary)50%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:color-mix(in srgb,oklch(var(--secondary))80%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--color-secondary)80%,transparent)}}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\:bg-yellow-100:hover{background-color:var(--color-yellow-100)}.hover\:bg-yellow-700:hover{background-color:var(--color-yellow-700)}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-blue-500:hover{color:var(--color-blue-500)}.hover\:text-destructive:hover{color:var(--color-destructive)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:text-orange-500:hover{color:var(--color-orange-500)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-slate-900:hover{color:var(--color-slate-900)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-primary\/20:hover{--tw-shadow-color:color-mix(in srgb,oklch(var(--primary))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-primary\/20:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)20%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-primary\/30:hover{--tw-shadow-color:color-mix(in srgb,oklch(var(--primary))30%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-primary\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)30%,transparent)var(--tw-shadow-alpha),transparent)}}}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in srgb,oklch(var(--primary))50%,transparent)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive:focus-visible{--tw-ring-color:var(--color-destructive)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--color-background)}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.aria-invalid\:focus-visible\:ring-0[aria-invalid=true]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in srgb,oklch(var(--destructive))90%,transparent)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--color-destructive)90%,transparent)}}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-\[backdrop-filter\]\:bg-background\/60{background-color:color-mix(in srgb,oklch(var(--background))60%,transparent)}@supports (color:color-mix(in lab,red,red)){.supports-\[backdrop-filter\]\:bg-background\/60{background-color:color-mix(in oklab,var(--color-background)60%,transparent)}}}@media(prefers-reduced-motion:no-preference){.motion-safe\:animate-ping{animation:var(--animate-ping)}}@media(prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media(min-width:40rem){.sm\:right-4{right:calc(var(--spacing)*4)}.sm\:left-auto{left:auto}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:h-12{height:calc(var(--spacing)*12)}.sm\:w-12{width:calc(var(--spacing)*12)}.sm\:w-auto{width:auto}.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-5xl{max-width:var(--container-5xl)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:p-8{padding:calc(var(--spacing)*8)}.sm\:px-8{padding-inline:calc(var(--spacing)*8)}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:flex{display:flex}.md\:w-64{width:calc(var(--spacing)*64)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:p-8{padding:calc(var(--spacing)*8)}.md\:p-12{padding:calc(var(--spacing)*12)}.md\:text-left{text-align:left}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-color-scheme:dark){.dark\:border-blue-600{border-color:var(--color-blue-600)}.dark\:border-blue-800{border-color:var(--color-blue-800)}.dark\:border-red-900\/40{border-color:#82181a66}@supports (color:color-mix(in lab,red,red)){.dark\:border-red-900\/40{border-color:color-mix(in oklab,var(--color-red-900)40%,transparent)}}.dark\:border-yellow-600{border-color:var(--color-yellow-600)}.dark\:border-yellow-800{border-color:var(--color-yellow-800)}.dark\:bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.dark\:bg-black\/20{background-color:color-mix(in oklab,var(--color-black)20%,transparent)}}.dark\:bg-blue-500{background-color:var(--color-blue-500)}.dark\:bg-blue-900\/20{background-color:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/20{background-color:color-mix(in oklab,var(--color-blue-900)20%,transparent)}}.dark\:bg-blue-900\/30{background-color:#1c398e4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/30{background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\:bg-blue-950\/90{background-color:#162456e6}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-950\/90{background-color:color-mix(in oklab,var(--color-blue-950)90%,transparent)}}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/30{background-color:color-mix(in oklab,var(--color-green-900)30%,transparent)}}.dark\:bg-red-600{background-color:var(--color-red-600)}.dark\:bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/30{background-color:color-mix(in oklab,var(--color-red-900)30%,transparent)}}.dark\:bg-red-950\/20{background-color:#46080933}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-950\/20{background-color:color-mix(in oklab,var(--color-red-950)20%,transparent)}}.dark\:bg-yellow-500{background-color:var(--color-yellow-500)}.dark\:bg-yellow-900\/20{background-color:#733e0a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-900\/20{background-color:color-mix(in oklab,var(--color-yellow-900)20%,transparent)}}.dark\:bg-yellow-900\/30{background-color:#733e0a4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-900\/30{background-color:color-mix(in oklab,var(--color-yellow-900)30%,transparent)}}.dark\:bg-yellow-950\/90{background-color:#432004e6}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-950\/90{background-color:color-mix(in oklab,var(--color-yellow-950)90%,transparent)}}.dark\:text-amber-400{color:var(--color-amber-400)}.dark\:text-blue-100{color:var(--color-blue-100)}.dark\:text-blue-200{color:var(--color-blue-200)}.dark\:text-blue-300{color:var(--color-blue-300)}.dark\:text-blue-400{color:var(--color-blue-400)}.dark\:text-blue-500{color:var(--color-blue-500)}.dark\:text-emerald-400{color:var(--color-emerald-400)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-700{color:var(--color-gray-700)}.dark\:text-green-300{color:var(--color-green-300)}.dark\:text-green-400{color:var(--color-green-400)}.dark\:text-orange-400{color:var(--color-orange-400)}.dark\:text-pink-400{color:var(--color-pink-400)}.dark\:text-purple-400{color:var(--color-purple-400)}.dark\:text-red-400{color:var(--color-red-400)}.dark\:text-red-600{color:var(--color-red-600)}.dark\:text-yellow-100{color:var(--color-yellow-100)}.dark\:text-yellow-200{color:var(--color-yellow-200)}.dark\:text-yellow-300{color:var(--color-yellow-300)}.dark\:text-yellow-400{color:var(--color-yellow-400)}.dark\:text-yellow-500{color:var(--color-yellow-500)}.dark\:ring-ring\/20{--tw-ring-color:color-mix(in srgb,oklch(var(--ring))20%,transparent)}@supports (color:color-mix(in lab,red,red)){.dark\:ring-ring\/20{--tw-ring-color:color-mix(in oklab,var(--color-ring)20%,transparent)}}.dark\:outline-ring\/40{outline-color:color-mix(in srgb,oklch(var(--ring))40%,transparent)}@supports (color:color-mix(in lab,red,red)){.dark\:outline-ring\/40{outline-color:color-mix(in oklab,var(--color-ring)40%,transparent)}}@media(hover:hover){.dark\:hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.dark\:hover\:bg-blue-900\/30:hover{background-color:#1c398e4d}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-blue-900\/30:hover{background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\:hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.dark\:hover\:bg-yellow-900\/30:hover{background-color:#733e0a4d}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-yellow-900\/30:hover{background-color:color-mix(in oklab,var(--color-yellow-900)30%,transparent)}}}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]),.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}