To sign an offline transaction you will need a watch-only (zpub) wallet on a device and a wallet with the seed on the other to sign it.
On the watch-only you build your transaction. This will generate a QR code that you will be able to scan or a file that you can export.
On the wallet with the seed, you go to send → top options → sign transaction. Then scan the QR code or import the file. That’s it the transaction is now signed and ready to be broadcasted.
To import back to the online device, you just reverse the process and import the transaction from the watch-only wallet.