.bui-city-selector {
  --select-item-width: var(--bui-city-selector-item-width, 111px);
  --select-item-height: var(--bui-city-selector-item-height, 36px);
  --select-item-border-radius: var(--bui-city-selector-item-border-radius, 20px);
  --select-item-margin: var(--bui-city-selector-item-margin, 4.5px 0 4.5px 9px);
  --title-height: var(--bui-city-selector-title-height, 45px);
  --title-line-height: var(--bui-city-selector-title-line-height, 45px);
  --btn-close-size: var(--bui-city-selector-btn-close-size, 45px);
  --btn-close-font-size: var(--bui-city-selector-btn-close-font-size, 20px);
  --container-with-title-height: var(--bui-city-selector-container-with-title-height, calc(100% - var(--title-height)));
  --city-container-min-height: var(--bui-city-selector-city-container-min-height, 500px);
  --select-city-buttons-padding: var(--bui-city-selector-select-city-buttons-padding, 7.5px 0 0 3px);
  --select-city-title-line-height: var(--bui-city-selector-select-city-title-line-height, 15px);
  --list-item-height: var(--bui-city-selector-list-item-height, 45px);
  --city-index-has-title-top: var(--bui-city-selector-city-index-has-title-top, calc(50% + var(--title-height) / 2));
  --index-item-height: var(--bui-city-selector-index-item-height, 20px);
  font-family: var(--bui-font-family);
  height: 100%;
  position: relative;
}
.bui-city-selector-title {
  width: 100%;
  height: var(--title-height);
  color: var(--bui-color-fg-default);
  font-size: var(--bui-title-size-3);
  line-height: var(--title-line-height);
  text-align: center;
  position: sticky;
  top: 0;
  z-index: 1004;
  border-bottom: solid 1px var(--bui-color-border-default);
  background-color: var(--bui-color-bg-view);
}
.bui-city-selector-btn-close {
  position: absolute;
  top: 0;
  right: 0;
  width: var(--btn-close-size);
  height: var(--btn-close-size);
  color: var(--bui-color-fg-muted);
  text-align: center;
  font-size: var(--btn-close-font-size);
}
.bui-city-selector-scroll-view-container {
  height: 100%;
}
.bui-city-selector-scroll-view-container.container-has-title {
  height: var(--container-with-title-height);
}
.bui-city-selector-all-city {
  min-height: var(--city-container-min-height);
  font-size: var(--bui-text-size-2);
  width: 100%;
  background: var(--bui-color-bg-view);
  align-self: flex-start;
}
.bui-city-selector-all-city .select-city-buttons {
  display: flex;
  flex-flow: wrap;
  padding: var(--select-city-buttons-padding);
}
.bui-city-selector-all-city .select-city-title {
  font-size: var(--bui-title-size-4);
  line-height: var(--select-city-title-line-height);
  font-weight: var(--bui-font-weight-bold);
  padding-left: var(--bui-spacing-lg);
  padding-top: var(--bui-spacing-md);
}
.bui-city-selector-list {
  padding-left: var(--bui-spacing-lg);
  list-style-type: none;
}
.bui-city-selector-list-item {
  height: var(--list-item-height);
  font-size: var(--bui-title-size-4);
  display: flex;
  align-items: center;
}
.bui-city-selector-list-item:not(:last-child) {
  border-bottom: 0.5px solid var(--bui-color-border-default);
}
.bui-city-selector-index-container {
  z-index: 1001;
  position: absolute;
  white-space: nowrap;
  right: 0;
  top: 50%;
  width: 40px;
  will-change: transform;
  transform: translate(0, -50%);
  transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}
.bui-city-selector-index-container.left-in {
  opacity: 1;
  transform: translate(0, -50%);
}
.bui-city-selector-index-container.city-index-has-title {
  top: var(--city-index-has-title-top);
}
.bui-city-selector-index-container ul {
  margin: 0;
  padding: 0;
  float: left;
  width: 100%;
  touch-action: none;
}
.bui-city-selector-index-container li {
  list-style: none;
  height: var(--index-item-height);
  text-align: center;
  font-size: var(--bui-text-size-3);
  color: var(--bui-color-info, --bui-color-info);
  display: flex;
  align-items: center;
  justify-content: center;
}
