The standard does not specify the size of Character, Wide_Character, Wide_Wide_Character. The implementation is free to choose, provided it can hold the specified range of values.
Formally the values (the number returned by Character'Pos (X)) directly correspond to the code points, not because of the standard, Unicode was designed just this way.
In most cases the sizes (the number returned by Character'Size) are 8, 16, 32 bits. But on a DSP one could expect a 32-bit long Character.
Similarly the storage unit can be of any size see ARM 13.7 (31). So byte is a non-entity in Ada.
In practice you can ignore all this as an obsolete pre Unicode mess and use Character as an octet of the UTF-8 encoding and Wide_Character as a word of UTF-16 encoding (e.g. in connection with Windows API).