.te-city-picker {
    position: relative;
    min-width: 0;
}

.te-city-picker__label {
    display: block;
    margin-bottom: 5px;
    color: #3d344d;
    font-size: .75rem;
    font-weight: 800;
}

.te-city-picker__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-height: 43px;
    padding: 9px 11px;
    border: 1px solid #d9d2e6;
    border-radius: 11px;
    color: #667085;
    background: #fff;
    font-size: .9rem;
    font-weight: 600;
    text-align: left;
}

.te-city-picker__trigger:hover,
.te-city-picker__trigger[aria-expanded="true"] {
    border-color: #7b3fba;
}

.te-city-picker__trigger:focus-visible {
    outline: 0;
    border-color: #7b3fba;
    box-shadow: 0 0 0 3px rgba(95, 37, 159, .13);
}

.te-city-picker__trigger [data-te-city-value]:not(:empty) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.te-city-picker__chevron {
    flex: 0 0 auto;
    color: #5f259f;
    font-size: 1.15rem;
    line-height: 1;
    transform: translateY(-2px);
}

.te-city-picker__menu {
    position: absolute;
    z-index: 1100;
    top: calc(100% + 7px);
    right: 0;
    left: 0;
    overflow: hidden;
    border: 1px solid #d9d2e6;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 15px 36px rgba(38, 20, 59, .2);
}

.te-city-picker__search-wrap {
    padding: 9px;
    border-bottom: 1px solid #eee9f3;
    background: #fbfaff;
}

.te-city-picker__search {
    width: 100%;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid #d9d2e6;
    border-radius: 9px;
    color: #191326;
    background: #fff;
    font-size: .85rem;
}

.te-city-picker__search:focus {
    outline: 0;
    border-color: #7b3fba;
    box-shadow: 0 0 0 3px rgba(95, 37, 159, .11);
}

.te-city-picker__list {
    max-height: 290px;
    overflow-y: auto;
    padding: 5px;
}

.te-city-picker__state {
    overflow: hidden;
    margin: 2px 0;
    border: 1px solid #eee9f3;
    border-radius: 9px;
}

.te-city-picker__state-toggle,
.te-city-picker__city {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    border: 0;
    text-align: left;
}

.te-city-picker__state-toggle {
    min-height: 38px;
    padding: 8px 10px;
    color: #3e195d;
    background: #faf7ff;
    font-size: .83rem;
    font-weight: 850;
}

.te-city-picker__state-toggle:hover,
.te-city-picker__state-toggle[aria-expanded="true"] {
    color: #fff;
    background: #5f259f;
}

.te-city-picker__cities {
    padding: 3px 5px 5px;
    background: #fff;
}

.te-city-picker__city {
    min-height: 34px;
    padding: 6px 9px;
    border-radius: 7px;
    color: #3f4654;
    background: #fff;
    font-size: .8rem;
}

.te-city-picker__city:hover,
.te-city-picker__city:focus-visible {
    color: #07594f;
    background: #e9faf5;
    outline: 0;
}

.te-city-picker__empty {
    margin: 0;
    padding: 14px;
    color: #667085;
    font-size: .82rem;
    text-align: center;
}

.te-city-picker [hidden] {
    display: none !important;
}

@media (max-width: 575.98px) {
    .te-city-picker__menu {
        position: fixed;
        top: 50%;
        right: 12px;
        left: 12px;
        max-height: min(72vh, 430px);
        transform: translateY(-50%);
    }

    .te-city-picker__list {
        max-height: min(55vh, 320px);
    }
}
