// Sections.jsx — Tradeo site (reporting & relationship positioning)
const useT = (lang) => window.TRADEO_I18N && window.TRADEO_I18N[lang] || window.TRADEO_I18N['pt-BR'];

function HeaderBar({ lang, setLang, t }) {
  const [open, setOpen] = React.useState(false);
  const close = () => setOpen(false);
  const links = [['#today', t.nav.product], ['#audience', t.nav.audience], ['#how', t.nav.how], ['#roadmap', t.nav.roadmap], ['#faq', 'FAQ']];
  const langSwitch = (
    <div className="lang-switch" role="tablist">
      {['pt-BR', 'en-US', 'es-419'].map((code) =>
        <button key={code} className={lang === code ? 'is-active' : ''} onClick={() => setLang(code)}>
          {code === 'pt-BR' ? 'PT' : code === 'en-US' ? 'EN' : 'ES'}
        </button>
      )}
    </div>
  );
  return (
    <header className="site-header">
      <div className="wrap site-header__inner">
        <a href="#top" aria-label="Tradeo" onClick={close}>
          <img className="site-logo site-logo--light" src="assets/tradeo-logo-on-light.svg" alt="Tradeo" style={{ height: '34px' }} />
          <img className="site-logo site-logo--dark" src="assets/tradeo-logo-on-dark.svg" alt="Tradeo" style={{ height: '34px' }} />
        </a>
        <nav className="site-nav">
          {links.map(([href, label]) => <a key={href} href={href}>{label}</a>)}
        </nav>
        <div className="site-nav__right">
          {langSwitch}
          <a className="btn btn--ghost btn--sm hide-mobile" href="https://app.usetradeo.com" target="_blank" rel="noopener">{t.nav.login}</a>
          <a className="btn btn--primary btn--sm hide-mobile" href="#cta"><i className="ph ph-calendar-check"></i>{t.nav.cta}</a>
          <button className="nav-toggle" aria-label="Menu" aria-expanded={open} onClick={() => setOpen((o) => !o)}>
            <i className={`ph ${open ? 'ph-x' : 'ph-list'}`}></i>
          </button>
        </div>
      </div>
      <div className={`site-mobile ${open ? 'is-open' : ''}`}>
        <nav className="site-mobile__nav">
          {links.map(([href, label]) => <a key={href} href={href} onClick={close}>{label}</a>)}
          <a href="https://app.usetradeo.com" target="_blank" rel="noopener" onClick={close}>{t.nav.login}</a>
        </nav>
        <a className="btn btn--primary btn--lg site-mobile__cta" href="#cta" onClick={close}><i className="ph ph-calendar-check"></i>{t.nav.cta}</a>
      </div>
    </header>);
}

function ReportMockup({ t }) {
  const r = t.hero.rep;
  return (
    <div className="mock-frame" aria-hidden="true">
      <div className="mock-bar">
        <div className="mock-bar__dots"><span></span><span></span><span></span></div>
        <div className="mock-bar__url">{r.url}</div>
      </div>
      <div className="mock-body">
        <div className="rep-head">
          <div>
            <div className="rep-head__eyebrow">{r.clientLabel}</div>
            <div className="rep-head__client">{r.client}</div>
          </div>
          <div className="rep-head__period">{r.period}</div>
        </div>
        <div className="rep-filters">
          {r.filters.map((f, i) => <span className="rep-chip" key={i}><i className="ph ph-funnel-simple"></i>{f}</span>)}
        </div>
        <div className="rep-grid">
          {r.totals.map((it, i) =>
            <div className={`rep-cell ${i === 0 ? 'rep-cell--lead' : ''}`} key={i}>
              <div className="rep-cell__v">{it[1]}</div>
              <div className="rep-cell__l">{it[0]}</div>
            </div>
          )}
        </div>
        <div className="rep-status">
          <span className="rep-status__dot"><i className="ph ph-check"></i></span>
          <span>{r.status}</span>
          <i className="ph ph-export rep-status__export"></i>
        </div>
      </div>
    </div>);
}

function Hero({ t, headline, ctaKey, heroVariant, showMicro }) {
  const hKey = headline === 'A' ? 'h_a' : headline === 'C' ? 'h_c' : 'h_b';
  const ctaText = ctaKey === 'report' ? t.hero.cta_report : ctaKey === 'evaluate' ? t.hero.cta_evaluate : t.hero.cta_demo;
  const variant = heroVariant === 'text' ? 'text' : 'mockup';
  return (
    <section className="hero" data-variant={variant} id="top">
      <div className="wrap">
        <div className="hero__grid">
          <div>
            <div className="hero__tag"><i className="ph ph-chart-bar"></i>{t.hero.tag}</div>
            <h1 className="h-display">{t.hero[hKey]}</h1>
            <p className="lead hero__sub">{t.hero.sub}</p>
            <div className="hero__ctas">
              <a className="btn btn--primary btn--lg" href="#cta"><i className="ph ph-calendar-check"></i>{ctaText}</a>
              <a className="btn btn--ghost btn--lg" href="#cta"><i className="ph ph-clipboard-text"></i>{t.hero.cta_secondary}</a>
            </div>
            {showMicro && <p className="hero__micro">{t.hero.micro}</p>}
          </div>
          <div className="hero__visual">
            <ReportMockup t={t} />
          </div>
        </div>
      </div>
    </section>);
}

