diff --git a/src/App.jsx b/src/App.jsx
new file mode 100644
index 0000000..628f59e
--- /dev/null
+++ b/src/App.jsx
@@ -0,0 +1,810 @@
+import React, { useState, useEffect, useRef } from 'react';
+import { initializeApp } from 'firebase/app';
+import { getAuth, signInAnonymously, signInWithCustomToken, onAuthStateChanged } from 'firebase/auth';
+import { getFirestore, collection, addDoc, onSnapshot, query, serverTimestamp } from 'firebase/firestore';
+import { Bot, Sparkles, Clapperboard, Lightbulb, Library, Hash, Video, Music, Loader, Link as LinkIcon, FlaskConical, Send, Globe, Palette, Copy, Check, CalendarDays, Languages } from 'lucide-react';
+
+// --- FIREBASE CONFIGURATION ---
+const firebaseConfig = typeof __firebase_config !== 'undefined' ? JSON.parse(__firebase_config) : {};
+const appId = typeof __app_id !== 'undefined' ? __app_id : 'default-app-id';
+
+// --- CONSTANTS ---
+const CATEGORIES = ["Todas las Categorías", "Innovación & Futuro", "Negocios & Finanzas", "Crecimiento Personal", "Conocimiento & Educación", "Cultura & Estilo de Vida", "Noticias de Impacto"];
+const CONTENT_TYPES = ["Todos", "Historia", "Estudio", "Noticia"];
+const COUNTRIES = ["Mundial", "Perú", "México", "Colombia", "Argentina", "España", "EE.UU."];
+const LANGUAGES = ["Español", "English", "Português"];
+const API_KEYS = [
+    "AIzaSyCTMdKxAcH8VvlzFsVIlyM5xwXNMDs4UQ0", // Primary API
+    "AIzaSyA2hRXelMJxOxjy8PADq4Y0DPDYSyVmC2g"  // Backup API
+];
+
+const THEME_COLORS = {
+    dark: {
+        '--bg-primary': '#111827', '--bg-secondary': '#1f2937', '--bg-tertiary': '#374151',
+        '--text-primary': '#f9fafb', '--text-secondary': '#d1d5db', '--accent': '#8b5cf6',
+    },
+    light: {
+        '--bg-primary': '#f9fafb', '--bg-secondary': '#ffffff', '--bg-tertiary': '#e5e7eb',
+        '--text-primary': '#111827', '--text-secondary': '#4b5563', '--accent': '#7c3aed',
+    }
+};
+
+// --- IMPROVED FALLBACK IDEAS (TIMELESS EXAMPLES) ---
+const fallbackIdeas = [
+    { id: 'fb1', type: "Historia", category: "Crecimiento Personal", title: "El 'Efecto Dunning-Kruger': por qué los incompetentes no saben que lo son", description: "Analiza el sesgo cognitivo por el cual las personas con pocas habilidades sufren un sentimiento de superioridad ilusorio.", source: { name: "Journal of Personality and Social Psychology", url: "https://psycnet.apa.org/record/1999-15054-002" }, date: "1 de Diciembre, 1999" },
+    { id: 'fb2', type: "Historia", category: "Negocios & Finanzas", title: "La crisis de los tulipanes: la primera burbuja especulativa de la historia", description: "La fascinante historia de cómo en el siglo XVII el precio de los bulbos de tulipán en Holanda alcanzó niveles absurdos antes de colapsar.", source: { name: "Wikipedia", url: "https://es.wikipedia.org/wiki/Crisis_de_los_tulipanes" }, date: "Febrero, 1637" },
+];
+
+
+// --- UI COMPONENTS ---
+
+const NavItem = ({ icon, text, isActive, onClick }) => (
+    
+);
+
+const LoadingSpinner = ({ size = 'h-8 w-8' }) => (
+    
+);
+
+const IdeaCard = ({ idea, onGenerate }) => (
+    
+        
+            
+                 {idea.category}
+                 {idea.type}
+            
+            
{idea.title}
+            {idea.date && (
+                
+                    
+                    {idea.date}
+                
+            )}
+            
{idea.description}
+        
+        
+           {idea.source?.name && (
+                
+           )}
+        
+        
+            
+        
+    
No hay sugerencias disponibles.
;
+    }
+
+    if (type === 'hashtags') {
+        const tags = content.split(' ').filter(tag => tag.startsWith('#'));
+        if(tags.length === 0) return No se encontraron hashtags.
;
+
+        return (
+            
+                {tags.map((tag, index) => (
+                    
+                        {tag}
+                    
+                ))}
+            
+        );
+    }
+    
+    const lines = content.split('\n').filter(line => line.trim() !== '');
+    return (
+        
+            {lines.map((line, index) => (
+                - {line.replace(/^\d+\.\s*/, '')}+            ))}
+
+    );
+};
+
+
+const ScriptModal = ({ scriptData, onClose, onSave, onGenerateTool, loadingTools, copyToClipboard }) => {
+    if (!scriptData) return null;
+    const { title, script, source, hashtags, broll, audio, isFromLibrary } = scriptData;
+
+    return (
+
+            
+                
+                    
+                        
+                            
{title}
+                            
Guion Generado con IA
+                             {source?.name && (
+                                
+                            )}
+                        
+                        
+                    
+                
+                
+                    
+                        
Guion 📜
+                        
+                    
+                    
+                        
+                    
+                    
+                        
Herramientas Avanzadas ✨
+                        
+                            } title="Hashtags" content={hashtags} onGenerate={() => onGenerateTool('hashtags')} loading={loadingTools.hashtags} copyToClipboard={copyToClipboard} />
+                            } title="Ideas B-Roll" content={broll} onGenerate={() => onGenerateTool('broll')} loading={loadingTools.broll} copyToClipboard={copyToClipboard} />
+                            } title="Audio Tendencia" content={audio} onGenerate={() => onGenerateTool('audio')} loading={loadingTools.audio} copyToClipboard={copyToClipboard} />
+                        
+                    
+                
+                {!isFromLibrary && (
+                    
+                        
+                    
+                )}
+            
+        
+        
+            
+                {icon}
+                
{title}
+            
+             {content && (
+                
+             )}
+        
+        {loading ? 
 : (content ? 
 : 
)}
+    
+        
+        
+    
+);
+
+
+const CountrySelector = ({ country, setCountry, disabled }) => (
+    
+        
+        
+    
+);
+
+const EngineView = ({ ideas, onGenerate, onLoadMore, isLoading, isAddingMore, filters, setFilters, country, setCountry, language, setLanguage }) => (
+    
+        
Guion de Noticias
+        
Filtra y descubre ideas frescas y verificadas para tu próximo video viral.
+        
+             
+                
+             
+             
+                
+             
+             
+                
+            
+            
+                
+            
+        
+        {isLoading ? 
 : (
+            <>
+                
+                    {ideas.map((idea) => )}
+                
+                {ideas.length === 0 && (
+                     
+                        
No hay ideas para esta selección
+                        
Prueba con otros filtros o genera nuevas ideas.
+                    
+                )}
+            >
+        )}
+        
+            
+        
+    
+            
La Chispa de Inspiración
+            
¿Necesitas una idea desde cero? La IA busca ángulos únicos para ti.
+            
+                
+                
+                
+                    
+                    
+                
+                
+            
+            
+                {isSparking && 
Buscando las mejores ideas para ti...
}
+                {sparkIdeas.length > 0 && 
{sparkIdeas.map((idea) => )}
}
+            
+        
+            
Laboratorio de Ideas
+            
Escribe un tema y deja que la IA cree ideas de guion únicas para ti.
+            
+            
+                {isGenerating && 
}
+                {labIdeas.length > 0 && 
+                    
+                        {labIdeas.map((idea) => )}
+                    
+                }
+            
+        
+        
Mi Biblioteca
+        
Tus ideas y guiones guardados.
+        
+            {scripts.length === 0 ? (
Tu biblioteca está vacía
Genera un guion y guárdalo para que aparezca aquí.
) : (scripts.map(script => (
 onSelect(script)}>
{script.title}
{script.source?.name && 
}
{script.script}
Guardado: {script.createdAt?.toDate ? script.createdAt.toDate().toLocaleString() : 'Hace un momento'}
)))}
+        
+    
+             
Personalización
+             
Cambia la apariencia de la aplicación a tu gusto.
+
+             
+                {/* Theme Mode */}
+                
+                    
Modo de Apariencia
+                     
+                        
+                        
+                    
+                
+
+                {/* AI Personalization */}
+                
+                    
Estudio de Diseño con IA
+                     
Describe un tema visual y la IA creará una paleta de colores única para ti.
+                    
+                        
+                        
+                    
+                
+             
+        
View not found
;
+        }
+    };
+
+    return (
+        <>
+        
+        
+            {message && 
{message}
}
+            
+            
{renderView()}
+            {isGeneratingScript && (
Generando tu guion con IA... 🚀
)}
+            {generatedScriptData && 
 { setGeneratedScriptData(null); }} onSave={handleSaveScript} onGenerateTool={handleGenerateAdvancedTool} loadingTools={loadingTools} copyToClipboard={copyToClipboard} />}
+