/**
 * TrendApp — Login + Recuperar senha (§7)
 * Puramente visual: sem autenticação real. "Entrar" navega para /inicio.
 *
 * Layout premium: hero fotográfico dark no topo + card branco flutuante
 * no rodapé com formulário. Sem pill "TS by TrendScience".
 */

// (React hooks declarados uma vez em logo.jsx)

function LoginScreen() {
  const { go } = useRouter();
  const [email, setEmail] = useState('ana.souza@trendscience.mock');
  const [senha, setSenha] = useState('••••••••');
  const [mostrarSenha, setMostrarSenha] = useState(false);
  const [erro, setErro] = useState('');
  const [loading, setLoading] = useState(false);

  function submit(e) {
    e.preventDefault();
    setErro('');
    if (!email.includes('@') || !senha) {
      setErro('Verifique e-mail e senha.');
      return;
    }
    setLoading(true);
    setTimeout(() => {
      setLoading(false);
      go('/inicio', { replace: true });
    }, 700);
  }

  return (
    <div className="page" style={{ background: '#040805' }}>
      {/* ── Hero fotográfico (fundo cobre toda a tela) ─────────────── */}
      <div aria-hidden="true" style={{
        position: 'absolute', inset: 0,
        backgroundImage: 'url(/static/trendapp/assets/welcome-hero.jpg)',
        backgroundSize: 'cover',
        backgroundPosition: 'center top',
        backgroundRepeat: 'no-repeat',
      }} />
      {/* Overlay dark verde-preto — a maior parte da tela fica escura,
          só o topo mostra a textura orgânica */}
      <div aria-hidden="true" style={{
        position: 'absolute', inset: 0,
        background:
          'linear-gradient(180deg,' +
          ' rgba(8, 20, 12, 0.30) 0%,' +
          ' rgba(6, 14, 9, 0.50) 22%,' +
          ' rgba(4, 10, 6, 0.92) 44%,' +
          ' rgba(4, 8, 5, 0.98) 60%,' +
          ' #040805 100%)',
      }} />
      {/* Vinheta lateral */}
      <div aria-hidden="true" style={{
        position: 'absolute', inset: 0,
        background: 'radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.5) 100%)',
        pointerEvents: 'none',
      }} />

      {/* ── Conteúdo em duas camadas ─────────────────────────────── */}
      <div
        className="page-body no-nav"
        style={{
          position: 'relative', zIndex: 1,
          padding: 0,
          display: 'flex', flexDirection: 'column',
        }}
      >
        {/* Topo dark — marca + saudação */}
        <div style={{
          padding: 'calc(48px + var(--safe-top)) 28px 40px',
          color: '#F5F7F7',
        }}>
          <div style={{ color: '#F5F7F7', marginBottom: 40 }}>
            <TrendAppLogo height={26} />
          </div>

          <div style={{
            fontSize: 10.5, fontWeight: 400,
            letterSpacing: '0.14em', textTransform: 'uppercase',
            color: 'rgba(245,247,247,0.55)',
            marginBottom: 12,
          }}>
            Acesso
          </div>
          <h1 style={{
            fontSize: 34, fontWeight: 300,
            letterSpacing: '-0.028em', lineHeight: 1.1,
            color: '#F5F7F7',
            maxWidth: 320,
            margin: 0,
          }}>
            Bem-vindo<br />
            <span style={{ fontWeight: 400 }}>de volta.</span>
          </h1>
        </div>

        {/* Card branco flutuante — formulário */}
        <div style={{
          flex: 1,
          background: 'var(--background)',
          borderRadius: '28px 28px 0 0',
          padding: '32px 28px calc(28px + var(--safe-bottom))',
          boxShadow: '0 -8px 40px rgba(0,0,0,0.30)',
          display: 'flex', flexDirection: 'column',
        }}>
          {/* Handle sutil (opcional — dá sensação de sheet premium) */}
          <div aria-hidden="true" style={{
            width: 40, height: 4,
            background: 'var(--border)',
            borderRadius: 999,
            margin: '0 auto 24px',
          }} />

          <form onSubmit={submit} style={{ display: 'flex', flexDirection: 'column', gap: 18 }}>
            <div className="field">
              <label htmlFor="email">E-mail</label>
              <input
                id="email"
                type="email"
                className="input"
                autoComplete="email"
                value={email}
                onChange={e => setEmail(e.target.value)}
                placeholder="voce@empresa.com"
              />
            </div>

            <div className="field">
              <label htmlFor="senha">Senha</label>
              <div className="input-wrap">
                <input
                  id="senha"
                  type={mostrarSenha ? 'text' : 'password'}
                  className="input with-toggle"
                  autoComplete="current-password"
                  value={senha}
                  onChange={e => setSenha(e.target.value)}
                />
                <button
                  type="button"
                  className="input-toggle"
                  onClick={() => setMostrarSenha(v => !v)}
                  aria-label={mostrarSenha ? 'Ocultar senha' : 'Mostrar senha'}
                >
                  <Icon name={mostrarSenha ? 'eye-off' : 'eye'} size={18} strokeWidth={1.5} />
                </button>
              </div>
            </div>

            {erro && (
              <div style={{
                display: 'flex', gap: 8, alignItems: 'flex-start',
                padding: '12px 14px', borderRadius: 12,
                background: 'color-mix(in oklch, var(--destructive) 8%, transparent)',
                color: 'var(--destructive)', fontSize: 13,
              }}>
                <Icon name="alert-circle" size={16} strokeWidth={1.75} style={{ marginTop: 2, flexShrink: 0 }} />
                <span>{erro}</span>
              </div>
            )}

            {/* CTA Entrar — pill premium com chip escuro (mesmo padrão do resto) */}
            <button
              type="submit"
              disabled={loading}
              style={{
                width: '100%',
                display: 'inline-flex', alignItems: 'center', justifyContent: 'space-between',
                padding: '16px 24px',
                borderRadius: 999,
                background: loading ? 'rgba(10,10,10,0.5)' : '#0A0A0A',
                color: '#F5F7F7',
                fontSize: 15, fontWeight: 500,
                letterSpacing: '-0.01em',
                minHeight: 56,
                boxShadow: '0 8px 24px rgba(0,0,0,0.15)',
                cursor: loading ? 'not-allowed' : 'pointer',
                transition: 'transform 200ms cubic-bezier(.22,.61,.36,1)',
                marginTop: 8,
              }}
              onMouseDown={e => { if (!loading) e.currentTarget.style.transform = 'scale(0.985)'; }}
              onMouseUp={e => { e.currentTarget.style.transform = 'scale(1)'; }}
              onMouseLeave={e => { e.currentTarget.style.transform = 'scale(1)'; }}
            >
              <span>{loading ? 'Entrando…' : 'Entrar'}</span>
              <span style={{
                display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
                width: 30, height: 30, borderRadius: 999,
                background: '#F5F7F7', color: '#0A0A0A',
              }}>
                {loading
                  ? <Icon name="loader-2" size={14} strokeWidth={2} style={{ animation: 'spin 0.7s linear infinite' }} />
                  : <Icon name="arrow-right" size={14} strokeWidth={1.75} />}
              </span>
            </button>

            <button
              type="button"
              onClick={() => go('/recuperar-senha')}
              style={{
                alignSelf: 'center',
                marginTop: 4,
                padding: '8px 4px',
                fontSize: 13, fontWeight: 400,
                color: 'var(--muted-foreground)',
                background: 'transparent',
                borderBottom: '1px solid transparent',
                transition: 'color 120ms ease, border-color 120ms ease',
              }}
              onMouseEnter={e => {
                e.currentTarget.style.color = 'var(--foreground)';
                e.currentTarget.style.borderBottomColor = 'var(--foreground)';
              }}
              onMouseLeave={e => {
                e.currentTarget.style.color = 'var(--muted-foreground)';
                e.currentTarget.style.borderBottomColor = 'transparent';
              }}
            >
              Esqueci minha senha
            </button>
          </form>

          <div style={{ flex: 1 }} />

          <div style={{
            textAlign: 'center',
            fontSize: 12,
            color: 'var(--muted-foreground)',
            marginTop: 32,
          }}>
            Problemas de acesso?{' '}
            <button
              onClick={() => alert('Suporte — apenas visual no protótipo')}
              style={{
                fontSize: 12, color: 'var(--foreground)',
                borderBottom: '1px solid var(--foreground)',
                background: 'transparent', padding: 0,
                borderRadius: 0,
              }}
            >
              Falar com suporte
            </button>
          </div>
        </div>
      </div>

      <style>{`@keyframes spin { to { transform: rotate(360deg); } }`}</style>
    </div>
  );
}

