// Versão responsiva da seção "Recursos" — usada só na home-2.
// Desktop: mantém a UI desktop atual (browser chrome + tela escalada), fundo roxo.
// Mobile: carrossel de celulares fiéis (fundo claro), 1 slide por recurso.
// Isolada da home real (que não carrega este arquivo).
function AppScreensSectionV2() {
  const screens = [
    { id: 'mes', label: 'Mês Atual', node: <DesktopDashboard />, phone: (w) => <PhoneMesAtual width={w} />, h: 'Seu mês em um só lugar', p: 'Registre gastos e receitas em segundos, veja o saldo, quanto pode gastar hoje e para onde o dinheiro está indo — tudo atualizado na hora.', cap: 'Gastos, receitas, saldo e quanto dá pra gastar hoje — atualizado na hora.' },
    { id: 'import', label: 'Importar Dados', node: <ImportarScreen />, phone: (w) => <PhoneImportar width={w} />, h: 'Importe e deixe a IA organizar', p: 'Envie faturas, extratos ou planilhas: a IA lê o documento e transforma em lançamentos categorizados — separando gastos, parcelas e recorrentes, e avisando o que já existe, sem duplicar.', cap: 'Faturas, extratos e planilhas viram lançamentos categorizados, sem duplicar.' },
    { id: 'hist', label: 'Histórico', node: <HistoricoScreen />, phone: (w) => <PhoneHistorico width={w} />, h: 'Volte a qualquer mês', p: 'Reveja exatamente o que aconteceu em qualquer mês, com o mesmo detalhamento do mês atual — ideal para conferir e entender sua evolução.', cap: 'Reveja qualquer mês passado com o mesmo detalhamento do mês atual.' },
    { id: 'analise', label: 'Análises', node: <AnaliseScreen />, phone: (w) => <PhoneAnalises width={w} />, h: 'Entenda para onde vai o dinheiro', p: 'Gráficos que mostram a composição das despesas, a evolução mês a mês, por qual forma você mais gasta e quanto sobrou — para decidir com clareza.', cap: 'Gráficos que mostram para onde o dinheiro vai e quanto sobrou.' },
    { id: 'econ', label: 'Economias', node: <EconomiasScreen />, phone: (w) => <PhoneEconomias width={w} />, h: 'Guarde com propósito', p: 'Acompanhe metas, investimentos com projeção e simule o futuro do seu dinheiro na calculadora de juros compostos, com as taxas de mercado sempre à mão.', cap: 'Metas, investimentos e projeções para planejar o que vem.' },
    { id: 'fam', label: 'Família', node: <ContaScreen />, phone: (w) => <PhoneConta width={w} />, h: 'Finanças em família, no seu controle', p: 'Convide quem quiser para o grupo — cada um com seu papel (admin ou membro) — e cuide de perfil, segurança, plano e instalação, tudo na sua conta.', cap: 'Convide a família, cada um com seu papel, tudo na sua conta.' },
  ];
  const mobileScreens = screens.filter(s => s.phone);
  const [tab, setTab] = React.useState('mes');
  const active = screens.find(s => s.id === tab) || screens[0];
  const [slide, setSlide] = React.useState(0);
  const trackRef = React.useRef(null);
  const PHONE_W = 272;

  const onScroll = () => {
    const tk = trackRef.current; if (!tk) return;
    const c = tk.scrollLeft + tk.clientWidth / 2;
    let best = 0, bd = 1e9;
    [...tk.querySelectorAll('.car-slide')].forEach((el, i) => {
      const mid = el.offsetLeft + el.offsetWidth / 2; const d = Math.abs(mid - c);
      if (d < bd) { bd = d; best = i; }
    });
    setSlide(best);
  };

  return (
    <section id="telas">
      <div className="container">
        <div className="section-header">
          <div className="eyebrow"><span className="dot" />Recursos</div>
          <h2>Tudo que você precisa para acompanhar sua vida financeira com clareza.</h2>
          <p>Do dia a dia ao histórico do mês, tudo organizado no mesmo lugar.</p>
        </div>

        {/* ===== Desktop ===== */}
        <div className="telas-desktop-only">
          <div className="telas-tabsrow">
            {screens.map(s => (
              <button key={s.id} onClick={() => setTab(s.id)} className={'telas-tab' + (tab === s.id ? ' active' : '')}>{s.label}</button>
            ))}
          </div>
          <div style={{ maxWidth: 1000, margin: '0 auto', borderRadius: 14, overflow: 'hidden', boxShadow: '0 32px 64px -20px rgba(0,0,0,0.4)', background: 'white' }}>
            <BrowserChrome />
            <div className="telas-frame" style={{ position: 'relative', overflow: 'hidden', background: 'var(--bg)' }}>
              <div className="telas-scaled" style={{ position: 'absolute', top: 0, left: 0, width: 1100, transformOrigin: 'top left' }}>
                {active.node}
              </div>
              <div className="telas-blurb" key={'d' + tab}>
                <div className="telas-blurb-tag"><span className="tb-dot" />{active.label}</div>
                <h3>{active.h}</h3>
                <p>{active.p}</p>
              </div>
            </div>
          </div>
          <p className="mono telas-desktopcap" style={{ fontSize: 11, textAlign: 'center', marginTop: 16, letterSpacing: '0.04em' }}>
            VISUALIZAÇÃO COMPACTA · O APP ABRE EM TELA CHEIA NO COMPUTADOR
          </p>
        </div>

        {/* ===== Mobile: carrossel ===== */}
        <div className="telas-mobile-only">
          <div className="car-track no-scrollbar" ref={trackRef} onScroll={onScroll}>
            {mobileScreens.map(s => (
              <div className="car-slide" key={s.id}>
                {s.phone(PHONE_W)}
                <div className="car-cap">
                  <div className="car-cap-tag"><span className="tb-dot" />{s.label}</div>
                  <h3>{s.h}</h3>
                  <p>{s.cap}</p>
                </div>
              </div>
            ))}
          </div>
          <div className="car-dots">
            {mobileScreens.map((s, i) => <span key={s.id} className={'car-dot' + (i === slide ? ' on' : '')} />)}
          </div>
          <div className="car-hint">← deslize →</div>
        </div>
      </div>

      <style>{`
        #telas { background: var(--purple); }

        #telas .section-header .eyebrow .dot { background: var(--green); }
        #telas .section-header h2 { color: #fff; }
        #telas .section-header p { color: rgba(255,255,255,0.82); }

        .telas-tabsrow { display: flex; gap: 8px; justify-content: center; margin-bottom: 20px; flex-wrap: wrap; }
        .telas-tab {
          font-family: inherit; font-size: 13.5px; font-weight: 600;
          padding: 8px 16px; border-radius: 999px; cursor: pointer;
          background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4);
          transition: background .15s, color .15s, border-color .15s;
        }
        .telas-tab:hover { background: rgba(255,255,255,0.14); }
        .telas-tab.active { background: #fff; color: var(--purple); border-color: #fff; }
        .telas-desktopcap { color: rgba(255,255,255,0.6); }

        .telas-blurb {
          position: absolute; left: 22px; bottom: 22px; width: min(340px, calc(100% - 44px));
          background: rgba(255,255,255,0.96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
          border: 1px solid var(--line); border-radius: 14px; padding: 15px 17px;
          box-shadow: 0 18px 40px -12px rgba(26,22,20,0.28); z-index: 4;
          animation: blurbIn 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
        }
        .telas-blurb-tag, .car-cap-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--purple); margin-bottom: 7px; }
        .telas-blurb-tag .tb-dot, .car-cap-tag .tb-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
        .telas-blurb h3 { font-size: 16px; font-weight: 700; color: var(--ink); margin-bottom: 4px; line-height: 1.25; }
        .telas-blurb p { font-size: 13px; color: var(--ink-3); line-height: 1.5; }
        @keyframes blurbIn { 0% { opacity: 0; transform: translateY(18px) scale(0.97); } 60% { opacity: 1; } 100% { opacity: 1; transform: translateY(0) scale(1); } }

        .telas-frame { height: 300px; }
        .telas-scaled { --s: 0.31; transform: scale(var(--s)); }
        @media (min-width: 640px) { .telas-frame { height: 440px; } .telas-scaled { --s: 0.56; } }
        @media (min-width: 1000px) { .telas-frame { height: 560px; } .telas-scaled { --s: 0.89; } }

        /* Carrossel mobile */
        .car-track { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 0 12px; padding-inline: max(16px, calc(50% - 136px)); }
        .car-slide { flex: 0 0 auto; width: 272px; scroll-snap-align: center; display: flex; flex-direction: column; align-items: center; }
        .car-cap { margin-top: 16px; text-align: center; padding: 0 6px; width: 100%; }
        .car-cap h3 { font-size: 17px; font-weight: 700; color: var(--ink); margin: 0 0 4px; line-height: 1.22; }
        .car-cap p { font-size: 13px; color: var(--ink-3); line-height: 1.5; }
        .car-dots { display: flex; gap: 7px; justify-content: center; margin-top: 18px; }
        .car-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(26,22,20,.18); transition: all .2s; }
        .car-dot.on { background: var(--purple); width: 20px; border-radius: 99px; }
        .car-hint { text-align: center; color: var(--ink-4); font-size: 11px; margin-top: 12px; font-family: 'Geist Mono', monospace; letter-spacing: .03em; }

        /* Alternância desktop x mobile + fundo claro no mobile */
        .telas-mobile-only { display: none; }
        @media (max-width: 899px) {
          #telas { background: var(--bg-soft); }
          #telas .section-header h2 { color: var(--ink); }
          #telas .section-header p { color: var(--ink-3); }
          .telas-desktop-only { display: none !important; }
          .telas-mobile-only { display: block; }
        }
      `}</style>
    </section>
  );
}

window.AppScreensSectionV2 = AppScreensSectionV2;
