// ============================================================
// AgenticX — Página comercial (Planos e preços) · estética v3
// Renderizada via hash-route (#precos) dentro do mesmo HTML.
// Dados + BillingToggle + PlanCard.
// ============================================================

// ---------- Dados ----------
const PLANS = [
  {
    id: 'starter',
    name: 'Starter',
    monthly: 'R$ 349',
    annual: 'R$ 297',
    blurb: 'Para pequenas equipes que precisam centralizar canais de atendimento e organizar processos comerciais e operacionais.',
    cta: 'Começar com o Starter',
    highlight: false,
    fromPrefix: false,
    features: [
      '3 agentes de atendimento',
      '2 canais ou integrações',
      'Inbox omnichannel',
      'Automações básicas',
      '1 pipeline Kanban Lite',
      'Copiloto IA ilimitado',
      'Onboarding remoto',
      'Suporte 8×5',
    ],
  },
  {
    id: 'business',
    name: 'Business',
    monthly: 'R$ 890',
    annual: 'R$ 757',
    blurb: 'Para equipes que precisam de mais canais, agentes, automações e controle sobre a distribuição dos atendimentos.',
    cta: 'Falar com vendas',
    highlight: true,
    fromPrefix: false,
    leadIn: 'Tudo do Starter, mais:',
    features: [
      '10 agentes de atendimento',
      'Limite compartilhado de 5 canais ou integrações',
      'Equipes de atendimento',
      'Distribuição e roteamento de conversas',
      'Automações avançadas',
      '3 pipelines Kanban',
      'Relatórios completos',
      'Onboarding guiado',
    ],
  },
  {
    id: 'enterprise',
    name: 'Enterprise',
    monthly: 'R$ 2.490',
    annual: 'R$ 2.117',
    blurb: 'Para operações maiores, empresas reguladas e organizações que precisam de governança, segurança, auditoria e implantação personalizada.',
    cta: 'Falar com vendas',
    highlight: false,
    fromPrefix: true,
    leadIn: 'Tudo do Business, mais:',
    features: [
      '25 agentes de atendimento',
      'Limite compartilhado de 10 canais ou integrações',
      'Kanban avançado',
      'Relatórios completos e personalizados',
      '5.000 ações de Copiloto IA',
      'Auditoria',
      'SLA personalizado',
      'Migração assistida',
      'Ambiente dedicado sob consulta',
      'Implantação personalizada sob consulta',
    ],
  },
];

const COMPARE_GROUPS = [
  {
    label: 'Investimento',
    rows: [
      { f: 'Preço mensal', v: ['R$ 349/mês', 'R$ 890/mês', 'A partir de R$ 2.490/mês'] },
      { f: 'Preço no plano anual', v: ['R$ 297/mês', 'R$ 757/mês', 'A partir de R$ 2.117/mês'] },
    ],
  },
  {
    label: 'Capacidade',
    rows: [
      { f: 'Agentes de atendimento', v: ['3', '10', '25'] },
      { f: 'Canais ou integrações', v: ['2', '5', '10'] },
      { f: 'Inbox omnichannel', v: [true, true, true] },
      { f: 'Equipes de atendimento', v: [false, true, true] },
    ],
  },
  {
    label: 'Operação',
    rows: [
      { f: 'Distribuição e roteamento', v: ['Básico', 'Avançado', 'Avançado'] },
      { f: 'Automações', v: ['Básicas', 'Avançadas', 'Avançadas'] },
      { f: 'Pipelines Kanban', v: ['1 Kanban Lite', '3 pipelines', 'Kanban avançado'] },
      { f: 'Relatórios', v: ['Básicos', 'Completos', 'Completos e personalizados'] },
      { f: 'Copiloto IA', v: ['Ilimitado', 'Ilimitado', '5.000 ações'] },
    ],
  },
  {
    label: 'Implantação & governança',
    rows: [
      { f: 'Onboarding', v: ['Remoto', 'Guiado', 'Migração assistida'] },
      { f: 'Suporte', v: ['8×5', 'Prioritário 8×5', 'SLA personalizado'] },
      { f: 'Auditoria', v: [false, false, true] },
      { f: 'Ambiente dedicado', v: [false, false, 'Sob consulta'] },
      { f: 'Implantação personalizada', v: [false, false, 'Sob consulta'] },
    ],
  },
];

