// Trainer Connect — Landing Page (trainerconnect.fit)
// Design system: tokens.css + components.css · Dark-first · Acento branco signature
// Fontes: Inter Tight (display) · Inter (UI) · JetBrains Mono (números/métricas)

// ====================================================================
// HOOKS & HELPERS
// ====================================================================

const { useState, useEffect } = React;

function useMedia(query, fallback = false) {
  const [match, setMatch] = useState(fallback);
  useEffect(() => {
    const m = window.matchMedia(query);
    const handler = (e) => setMatch(e.matches);
    setMatch(m.matches);
    m.addEventListener('change', handler);
    return () => m.removeEventListener('change', handler);
  }, [query]);
  return match;
}

// Mini-mockup do dashboard do personal (versão compacta para hero/passos)
function MockDashboard({ scale = 1 }) {
  return (
    <div style={{
      width: 280, height: 580,
      background: 'var(--tc-bg-0)',
      borderRadius: 26,
      padding: '18px 16px',
      transform: `scale(${scale})`,
      transformOrigin: 'top left',
      display: 'flex', flexDirection: 'column', gap: 12,
      overflow: 'hidden',
    }}>
      <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start' }}>
        <div>
          <div style={{ fontSize: 10, color: 'var(--tc-fg-3)', textTransform: 'uppercase', letterSpacing: '0.1em', fontWeight: 500 }}>Quarta · 25 abr</div>
          <div style={{ fontFamily: 'Inter Tight', fontSize: 20, fontWeight: 600, marginTop: 2, letterSpacing: '-0.02em' }}>Olá, Fabricio</div>
        </div>
        <div style={{ width: 32, height: 32, borderRadius: '50%', background: 'var(--tc-bg-3)', display: 'flex', alignItems: 'center', justifyContent: 'center', position: 'relative' }}>
          <Icon name="bell" size={14} style={{ color: 'var(--tc-fg-1)' }}/>
          <span style={{ position: 'absolute', top: 8, right: 8, width: 6, height: 6, borderRadius: '50%', background: 'var(--tc-danger)' }}/>
        </div>
      </div>

      <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 8 }}>
        <div style={{ background: 'var(--tc-bg-2)', border: '1px solid var(--tc-line-1)', borderRadius: 12, padding: 12 }}>
          <div style={{ fontSize: 9, color: 'var(--tc-fg-2)', textTransform: 'uppercase', letterSpacing: '0.06em', fontWeight: 500 }}>MRR</div>
          <div style={{ fontFamily: 'JetBrains Mono', fontSize: 22, fontWeight: 600, letterSpacing: '-0.03em', marginTop: 2 }}>R$ 2.4k</div>
          <div style={{ fontSize: 10, color: 'var(--tc-success)', fontFamily: 'JetBrains Mono', marginTop: 4 }}>+12% vs. mar</div>
        </div>
        <div style={{ background: 'var(--tc-bg-2)', border: '1px solid var(--tc-line-1)', borderRadius: 12, padding: 12 }}>
          <div style={{ fontSize: 9, color: 'var(--tc-fg-2)', textTransform: 'uppercase', letterSpacing: '0.06em', fontWeight: 500 }}>Alunos ativos</div>
          <div style={{ fontFamily: 'JetBrains Mono', fontSize: 22, fontWeight: 600, letterSpacing: '-0.03em', marginTop: 2 }}>24</div>
          <div style={{ fontSize: 10, color: 'var(--tc-fg-3)', fontFamily: 'JetBrains Mono', marginTop: 4 }}>+1 nesta semana</div>
        </div>
      </div>

      <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'baseline', marginTop: 4 }}>
        <div style={{ fontSize: 12, fontWeight: 600 }}>Precisa de atenção</div>
        <div style={{ fontSize: 11, color: 'var(--tc-fg-3)', fontFamily: 'JetBrains Mono' }}>3</div>
      </div>

      <div style={{ display: 'flex', flexDirection: 'column', gap: 6 }}>
        {[
          { in: 'KF', name: 'Kalani Ferreira', sub: 'Pagamento · 3d', color: 'var(--tc-danger)' },
          { in: 'DQ', name: 'Dário Quintela', sub: 'Sem treino · 7d', color: 'var(--tc-warn)' },
          { in: 'EW', name: 'Enzo Wachtel', sub: 'Anamnese pendente', color: 'var(--tc-warn)' },
        ].map((a, i) => (
          <div key={i} style={{ background: 'var(--tc-bg-2)', borderRadius: 10, padding: '10px 12px', borderLeft: `3px solid ${a.color}`, display: 'flex', alignItems: 'center', gap: 10 }}>
            <div style={{ width: 28, height: 28, borderRadius: '50%', background: 'var(--tc-bg-3)', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: 10, fontWeight: 600, color: 'var(--tc-fg-1)' }}>{a.in}</div>
            <div style={{ flex: 1, minWidth: 0 }}>
              <div style={{ fontSize: 11, fontWeight: 600 }}>{a.name}</div>
              <div style={{ fontSize: 10, color: a.color, marginTop: 1 }}>{a.sub}</div>
            </div>
          </div>
        ))}
      </div>

      <div style={{ marginTop: 4, background: 'var(--tc-bg-2)', borderRadius: 12, padding: 12, border: '1px solid var(--tc-line-1)' }}>
        <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'baseline', marginBottom: 8 }}>
          <div style={{ fontSize: 11, fontWeight: 600 }}>Atividade · semana</div>
          <div style={{ fontSize: 10, color: 'var(--tc-fg-2)', fontFamily: 'JetBrains Mono' }}>21 / 30</div>
        </div>
        <div style={{ display: 'flex', alignItems: 'flex-end', gap: 4, height: 40 }}>
          {[28, 22, 32, 18, 18, 6, 6].map((h, i) => (
            <div key={i} style={{ flex: 1, height: h, background: i < 3 ? 'var(--tc-accent)' : i === 3 ? 'rgba(255,255,255,0.5)' : 'var(--tc-bg-4)', borderRadius: '2px 2px 0 0' }}/>
          ))}
        </div>
      </div>
    </div>
  );
}