function RecuperarSenhaScreen() {
  const { back } = useRouter();
  const [email, setEmail] = useState('');
  const [enviado, setEnviado] = useState(false);

  function submit(e) {
    e.preventDefault();
    setEnviado(true);
  }

  return (
    <div className="page" style={{ background: '#040805' }}>
      {/* Mesmo hero fotográfico do Login */}
      <div aria-hidden="true" style={{
        position: 'absolute', inset: 0,
        backgroundImage: 'url(/static/trendapp/assets/welcome-hero.jpg)',
        backgroundSize: 'cover',
        backgroundPosition: 'center top',
        backgroundRepeat: 'no-repeat',
      }} />
      <div aria-hidden="true" style={{
        position: 'absolute', inset: 0,
        background:
          'linear-gradient(180deg,' +
          ' rgba(8, 20, 12, 0.30) 0%,' +
          ' rgba(6, 14, 9, 0.50) 22%,' +
          ' rgba(4, 10, 6, 0.92) 44%,' +
          ' rgba(4, 8, 5, 0.98) 60%,' +
          ' #040805 100%)',
      }} />
      <div aria-hidden="true" style={{
        position: 'absolute', inset: 0,
        background: 'radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.5) 100%)',
        pointerEvents: 'none',
      }} />

      <div
        className="page-body no-nav"
        style={{
          position: 'relative', zIndex: 1,
          padding: 0,
          display: 'flex', flexDirection: 'column',
        }}
      >
        {/* Topo dark — back + saudação */}
        <div style={{
          padding: 'calc(20px + var(--safe-top)) 28px 40px',
          color: '#F5F7F7',
        }}>
          <button
            onClick={() => back('/login')}
            aria-label="Voltar"
            style={{
              width: 40, height: 40, marginLeft: -10, marginBottom: 24,
              display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
              color: '#F5F7F7',
              background: 'transparent',
              borderRadius: 999,
            }}
          >
            <Icon name="chevron-left" size={22} strokeWidth={1.5} />
          </button>

          <div style={{
            fontSize: 10.5, fontWeight: 400,
            letterSpacing: '0.14em', textTransform: 'uppercase',
            color: 'rgba(245,247,247,0.55)',
            marginBottom: 12,
          }}>
            Recuperar senha
          </div>
          <h1 style={{
            fontSize: 30, fontWeight: 300,
            letterSpacing: '-0.028em', lineHeight: 1.15,
            color: '#F5F7F7',
            maxWidth: 320,
            margin: 0,
          }}>
            Vamos ajudar você<br />
            <span style={{ fontWeight: 400 }}>a voltar.</span>
          </h1>
        </div>

        {/* Card branco */}
        <div style={{
          flex: 1,
          background: 'var(--background)',
          borderRadius: '28px 28px 0 0',
          padding: '32px 28px calc(28px + var(--safe-bottom))',
          boxShadow: '0 -8px 40px rgba(0,0,0,0.30)',
        }}>
          <div aria-hidden="true" style={{
            width: 40, height: 4,
            background: 'var(--border)',
            borderRadius: 999,
            margin: '0 auto 24px',
          }} />

          {!enviado ? (
            <form onSubmit={submit} style={{ display: 'flex', flexDirection: 'column', gap: 20 }}>
              <p style={{ fontSize: 14, color: 'var(--muted-foreground)', lineHeight: 1.5 }}>
                Informe seu e-mail cadastrado. Enviaremos as instruções, se houver conta vinculada.
              </p>
              <div className="field">
                <label htmlFor="email-rec">E-mail</label>
                <input
                  id="email-rec"
                  type="email"
                  className="input"
                  autoComplete="email"
                  value={email}
                  onChange={e => setEmail(e.target.value)}
                  placeholder="voce@empresa.com"
                />
              </div>

              <button
                type="submit"
                disabled={!email.includes('@')}
                style={{
                  width: '100%',
                  display: 'inline-flex', alignItems: 'center', justifyContent: 'space-between',
                  padding: '16px 24px',
                  borderRadius: 999,
                  background: email.includes('@') ? '#0A0A0A' : 'rgba(10,10,10,0.35)',
                  color: '#F5F7F7',
                  fontSize: 15, fontWeight: 500,
                  letterSpacing: '-0.01em',
                  minHeight: 56,
                  boxShadow: '0 8px 24px rgba(0,0,0,0.15)',
                  cursor: email.includes('@') ? 'pointer' : 'not-allowed',
                  transition: 'transform 200ms cubic-bezier(.22,.61,.36,1)',
                }}
              >
                <span>Solicitar nova senha</span>
                <span style={{
                  display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
                  width: 30, height: 30, borderRadius: 999,
                  background: '#F5F7F7', color: '#0A0A0A',
                }}>
                  <Icon name="arrow-right" size={14} strokeWidth={1.75} />
                </span>
              </button>

              <button
                type="button"
                onClick={() => back('/login')}
                style={{
                  alignSelf: 'center',
                  marginTop: 4,
                  padding: '8px 4px',
                  fontSize: 13, fontWeight: 400,
                  color: 'var(--muted-foreground)',
                  background: 'transparent',
                }}
              >
                Voltar ao login
              </button>
            </form>
          ) : (
            <div style={{ display: 'flex', flexDirection: 'column', gap: 20, alignItems: 'center', padding: '24px 8px' }}>
              <div style={{
                width: 64, height: 64, borderRadius: 999,
                background: 'color-mix(in oklch, var(--success) 14%, transparent)',
                color: 'var(--success)',
                display: 'flex', alignItems: 'center', justifyContent: 'center',
              }}>
                <Icon name="mail-check" size={28} strokeWidth={1.5} />
              </div>
              <div style={{ textAlign: 'center' }}>
                <h2 style={{ fontSize: 20, fontWeight: 500, letterSpacing: '-0.02em', marginBottom: 8 }}>Instruções enviadas</h2>
                <p style={{ fontSize: 14, color: 'var(--muted-foreground)', lineHeight: 1.5, maxWidth: 280 }}>
                  Se houver uma conta vinculada a este e-mail, você receberá as instruções em instantes.
                </p>
              </div>
              <button
                onClick={() => back('/login')}
                style={{
                  width: '100%',
                  display: 'inline-flex', alignItems: 'center', justifyContent: 'space-between',
                  padding: '16px 24px',
                  borderRadius: 999,
                  background: '#0A0A0A',
                  color: '#F5F7F7',
                  fontSize: 15, fontWeight: 500,
                  letterSpacing: '-0.01em',
                  minHeight: 56,
                  boxShadow: '0 8px 24px rgba(0,0,0,0.15)',
                  marginTop: 8,
                }}
              >
                <span>Voltar ao login</span>
                <span style={{
                  display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
                  width: 30, height: 30, borderRadius: 999,
                  background: '#F5F7F7', color: '#0A0A0A',
                }}>
                  <Icon name="arrow-right" size={14} strokeWidth={1.75} />
                </span>
              </button>
            </div>
          )}
        </div>
      </div>
    </div>
  );
}

Object.assign(window, { LoginScreen, RecuperarSenhaScreen });
