.ui-autocomplete {
    overflow: visible;
    background: #fff;
    padding: 10px;
    border: 1px solid #ccc;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
    z-index: 9999;
    /* _resizeMenu writes an inline width sized to the content, which on a phone
       is wider than the screen; max-width beats inline width, so this caps it
       and leaves a 20px gutter. Needed alongside the flipfit collision option:
       collision can only slide a box that already fits. box-sizing keeps the
       10px padding inside the cap. */
    box-sizing: border-box;
    max-width: calc(100vw - 40px);
}
/*
 * Меню обязано остаться absolute.
 *
 * refresh() у jQuery UI Menu вешает на меню класс ui-menu-icons, если внутри
 * есть хоть один .ui-icon, а его же базовая таблица объявляет
 * `.ui-menu-icons { position: relative }`. В подсказке города есть галочка
 * (span.ui-menu-icon.ui-icon), поэтому класс появляется на любом коротком
 * запросе — и меню перестаёт быть абсолютным. Дальше <ul> становится обычным
 * блоком в потоке body, ширина по содержимому больше не считается, и
 * _resizeMenu меряет всю страницу: замерено вживую 1844px с этим классом
 * против 273px без него при поле в 268px. Список растягивался во весь экран.
 *
 * Списки из одних аэропортов галочки не содержат, класс не добавлялся, и они
 * выглядели правильно — из-за этого казалось, что ломаются только мгновенные
 * подсказки.
 *
 * Саму галочку всё равно прячет правило .ui-widget-content .ui-icon ниже, так
 * что ui-menu-icons здесь ничего не даёт. Второй селектор — на случай, если
 * порядок подключения таблиц когда-нибудь изменится: у .ui-menu-icons та же
 * специфичность, и решает только порядок.
 */
.ui-autocomplete,
.ui-autocomplete.ui-menu-icons {
    position: absolute;
}

.ui-menu-item {

}
.airport-suggestion, .city-suggestion {
    padding: 8px 10px;
}
.suggestion-main {
    font-weight: bold;
    font-size: 14px;
}
.suggestion-main .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
    margin-right: 8px;
    vertical-align: middle;
}
.code {
    color: #666;
    font-weight: normal;
    margin-left: 6px;
}
.suggestion-sub {
    font-size: 12px;
    color: #666;
    margin-left: 24px;
}
.city-suggestion .airport-list {
    margin: 8px 0 10px 15px;
    padding-left: 0;
    list-style: none;
    display: block!important;
    position: relative;
}
.airport-list li {
    padding: 5px 0;
    cursor: pointer;
    font-size: 14px;
}

.ui-widget.ui-widget-content {
    border: none;
}
.ui-widget-content .ui-icon {
    display: none;
}
.ui-widget-content .ui-state-active {
    background: white;
    border: none;
    color: #333333;
}
.ui-menu .ui-menu-item {
    padding: 3px 0;
    display: flex;
    align-items: center;
}
.ui-menu .ui-menu-item-wrapper {
    padding: 0;
}
.airport-list .dashicons {
    font-size: 14px;
    width: 14px;
    height: 14px;
    margin-right: 6px;
}