/*
 * 01-controls-base.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Контролы карты (zoom/bar/legend), .maplibre-top/left, базовый layout: #sidebar, .maplibre-container, #sidebarCollapse.
 * Порядок правил сохранён из исходника (строки 1–138).
 */
/* styles 14-07-23 segeywebwave@gmail.com */
/* Page styles */
.maplibre-start-button {
    background-image: url("assets/return-map-icon.c1ebdce8f288.svg");
    background-size: cover;
}

.maplibre-top.maplibre-left {
    top: 44%;
    transform: translateY(-50%);
    left: 10px;
}

.maplibre-bar a:last-child {
    border-bottom: 1px solid var(--line-strong);
}

.maplibre-top {
    z-index: 20;
}


.maplibre-top .maplibre-control {
    margin-top: 0;
    margin-right: 0;
}


#sidebar {
    background-color: var(--bg);
    position: relative !important;
    padding: 0;
    transition: all 0.2s !important;
    z-index: 50; /*new*/
    height: 100%;
}

.maplibre-container {
    background: var(--bg) !important;
}

.myactive {
    width: 480px !important;
    min-width: 480px !important;
    -webkit-transition: all 0.2s;
    -o-transition: all 0.2s;
    transition: all 0.2s;
    padding: 25px 0 25px 30px !important;
}

#sidebarCollapse {
    background-color: transparent !important;
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 27px !important;
    height: 279px !important;
    left: initial !important;
    right: 480px !important;
    border: none !important;
    background-image: url("assets/slice-dark-icon.b83b7e772b2a.svg") !important;
    /*background-size: cover;*/
    background-repeat: no-repeat;
}

/* Плавающая иконка выбранного типа в режиме нанесения события/объекта: летит за курсором.
   pointer-events:none — не перехватывает клики по карте; z-index выше карты/панелей.
   Событие — SVG-пин (острие снизу, translate -50%/-100%), объект — центрированный PNG. */
.maplibre-create-cursor {
    position: fixed;
    z-index: 1200;
    width: 34px;
    transform: translate(-50%, -100%);
    pointer-events: none;
    display: none;
}

.maplibre-create-cursor svg {
    display: block;
    width: 34px;
    height: auto;
}

.maplibre-create-cursor--object {
    transform: translate(-50%, -50%);
}

.maplibre-create-cursor--object img {
    display: block;
    width: 32px;
    height: auto;
}

/*
 * 02-event-feed.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Лента событий: шапка (.event-feed*), поле поиска #eventSearch, карточки списка .event-item*.
 * Порядок правил сохранён из исходника (строки 139–453).
 */
.event-feed__light {
    display: flex;
    justify-content: space-between;
    align-content: center;
    align-items: center;
    width: 55%;
}

.event-feed__light span {
    line-height: 0;
    height: 0;
    color: var(--text-faint);
}

.event-feed__right {
    position: relative;
    width: 45%;
}

#event-feed {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--text-muted);
    text-align: center;
    font-size: 10px;
    font-style: normal;
    font-weight: 400;
    column-gap: 15px;
    margin-bottom: 15px;
}

#event-feed .input-group {
    height: 20px;
    padding-left: 0;
    padding-right: 0;
    min-width: 110px;
}

#event-feed .input-group input {
    border-radius: 2px;
    border: 0.5px solid var(--line-strong);
    background: var(--bg-2);
    color: var(--text-muted);
    text-align: left;
    font-size: 12px;
    font-weight: 400;
    padding-left: 3px;
}

#event-feed .form-control {
    padding: 0;
}

#event-feed .mb-3 {
    margin-bottom: 0 !important;
}

.event-feed-title {
    color: var(--text-strong);
    font-size: 24px;
    font-weight: 700;
    line-height: normal;
    text-transform: uppercase;
    margin-bottom: 10px;
}

/* Поменял название id request на eventSearch*/
#eventSearch.form-control {
    border-radius: 2px;
    border: 0.5px solid var(--line-strong);
    background: var(--bg-2);
    color: var(--text-muted);
    text-align: left;
    font-size: 12px;
    font-weight: 400;
    padding: 0 10px 0 7px;
    height: 20px;
}

#eventSearch.form-control::placeholder {
    color: rgba(var(--muted-rgb), 0.50);
    font-size: 12px;
    font-weight: 400;
    line-height: normal;
    text-align: left;
}

#sidethirdrow {
    margin-top: 100px;
}

#sidebar .sidecontent {
    scrollbar-color: #FF6C3E var(--line-strong);
    scrollbar-width: thin;
    padding-right: 20px;
}

#sidebar .sidecontent::-webkit-scrollbar {
    width: 7px;
}

#sidebar .sidecontent::-webkit-scrollbar-track {
    background: var(--inverse-bg);
}

#sidebar .sidecontent::-webkit-scrollbar-thumb {
    background-color: #FF6C3E;
}

.event-item {
    border-radius: 2px;
    border: 0.5px solid var(--line-strong);
    background: var(--bg-2);
    margin-top: 10px;
    padding: 10px 10px 8px 17px;
}

.event-item-for-search {
    border-radius: 2px;
    border: 0.5px solid var(--line-strong);
    background: var(--bg-2);
    margin-top: 10px;
    padding: 10px 10px 8px 17px;
    color: var(--text);
    font-size: 12px;
}

.event-item:hover {
    filter: brightness(110%);
}

.event-item__top {
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: flex-start;

}

.event-item__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--text);
    text-align: left;
    font-size: 11px;
    font-weight: 400;
    line-height: normal;
}

.event-item__bottom-left {
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: 10px;
}

.event-item__bottom-right {
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: 20px;
}

.event-item__icons {
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: 5px;
}

.event-item__bottom-img {
    width: 13px;
    height: 8px;
    background-image: url("assets/img-icon.d8601e8ec458.svg");
    background-size: cover;
    background-repeat: no-repeat;
    cursor: pointer;
}

.event-item__bottom-video {
    width: 13px;
    height: 8px;
    background-image: url("assets/video-icon.5aa18096f1ae.svg");
    background-size: cover;
    background-repeat: no-repeat;
    cursor: pointer;
}



.event-item__wrapper {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    column-gap: 5px;
    width: max-content;
    padding-left: 0;
    padding-right: 0;
}

.event-item__flag {
    width: 13px;
    height: 8px;
    background-color: var(--inverse-bg);
}

.event-item__place {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: 5px;
    width: 100%;
}

.event-item__place-flag {
    display: block;
    width: 13px;
    height: 8px;
    background-color: var(--inverse-bg);
}

.event-item__view-count {
    position: relative;
    padding-left: 15px;
}

.event-item__view-count::before {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 1px;
    width: 11px;
    height: 6px;
    background-image: url("assets/eye-icon.3f6318a3355e.svg");
    background-size: cover;
    background-repeat: no-repeat;
}

