/* Login screen — dark navy gradient */
function LoginScreen({ onSignIn }) {
const [show, setShow] = React.useState(false);
const [lang, setLang] = React.useState(window.JL_LANG || 'en');
const pick = (id) => { window.JL_LANG = id; try { localStorage.setItem('jl_lang', id); } catch(e){} setLang(id); };
const es = lang === 'es';
const field = {
display:'flex', alignItems:'center', gap:11,
background:'rgba(255,255,255,.07)', border:'1px solid rgba(255,255,255,.16)',
borderRadius:14, padding:'15px 15px', marginBottom:13,
};
const input = {
flex:1, border:0, background:'transparent', outline:'none',
color:'#fff', fontSize:15, fontFamily:'var(--font-sans)',
};
return (
{window.JL_LANGS.map(l => {
const on = l.id === lang;
return (
);
})}
{es ? '¡Bienvenido!' : 'Welcome back!'}
{es ? 'Inicia sesión para continuar' : 'Sign in to continue'}
{es ? '¿Olvidaste tu contraseña?' : 'Forgot password?'}
{es ? 'o continúa con' : 'or continue with'}
{es ? '¿No tienes cuenta? ' : "Don't have an account? "}{es ? 'Regístrate' : 'Sign up'}
);
}
function oauth(bg, fg){ return { flex:1, display:'flex', alignItems:'center', justifyContent:'center', gap:8, background:bg, color:fg, border:'1px solid rgba(255,255,255,.16)', borderRadius:12, padding:'13px', fontWeight:700, fontSize:14, cursor:'pointer', fontFamily:'var(--font-sans)' }; }
Object.assign(window, { LoginScreen });