function SectionHead({ overline, title, sub, center }) {
  return (
    <div className={`section-head ${center === false ? 'section-head--left' : ''}`}>
      <span className="overline">{overline}</span>
      <h2 className="h-section">{title}</h2>
      {sub ? <p className="lead">{sub}</p> : null}
    </div>);
}

function ProblemSection({ t }) {
  return (
    <section className="section section--alt" id="problem">
      <div className="wrap">
        <SectionHead overline={t.problem.overline} title={t.problem.title} sub={t.problem.sub} />
        <div className="problems-grid">
          {t.problem.items.map((it, i) =>
            <div className="problem" key={i}>
              <div className="problem__check"><i className="ph ph-warning"></i></div>
              <div className="problem__text">{it}</div>
            </div>
          )}
        </div>
      </div>
    </section>);
}

function TodaySection({ t }) {
  return (
    <section className="section" id="today">
      <div className="wrap">
        <SectionHead overline={t.today.overline} title={t.today.title} sub={t.today.sub} />
        <div className="feature-grid">
          {t.today.cards.map((c, i) =>
            <article className="feature-card" key={i}>
              <div className="feature-card__icon"><i className={`ph ${c[2]}`}></i></div>
              <h3 className="feature-card__name">{c[0]}</h3>
              <p className="feature-card__desc">{c[1]}</p>
              <span className="feature-card__badge"><span className="dot"></span>{t.today.overline}</span>
            </article>
          )}
        </div>
      </div>
    </section>);
}

function ShiftBand({ t }) {
  const s = t.shift;
  return (
    <section className="section section--tight" id="shift">
      <div className="wrap">
        <div className="shift">
          <div className="shift__overline">{s.overline}</div>
          <h2 className="shift__title">{s.title}</h2>
          <p className="shift__body">{s.body}</p>
          <div className="shift__points">
            {s.points.map((p, i) => <span className="shift__point" key={i}><i className="ph ph-check-circle"></i>{p}</span>)}
          </div>
        </div>
      </div>
    </section>);
}

function ResultsSection({ t }) {
  const r = t.results;
  return (
    <section className="section" id="results">
      <div className="wrap">
        <SectionHead overline={r.overline} title={r.title} sub={r.lead} />
        <div className="results-grid">
          {r.items.map((it, i) =>
            <div className="result-item" key={i}>
              <i className="ph ph-check-circle"></i><span>{it}</span>
            </div>
          )}
        </div>
      </div>
    </section>);
}

function MidCTA({ t }) {
  return (
    <section className="section section--tight" id="midcta">
      <div className="wrap">
        <div className="midcta">
          <div className="midcta__text">
            <div className="midcta__title">{t.midcta.title}</div>
            <div className="midcta__body">{t.midcta.body}</div>
          </div>
          <a className="btn btn--primary btn--lg" href="#cta"><i className="ph ph-calendar-check"></i>{t.midcta.cta}</a>
        </div>
      </div>
    </section>);
}

function AudienceSection({ t }) {
  const a = t.audience;
  return (
    <section className="section section--alt" id="audience">
      <div className="wrap">
        <SectionHead overline={a.overline} title={a.title} sub={a.sub} />
        <div className="aud-grid">
          {a.groups.map((g, i) =>
            <article className={`aud-card ${i === 0 ? 'aud-card--primary' : ''}`} key={i}>
              <span className={`aud-card__tag ${i === 0 ? '' : 'aud-card__tag--muted'}`}>{g[0]}</span>
              <h3 className="h-card" style={i === 0 ? { fontSize: 22 } : null}>{g[1]}</h3>
              <p className="aud-card__body">{g[2]}</p>
            </article>
          )}
        </div>
      </div>
    </section>);
}

function HowSection({ t }) {
  return (
    <section className="section" id="how">
      <div className="wrap">
        <SectionHead overline={t.how.overline} title={t.how.title} />
        <div className="how-grid">
          {t.how.steps.map((s, i) =>
            <div className="how-step" key={i}>
              <div className="how-step__n">{String(i + 1).padStart(2, '0')}</div>
              <div className="how-step__t">{s[0]}</div>
              <div className="how-step__d">{s[1]}</div>
            </div>
          )}
        </div>
      </div>
    </section>);
}