/* Число комментариев — рядом с просмотрами (значок «облачко» из CSS, цвет текста). */
.event-item__comments {
    position: relative;
    padding-left: 15px;
}

.event-item__comments[hidden] {
    display: none;
}

.event-item__comments::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 1px;
    width: 10px;
    height: 8px;
    border: 1.5px solid currentColor;
    border-radius: 2px;
    opacity: 0.75;
    transform: translateY(-60%);
}

.event-item__comments::after {
    content: '';
    position: absolute;
    top: calc(50% + 3px);
    left: 3px;
    width: 4px;
    height: 4px;
    border-bottom: 1.5px solid currentColor;
    border-left: 1.5px solid currentColor;
    opacity: 0.75;
    transform: skewY(-35deg);
}

.event-item__text {
    position: relative;
    color: var(--text-strong);
    text-align: justify;
    font-size: 12px;
    font-weight: 700;
    line-height: normal;
    padding-left: 10px;
    /*height: 24px;*/
    word-wrap: break-word;
    overflow: hidden;
}


.event-item__text__for_empty {
    color: var(--text-strong);
    text-align: justify;
    font-size: 14px;
    font-weight: 500;
    line-height: normal;
    word-wrap: break-word;
    overflow: hidden;
}


/*Поменял стиль 29-07*/
.event-item__icon {
    min-width: 33px !important;
    margin-bottom: -10px;
    background-repeat: no-repeat;
    background-position: center;
    /*23 01 25 */
    background-size: 31px 33px;
    width: 31px;
    height: 33px;
}

#sidebarCollapse::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 15px;
    height: 15px;
    background-image: url("assets/white-arrow-icon.7773dc0460e3.svg") !important;
    background-size: 15px 15px !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}

#sidebarCollapse.opensidebar::after {
    transform: translate(-50%, -50%) rotate(180deg) !important;
}

#sidebarCollapse {
    right: initial !important;
    left: -25px !important;
}

/* Лента закрыта (#sidebar шириной 0 у правого края): язычок целиком левее края — при -25px
   он торчал за экран на 2 px и на телефоне расширял страницу (горизонтальная прокрутка). */
#sidebar:not(.myactive) #sidebarCollapse {
    left: -27px !important;
}


/*
 * 03-sidepanel-detail.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Панель детали события: #mySidepanel, #panel*, #eventCarousel, #sourceBlock, .linked-events*, кнопка поиска.
 * Порядок правил сохранён из исходника (строки 454–758).
 */
.eventsidepanel {
    background: var(--bg) !important;
}

#mySidepanel {
    position: relative !important;
    width: 472px !important;
    top: 0 !important;
    color: var(--text-strong) !important;
    scrollbar-color: #FF6C3E var(--line-strong);
    scrollbar-width: thin;
    opacity: .975;
}

#mySidepanel::-webkit-scrollbar {
    width: 7px;
}

#mySidepanel::-webkit-scrollbar-track {
    background: var(--inverse-bg);
}

#mySidepanel::-webkit-scrollbar-thumb {
    background-color: #FF6C3E;
}

.eventsidepanel {
    padding: 35px 45px 0 26px !important;
}

#panelTitle {
    padding-right: 20px;
    word-wrap: break-word;
}

#panelTitle h4 {
    margin-top: 0;
    color: var(--text-strong);
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    padding-left: 0;
    padding-right: 0;
    line-height: normal;
}

.eventsidepanel-flex {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    width: 20px;
    height: 20px;
    line-height: 0.3;
    position: absolute;
    top: 48px;
    right: 43px;
    font-size: 32px;
    padding: 0 !important;
}

.eventsidepanel-flex .closebtn {
    display: block;
    position: static !important;
    width: 15px;
    height: 15px;
    color: var(--text-strong);
    margin-bottom: 5px;
}

.eventsidepanel-flex .linkbtn {
    display: block;
    min-width: 30px;
    min-height: 35px;
    background-image: url("assets/go-link-icon.9c5cd04049f3.svg") !important;
    background-size: 50px !important;
    background-repeat: no-repeat !important;
    background-position: -15px;
}

#panelAddInfo {
    margin-bottom: 6px;
}

#panelCoord {
    margin-bottom: 30px;
}

#panelAddInfo .event-item__place,
#panelAddInfo .event-item__view-count,
#panelAddInfo .event-item__public-date,
#panelCoord .event-item__place-name {
    width: max-content;
    color: var(--text);
    text-align: justify;
    font-size: 12px;
    font-weight: 400;
    line-height: normal;
}

#panelCoordinates, #panelDate {
    display: none !important;
}

#eventCarousel {
    padding: 6px;
    border: 1px solid #FF6C3E;
    border-radius: 5px;
    background: var(--bg);
    overflow: hidden;
    position: relative;
}

/* Кнопки перелистывания фото: bootstrap по умолчанию даёт полупрозрачные иконки без фона —
   на светлых снимках они теряются. Делаем круглую тёмную подложку с оранжевой рамкой (тема
   панели), иконку — крупнее и непрозрачной, чтобы стрелки было хорошо видно на любом фото. */
#eventCarousel .carousel-control-prev,
#eventCarousel .carousel-control-next {
    width: 38px;
    height: 38px;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(var(--bg-rgb), 0.75);
    border: 1px solid #FF6C3E;
    border-radius: 50%;
    opacity: 1;
}

#eventCarousel .carousel-control-prev {
    left: 8px;
}

#eventCarousel .carousel-control-next {
    right: 8px;
}

#eventCarousel .carousel-control-prev:hover,
#eventCarousel .carousel-control-next:hover {
    background: rgba(255, 108, 62, 0.85);
}

#eventCarousel .carousel-control-prev-icon,
#eventCarousel .carousel-control-next-icon {
    width: 20px;
    height: 20px;
}

#panelContent {
    /* В шаблоне это <div class="row"> (bootstrap flex). Из-за flex контент внутри становился
       flex-элементами: ссылки растягивались на всю ширину, а <br> между абзацами игнорировался.
       Возвращаем обычный блочный поток, чтобы текст/ссылки/переносы вели себя как обычный HTML. */
    display: block;
    margin-top: 20px;
    padding-left: 0;
    padding-right: 0;
    color: var(--text-strong);
    text-align: justify;
    font-size: 14px;
    font-weight: 400;
    line-height: normal;
    word-wrap: break-word;
}

#panelContent p {
    padding-left: 0;
    padding-right: 0;
    color: var(--text-strong);
    text-align: justify;
    font-size: 13.5px;
    font-weight: 400;
    line-height: normal;
    margin-bottom: 12px;
}

/* Ссылки в описании: linkifyContent при показе оборачивает URL в <a class="source__link">.
   Наследуем размер текста (не крупнее абзаца), акцентный цвет + подчёркивание, перенос
   длинных URL по словам. display:inline + сброс padding — переопределяют правило
   `.eventsidepanel a` (display:block, padding 8px, font-size 25px — старый Leaflet-стиль
   навигации), из-за которого ссылки-подписи вставали каждая на своей строке и были крупными. */
