.city-editor-dialog { max-width: 1400px; margin-top: 8vh; }
.city-editor-source > .select2-container { flex: 1 1 auto; min-width: 0; width: auto !important; }
.city-editor-source > .input-group { flex: 1 1 auto; min-width: 0; }
.select-reset-group .select2-selection--single { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.city-editor-source .open-city-editor-from-field { flex: none; }
#cityEditorModal .modal-content { height: min(85vh, 900px); }
#cityEditorModal .modal-body { min-height: 0; }
.city-editor-layout { display: grid; grid-template-columns: minmax(170px, 21%) minmax(230px, 23%) minmax(0, 1fr); gap: 1rem; height: 100%; min-height: 0; }
.city-editor-country-column, .city-editor-countries, .city-editor-list-column, .city-editor-details { min-height: 0; }
.city-editor-details { overflow-y: auto; padding-right: .4rem; }
.city-editor-details > .row { --bs-gutter-y: .4rem; }
.city-editor-details .row.g-2 { --bs-gutter-x: .5rem; --bs-gutter-y: .25rem; }
.city-editor-details .form-control-sm, .city-editor-details .form-select-sm { padding-top: .2rem; padding-bottom: .2rem; }
.city-editor-countries .city-editor-country { display: block; width: 100%; background: transparent; color: var(--bs-body-color); border: 0; text-align: left; }
.city-editor-countries .city-editor-country:hover, .city-editor-country.active { background: var(--bs-primary); color: #fff; }
.city-editor-list-column { overflow: hidden; }
.city-editor-filters .btn { padding: .2rem .42rem; line-height: 1.2; }
.city-editor-filter[data-filter="clubs"].active { background: var(--bs-success); border-color: var(--bs-success); color: #fff; }
.city-editor-filter[data-filter="text"].active, .city-editor-filter[data-filter="image"].active, .city-editor-filter[data-filter="wikidata"].active { background: var(--bs-danger); border-color: var(--bs-danger); color: #fff; }
#cityEditorFilterLock.active { background: var(--bs-info); border-color: var(--bs-info); color: #000; }
.city-editor-city { display: flex; width: 100%; min-height: 2.1rem; align-items: center; gap: .6rem; padding: .15rem .65rem; border: 0; border-bottom: 1px solid var(--bs-border-color); color: var(--bs-body-color); background: transparent; text-align: left; }
.city-editor-city:hover, .city-editor-city.active { background: var(--bs-primary); color: #fff; }
.city-editor-city .city-editor-icons { display: inline-flex; align-items: center; gap: .2rem; flex: none; }
.city-editor-city .city-editor-icons i, .city-editor-city > .fa-wikipedia-w { display: inline-block; width: 1.1em; font-size: calc(1.4rem - 2px); line-height: 1; text-align: center; }
.city-editor-city.active .text-success, .city-editor-city.active .text-danger { color: #fff !important; }
.city-editor-city .city-editor-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.city-editor-image-preview { width: min(100%, 250px); aspect-ratio: 615 / 461; display: grid; place-items: center; }
.city-editor-image-preview img { width: 100%; height: 100%; object-fit: contain; }
.city-editor-names { display: grid; gap: .25rem; min-width: 0; }
.city-editor-names .form-label, .city-editor-details .form-label { line-height: 1.1; margin-bottom: .15rem !important; }
#cityEditorUploadBox .file-preview { padding: .35rem; margin-bottom: .2rem; }
#cityEditorQuoteFeedback:empty { display: none; }
.min-width-0 { min-width: 0; }
@media (max-width: 1199px) {
  .city-editor-dialog { max-width: none; width: 100%; margin: 0; }
  #cityEditorModal .modal-content { height: 100%; border-radius: 0 !important; }
  .city-editor-layout { grid-template-columns: minmax(140px, 25%) minmax(180px, 30%) minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .city-editor-layout { grid-template-columns: 1fr 1fr; grid-template-rows: 210px auto; overflow-y: auto; }
  .city-editor-details { grid-column: 1 / -1; overflow: visible; }
}

.city-editor-values { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem .8rem; margin-bottom: .75rem; }
.city-editor-field { display: grid; grid-template-columns: minmax(80px, 34%) minmax(0, 1fr); gap: .5rem; align-items: center; min-width: 0; }
.city-editor-field > label { font-size: .8rem; line-height: 1.15; margin: 0; }
.city-editor-field > .bootstrap-select { min-width: 0; }
.city-editor-names-picture { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.city-editor-description-preview { box-sizing: border-box; height: 127px; overflow: hidden; cursor: pointer; }
.city-editor-description-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; line-clamp: 5; max-height: 110px; overflow: hidden; line-height: 22px; white-space: pre-wrap; padding: 0; }
.city-editor-description-preview:hover, .city-editor-description-preview:focus { border-color: var(--bs-info); }
.city-text-dialog { max-width: 1000px; }
.city-text-tabs { flex-wrap: wrap; gap: .2rem; }
.city-text-tab { position: relative; padding: .45rem .7rem; }
.city-text-tab img { display: block; width: 24px; height: 16px; object-fit: cover; }
.city-text-tab.city-text-invalid::after { content: '!'; position: absolute; top: 0; right: 1px; color: #fff; background: var(--bs-danger); border-radius: 50%; width: 13px; height: 13px; line-height: 13px; font-size: 10px; font-weight: bold; text-align: center; }
.city-text-input:not([hidden]) { display: block; width: 100%; height: 300px; resize: vertical; }
.city-text-input[hidden] { display: none; }
.city-editor-city > .fa-wikipedia-w { margin-left: 0 !important; flex: none; }
@media (max-width: 991px) {
  .city-editor-values, .city-editor-names-picture { grid-template-columns: 1fr; }
}