function MaturitySection({ t }) {
  const m = t.maturity;
  return (
    <section className="section section--alt" id="maturity">
      <div className="wrap">
        <SectionHead overline={m.overline} title={m.title} sub={m.sub} />
        <div className="mat">
          <div className="mat__row mat__row--head">
            <div>{m.cols[0]}</div><div>{m.cols[1]}</div><div className="mat__note-col">{m.cols[2]}</div>
          </div>
          {m.rows.map((row, i) =>
            <div className="mat__row" key={i}>
              <div className="mat__area">{row[0]}</div>
              <div><span className={`mat__pill mat__pill--${row[1]}`}>{m.statusLabels[row[1]]}</span></div>
              <div className="mat__note">{row[2]}</div>
            </div>
          )}
        </div>
      </div>
    </section>);
}

function RoadmapSection({ t }) {
  return (
    <section className="section" id="roadmap">
      <div className="wrap">
        <SectionHead overline={t.roadmap.overline} title={t.roadmap.title} sub={t.roadmap.sub} />
        <div className="roadmap-grid">
          {t.roadmap.quarters.map((q, i) =>
            <div className={`rm-col ${i === 0 ? 'rm-col--now' : ''}`} key={i}>
              <div className="rm-col__q">{q.q}</div>
              <div className="rm-col__focus">{q.focus}</div>
              <ul className="rm-col__list">
                {q.items.map((it, j) => <li key={j}><i className="ph ph-dot-outline"></i><span>{it}</span></li>)}
              </ul>
            </div>
          )}
        </div>
      </div>
    </section>);
}

function FAQSection({ t }) {
  const [open, setOpen] = React.useState(0);
  return (
    <section className="section section--alt" id="faq">
      <div className="wrap">
        <SectionHead overline={t.faq.overline} title={t.faq.title} />
        <div className="faq">
          {t.faq.items.map((it, i) =>
            <div className={`faq-item ${open === i ? 'is-open' : ''}`} key={i}>
              <button className="faq-item__btn" onClick={() => setOpen(open === i ? -1 : i)}>
                <span>{it.q}</span><i className="ph ph-plus"></i>
              </button>
              <div className="faq-item__body">{it.a}</div>
            </div>
          )}
        </div>
      </div>
    </section>);
}

function DemoForm({ t }) {
  const f = t.cta.form;
  const [sent, setSent] = React.useState(false);
  const Field = ({ label, children }) => (
    <label className="df-field"><span className="df-label">{label}</span>{children}</label>
  );
  if (sent) {
    return (
      <div className="demo-form demo-form--done">
        <div className="df-done-icon"><i className="ph ph-check-circle"></i></div>
        <div className="df-done-title">{t.cta.submit} ✓</div>
        <p className="df-done-body">{t.cta.privacy}</p>
        <button className="btn btn--outline" onClick={() => setSent(false)}><i className="ph ph-arrow-counter-clockwise"></i>↺</button>
      </div>);
  }
  return (
    <form className="demo-form" onSubmit={(e) => { e.preventDefault(); setSent(true); }}>
      <div className="df-row">
        <Field label={f.name}><input type="text" required placeholder="—" /></Field>
        <Field label={f.company}><input type="text" required placeholder="—" /></Field>
      </div>
      <div className="df-row">
        <Field label={f.whatsapp}><input type="tel" placeholder="+55" /></Field>
        <Field label={f.email}><input type="email" required placeholder="@" /></Field>
      </div>
      <Field label={f.opType}>
        <select defaultValue="">{['', ...f.opTypeOpts].map((o, i) => <option key={i} value={o} disabled={o === ''}>{o || '—'}</option>)}</select>
      </Field>
      <div className="df-row">
        <Field label={f.clients}>
          <select defaultValue="">{['', ...f.clientsOpts].map((o, i) => <option key={i} value={o} disabled={o === ''}>{o || '—'}</option>)}</select>
        </Field>
        <Field label={f.team}>
          <select defaultValue="">{['', ...f.teamOpts].map((o, i) => <option key={i} value={o} disabled={o === ''}>{o || '—'}</option>)}</select>
        </Field>
      </div>
      <div className="df-row">
        <Field label={f.reportHow}>
          <select defaultValue="">{['', ...f.reportHowOpts].map((o, i) => <option key={i} value={o} disabled={o === ''}>{o || '—'}</option>)}</select>
        </Field>
        <Field label={f.pain}>
          <select defaultValue="">{['', ...f.painOpts].map((o, i) => <option key={i} value={o} disabled={o === ''}>{o || '—'}</option>)}</select>
        </Field>
      </div>
      <label className="df-check">
        <input type="checkbox" /><span>{f.sample}</span>
      </label>
      <button className="btn btn--primary btn--lg df-submit" type="submit"><i className="ph ph-calendar-check"></i>{t.cta.submit}</button>
      <p className="df-privacy">{t.cta.privacy}</p>
    </form>);
}