#panelContent a,
#panelContent a.source__link {
    display: inline;
    padding: 0;
    color: #FF6C3E;
    font-size: inherit;
    text-decoration: underline;
    word-break: break-word;
}

.maplibre-searchbox-button, .maplibre-start-button {
    width: 30px !important;
    height: 30px !important;
    border-radius: 4px !important;
    background-color: var(--bg-control) !important;
    border: 1px solid #ccc !important;
}

.maplibre-control-container,
.maplibre-top .maplibre-left {
    width: max-content;
    height: max-content;
}

.maplibre-control-container {
    width: 70px;
    height: 100%;
    position: relative;
}

#sourceBlock .source-box {
    padding-left: 0;
    padding-right: 0;
    font-size: 14px;
    font-style: italic;
    font-weight: 400;
    line-height: normal;
}

#sourceBlock .source-box a {
    display: inline;
    color: #FE7F45;
    font-size: 14px;
    font-style: italic;
    font-weight: 400;
    line-height: normal;
    text-decoration-line: underline;
    padding: 0;
}

.source__name {
    margin-bottom: 2px;
}

#sourceBlock .source-box {
    margin-bottom: 15px;
}

.linked-events {
    width: 100%;
    background-color: var(--bg-2);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 0 23px 8px 23px;
    border-radius: 2px;
    border: 1px solid var(--line-strong);
    margin-top: 20px;
    margin-bottom: 28px;
    transition-duration: .15s;
}

.linked-events__title {
    position: relative;
    padding-top: 8px;
    width: 100%;
    height: 40px;
    color: var(--text-strong);
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    display: flex;
    align-items: center;
    cursor: pointer;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.linked-events__title::before {
    content: '';
    position: absolute;
    top: calc(50% + 4.5px);
    transform: translateY(-50%);
    right: 0;
    width: 11px;
    height: 6px;
    background-image: url("assets/up-arrow.8385820a76d9.svg");
    background-size: cover;
    background-repeat: no-repeat;
    transition-duration: .15s;
}

.linked-event {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    position: relative;
    height: 0;
    border-bottom: none;
    overflow: hidden;
}

.linked-event__name {
    color: var(--text-strong);
    text-align: left;
    font-size: 10px;
    font-weight: 400;
    line-height: normal;
    padding-left: 15px;
}

.linked-event__icon {
    /*background-color: #fff;*/
    width: 26px;
    height: 24px;
}


.linked-event__date {
    color: var(--text-faint);
    text-align: right;
    font-size: 10px;
    font-style: italic;
    font-weight: 400;
    line-height: normal;
    margin-left: auto;
}


.linked-events__opened {
    padding: 0 23px 17px 23px;
}

.linked-events__opened .linked-event {
    height: 25px;
    border-bottom: 1px solid rgba(var(--muted-rgb), 0.25);
    overflow: visible;
    transition-duration: 0s;
}

.linked-events__opened .linked-events__title::before {
    top: calc(50% + 2px);
    transform: rotate(180deg);
}

.linked-events__opened .linked-events__title {
    margin-bottom: 5px;
}

.eventsidepanel a:hover {
    color: var(--text-muted);
}

.linked-events__opened .linked-event:last-child {
    border-bottom: none;
}


/*
 * 04-popup-welcome.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Приветственный попап .popup-welcome* и слайдер Swiper (.swiper*).
 * Порядок правил сохранён из исходника (строки 759–977).
 */
/* Popup welcome */
.popup-welcome {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    max-width: 720px;
    min-width: 320px;
    height: auto;
    max-height: 100%;
    background-color: var(--bg);
    padding: 25px 45px 50px 45px;
    flex-direction: column;
    align-items: center;
    -webkit-box-shadow: 0 0 20px 4px rgba(0, 0, 0, .3); /*new*/
    box-shadow: 0 0 20px 4px rgba(0, 0, 0, .3);
    z-index: 550;
    overflow: auto;
    scrollbar-color: #737578 #dddddd;
    scrollbar-width: thin;
}

@media (max-width: 480px) {
    .popup-welcome {
        height: 75%;
    }
}

.popup-welcome::-webkit-scrollbar {
    width: 7px;
}

.popup-welcome::-webkit-scrollbar-track {
    background: #dddddd;
}

.popup-welcome::-webkit-scrollbar-thumb {
    background-color: #737578;
}

.popup-welcome__wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 100%;
    height: auto;
}

.popup-welcome__top-title {
    color: var(--text-strong);
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    line-height: normal;
    height: 40px;
}

.popup-welcome__logo {
    width: 207px;
    height: 42px;
    margin-bottom: 15px;
    background-image: url("assets/logo-white.e4a6b124f9e9.png");
    background-size: contain;
    background-repeat: no-repeat;
}

.popup-welcome__text {
    color: var(--text-strong);
    text-align: center;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin-bottom: 20px;
}

.popup-welcome__slide {
    width: 592px;
    height: 368px;
    border-radius: 8px;
    border: 1px solid var(--text-muted);
    background: var(--bg-2);
    overflow: hidden;
}

.popup-welcome__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.popup-welcome__swiper {
    width: 100%;
    height: 400px;
    margin-bottom: 15px;
    padding-bottom: 2px !important;
}

.popup-welcome .swiper-pagination {
    position: static;
}

.popup-welcome .swiper-pagination-bullet {
    width: 72px;
    height: 8px;
    border-radius: 8px;
    border: 1px solid var(--text-muted);
    background: var(--bg);
    opacity: 1;
}

.popup-welcome .swiper-pagination-bullet-active {
    border: 1px solid #FE7F45;
    background: #FE7F45;
}


.popup-welcome .swiper-button {
    background-color: var(--bg-2);
    border: 1px solid #ccc;
    border-radius: 3px;
    width: 32px;
    height: 32px;
    line-height: 26px;
    display: block;
    text-align: center;
    text-decoration: none;
    color: black;
    background-size: 15px 15px !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}

.popup-welcome .swiper-button-prev {
    background-image: url("assets/white-arrow-icon.7773dc0460e3.svg") !important;
    top: 55%;
    transform: translateY(-50%) rotate(180deg);
    left: -15px;
}

.popup-welcome .swiper-button-next {
    background-image: url("assets/white-arrow-icon.7773dc0460e3.svg") !important;
    top: 55%;
    transform: translateY(-50%);
    right: -15px;
}

.popup-welcome .swiper-button-next::after,
.popup-welcome .swiper-button-prev::after {
    content: '';
}

.swiper {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1;
    display: block;
}

.swiper-button-prev, .swiper-rtl .swiper-button-next {
    /*left: var(--swiper-navigation-sides-offset,10px);*/
    right: auto;
}

