Thanks all.
So to understand better:
1. In tx inputs, the size is dominated by scriptsig. I googled a bit and found this guide
https://hackernoon.com/scriptsig-a-bitcoin-architecture-deep-dive-fs1i3zvy which has an example of a scriptsig for one input, and says that it has 140 hex chars (=70 bytes) for the digital signature and 130 hex chars (=65 bytes) for the hashed public key. My question is a) why 70 bytes for an ECDSA signature? b) why 65 bytes for a RIPEMD160 hash? (unless this example is incorrect and I am missing something).
2. In tx outputs, the size is dominated by scriptpubkey. For 2 outputs, you need to have 2 Pay To Pubkey Hash correct? In this example
https://learnmeabitcoin.com/technical/scriptPubKey I see Pay to Pubkey hash takes 40 hex each = 20 bytes?