function DemoCTA({ t }) {
  return (
    <section className="section" id="cta">
      <div className="wrap">
        <div className="cta-final cta-final--form">
          <div style={{ position: 'relative', zIndex: 1 }}>
            <div style={{ font: 'var(--type-overline)', color: 'hsl(222 70% 70%)', letterSpacing: '.08em', marginBottom: 14 }}>{t.cta.overline}</div>
            <h2>{t.cta.title}</h2>
            <p className="lead">{t.cta.body}</p>
            <div className="cta-final__meta">
              <span><i className="ph ph-clock"></i>30 min</span>
              <span><i className="ph ph-monitor"></i>online</span>
              <span><i className="ph ph-file-text"></i>{t.hero.rep.label}</span>
            </div>
          </div>
          <DemoForm t={t} />
        </div>
      </div>
    </section>);
}

function Footer({ t, lang, setLang }) {
  const B = { email: 'contato@usetradeo.com', phone: '+55 54 9.9346.1322' };
  return (
    <footer className="site-footer">
      <div className="wrap">
        <div className="site-footer__grid">
          <div className="site-footer__brand">
            <img src="assets/tradeo-logo-on-dark.svg" alt="Tradeo" style={{ height: '36px' }} />
            <div className="site-footer__tag">{t.footer.tagline}</div>
            <div style={{ marginTop: 18, display: 'flex', gap: 8 }}>
              <a className="theme-toggle" href="#" style={{ background: 'hsl(0 0% 100% / 0.06)', borderColor: 'hsl(0 0% 100% / 0.1)', color: 'hsl(220 15% 90%)' }}><i className="ph ph-linkedin-logo"></i></a>
              <a className="theme-toggle" href="#" style={{ background: 'hsl(0 0% 100% / 0.06)', borderColor: 'hsl(0 0% 100% / 0.1)', color: 'hsl(220 15% 90%)' }}><i className="ph ph-instagram-logo"></i></a>
            </div>
          </div>
          <div className="site-footer__col">
            <h4>{t.footer.plat_h}</h4>
            <ul>{t.footer.plat.map((l, i) => <li key={i}><a href={l[1]}>{l[0]}</a></li>)}</ul>
          </div>
          <div className="site-footer__col">
            <h4>{t.footer.company}</h4>
            <ul>{t.footer.links_company.map((l, i) => <li key={i}><a href="#">{l}</a></li>)}</ul>
          </div>
          <div className="site-footer__col">
            <h4>{t.footer.legal}</h4>
            <ul>{t.footer.links_legal.map((l, i) => <li key={i}><a href="#">{l}</a></li>)}</ul>
          </div>
          <div className="site-footer__col">
            <h4>{t.footer.contact}</h4>
            <ul>
              <li><a href={`mailto:${B.email}`}><i className="ph ph-envelope" style={{ marginRight: 6 }}></i>{B.email}</a></li>
              <li><a href="#"><i className="ph ph-whatsapp-logo" style={{ marginRight: 6 }}></i>{B.phone}</a></li>
              <li style={{ fontSize: 12, color: 'hsl(220 15% 65%)', lineHeight: 1.5, marginTop: 6 }}>{t.footer.address}</li>
              <li style={{ fontSize: 12, color: 'hsl(220 15% 65%)' }} className="mono">{t.footer.cnpj}</li>
            </ul>
          </div>
        </div>
        <div className="site-footer__bottom">
          <div>{t.footer.copy} · <span className="mono">v2.0.0</span></div>
          <div className="lang-switch" style={{ background: 'hsl(0 0% 100% / 0.06)', borderColor: 'hsl(0 0% 100% / 0.12)' }}>
            {['pt-BR', 'en-US', 'es-419'].map((code) =>
              <button key={code} className={lang === code ? 'is-active' : ''} onClick={() => setLang(code)} style={{ color: lang === code ? '#fff' : 'hsl(220 15% 70%)', background: lang === code ? 'hsl(0 0% 100% / 0.12)' : 'transparent' }}>
                {code === 'pt-BR' ? 'PT-BR' : code === 'en-US' ? 'EN-US' : 'ES-419'}
              </button>
            )}
          </div>
        </div>
      </div>
    </footer>);
}

Object.assign(window, {
  HeaderBar, Hero, ReportMockup, SectionHead, ProblemSection, ShiftBand, ResultsSection,
  TodaySection, MidCTA, AudienceSection, HowSection, MaturitySection, RoadmapSection,
  FAQSection, DemoCTA, Footer, useT,
});