.swiper-button-next, .swiper-rtl .swiper-button-prev {
    /*right: var(--swiper-navigation-sides-offset,10px);*/
    left: auto;
}

.swiper-button-next, .swiper-button-prev {
    position: absolute;
    top: 50%;
    width: calc(44px * 27);
    height: 44px;
    margin-top: calc(0px - (44px / 2));
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
    display: block;
}

.swiper-android .swiper-slide, .swiper-wrapper {
    transform: translate3d(0px, 0, 0);
}

.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition:transform 0.5s ease;
    box-sizing: content-box;
}

.button-disabled {
  opacity: 0.7; /* Затемнение */
  pointer-events: none; /* Отключение взаимодействия */
  user-select: none; /* Отключение выделения текста */
}

/* End of popup welcome */


/*
 * 05-sidepanel-wrapper.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Обёртка панели .mySidepanel-wrapper, .card-title-side, .event-feed-btn, стилизация date-picker.
 * Порядок правил сохранён из исходника (строки 978–1069).
 */
.mySidepanel-wrapper {
    width: 480px;
    display: block;
    position: fixed;
    right: 0;
    top: 54px;
    z-index: 60; /*new*/
    transition: all 0.2s !important;
    transform: translateX(110%);
}

.mySidepanel-wrapper.mySidepanel-wrapper_opened {
    transform: translateX(1.7%);
    /* width: 480px; */
}


.card-title-side {
    background-color: transparent;
    position: absolute;
    top: 260px;
    transform: translateY(-50%);
    left: -30px;
    width: 30px;
    height: 310px;
    border: none;
    background-image: url("assets/card-slice-icon.d6150a275517.svg");
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 500;
    background-position: 0 10px;
    opacity: .97;
    filter: drop-shadow(0px 0px 60px rgba(254, 127, 69, 0.25)) drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
}


.event-feed-btn {
    background-color: transparent;
    position: absolute;
    top: 490px;
    transform: translateY(-50%);
    left: -33px;
    width: 29px;
    height: 307px;
    border: none;
    background-image: url("assets/event-feed-icon.c80e9ab1c695.svg");
    background-size: 96%;
    background-repeat: no-repeat;
}

input[type="date" i]::-webkit-calendar-picker-indicator {
    filter: invert(1) !important;
}

.eventsidepanel a:hover {
    color: #FE7F45 !important;
    opacity: .7;
}

#collapseExample {
    padding-left: 10px;
    padding-right: 10px;
}


/*
 * 06-search-slider.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Очистка поиска #clearSearch, слайдер диапазона дат (jQuery UI .ui-slider*), кнопки next/prev.
 * Порядок правил сохранён из исходника (строки 1070–1170).
 */
/* styles 26-07-23 segeywebwave@gmail.com */

#clearSearch {
    position: absolute;
    right: 2px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    z-index: 20;
    font-style: normal;
    font-size: 16px;
    line-height: 1;
    width: 16px;
    height: 16px;
}

#sliderContainer {
    background-color: var(--bg);
    border-radius: 3px;
    z-index: 5;
}

.slider-container__box {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
    justify-content: flex-start;
}

.linked-events--hidden {
    display: none;
}

.ui-state-default, .ui-widget-content .ui-state-default {
    background-color: #FE7F45;
}

.slider-button__wrapper {

    width: 50%;
    max-width: max-content;
    padding: 1px;
}

.slider-range__wrapper {
    display: flex;
    align-items: center;
    width: 50%;
    padding-left: 30px;
    padding-right: 10px;
    flex-grow: 1;
}

/*Поменял*/
.ui-slider-horizontal {
    height: 6px;
    border-radius: 0;
    /*border-radius: none;*/
}

#slider-range {
    width: 100%;
    margin: 0;
}

.ui-slider-horizontal .ui-slider-handle {
    top: -0.5em;
}

button#prev,
button#next {
    font-size: 14px;
    font-weight: 400;
    border: 1px solid var(--line-strong);
    border-radius: 2px;
    color: var(--text);
}

button#prev {
    border-right: none;
}

.slider-button__wrapper .btn-group {
    margin-left: 1px;
}

button#prev:hover,
button#next:hover {
    background-color: transparent;
    filter: brightness(130%);
}

button#prev:focus-visible,
button#next:focus-visible {
    background-color: transparent;
    border-color: var(--line-strong);
    outline: 0;
    box-shadow: none;
}

/*Поменял*/

/*
 * 07-navbar-modals.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Навбар (.navbar-text/toggler), модалки создания #CreateEvent/#CreateObject, .form-check, кнопки.
 * Порядок правил сохранён из исходника (строки 1171–1309).
 */
.navbar-text {
    display: flex;
    align-items: center;
    /*column-gap: 15px;*/
    width: max-content;
    column-gap: 10px;
}

.navbar-text__welcome {
    color: var(--text);
    font-size: 15px;
}

.navbar-toggler {
    border: none;
    margin-top: 2px;
    outline: none;
}

.navbar-toggler:focus {
    text-decoration: none;
    outline: 0;
    box-shadow: none;
}

#collapseMarkers {
    margin-top: 5px;
}

/*Поменял-закоментил 30-07 */
.form-check .form-check-label {
    line-height: 1;
    font-size: 14px;
    /*min-height: 28px;*/
    display: flex !important;
    align-items: center;
}


#CreateEvent .modal-content {
    background-color: var(--bg);
    color: var(--text-strong) !important;
}

.modal-content {
    background-color: var(--bg);
    color: var(--text-strong) !important;
}

@media (max-width: 700px) {
    .modal-dialog {
        max-width: 80%;
        margin: 0 auto;
    }
}

@media (max-width: 570px) {
    .modal-dialog {
        max-width: 100%;
        width: 100%;
    }
}

#closeUpperModalButtonObject,
#closeUpperModalButton {
    filter: invert(1);
}

#CreateObject {
    scrollbar-color: #FF6C3E var(--line-strong);
    scrollbar-width: thin;
}

#CreateObject::-webkit-scrollbar {
    width: 7px;
}

#CreateObject::-webkit-scrollbar-track {
    background: var(--inverse-bg);
}

#CreateObject::-webkit-scrollbar-thumb {
    background-color: #FF6C3E;
}

.form-check .form-check-label {
    padding-left: 7px;
}

#saveObjectModalButton,
#saveModalButton {
    background-color: #FF6C3E;
    color: #fff;
}

#saveObjectModalButton:hover,
#saveModalButton:hover {
    background-color: #c75431;
    color: #fff;
}

#eventObjImages > p:nth-child(1) {
    color: #1b2026;
}

.btn {
    border: none;
}

.slider-buttons-wrapper {
    position: relative;
    width: 100%;
    height: auto;
}

