diff --git a/public/logo-4ventures.png b/public/logo-4ventures.png new file mode 100644 index 0000000..bd62253 Binary files /dev/null and b/public/logo-4ventures.png differ diff --git a/src/app/dashboard/ad-tracker/page.tsx b/src/app/dashboard/ad-tracker/page.tsx index f8a73b1..b63c899 100644 --- a/src/app/dashboard/ad-tracker/page.tsx +++ b/src/app/dashboard/ad-tracker/page.tsx @@ -33,7 +33,7 @@ export default async function AdTrackerPage() { if (ctx.portfolioWide) { return ( -

+

Selecciona un cliente en Contexto para abrir su Ad Tracker (privado por tenant).

diff --git a/src/app/dashboard/agencia/page.tsx b/src/app/dashboard/agencia/page.tsx index 44b846d..9173639 100644 --- a/src/app/dashboard/agencia/page.tsx +++ b/src/app/dashboard/agencia/page.tsx @@ -82,41 +82,41 @@ export default async function AgencyPage() { {/* Global Agency KPI Cards */}
-
+
Clientes / Tenants
-

{tenants.length}

+

{tenants.length}

100% aislados vía RLS

-
+
Inversión Gestionada
-

+

{totalSpend.toLocaleString('es-ES', { minimumFractionDigits: 2 })} €

Vía Windsor.ai pipeline

-
+
Leads Captados
-

{totalLeads}

+

{totalLeads}

{totalWonDeals} cerrados ganados

-
+
ROAS Blended Agencia
-

{blendedRoas}x

+

{blendedRoas}x

{totalRevenue.toLocaleString('es-ES', { minimumFractionDigits: 2 })} € generados

diff --git a/src/app/dashboard/asistente/page.tsx b/src/app/dashboard/asistente/page.tsx index 3ff9aca..0b7197c 100644 --- a/src/app/dashboard/asistente/page.tsx +++ b/src/app/dashboard/asistente/page.tsx @@ -19,19 +19,19 @@ function FormattedMessage({ content }: { content: string }) { const matchStr = match[0]; if (matchStr.startsWith('**') && matchStr.endsWith('**')) { parts.push( - + {matchStr.slice(2, -2)} ); } else if (matchStr.startsWith('*') && matchStr.endsWith('*')) { parts.push( - + {matchStr.slice(1, -1)} ); } else if (matchStr.startsWith('`') && matchStr.endsWith('`')) { parts.push( - + {matchStr.slice(1, -1)} ); @@ -85,7 +85,7 @@ function FormattedMessage({ content }: { content: string }) { if (isQuote) { return ( -
+
{renderInline(displayText)}
); @@ -164,15 +164,15 @@ export default function AsistentePage() { }; return ( -
+
{/* Header */} -
+
-

Asistente IA Financiero & KPIs

+

Asistente IA Financiero & KPIs

Temperatura 0.0 · Verificación Numérica Estricta · Supabase RPC

@@ -189,7 +189,7 @@ export default function AsistentePage() { className={`max-w-2xl px-5 py-3.5 rounded-2xl ${ m.role === 'user' ? 'bg-gradient-to-r from-brand-500 to-amber-600 text-white font-medium shadow-md shadow-brand-500/10' - : 'bg-[#1a2333] text-gray-200 border border-gray-800/80 shadow-lg shadow-black/20' + : 'bg-[#1a2333] text-gray-800 border border-gray-200 shadow-lg shadow-black/20' }`} > @@ -199,7 +199,7 @@ export default function AsistentePage() { {loading && (
-
+
Calculando métricas sin alucinaciones...
@@ -209,7 +209,7 @@ export default function AsistentePage() {
{/* Quick Prompts Chips */} -
+
{/* Input Box */} -
+
{ e.preventDefault(); @@ -268,7 +268,7 @@ export default function AsistentePage() { value={input} onChange={(e) => setInput(e.target.value)} placeholder="Pregunta sobre inversión, metas, CAC, o escribe «¿Qué puedo preguntar?»..." - className="flex-1 bg-[#111827] border border-gray-700 rounded-xl px-4 py-2.5 text-sm text-white placeholder-gray-500 focus:outline-none focus:border-brand-500 transition-all" + className="flex-1 bg-white border border-gray-200 rounded-xl px-4 py-2.5 text-sm text-gray-900 placeholder-gray-500 focus:outline-none focus:border-brand-500 transition-all" /> @@ -240,7 +240,7 @@ export default function AgencyPortfolioBoard() {
-

+

Panel de control · clientes y conexiones

@@ -252,7 +252,7 @@ export default function AgencyPortfolioBoard() { Conexiones @@ -354,7 +354,7 @@ export default function AgencyPortfolioBoard() { type="button" disabled={busyId === t.id} onClick={() => void setFollowed(t.id, archived)} - className="text-xs px-3 py-1.5 rounded-lg border border-gray-700 text-gray-400 hover:text-white" + className="text-xs px-3 py-1.5 rounded-lg border border-gray-200 text-gray-400 hover:text-gray-900" title={ archived ? 'Volver a seguir en el portafolio' diff --git a/src/components/AssetsLibrary.tsx b/src/components/AssetsLibrary.tsx index b8ce0e0..9d1e871 100644 --- a/src/components/AssetsLibrary.tsx +++ b/src/components/AssetsLibrary.tsx @@ -68,7 +68,7 @@ function AssetImagePreview({ assetId, alt }: { assetId: string; alt: string }) { {alt} ); } @@ -232,7 +232,7 @@ export default function AssetsLibrary({ tenantLabel }: { tenantLabel: string }) className={`text-xs px-3 py-1.5 rounded-lg border ${ tab === 'portal' ? 'border-brand-500/40 text-brand-400' - : 'border-gray-700 text-gray-400' + : 'border-gray-200 text-gray-400' }`} > Portal @@ -243,7 +243,7 @@ export default function AssetsLibrary({ tenantLabel }: { tenantLabel: string }) className={`inline-flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-lg border ${ tab === 'drive' ? 'border-brand-500/40 text-brand-400' - : 'border-gray-700 text-gray-400' + : 'border-gray-200 text-gray-400' }`} > @@ -267,7 +267,7 @@ export default function AssetsLibrary({ tenantLabel }: { tenantLabel: string }) Carpeta setFolder(e.target.value)} @@ -296,7 +296,7 @@ export default function AssetsLibrary({ tenantLabel }: { tenantLabel: string }) }} /> -
-
+