Подозреваю, что никак. Получить доступ к документу вы не сможете, соответственно посчитать высоту внутри вы тоже никак не сможете. Либо подгонять на глазок, либо забить.
Погуглите самые популярные разрешения для разных устройств (мобильники, планшеты). И выберите для себя 2-3 стоп-точки, на которых вы будете менять стили. Вот и весь секрет.
Родительское окно из которого был вызван метод .open() доступно при помощи свойства .opener. Соответственно вы можете перед вызовом метода .close() передать в родительское окно флаг, что окно закрылось программно. А затем проверять: если флага не оказалось, значит юзер сам кликнул на крестик.
Сделать адаптивный макет очень просто - нужно просто сделать несколько макетов под разные разрешения. Обычно делают три версии макетов: десктоп, планшет, мобила.