.popup-welcome-close {
    position: absolute;
    top: 12px;
    right: 15px;
    width: 18px;
    height: 18px;
    background: transparent url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z%27/%3e%3c/svg%3e") center/1em auto no-repeat;
    background-size: cover;
    background-repeat: no-repeat;
    border: 0;
    outline: 0;
}

.sidebar__mobile-close { /*new*/
    display: none;
    background: none;
    border: 0;
}

.display-none {
    display: none !important;
}



/*
 * 08-responsive-a.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Адаптив панелей и ленты (media 768/510/850/480px).
 * Порядок правил сохранён из исходника (строки 1310–1558).
 */
@media (max-width: 768px) {

    .navbar > .container-fluid {
        background-color: var(--bg);
    }

    .popup-welcome {
        padding-left: 22px;
        padding-right: 22px;
        padding-top: 35px; /*new*/
        padding-bottom: 15px;
    }

}


@media (max-width: 510px) {
    #main_map {
        height: 100%;
        width: 100% !important;
        min-width: 100% !important;
        overflow: hidden;
    }

    #sidebar {
        background-color: var(--bg);
        top: 50px;
        right: 0;
        /* Высота 100% от top: 50px уходила на 50 px ниже экрана: страница прокручивалась,
           а низ ленты был недоступен. */
        height: calc(100% - 50px);
        position: absolute !important;
        padding: 0;
        transition: all 0.2s !important;
        z-index: 100;
    }

    .myactive {
        height: 100%;
        display: block;
        z-index: 900;
        width: 100% !important;
        min-width: 100% !important;
        padding: 25px 30px 25px 30px !important;
    }


    #mySidepanel {
        width: 100% !important;
        z-index: 1500;
    }

    #mySidepanel .eventsidepanel {
        padding: 35px 25px 0 25px !important;
    }

    .mySidepanel-wrapper {
        width: 100% !important;
        z-index: 2000;
    }

    .mySidepanel-wrapper.mySidepanel-wrapper_opened {
        transform: translateX(0);
    }

    #event-feed {
        margin-top: 20px;
        flex-direction: column;
        align-items: flex-start;
        row-gap: 12px;
    }

    .event-feed__light {
        width: 80%;
        min-width: 230px;
    }

    .event-feed__right {
        width: 80%;
        min-width: 230px;
    }

    #eventSearch.form-control {
        font-size: 16px;
        height: 30px;
    }

    #clearSearch {
        font-size: 20px;
        line-height: 0.8;
    }

    #event-feed .input-group {
        height: 25px;
    }

    #sidebar .sidecontent {
        padding-right: 0;
    }

    .myactive .sidebar__mobile-close {
        display: block;
        width: 15px;
        height: 15px;
        color: var(--text-strong);
        margin-bottom: 5px;
        font-size: 32px;
        padding: 0 !important;
        text-decoration: none;
        transition: 0.1s;
        position: absolute;
        top: 22px;
        right: 35px;
        cursor: pointer;
        line-height: 1;
        z-index: 10;
    }

    .eventsidepanel-flex {
        right: 28px;
    }

}

@media (min-width: 768px) and (max-width: 850px) {

    .navbar-text__welcome {
        font-size: 13px;
    }
}

@media (max-width: 480px) {

    .maplibre-control-container {
        display: none;
    }

    .popup-welcome {
        width: 80%;
        max-width: 720px;
        min-width: 320px;
    }

    .popup-welcome__swiper {
        height: 165px;
        margin-bottom: 0;
    }

    .slider-buttons-wrapper {
        margin-bottom: 25px;
    }

    .popup-welcome .swiper-button-next,
    .popup-welcome .swiper-button-prev {
        top: 60%;
    }

}


/*
 * 09-legend-draw-detail.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Легенда карты (.maplibre-legend*), #divselectpicker, #eventImages.
 * Порядок правил сохранён из исходника (строки 1559–1770).
 */
.form-check-input:focus {
    border-color: initial;
    box-shadow: none;
}

.collapse-form-check {
    margin-left: 10px;
}

.maplibre-legend-title {
    color: var(--text);
}

.maplibre-legend-contents .legend-label {
    color: var(--text);
}

.maplibre-legend.maplibre-control {
    background-color: #1b202684 !important;
}

.maplibre-legend.maplibre-bar.maplibre-control {
    width: 50px;
    height: 50px;
    margin-right: 0;
    border: 1px solid var(--line-strong) !important;
    border-radius: 5px;
    z-index: 0;
    cursor: pointer;
}

.maplibre-legend.maplibre-control.maplibre-legend-expanded {
    width: auto;
    height: auto;
    background-color: var(--bg) !important;
    border: 1px solid var(--bg) !important;
    z-index: 35;
}

.maplibre-legend-contents {
    padding: 10px;
    border-radius: 4px;
    background-color: var(--bg);
    user-select: none;
}

.maplibre-control {
    z-index: 10;
}

#eventImages {
    margin-top: 30px !important;
}

/*Поменял 01-08*/
.sidepanel-event-background {
    width: 140px;
    height: 140px;
    position: absolute;
    background-repeat: no-repeat;
    background-size: 130px;
    opacity: 0.20;
    left: -20px;
    top: -20px;
    z-index: -1;
}

.maplibre-control-cascadeButtons button {
    box-shadow: none;
}

.maplibre-control-cascadeButtons button {
    background-color: var(--bg-control);
    border-radius: 4px;
}

.maplibre-control-cascadeButtons.vertical.maplibre-control {
    box-shadow: none;
}

#closeUpperModalButtonPolygon {
    filter: invert(1);
}

.maplibre-legend-expanded .maplibre-legend-contents {
    display: block;
    padding: 6px 15px 6px 6px;
    position: absolute;
    bottom: -52px;
    left: 59px;
}

.maplibre-legend.maplibre-control.maplibre-legend-expanded {
    width: 50px;
    height: 50px;
    background-color: rgba(var(--bg-rgb), 0.66) !important;
    border: 1px solid var(--line-strong) !important;
    z-index: 35;
}

.maplibre-legend-column {
    margin-left: 0;
}

.maplibre-legend-contents {
    background-color: #1b2026e2;
}

.maplibre-legend-title {
    color: var(--text);
    padding-left: 5px;
    font-size: 16px;
    margin-bottom: 0;
}

#eventImages p {
    color: #000;
}

/*
 * Контейнер выпадающего списка выбора объекта (модалка «Создание события»).
 * Внутри лежит виджет Choices (.choices), заменивший старый bootstrap-select.
 * Раньше здесь стояло height:25px + display:flex/align-items:center под
 * инлайновый bootstrap-select. Choices — блочный виджет min-height 44px, и в
 * роли flex-item он сжимался по содержимому (в узкую полоску) и обрезался по
 * высоте 25px. Убираем flex и фиксированную высоту: пусть Choices занимает
 * всю ширину колонки и высоту по содержимому.
 */
