How to calculate the space I need for the indexes?
For the data record add:


6 bytes transaction id
7 bytes rollback pointer
5 bytes extra bytes header
2 bytes - for length of TEXT field (however if TEXT values longer than 7k overhead will be bigger)


Index record stores indexed fields + primary key. So its length will be


5 bytes - extra bytes
indexed fields length 
primary key length (in your case it's 1+4+1 bytes)


Take into account an InnoDB page may be filled up to 15/16 i.e. 15k of data+headers.

Each page has 120 bytes in headers.

Plus take into account space that is used by non-leaf pages. It's not huge, but still.