const ADDONS = [
  { title: 'Agente de atendimento adicional', price: 'R$ 59', unit: '/mês por agente', note: 'Adicione novos atendentes conforme o crescimento da equipe.' },
  { title: 'Canal adicional', price: 'R$ 99', unit: '/mês por canal', note: 'WhatsApp, Instagram ou outro canal adicional.' },
  { title: 'Pacote adicional de Copiloto IA', price: 'R$ 49', unit: '/ 1.000 ações', note: 'Para ampliar a franquia contratada quando aplicável.' },
  { title: 'Integração personalizada', price: 'R$ 99', unit: '/mês por conector', note: 'Implantação cobrada separadamente, sob consulta.' },
];

const CAPABILITIES = [
  {
    I: IWA, title: 'Canais de atendimento',
    text: 'Centralize cada conversa em uma só operação.',
    items: ['WhatsApp', 'Instagram', 'Facebook', 'Chat do site', 'E-mail', 'APIs personalizadas'],
  },
  {
    I: ILayers, title: 'Integrações',
    text: 'Conecte os sistemas que sua empresa já usa.',
    items: ['CRM e ERP', 'Webhooks', 'n8n e Make', 'APIs próprias', 'Plataformas de agenda', 'Sistemas internos'],
  },
  {
    I: IBrain, title: 'Copiloto IA',
    text: 'Apoio ao time durante todo o atendimento.',
    items: ['Resumo de conversas', 'Sugestões de resposta', 'Classificação de mensagens', 'Apoio na redação', 'Encaminhamento assistido', 'Automação de tarefas'],
  },
  {
    I: IRoute, title: 'Kanban integrado',
    text: 'Oportunidades e follow-ups ligados às conversas.',
    items: ['Etapas personalizadas', 'Movimentação entre estágios', 'Acompanhamento de pendências', 'Controle de follow-ups', 'Visão do andamento', 'Atendimento + operação juntos'],
  },
  {
    I: IGlobeSimple, title: 'Equipes e roteamento',
    text: 'Organize agentes por times, áreas ou unidades.',
    items: ['Comercial e Suporte', 'Financeiro', 'Agendamento', 'Unidade ou filial', 'Pós-venda', 'Regras por canal e assunto'],
  },
  {
    I: IShield, title: 'Onboarding e suporte',
    text: 'Implantação acompanhada de ponta a ponta.',
    items: ['Onboarding guiado', 'Suporte 8×5', 'Migração assistida', 'SLA personalizado', 'Implantação dedicada', 'Ambiente dedicado (Enterprise)'],
  },
];

const IMPORTANT = [
  'Os valores do plano anual correspondem à contratação por 12 meses.',
  'O limite de cada plano é compartilhado entre canais e integrações.',
  'Tarifas de WhatsApp, Meta, SMS, telefonia, voz e outros provedores externos não estão incluídas na mensalidade.',
  'Custos de provedores externos são cobrados separadamente, conforme o consumo e as condições do fornecedor.',
  'Integrações gerenciadas possuem mensalidade recorrente e taxa de implantação sob consulta.',
  'Integrações personalizadas são cobradas conforme escopo e esforço.',
  'Recursos e condições do plano Enterprise podem variar conforme requisitos de segurança, infraestrutura, auditoria e implantação.',
];

const PRICING_FAQS = [
  { q: 'O que é considerado um agente de atendimento?', a: 'É o usuário que pode acessar a plataforma, visualizar conversas, responder clientes, assumir atendimentos e utilizar os recursos disponíveis no plano.' },
  { q: 'O limite de canais e integrações é separado?', a: 'Não. O limite é compartilhado. No Business, por exemplo, você pode usar 5 canais; ou 3 canais e 2 integrações; ou 2 canais e 3 integrações — qualquer combinação dentro do limite total de 5.' },
  { q: 'As tarifas do WhatsApp estão incluídas?', a: 'Não. Tarifas da Meta, WhatsApp Business Platform, SMS, telefonia, voz e outros provedores são cobradas separadamente, conforme o consumo.' },
  { q: 'Posso adicionar agentes sem trocar de plano?', a: 'Sim. Agentes adicionais podem ser contratados por R$ 59 por mês por agente, conforme o crescimento da equipe.' },
  { q: 'Posso adicionar outro canal?', a: 'Sim. Canais adicionais podem ser contratados por R$ 99 por mês por canal — WhatsApp, Instagram ou outro.' },
  { q: 'O Agenticx faz integrações personalizadas?', a: 'Sim. Integrações com ERP, CRM, APIs e sistemas internos podem ser desenvolvidas conforme o escopo do projeto, com implantação cobrada à parte.' },
  { q: 'O Copiloto IA está incluído?', a: 'Sim. Os planos Starter e Business têm uso ilimitado do Copiloto IA. O Enterprise inclui 5.000 ações, com possibilidade de contratar pacotes adicionais.' },
  { q: 'Existe opção de ambiente dedicado?', a: 'Sim. Ambientes dedicados e implantações personalizadas estão disponíveis no plano Enterprise, sob consulta.' },
  { q: 'Posso contratar mensalmente?', a: 'Sim. Você escolhe entre contratação mensal ou anual. Na anual, o valor mensal é reduzido e o compromisso é de 12 meses.' },
];