#divselectpicker {
    margin-top: .25rem !important;
}

/* Виджет Choices растягиваем на всю ширину колонки. */
#divselectpicker .choices {
    width: 100%;
    margin-bottom: 0;
}

/* Текст виджета (выбранное значение + пункты выпадающего списка) — тёмный.
 * Без этого текст наследовал светлый цвет и был почти не виден на белом фоне модалки. */
#divselectpicker .choices__inner,
#divselectpicker .choices__list--single .choices__item,
#divselectpicker .choices__list--dropdown .choices__item {
    color: #333;
}

#panelAddInfo .event-item__place,
#panelCoord .event-item__place {
    padding-left: 5px;
}

/*
 * 10-responsive-b.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Адаптив каскад-кнопок и слайдеров (media 950/1000/600/510/480/…px).
 * Порядок правил сохранён из исходника (строки 1771–1979).
 */
@media (max-width: 950px) {

    .myactive {
        padding-right: 0 !important;
    }

    #pagButtons {
        padding-right: 30px;
    }

    #sidebar .sidecontent {
        height: calc(100% - 35px) !important;
    }

    .eventsidepanel {
        padding: 18px 45px 0 26px !important;
    }

    .eventsidepanel-flex {
        top: 30px;
    }

    #type-coord {
        display: none !important;
    }

   /* .maplibre-control-zoom.maplibre-bar.maplibre-control {
        display: none !important;
    }*/

    /*.maplibre-top.maplibre-left {
        position: fixed !important;
        top: 150px !important;
        left: 15px !important;
    }*/
}

/* 19-07-24 */


.maplibre-control-cascadeButtons .horizontal {
    width: calc(100vw - 540px);
    flex-wrap: wrap;
}

.maplibre-control-cascadeButtons button {
    min-width: 30px;
}


@media (max-width: 950px) {

    #type-coord {
        display: flex !important;
    }

    /*.maplibre-control-zoom.maplibre-bar.maplibre-control {
        display: block;
    }*/

    /*.maplibre-top.maplibre-left {
        top: 30% !important;
        left: 15px !important;
    }*/

    .maplibre-control-cascadeButtons .horizontal {
        width: calc(100vw - 140px);
    }

}

@media (max-width: 600px) {

    .maplibre-control-cascadeButtons .horizontal {
        width: calc(100vw - 50px);
        flex-wrap: wrap;
    }

}

@media (max-width: 510px) {
    .event-feed__light {
        width: 100%;
        padding-right: 30px;
    }

    .event-feed__right {
        width: 100%;
        padding-right: 30px;
    }
}

@media (max-width: 480px) {
    .maplibre-control-container {
        display: block;
    }
}

.maplibre-control-cascadeButtons.maplibre-control {
    pointer-events: none;
}

.maplibre-control-cascadeButtons .horizontal button {
    pointer-events: all;
}

#sliderContainer {
    min-width: 50%;
}

@media (max-width: 1100px) {

    #sliderContainer {
        min-width: 60%;
    }

}

@media (max-width: 850px) {

    #sliderContainer {
        min-width: 70%;
        max-width: initial;
    }
}

@media (max-width: 450px) {

    #sliderContainer {
        min-width: 65%;
    }
}

@media (max-width: 400px) {

    .slider-container__box {
        flex-direction: column;
    }

    .slider-range__wrapper {
        width: 100%;
        /*padding-top: 15px;
        padding-bottom: 15px;
        padding-right: 30px;*/
    }
}


@media (max-width: 325px) {

    #sliderContainer {
        min-width: 60%;
    }

}


/* new styles 03-10-24 */



/*
 * 11-overrides-misc.css — часть разбитого map-ui.css (бывш. new_style27.css).
 * Разное и поздние override: .jvectormap-tip, навбар-приветствие, комментарии, #toast-container, кнопки детали, пагинация, override зума.
 * Порядок правил сохранён из исходника (строки 1980–2248).
 */
.jvectormap-tip {
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    width: max-content;
}

.navbar-text__welcome a {
    /*color: #fff;*/
    text-transform: initial;
    display: inline;
    border: none;
    padding-left: 3px;
    padding-right: 0;
    color: #FF6C3E;
    font-weight: 700;
}

.navbar-text__welcome a:hover,
.navbar-text__welcome a:focus {
    color: #FF6C3E;
}

.navbar-text > a:nth-child(2) {
    margin-top: 0;
}

.navbar-text .navbar-text__welcome a::after {
    display: none;
}

@media (max-width: 335px) {
}


/* .modal-backdrop {
    z-index: 2000;
}

#CreateEvent {
    z-index: 2100;
}

#toast-container {
    z-index: 2200;
}

*/

/* nav#main_nav_bar {
    z-index: 1900;
} */

.popup-welcome {
    z-index: 2000;
}

#objectChooseEvent {
    flex-shrink: 0;
}

#formEvent .col-4.align-middle.mt-1 {
    min-width: 200px;
}

#saveCommentButton {
    min-width: 32px;
}

#buttonsgroupfordetail .btn {
    font-size: 15px;
    font-weight: 400;
    border: 1px solid var(--line-strong);
    border-radius: 2px;
    background: transparent;
    height: 38px;
}

#buttonsgroupfordetail .btn:hover {
    color: var(--text-muted);
}


#buttonsgroupfordetail .btn-danger {
    color: #FF6C3E;
    border: 1px solid #FF6C3E;
}

#buttonsgroupfordetail .btn-danger:hover {
    color: #1D2227;
    border: 1px solid #FF6C3E;
    background-color: #FF6C3E;
}

#eventPanelSource iframe {
    left: 20px;
}

.mySidepanel-wrapper {
    z-index: 1000;
}