// Mini-mockup da execução de treino do aluno
function MockTreino({ scale = 1 }) {
  return (
    <div style={{
      width: 280, height: 580,
      background: 'var(--tc-bg-0)',
      borderRadius: 26,
      padding: '18px 16px',
      transform: `scale(${scale})`,
      transformOrigin: 'top left',
      display: 'flex', flexDirection: 'column', gap: 12,
      overflow: 'hidden',
    }}>
      <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
        <div style={{ width: 28, height: 28, borderRadius: 8, background: 'var(--tc-bg-3)', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
          <Icon name="chevronLeft" size={14}/>
        </div>
        <div style={{ fontSize: 11, color: 'var(--tc-fg-2)', fontFamily: 'JetBrains Mono' }}>Treino B · Peito + Tríceps</div>
        <div style={{ width: 28 }}/>
      </div>

      <div style={{ display: 'flex', alignItems: 'baseline', gap: 8, marginTop: 2 }}>
        <div style={{ fontFamily: 'Inter Tight', fontSize: 22, fontWeight: 600, letterSpacing: '-0.02em' }}>3 / 7</div>
        <div style={{ fontSize: 12, color: 'var(--tc-fg-2)' }}>exercícios</div>
      </div>

      <div style={{ height: 4, background: 'var(--tc-bg-3)', borderRadius: 999, overflow: 'hidden' }}>
        <div style={{ width: '43%', height: '100%', background: 'var(--tc-accent)' }}/>
      </div>

      <div style={{ background: 'var(--tc-bg-2)', border: '1px solid var(--tc-line-1)', borderRadius: 14, padding: 14, marginTop: 4 }}>
        <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start', marginBottom: 10 }}>
          <div>
            <div style={{ fontSize: 10, color: 'var(--tc-fg-3)', fontFamily: 'JetBrains Mono', fontWeight: 500 }}>03 · ATUAL</div>
            <div style={{ fontFamily: 'Inter Tight', fontSize: 16, fontWeight: 600, marginTop: 2 }}>Supino reto</div>
            <div style={{ fontSize: 11, color: 'var(--tc-fg-2)', marginTop: 2 }}>4 séries · 8 reps · 60s desc.</div>
          </div>
          <div style={{ width: 36, height: 36, borderRadius: 8, background: 'var(--tc-bg-3)', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
            <Icon name="play" size={14}/>
          </div>
        </div>

        <div style={{ display: 'flex', flexDirection: 'column', gap: 6 }}>
          {[
            { s: 1, done: true, kg: '60', reps: '8' },
            { s: 2, done: true, kg: '65', reps: '8' },
            { s: 3, current: true, kg: '70', reps: '—' },
            { s: 4, done: false, kg: '—', reps: '—' },
          ].map((set) => (
            <div key={set.s} style={{
              display: 'flex', alignItems: 'center', gap: 10,
              padding: '8px 10px',
              background: set.current ? 'var(--tc-accent-soft)' : 'var(--tc-bg-1)',
              border: `1px solid ${set.current ? 'var(--tc-accent-line)' : 'var(--tc-line-1)'}`,
              borderRadius: 8,
            }}>
              <div style={{
                width: 18, height: 18, borderRadius: '50%',
                background: set.done ? 'var(--tc-accent)' : 'transparent',
                border: set.done ? 'none' : `1px solid var(--tc-line-2)`,
                display: 'flex', alignItems: 'center', justifyContent: 'center',
              }}>
                {set.done && <Icon name="check" size={10} style={{ color: 'var(--tc-accent-fg)' }}/>}
              </div>
              <div style={{ fontSize: 10, color: 'var(--tc-fg-3)', fontFamily: 'JetBrains Mono', width: 28 }}>Série {set.s}</div>
              <div style={{ flex: 1, display: 'flex', gap: 6 }}>
                <div style={{ flex: 1, fontFamily: 'JetBrains Mono', fontSize: 12, color: set.done ? 'var(--tc-fg-0)' : 'var(--tc-fg-2)' }}>{set.kg} kg</div>
                <div style={{ flex: 1, fontFamily: 'JetBrains Mono', fontSize: 12, color: set.done ? 'var(--tc-fg-0)' : 'var(--tc-fg-2)' }}>{set.reps} reps</div>
              </div>
            </div>
          ))}
        </div>
      </div>

      <div style={{ background: 'var(--tc-bg-2)', border: '1px solid var(--tc-line-1)', borderRadius: 12, padding: 12, display: 'flex', alignItems: 'center', gap: 10 }}>
        <div style={{ width: 32, height: 32, borderRadius: 8, background: 'var(--tc-bg-3)', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
          <Icon name="clock" size={14} style={{ color: 'var(--tc-fg-1)' }}/>
        </div>
        <div style={{ flex: 1, minWidth: 0 }}>
          <div style={{ fontSize: 11, fontWeight: 600 }}>Descanso</div>
          <div style={{ fontSize: 10, color: 'var(--tc-fg-2)' }}>aguarde antes da próxima</div>
        </div>
        <div style={{ fontFamily: 'JetBrains Mono', fontSize: 18, fontWeight: 600, letterSpacing: '-0.02em' }}>00:42</div>
      </div>

      <div style={{ marginTop: 'auto', display: 'flex', gap: 8 }}>
        <button style={{
          flex: 1, height: 38, borderRadius: 10,
          background: 'var(--tc-accent)', color: 'var(--tc-accent-fg)',
          fontWeight: 600, fontSize: 12, border: 0,
        }}>Registrar série</button>
      </div>
    </div>
  );
}

// ====================================================================
// 1 · HEADER
// ====================================================================

function LandingHeader({ onOpenMobile }) {
  const isMobile = useMedia('(max-width: 768px)');
  const [scrolled, setScrolled] = useState(false);

  useEffect(() => {
    const onScroll = () => setScrolled(window.scrollY > 8);
    window.addEventListener('scroll', onScroll, { passive: true });
    return () => window.removeEventListener('scroll', onScroll);
  }, []);

  return (
    <header style={{
      position: 'sticky', top: 0, zIndex: 50,
      background: scrolled ? 'rgba(5,5,6,0.85)' : 'transparent',
      backdropFilter: scrolled ? 'blur(12px)' : 'none',
      borderBottom: scrolled ? '1px solid var(--tc-line-1)' : '1px solid transparent',
      transition: 'background 200ms var(--tc-ease), border-color 200ms var(--tc-ease)',
    }}>
      <div style={{
        maxWidth: 1200, margin: '0 auto',
        padding: isMobile ? '14px 20px' : '16px 32px',
        display: 'flex', alignItems: 'center', justifyContent: 'space-between',
        gap: 24,
      }}>
        <a href="#top" style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true">
            <rect width="24" height="24" rx="6" fill="#fff"/>
            <path d="M5 8h14M9.5 8v9M14.5 9.5v6.5a2 2 0 0 0 2 2h2.5" stroke="#0a0a0a" strokeWidth="1.6" strokeLinecap="round"/>
          </svg>
          <span style={{ fontFamily: 'Inter Tight', fontWeight: 600, fontSize: 16, letterSpacing: '-0.02em' }}>Trainer Connect</span>
        </a>

        {!isMobile && (
          <nav style={{ display: 'flex', alignItems: 'center', gap: 4 }}>
            {[
              { href: '#como-funciona', label: 'Como funciona' },
              { href: '#recursos', label: 'Recursos' },
              { href: '#plataforma', label: 'Plataforma' },
              { href: '#planos', label: 'Planos' },
              { href: '#faq', label: 'FAQ' },
            ].map(n => (
              <a key={n.href} href={n.href} style={{
                padding: '8px 12px', borderRadius: 8,
                fontSize: 13, color: 'var(--tc-fg-1)', fontWeight: 500,
                transition: 'background 120ms, color 120ms',
              }} onMouseEnter={(e) => { e.currentTarget.style.background = 'var(--tc-bg-2)'; e.currentTarget.style.color = 'var(--tc-fg-0)'; }}
                onMouseLeave={(e) => { e.currentTarget.style.background = 'transparent'; e.currentTarget.style.color = 'var(--tc-fg-1)'; }}>
                {n.label}
              </a>
            ))}
          </nav>
        )}

        <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
          {!isMobile && (
            <a href="https://app.trainerconnect.fit/login" className="tc-btn tc-btn--ghost">Entrar</a>
          )}
          {!isMobile ? (
            <a href="https://app.trainerconnect.fit/signup" className="tc-btn tc-btn--primary">Criar conta grátis</a>
          ) : (
            <>
              <a href="https://app.trainerconnect.fit/signup" className="tc-btn tc-btn--primary tc-btn--sm">Criar conta</a>
              <button onClick={onOpenMobile} className="tc-btn tc-btn--ghost tc-btn--icon" aria-label="Abrir menu">
                <Icon name="menu" size={18}/>
              </button>
            </>
          )}
        </div>
      </div>
    </header>
  );
}

function LandingMobileMenu({ open, onClose }) {
  useEffect(() => {
    document.body.style.overflow = open ? 'hidden' : '';
    return () => { document.body.style.overflow = ''; };
  }, [open]);
  if (!open) return null;
  return (
    <div role="dialog" aria-modal="true" style={{
      position: 'fixed', inset: 0, zIndex: 100,
      background: 'rgba(5,5,6,0.92)', backdropFilter: 'blur(8px)',
      display: 'flex', flexDirection: 'column',
    }}>
      <div style={{ padding: '14px 20px', display: 'flex', justifyContent: 'space-between', alignItems: 'center', borderBottom: '1px solid var(--tc-line-1)' }}>
        <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none"><rect width="24" height="24" rx="6" fill="#fff"/><path d="M5 8h14M9.5 8v9M14.5 9.5v6.5a2 2 0 0 0 2 2h2.5" stroke="#0a0a0a" strokeWidth="1.6" strokeLinecap="round"/></svg>
          <span style={{ fontFamily: 'Inter Tight', fontWeight: 600, fontSize: 16, letterSpacing: '-0.02em' }}>Trainer Connect</span>
        </div>
        <button onClick={onClose} className="tc-btn tc-btn--ghost tc-btn--icon" aria-label="Fechar"><Icon name="x" size={18}/></button>
      </div>
      <nav style={{ padding: '32px 20px', display: 'flex', flexDirection: 'column', gap: 4 }}>
        {[
          { href: '#como-funciona', label: 'Como funciona' },
          { href: '#recursos', label: 'Recursos' },
          { href: '#plataforma', label: 'Plataforma' },
          { href: '#planos', label: 'Planos' },
          { href: '#faq', label: 'FAQ' },
        ].map(n => (
          <a key={n.href} href={n.href} onClick={onClose} style={{
            padding: '16px 12px', fontFamily: 'Inter Tight', fontSize: 22, fontWeight: 600, letterSpacing: '-0.02em',
            borderBottom: '1px solid var(--tc-line-1)',
          }}>{n.label}</a>
        ))}
      </nav>
      <div style={{ marginTop: 'auto', padding: 20, display: 'flex', flexDirection: 'column', gap: 10 }}>
        <a href="https://app.trainerconnect.fit/signup" className="tc-btn tc-btn--primary tc-btn--lg tc-btn--block">Criar conta grátis</a>
        <a href="https://app.trainerconnect.fit/login" className="tc-btn tc-btn--secondary tc-btn--lg tc-btn--block">Entrar</a>
      </div>
    </div>
  );
}

// ====================================================================
// 2 · HERO
// ====================================================================

function LandingHero() {
  const isMobile = useMedia('(max-width: 900px)');
  return (
    <section id="top" style={{
      position: 'relative',
      padding: isMobile ? '40px 20px 56px' : '72px 32px 96px',
      overflow: 'hidden',
    }}>
      {/* radial subtle */}
      <div aria-hidden="true" style={{
        position: 'absolute', inset: 0, pointerEvents: 'none',
        background: 'radial-gradient(800px 400px at 20% 0%, rgba(255,255,255,0.04), transparent 60%)',
      }}/>
      <div style={{
        maxWidth: 1200, margin: '0 auto', position: 'relative',
        display: 'grid',
        gridTemplateColumns: isMobile ? '1fr' : '1.05fr 1fr',
        gap: isMobile ? 40 : 56, alignItems: 'center',
      }}>
        {/* TEXT */}
        <div>
          <div style={{
            display: 'inline-flex', alignItems: 'center', gap: 8,
            padding: '4px 10px 4px 4px',
            background: 'var(--tc-bg-2)', border: '1px solid var(--tc-line-1)',
            borderRadius: 999, marginBottom: 24,
          }}>
            <span style={{
              fontSize: 10, fontFamily: 'JetBrains Mono', fontWeight: 600,
              padding: '3px 8px', borderRadius: 999, background: 'var(--tc-accent)', color: 'var(--tc-accent-fg)',
              letterSpacing: '0.04em',
            }}>BETA</span>
            <span style={{ fontSize: 12, color: 'var(--tc-fg-1)' }}>SaaS para personal trainers brasileiros</span>
          </div>

          <h1 style={{
            margin: 0,
            fontFamily: 'Inter Tight',
            fontWeight: 600,
            letterSpacing: '-0.035em',
            fontSize: isMobile ? 'clamp(36px, 9vw, 52px)' : 'clamp(48px, 5vw, 64px)',
            lineHeight: 1.02,
          }}>
            O sistema dos seus alunos.<br/>
            <span style={{ color: 'var(--tc-fg-3)' }}>Profissional como você.</span>
          </h1>

          <p style={{
            margin: '24px 0 0', maxWidth: 540,
            fontSize: isMobile ? 16 : 17, lineHeight: 1.55, color: 'var(--tc-fg-1)',
          }}>
            Pare de perder tempo com planilha, WhatsApp e Notion. Cadastre alunos,
            monte treinos, acompanhe evolução e receba pagamento —
            tudo em um app que parece feito por você.
          </p>

          <div style={{ display: 'flex', flexWrap: 'wrap', gap: 10, marginTop: 32 }}>
            <a href="https://app.trainerconnect.fit/signup" className="tc-btn tc-btn--primary tc-btn--lg">
              Começar grátis · até 10 alunos
              <Icon name="arrowRight" size={16}/>
            </a>
            <a href="#como-funciona" className="tc-btn tc-btn--secondary tc-btn--lg">
              Ver como funciona
            </a>
          </div>

          {/* Mini-prova */}
          <div style={{ marginTop: 24, display: 'flex', alignItems: 'center', gap: 12, flexWrap: 'wrap' }}>
            <div style={{ display: 'flex' }}>
              {[
                { in: 'RS', hue: 30 },
                { in: 'PL', hue: 200 },
                { in: 'JM', hue: 120 },
                { in: 'FA', hue: 280 },
              ].map((a, i) => (
                <div key={i} style={{
                  width: 30, height: 30, borderRadius: '50%',
                  display: 'flex', alignItems: 'center', justifyContent: 'center',
                  fontSize: 10, fontWeight: 600,
                  background: `oklch(0.28 0.04 ${a.hue})`,
                  color: `oklch(0.85 0.06 ${a.hue})`,
                  border: '2px solid var(--tc-bg-0)',
                  marginLeft: i === 0 ? 0 : -8,
                  letterSpacing: '0.04em',
                }}>{a.in}</div>
              ))}
            </div>
            <span style={{ fontSize: 12, color: 'var(--tc-fg-3)', lineHeight: 1.4 }}>
              <span style={{ color: 'var(--tc-fg-1)', fontWeight: 500 }}>Versão Beta</span> · personals reais já usando o produto
            </span>
          </div>
        </div>

        {/* MOCKUPS */}
        <div style={{
          position: 'relative',
          height: isMobile ? 480 : 620,
          display: 'flex', justifyContent: 'center', alignItems: 'center',
          perspective: 1400,
        }}>
          {/* Glow */}
          <div aria-hidden="true" style={{
            position: 'absolute', inset: '10% 0',
            background: 'radial-gradient(closest-side, rgba(255,255,255,0.06), transparent)',
            filter: 'blur(20px)', pointerEvents: 'none',
          }}/>

          {/* Phone 2 (back) — Personal dashboard */}
          <div style={{
            position: 'absolute',
            transform: isMobile
              ? 'translate(-28%, -4%) rotateY(14deg) rotateX(4deg) rotateZ(-6deg)'
              : 'translate(-32%, -6%) rotateY(18deg) rotateX(6deg) rotateZ(-8deg)',
            transformStyle: 'preserve-3d',
          }}>
            <PhoneShell><MockDashboard/></PhoneShell>
          </div>

          {/* Phone 1 (front) — Treino do aluno */}
          <div style={{
            position: 'absolute',
            transform: isMobile
              ? 'translate(28%, 8%) rotateY(-14deg) rotateX(4deg) rotateZ(6deg)'
              : 'translate(32%, 10%) rotateY(-18deg) rotateX(6deg) rotateZ(8deg)',
            transformStyle: 'preserve-3d',
            zIndex: 2,
          }}>
            <PhoneShell><MockTreino/></PhoneShell>
          </div>
        </div>
      </div>
    </section>
  );
}

function PhoneShell({ children }) {
  return (
    <div style={{
      width: 300, height: 600,
      background: '#000',
      borderRadius: 34,
      padding: 10,
      boxShadow: '0 0 0 1px #2a2d33, 0 30px 80px rgba(0,0,0,0.6), 0 60px 120px rgba(0,0,0,0.3)',
      position: 'relative',
    }}>
      <div style={{ position: 'absolute', top: 14, left: '50%', transform: 'translateX(-50%)', width: 92, height: 26, background: '#000', borderRadius: 16, zIndex: 10 }}/>
      <div style={{
        width: '100%', height: '100%', background: 'var(--tc-bg-0)',
        borderRadius: 26, overflow: 'hidden', position: 'relative',
      }}>
        <div style={{ height: 36, display: 'flex', justifyContent: 'space-between', alignItems: 'center', padding: '0 24px', fontSize: 12, fontWeight: 600 }}>
          <span style={{ fontFeatureSettings: '"tnum" 1' }}>9:41</span>
          <span style={{ display: 'flex', alignItems: 'center', gap: 4 }}>
            <svg width="14" height="9" viewBox="0 0 16 10" fill="currentColor"><rect x="0" y="6" width="3" height="4"/><rect x="4.5" y="4" width="3" height="6"/><rect x="9" y="2" width="3" height="8"/><rect x="13.5" y="0" width="3" height="10"/></svg>
            <svg width="20" height="10" viewBox="0 0 22 11" fill="none"><rect x="0.5" y="0.5" width="18" height="10" rx="2.5" stroke="currentColor"/><rect x="2" y="2" width="14" height="7" rx="1" fill="currentColor"/><rect x="19.5" y="3.5" width="1.5" height="4" rx="0.75" fill="currentColor"/></svg>
          </span>
        </div>
        {children}
      </div>
    </div>
  );
}

window.LandingHeader = LandingHeader;
window.LandingMobileMenu = LandingMobileMenu;
window.LandingHero = LandingHero;
window.MockDashboard = MockDashboard;
window.MockTreino = MockTreino;
window.PhoneShell = PhoneShell;
window.useMedia = useMedia;