// ---------- Billing toggle ----------
const BillingToggle = ({ annual, onChange }) => (
  <div className="inline-flex items-center gap-3">
    <div className="relative inline-flex rounded-full bg-sage p-1 ring-1 ring-line">
      <span
        className="absolute top-1 bottom-1 rounded-full bg-forest transition-all duration-300 ease-out"
        style={{ left: annual ? '50%' : '0.25rem', right: annual ? '0.25rem' : '50%' }}
      ></span>
      {['Mensal', 'Anual'].map((label, i) => {
        const on = (i === 1) === annual;
        return (
          <button key={label} onClick={() => onChange(i === 1)}
            className={`relative z-10 px-6 py-2 text-sm font-medium rounded-full transition-colors ${on ? 'text-white' : 'text-forest/70 hover:text-forest'}`}>
            {label}
          </button>
        );
      })}
    </div>
    <span className="text-xs font-medium text-teal whitespace-nowrap">Economize ~15% no anual</span>
  </div>
);

// ---------- Plan card ----------
const PlanCard = ({ plan, annual }) => {
  const price = annual ? plan.annual : plan.monthly;
  const hi = plan.highlight;
  return (
    <div className={`relative flex flex-col rounded-3xl p-8 sm:p-9 ${hi ? 'satin text-white ring-1 ring-forest/40 lg:-mt-4 lg:mb-[-1rem] shadow-xl shadow-forest/20' : 'bg-white text-black border border-line'}`}>
      {hi && (
        <span className="absolute top-7 right-7 inline-flex items-center gap-1.5 rounded-full bg-cream px-3 py-1 text-[0.7rem] font-semibold uppercase tracking-wide text-forest">
          <Sparkle size={11} color="#1C3F3A"/> Mais escolhido
        </span>
      )}
      <h3 className={`text-2xl font-medium ${hi ? 'text-white' : 'text-black'}`}>{plan.name}</h3>

      <div className="mt-5 flex items-end gap-2">
        {plan.fromPrefix && <span className={`mb-2 text-xs ${hi ? 'text-white/60' : 'text-slate'}`}>a partir de</span>}
        <span className={`text-5xl font-medium tracking-tighter ${hi ? 'text-white' : 'text-black'}`}>{price}</span>
        <span className={`mb-1.5 text-sm ${hi ? 'text-white/70' : 'text-slate'}`}>/mês</span>
      </div>
      <p className={`mt-1.5 text-xs ${hi ? 'text-cream' : 'text-teal'}`}>
        {annual ? 'cobrado anualmente · 12 meses' : `no anual ${plan.fromPrefix ? 'a partir de ' : ''}${plan.annual}/mês`}
      </p>

      <p className={`mt-5 text-sm leading-relaxed ${hi ? 'text-white/75' : 'text-slate'}`}>{plan.blurb}</p>

      <a href="#contact"
         className={`btn-slide group mt-7 justify-center px-6 py-3.5 text-sm font-semibold ${hi ? 'bg-white text-forest hover:bg-cream' : 'bg-forest text-white hover:bg-forest-700'}`}>
        <span className={`btn-arrow ${hi ? 'bg-forest text-white' : 'bg-white text-forest'}`}><IArrow size={12}/></span>
        <span className="btn-label">{plan.cta}</span>
      </a>

      <div className={`mt-8 pt-7 border-t ${hi ? 'border-white/15' : 'border-line'}`}>
        {plan.leadIn && (
          <p className={`mb-4 text-xs font-semibold uppercase tracking-wide ${hi ? 'text-cream' : 'text-teal'}`}>{plan.leadIn}</p>
        )}
        <ul className="flex flex-col gap-3">
          {plan.features.map((f, i) => (
            <li key={i} className="flex items-start gap-3 text-sm">
              <span className={`mt-0.5 shrink-0 grid place-items-center h-5 w-5 rounded-full ${hi ? 'bg-white/15 text-cream' : 'bg-sage text-forest'}`}>
                <ICheck size={12}/>
              </span>
              <span className={hi ? 'text-white/90' : 'text-black/80'}>{f}</span>
            </li>
          ))}
        </ul>
      </div>
    </div>
  );
};

Object.assign(window, {
  PLANS, COMPARE_GROUPS, ADDONS, CAPABILITIES, IMPORTANT, PRICING_FAQS,
  BillingToggle, PlanCard,
});