.maplibre-start-button {
    background-image: url("data:image/svg+xml;utf8,<svg version=\"1.1\" id=\"_x32_\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"800px\" height=\"800px\" viewBox=\"0 0 512 512\" xml:space=\"preserve\"><g><path fill=\"%23fff\" d=\"M463.203,105.688c-3.047-4.25-6.234-8.406-9.609-12.484C406.641,36.313,335.531,0,256,0C176.484,0,105.359,36.313,58.406,93.203c-3.375,4.078-6.563,8.234-9.594,12.484C18.078,147.922,0,199.844,0,256c0,56.313,18.156,108.484,49.031,150.719c3.125,4.328,6.406,8.563,9.844,12.656C105.844,475.922,176.719,512,256,512c79.688,0,150.813-36.406,197.75-93.438c3.453-4.078,6.734-8.313,9.781-12.641C494.078,363.766,512,312,512,256C512,199.844,493.922,147.922,463.203,105.688z M471.688,247.969H385.75c-0.625-32.563-5.031-63.438-12.5-91.219c21.156-7.219,40.594-16.359,57.781-27.063C455.328,163.156,470.047,203.938,471.688,247.969z M263.984,41.906c37.375,5.188,70.438,46.109,89.297,104.281c-27.469,7.828-57.594,12.406-89.297,13.094V41.906z M247.984,41.906v117.375c-31.703-0.688-61.828-5.266-89.297-13.094C177.547,88.016,210.609,47.094,247.984,41.906z M247.984,175.266v72.703H142.219c0.625-30.766,4.891-60.094,11.984-86.516C183.094,169.75,214.703,174.594,247.984,175.266z M247.984,263.969v72.703c-33.234,0.797-64.828,5.734-93.703,14.094c-7.141-26.484-11.422-55.922-12.063-86.797H247.984z M247.984,352.656v117.375c-37.297-5.172-70.313-45.938-89.188-103.938C186.625,358.031,216.734,353.453,247.984,352.656z M263.984,470.031V352.625c31.703,0.563,61.859,5.094,89.359,12.875C334.5,423.813,301.406,464.844,263.984,470.031z M263.984,336.625v-72.656H369.75c-0.625,30.625-4.859,59.859-11.891,86.188C328.938,341.938,297.281,337.188,263.984,336.625z M263.984,247.969v-72.703c33.281-0.672,64.891-5.5,93.797-13.797c7.078,26.406,11.344,55.75,11.969,86.5H263.984z M421.281,117.203c-15.656,9.547-33.344,17.703-52.563,24.266c-13.219-40.938-33.266-74-57.406-94.219C354.906,58.797,393.156,83.609,421.281,117.203z M200.656,47.25c-24.141,20.234-44.188,53.281-57.406,94.203c-19.188-6.563-36.891-14.703-52.531-24.25C118.844,83.625,157.063,58.813,200.656,47.25z M80.969,129.688c17.188,10.703,36.609,19.828,57.75,27.063c-7.469,27.781-11.875,58.656-12.5,91.219H40.313C41.953,203.938,56.688,163.156,80.969,129.688z M40.313,263.969h85.906c0.625,32.688,5.063,63.688,12.594,91.563c-21.094,7.25-40.469,16.359-57.609,27.031C56.75,348.984,41.938,308.109,40.313,263.969z M91.125,395.203c15.875-9.703,33.484-17.797,52.281-24.297c13.219,40.781,33.25,73.703,57.344,93.844C157.344,453.25,119.219,428.594,91.125,395.203z M311.219,464.75c24.25-20.25,44.359-53.438,57.578-94.547c19.281,6.547,37.047,14.719,52.734,24.281C393.313,428.234,354.938,453.156,311.219,464.75z M431.359,381.922c-17.266-10.734-36.781-19.859-58.016-27.063c7.406-27.703,11.781-58.453,12.406-90.891h85.938C470.078,307.859,455.5,348.438,431.359,381.922z\"/></g></svg>");
    /*background-size: contain;*/
    background-size: 65%;
    background-repeat: no-repeat;
    background-position: center;
}

.event-item__bottom {
    flex-wrap: wrap;
    row-gap: 5px;
}

@media (max-width: 500px) {

    /*.maplibre-top.maplibre-left {
        transform: initial;
    }*/

   /* .maplibre-control-zoom.maplibre-bar.maplibre-control {
        position: fixed;
        right: 11px;
        top: 67px;
    }*/

}


#eventFeedIndex {
    min-width: 400px;
}

.pagination__list {
    margin-bottom: 0;
}

@media (max-width: 950px) {
    #sidebar .sidecontent {
        height: 100% !important;
    }
}

@media (max-width: 510px) {

    #listOfEvents {
        padding-right: 30px;
    }

    .event-item__bottom-left {
        padding-right: 7px;
    }

    #sidebar .sidecontent {
        height: calc(100% - 35px) !important;
    }

}


/* 07-10 styles */

.navbar-text:hover {
    filter: brightness(100%);
}

.navbar-text:active {
    transform: translateY(0);
}

#event-feed .input-group input {
    display: flex;
    justify-content: center;
    align-items: center;
}

#panelContent p span {
    color: var(--text-strong) !important;
}

#panelContent p span {
    color: var(--text-strong) !important;
}

#panelContent strong {
    color: var(--text-strong) !important;
}

#tmeSource #eventPanelSource iframe {
    min-width: 330px !important;
    padding-right: 0;
}

#sourceBlock {
    margin-top: 10px;
    word-wrap: break-word;
}

#panelAddInfo {
    flex-wrap: nowrap;
}

#panelAddInfo .event-item__place {
    padding-right: 0;
}

@media (max-width: 400px) {

    #sidebar .event-item__text {
        height: auto;
        text-align: left;
    }

    #sidebar .event-item__bottom-left {
        flex-wrap: wrap;
        row-gap: 5px;
    }

}

.maplibre-control-zoom .maplibre-control-zoom-in,
.maplibre-control-zoom .maplibre-control-zoom-out {
    display: flex !important;
    justify-content: center;
    align-items: center;
}

.maplibre-control-zoom .maplibre-control-zoom-in span,
.maplibre-control-zoom .maplibre-control-zoom-out span {
    height: max-content;
    width: max-content;
    line-height: 0;
}

.maplibre-control-zoom.maplibre-bar.maplibre-control {
    width: 32px;
}


/*
 * map-ui.css — ОГЛАВЛЕНИЕ.
 *
 * Исторически это был монолит на 2248 строк, в котором намешаны стили разных
 * частей интерфейса. Он разбит на тематические файлы в подпапке map-ui/,
 * а здесь остались только @import в ИСХОДНОМ ПОРЯДКЕ — порядок правил CSS важен
 * (каскад/специфичность), поэтому менять последовательность import нельзя.
 *
 * Точки подключения этого файла НЕ менялись: <link> на странице карты и
 * страницах сброса пароля, import в бандлах index и account.
 *
 * Карта тем (по порядку):
 *   01 controls-base      — базовые maplibre-контролы карты + layout сайдбара
 *   02 event-feed         — лента событий (шапка, поиск, карточки списка)
 *   03 sidepanel-detail   — панель детали события (#mySidepanel, источники, связанные)
 *   04 popup-welcome      — приветственный попап + слайдер Swiper
 *   05 sidepanel-wrapper  — обёртка панели, date-picker, .card-title-side
 *   06 search-slider      — очистка поиска + слайдер диапазона дат (jQuery UI)
 *   07 navbar-modals      — навбар + модалки создания события/объекта
 *   08 responsive-a       — адаптив панелей и ленты
 *   09 legend-draw-detail — легенда карты, кнопки рисования, tooltip полигонов
 *   10 responsive-b       — адаптив каскад-кнопок и слайдеров
 *   11 overrides-misc     — разное и поздние override (тосты, пагинация, зум)
 */

        /**---------------------subscribe-buttons-------------------*/
        .navbar-collapse .navbar-text .subscribe-button {
            -webkit-box-pack: center;
            -ms-flex-pack: center;
            -webkit-box-align: center;
            -ms-flex-align: center;
            align-items: center;
            border: 2px solid var(--line-strong);
            border-radius: 2px;
            background: rgb(255, 85, 53);
            background: -o-linear-gradient(81deg, rgb(255, 85, 53) 0%, rgb(254, 127, 69) 54%);
            background: linear-gradient(9deg, rgb(255, 85, 53) 0%, rgb(254, 127, 69) 54%);
            color: #fff;
            cursor: pointer;
            display: flex;
            font-size: 14px;
            height: 24px;
            justify-content: center;
            padding: 3px 7px;
            position: relative;
        }

        .navbar-collapse .navbar-text .subscribe-button:hover {
            filter: brightness(140%);
        }


        .navbar-collapse .navbar-text .subscribe-button::after {
            display: none;
        }

        .popup-welcome__text a {
            color: #fe7f45;
        }

        .popup-welcome__text a:hover {
            color: var(--text-muted);
        }

        .index-sidebar__content {
            overflow: auto;
            padding: 20px;
        }


/* Styles for the replaceable SVG world map on the index page. */

/* Палитра плоской карты — по мотивам глобуса (PALETTE в index-globe.js),
   суша чуть контрастнее к океану. */
:root {
    --wm-ocean: #101820;
    --wm-ocean-glow: #172231;
    --wm-land: #353d4a;
    --wm-border: #626e80;
    --wm-active: #e78b71;
    --wm-hover: #ff6c3e;
    --wm-hover-stroke: #ffe3d6;
}

:root[data-theme="light"] {
    --wm-ocean: #c3d3e3;
    --wm-ocean-glow: #d6e2ee;
    --wm-land: #fbfcfd;
    --wm-border: #8595a8;
    --wm-active: #f0a184;
    --wm-hover: #ff6c3e;
    --wm-hover-stroke: #ffffff;
}

html,
body {
    overflow: hidden;
}

#indexWrapper {
    position: fixed;
    top: 56px;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    height: auto !important;
    overflow: hidden;
}

#world-map {
    position: relative;
    /* Океан: светлее к центру, темнее к краям. */
    background: radial-gradient(ellipse at 50% 45%, var(--wm-ocean-glow) 0%, var(--wm-ocean) 75%);
    overflow: hidden;
}

#eventFeedIndex {
    height: 100%;
    overflow: hidden;
}

.index-world-map {
    width: 100%;
    height: 100%;
    overflow: hidden;
    touch-action: none;
}

.index-world-map__svg {
    width: 100%;
    height: 100%;
    display: block;
    touch-action: none;
    user-select: none;
    /* Мягкая тень под сушей — материки чуть «приподняты» над океаном. */
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
}

.index-world-map__country {
    stroke: var(--wm-border);
    stroke-width: 0.75;
    vector-effect: non-scaling-stroke;
    transition: fill 0.15s ease, stroke 0.15s ease;
}

.index-world-map__country--active {
    fill: var(--wm-active);
    cursor: pointer;
}

.index-world-map__country--active:hover,
.index-world-map__country--active:focus {
    fill: var(--wm-hover);
    stroke: var(--wm-hover-stroke);
    stroke-width: 1.2;
    outline: none;
}

.index-world-map__country--inactive {
    fill: var(--wm-land);
    cursor: grab;
}

.index-map-tip {
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    color: var(--text-strong);
    font-family: "Roboto", "Arial", sans-serif;
    font-size: 20px;
    line-height: 1.2;
    pointer-events: none;
    text-align: center;
}

.index-map-controls {
    position: absolute;
    left: 20px;
    bottom: 20px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.index-map-control {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid var(--line-strong);
    border-radius: 4px;
    background-color: var(--bg-control);
    box-shadow: 0 0 40px 0 rgba(var(--bg-2-rgb), 0.33);
    color: var(--text);
    cursor: pointer;
    font-size: 27px;
    line-height: 1;
}

.index-map-control:hover {
    filter: brightness(130%);
}

.index-map-control:active {
    transform: translateY(1px);
}

.map-slate {
    position: absolute;
    right: 20px;
    bottom: 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 220px;
    height: 120px;
    border-radius: 3px;
    border: 1px solid var(--line-strong);
    background: rgba(var(--bg-2-rgb), 0.85);
    z-index: 1;
}

.map-slate__available,
.map-slate__unavailable {
    position: relative;
    width: 100%;
    height: 45%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 80px;
    padding-top: 7px;
    color: var(--text-strong);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;
}

.map-slate__available::after,
.map-slate__unavailable::after {
    content: '';
    position: absolute;
    top: calc(50% + 3px);
    left: 24px;
    width: 34px;
    height: 24px;
    transform: translateY(-50%);
    border: 1px solid var(--wm-border);
    border-radius: 3px;
}

/* Образцы заливки — теми же цветами, что на карте. */
.map-slate__available::after {
    background: var(--wm-active);
}

.map-slate__unavailable::after {
    background: var(--wm-land);
}

@media (max-width: 800px), (max-height: 300px) {
    .map-slate {
        display: none;
    }

    #world-map {
        width: 100% !important;
    }

    #eventFeedIndex {
        display: none;
    }
}

/* Кнопка «Весь мир» (staff): слева сверху, в обоих режимах главной. */
.index-world-link {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    color: var(--text);
    font-size: 14px;
    text-decoration: none;
    background: var(--bg-control);
    border: 1px solid var(--line-strong);
    border-radius: 4px;
}

.index-world-link svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
}

.index-world-link:hover {
    color: #fff;
    background: #fe7f45;
    border-color: #fe7f45;
}

@media (max-width: 800px) {
    .index-world-link {
        top: 10px;
        left: 10px;
    }
}

/* Переключатель «Карта / Глобус». */
.index-view-switch {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 3;
    display: flex;
    overflow: hidden;
    background: var(--bg-control);
    border: 1px solid var(--line-strong);
    border-radius: 4px;
}

.index-view-switch__btn {
    min-width: 76px;
    height: 32px;
    padding: 0 12px;
    color: var(--text);
    font-size: 14px;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.index-view-switch__btn.is-active {
    color: #fff;
    background: #fe7f45;
}

/* Режим глобуса: карта-SVG, её кнопки, плашка и лента скрыты; глобус на всю ширину. */
#indexWrapper.is-globe #world-map {
    width: 100% !important;
}

#indexWrapper.is-globe #eventFeedIndex,
#indexWrapper.is-globe .index-world-map,
#indexWrapper.is-globe .index-map-controls,
#indexWrapper.is-globe .map-slate,
#indexWrapper.is-globe .index-map-tip {
    display: none;
}

#indexWrapper:not(.is-globe) #indexGlobe {
    display: none;
}

@media (max-width: 800px) {
    .index-view-switch {
        top: 10px;
        right: 10px;
    }
}

