:root {
  --blue: #3b84e1;
  --white: #fff;
  --sky: #8fd3f0;
  --ink: #3b84e1;
  --crop-x: 42;
  --crop-y: 155;
  --crop-w: 1503;
  --crop-h: 650;
  --source-w: 1597;
  --source-h: 991;
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
}

:focus-visible {
    outline: 0px;
}

body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(120% 70% at 50% -18%, rgba(143, 211, 240, 0.58), transparent 62%),
    radial-gradient(120% 76% at 50% 118%, rgba(59, 132, 225, 0.2), transparent 58%),
    linear-gradient(180deg, #fff 0%, rgba(143, 211, 240, 0.2) 47%, #fff 100%);
  overflow-x: hidden;
  isolation: isolate;
}

body::before {
  content: "";
  position: fixed;
  width: min(82vw, 980px);
  aspect-ratio: 1;
  right: max(-220px, -12vw);
  top: max(-250px, -18vw);
  pointer-events: none;
  border-radius: 50%;
  background-image:
    radial-gradient(ellipse 10% 46% at 50% 50%, transparent 96%, rgba(59, 132, 225, 0.2) 97%, transparent 98%),
    radial-gradient(ellipse 24% 48% at 50% 50%, transparent 96%, rgba(59, 132, 225, 0.18) 97%, transparent 98%),
    radial-gradient(ellipse 42% 49% at 50% 50%, transparent 96%, rgba(59, 132, 225, 0.16) 97%, transparent 98%),
    radial-gradient(ellipse 58% 50% at 50% 50%, transparent 96%, rgba(59, 132, 225, 0.14) 97%, transparent 98%),
    radial-gradient(ellipse 44% 7% at 50% 35%, transparent 95%, rgba(143, 211, 240, 0.38) 96%, transparent 98%),
    radial-gradient(ellipse 50% 11% at 50% 43%, transparent 95%, rgba(143, 211, 240, 0.34) 96%, transparent 98%),
    radial-gradient(ellipse 52% 14% at 50% 50%, transparent 95%, rgba(143, 211, 240, 0.36) 96%, transparent 98%),
    radial-gradient(ellipse 50% 11% at 50% 57%, transparent 95%, rgba(143, 211, 240, 0.3) 96%, transparent 98%),
    radial-gradient(ellipse 44% 7% at 50% 65%, transparent 95%, rgba(143, 211, 240, 0.28) 96%, transparent 98%),
    radial-gradient(circle at 50% 50%, transparent 60%, rgba(59, 132, 225, 0.2) 61%, transparent 62%),
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.5), rgba(143, 211, 240, 0.18) 52%, transparent 68%);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.74), transparent 86%);
  opacity: 0.92;
  transform: rotate(-8deg);
}

body::after {
  content: "";
  position: fixed;
  width: min(54vw, 660px);
  aspect-ratio: 1;
  left: max(-210px, -14vw);
  bottom: max(-260px, -20vw);
  pointer-events: none;
  border-radius: 50%;
  background-image:
    radial-gradient(ellipse 18% 48% at 50% 50%, transparent 96%, rgba(59, 132, 225, 0.12) 97%, transparent 98%),
    radial-gradient(ellipse 38% 50% at 50% 50%, transparent 96%, rgba(59, 132, 225, 0.1) 97%, transparent 98%),
    radial-gradient(ellipse 52% 11% at 50% 42%, transparent 95%, rgba(143, 211, 240, 0.24) 96%, transparent 98%),
    radial-gradient(ellipse 56% 15% at 50% 50%, transparent 95%, rgba(143, 211, 240, 0.26) 96%, transparent 98%),
    radial-gradient(ellipse 52% 11% at 50% 58%, transparent 95%, rgba(143, 211, 240, 0.2) 96%, transparent 98%),
    radial-gradient(circle at 50% 50%, transparent 60%, rgba(59, 132, 225, 0.12) 61%, transparent 62%),
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.42), rgba(143, 211, 240, 0.14) 54%, transparent 69%);
  mask-image: radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.5) 0 62%, transparent 66%);
  opacity: 0.76;
  transform: rotate(11deg);
}

.page {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  padding: clamp(11px, 1.5vw, 23px) clamp(22px, 3vw, 46px);
}

.shell {
  width: min(100%, 1510px);
  margin: 0 auto;
}

.topbar {
  display: grid;
  grid-template-columns: minmax(230px, 0.9fr) minmax(360px, 1.15fr) minmax(410px, 1fr);
  gap: 18px;
  align-items: start;
  padding: 16px;
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.14), transparent 48%),
    var(--blue);
  box-shadow:
    0 30px 76px rgba(59, 132, 225, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

.brand {
  min-width: 0;
  padding: 6px 4px 4px 8px;
}

.logo {
  display: block;
  width: 154px;
  height: auto;
  filter: brightness(0) invert(1);
}

.tagline {
  margin: 7px 0 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  line-height: 1.35;
  white-space: nowrap;
}

.stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding-top: 2px;
  min-width: 0;
}

.pill,
.button,
.scale {
  border: 1px solid rgba(255, 255, 255, 0.32);
  background:
    linear-gradient(180deg, rgba(59, 132, 225, 0.96), rgba(59, 132, 225, 0.72));
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    0 12px 24px rgba(59, 132, 225, 0.22);
  backdrop-filter: blur(14px) saturate(135%);
}

.pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 13px;
  border-radius: 13px;
  font-size: 17px;
  font-weight: 760;
  letter-spacing: 0;
  white-space: nowrap;
}

.chevron {
  width: 9px;
  height: 9px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg) translateY(-2px);
  flex: 0 0 auto;
}

.actions {
  display: grid;
  gap: 13px;
  justify-items: end;
  min-width: 0;
}

.button {
  appearance: none;
  min-height: 38px;
  padding: 0 30px;
  border-radius: 999px;
  font: inherit;
  font-size: 14px;
  font-weight: 650;
  white-space: nowrap;
}

.toolrow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  width: 100%;
  min-width: 0;
}

.scale {
  display: inline-flex;
  align-items: center;
  gap: 30px;
  min-height: 36px;
  padding: 0 13px;
  border-radius: 12px;
  font-size: 17px;
  font-weight: 760;
  white-space: nowrap;
}

.toggle-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  white-space: nowrap;
  background: inherit;
    border: 0px;
    padding: 0px;
}

.switch {
  position: relative;
  width: 48px;
  height: 26px;
  border-radius: 999px;
  background: rgba(59, 132, 225, 0.86);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.36),
    inset 0 8px 18px rgba(59, 132, 225, 0.08);
  flex: 0 0 auto;
  cursor: pointer;
}

.switch::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 4px;
  top: 4px;
  border-radius: 50%;
  background: var(--sky);
  box-shadow: 0 3px 10px rgba(59, 132, 225, 0.28);
  transition: transform 180ms ease;
}

#type-map_button.is-google .switch::after {
  transform: translateX(21px);
}

.map-wrap {
  position: relative;
  margin-top: clamp(11px, 2.4vw, 31px);
  border-radius: 28px;
  padding: 1px;
  background: linear-gradient(135deg, #fff, rgba(143, 211, 240, 0.86) 46%, rgba(59, 132, 225, 0.22));
  box-shadow:
    0 34px 100px rgba(59, 132, 225, 0.2),
    0 12px 34px rgba(143, 211, 240, 0.34);
}

.map-wrap::before,
.map-wrap::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: -1;
}

.map-wrap::before {
  inset: -30px 5% auto;
  height: 96px;
  background: linear-gradient(90deg, transparent, rgba(143, 211, 240, 0.5), rgba(59, 132, 225, 0.22), transparent);
  filter: blur(28px);
}

.map-wrap::after {
  inset: auto 9% -30px;
  height: 82px;
  background: linear-gradient(90deg, transparent, rgba(59, 132, 225, 0.18), rgba(143, 211, 240, 0.42), transparent);
  filter: blur(34px);
}

.map-card {
  position: relative;
  width: 100%;
  aspect-ratio: 1503 / 650;
  overflow: hidden;
  border-radius: 27px;
  background: var(--blue);
  isolation: isolate;
}

.map-card img {
  position: absolute;
  left: calc(var(--crop-x) / var(--crop-w) * -100%);
  top: calc(var(--crop-y) / var(--crop-h) * -100%);
  width: calc(var(--source-w) / var(--crop-w) * 100%);
  height: calc(var(--source-h) / var(--crop-h) * 100%);
  object-fit: fill;
  user-select: none;
  pointer-events: none;
  max-width: none;
}

.map-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.38),
    inset 0 1px 0 rgba(255, 255, 255, 0.52);
}

@media (max-width: 1180px) {
  .topbar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .brand,
  .actions {
    justify-items: start;
  }

  .stats {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .toolrow {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

@media (max-width: 680px) {
  .page {
    padding: 7px 14px;
  }

  .topbar {
    border-radius: 22px;
    padding: 13px;
  }

  .tagline {
    white-space: normal;
  }

  .pill,
  .scale {
    min-height: 34px;
    font-size: 15px;
  }

  .button {
    width: 100%;
  }

  .actions,
  .toolrow {
    width: 100%;
  }

  .map-wrap,
  .map-card {
    border-radius: 20px;
  }
}

/* ========== OLD FUNCTIONAL COMPONENTS ========= */

button {
      font: inherit;
    }

.dropdown {
      position: relative;
    }

.menu {
      z-index: 10;
      position: absolute;
      top: calc(100% + 10px);
      left: 0;
      width: auto;
      max-height: min(470px, calc(100vh - 190px));
      margin: 0;
      padding: 8px;
      border: 1px solid rgba(21, 27, 32, 0.12);
      border-radius: 16px;
      list-style: none;
      background: rgba(255, 255, 255, 0.96);
      box-shadow: var(--shadow);
      opacity: 0;
      transform: translateY(-6px) scale(0.98);
      pointer-events: none;
      overflow: auto;
      transition: opacity 160ms ease, transform 160ms ease;
      min-width: 270px;
      min-height: 200px;
      
    }

.dropdown.is-open .menu {
      opacity: 1;
      transform: translateY(0) scale(1);
      pointer-events: auto;
    }

.menu li {
      display: flex;
      align-items: center;
      gap: 10px;
      min-height: 38px;
      padding: 9px 10px;
      border-radius: 11px;
      color: #222a31;
      font-size: 14px;
      line-height: 1.2;
    }

#countries-menu li {
      justify-content: space-between;
    }

.menu li:hover {
      background: #f1f7f4;
    }

.menu li[aria-disabled="true"] {
      color: var(--muted);
      background: transparent;
      cursor: default;
    }

.menu-group {
      padding: 7px 0 4px;
    }

.menu-group + .menu-group {
      border-top: 1px solid rgba(21, 27, 32, 0.08);
    }

.menu-heading {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 10px 5px;
      color: #52616d;
      font-size: 12px;
      font-weight: 700;
      line-height: 1;
      text-transform: uppercase;
      max-width: 120px;
    }

.menu-group ul {
      margin: 0;
      padding: 0;
      list-style: none;
    }

.menu-dot {
      flex: 0 0 10px;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: var(--dot, #8fd3f0);
      box-shadow: 0 0 0 4px color-mix(in srgb, var(--dot, #8fd3f0) 18%, transparent);
    }

.country-name {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      min-width: 0;
      margin-right: auto;
    }

.add-city-button {
      display: inline-grid;
      place-items: center;
      flex: 0 0 24px;
      width: 24px;
      height: 24px;
      border: 1px solid rgba(21, 27, 32, 0.13);
      border-radius: 50%;
      color: #1d525d;
      background: #ffffff;
      cursor: pointer;
      font-size: 17px;
      line-height: 1;
      box-shadow: 0 5px 12px rgba(28, 39, 48, 0.07);
      transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
      padding: 0px 4px 1px 4.5px;
    }

.add-city-button:hover,
    .add-city-button:focus {
      transform: translateY(-1px);
      border-color: rgba(47, 157, 146, 0.46);
      box-shadow: 0 8px 18px rgba(47, 157, 146, 0.14);
      outline: none;
    }

.world-map {
      width: min(100%); /*min(100%, 1120px);*/
      height: auto;
      max-height: 100%;
      aspect-ratio: 2000 / 857;
      display: block;
      filter: drop-shadow(0 18px 26px rgba(38, 99, 128, 0.16));
    }

.real-world-map {
      overflow: visible;
    }

.real-world-map .real-ocean {
      fill: var(--main);
      pointer-events: none;
    }

.real-world-map path {
      fill: var(--land);
      stroke: rgba(255, 255, 255, 0.85);
      stroke-width: 0.7;
      vector-effect: non-scaling-stroke;
      transition: filter 170ms ease, opacity 170ms ease, transform 170ms ease;
    }

.map-country {
      cursor: pointer;
      transform-box: fill-box;
      transform-origin: center;
    }

.selected-country,
    .country {
      stroke: rgba(255, 255, 255, 0.96);
      stroke-width: 1.1;
      cursor: pointer;
    }

.map-country:hover,
    .map-country:focus,
    .map-country.is-hovered {
      filter: drop-shadow(0 7px 11px rgba(21, 27, 32, 0.18));
      outline: none;
      opacity: 0.92;
      transform: translateY(-1px);
    }

.selected-country:hover,
    .selected-country:focus,
    .selected-country.is-hovered {
      filter: drop-shadow(0 9px 13px rgba(21, 27, 32, 0.28));
      outline: none;
      opacity: 0.98;
      transform: translateY(-1px);
    }

.real-world-map .selected-country {
      fill: var(--selected-fill, #2f9d92);
    }

.real-world-map .selected-country.country-usa { --selected-fill: var(--usa); }

.real-world-map .selected-country.country-brazil { --selected-fill: var(--brazil); }

.real-world-map .selected-country.country-france { --selected-fill: var(--france); }

.real-world-map .selected-country.country-india { --selected-fill: var(--india); }

.real-world-map .selected-country.country-japan { --selected-fill: var(--japan); }

.map-tooltip {
      position: fixed;
      z-index: 20;
      display: none;
      padding: 9px 12px;
      border: 1px solid rgba(21, 27, 32, 0.12);
      border-radius: 12px;
      color: #11171c;
      background: rgba(255, 255, 255, 0.96);
      box-shadow: 0 16px 36px rgba(21, 27, 32, 0.18);
      font-size: 14px;
      line-height: 1;
      pointer-events: none;
      transform: translate(12px, -18px);
      white-space: nowrap;
    }

@media (max-width: 760px) {
.menu {
        width: 100%;
      }

/* .map-wrap {
        inset: 210px 8px 18px;
      }*/

.world-map {
        width: 820px;
        max-width: none;
      }
}

.city-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.city-modal.is-open {
  display: flex;
}

.city-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.city-modal__box {
  position: relative;
  z-index: 1;
  width: min(100%, 380px);
  padding: 22px;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 20px 55px rgba(29, 42, 52, 0.24);
}

.city-modal__box h2 {
  margin: 0 0 16px;
  color: var(--ink);
}

.city-modal__box label {
  display: grid;
  gap: 7px;
  margin-bottom: 14px;
  color: #52616d;
  font-size: 13px;
  font-weight: 700;
}

.city-modal__box input {
  width: 100%;
  height: 42px;
  padding: 0 12px;
  border: 1px solid rgba(21, 27, 32, 0.16);
  border-radius: 12px;
  font: inherit;
}

.city-modal__submit {
  width: 100%;
  height: 44px;
  border: 0;
  border-radius: 12px;
  color: #ffffff;
  background: var(--main);
  cursor: pointer;
  font-weight: 700;
}

.city-modal__close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 30px;
  height: 30px;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
}

.city-country-name {
  height: 42px;
  padding: 0 12px;
  display: flex;
  align-items: center;
  border: 1px solid rgba(21, 27, 32, 0.16);
  border-radius: 12px;
  background: #f5f7fa;
}

.city-suggestions {
  display: none;
  margin: 6px 0 0;
  padding: 6px;
  list-style: none;
  border: 1px solid rgba(21, 27, 32, 0.12);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(28, 39, 48, 0.12);
  max-height: 180px;
  overflow: auto;
}

.city-suggestions.is-open {
  display: block;
}

.city-suggestions li {
  padding: 9px 10px;
  border-radius: 9px;
  cursor: pointer;
  font-size: 14px;
  color: #222a31;
}

.city-suggestions li:hover {
  background: #f1f7f4;
}

.city-suggestions .city-suggestion-muted {
  color: var(--muted);
  cursor: default;
}

.city-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.city-remove-button {
  width: 18px;
  height: 18px;
  border: 0;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  opacity: 0.7;
  margin-right: -18px;
  padding: 0px;
}

.country-remove-button {
    width: 18px;
    height: 18px;
    border: 0;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    opacity: 0.7;
    margin-left: -10px;
	padding-bottom: 20px;
}

.city-remove-button:hover, .country-remove-button:hover{
  color: #111827;
  opacity: 1;
}

.city-modal__submit:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.city-modal__error {
  margin: 0 0 10px;
  color: #d93025;
  font-size: 13px;
  font-weight: 700;
}

.city-modal__submit.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/*search country*/

.country-search, .city-global-search {
  position: relative;
  display: flex;
  z-index: 3;
	margin-bottom: 5px;
}

.cities-list-items {
	padding: 0px;
}

.country-search__input {
    flex: 1;
    height: 40px;
    padding: 0 14px;
    border: 1px solid rgba(21, 27, 32, 0.16);
    border-radius: 12px 0px 0px 12px;
    border-right: 0px;
    width: 100%;
}

.country-search__button {
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 50px;
    padding: 0 10px;
    border: 1px solid rgba(21, 27, 32, 0.14);
    border-radius: 0px 12px 12px 0px;
    color: #fff;
    font-weight: 700;
    background: #3b84e1;
    box-shadow: 0 10px 25px rgba(22, 32, 42, 0.08);
    cursor: pointer;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
    font-size: 12px;
    text-decoration: none;
}

.country-search__button:hover {
    transform: translateY(-1px);
    border-color: rgba(21, 27, 32, 0.28);
}

.country-search__suggestions {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 82px;
  z-index: 20;
  display: none;
  margin: 0;
  padding: 6px;
  list-style: none;
  border: 1px solid rgba(21, 27, 32, 0.12);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--shadow);
  min-width: 240px;
}

.country-search__suggestions.is-open {
  display: block;
}

.country-search__suggestions li {
  padding: 9px 10px;
  border-radius: 9px;
  cursor: pointer;
  font-size: 14px;
}

.country-search__suggestions li:hover {
  background: #f1f7f4;
}

#countries-list {
	padding-left: 0px;
	width: 100%;
	
}

/*scale-map*/

.add-button-map {
    position: absolute;
    right: 10px;
    top: 15px;
}

.add-button-map:hover .scale-map_button{
	transform: translateY(-1px);
}

.scale-map_button {
	background: none;
    border: 0px;
    border-radius: 25px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3px;
    background-color: white;
    cursor: pointer;
	box-shadow: 0 9px 22px rgb(0 0 0 / 25%);
}

.scale-map_button svg {
	width: 100%;
    height: 100%;
}

.scale-map_menu {
    position: absolute;
    /*top: 48px;
    right: 0;*/
    display: none;
    min-width: 180px;
    z-index: 100;
}

.scale-map_menu.is-open {
    opacity: 1;
    display: block;
    left: auto;
}

.scale-map_menu li {
    padding: 10px 14px;
    cursor: pointer;
    transition: background .15s;
}

.scale-map_menu li:hover {
    background: #f4f6f8;
}

.add-button-map {
    z-index: 50;
}

.scale-map_menu {
    pointer-events: auto;
}

.type-map {
	top: 28px;
    right: 15px;
}

.scale-map {
	z-index: 51;
}

#svg-map {
	width: 100%;
    height: auto;
}

.google-map {
	width: min(100%);
    height: auto;
    max-height: 100%;
    aspect-ratio: 2000 / 857;
	border-radius: 10px;
	min-height: 300px;
}

.google-map-wrapper {
	width: 100%;
}

.real-world-map {
  transition: viewBox 0.4s ease;
}

.map-country {
    transition: opacity .3s ease, fill .3s ease;
}

.map-country.is-muted {
    opacity: .2;
}

button.bg-gray-800 {
    background-color: var(--main);
}

button.bg-gray-800:hover {
    opacity: 0.8 !important;
	background-color: var(--main) !important;
}

button.bg-gray-800:focus {
    opacity: 0.8 !important;
	background-color: var(--main) !important;
	--tw-ring-color: var(--main) !important;
}

button.bg-red-600 {
    background-color: var(--gray);
    color: black;
}

button.bg-red-600:hover {
	opacity: 0.8 !important;
	background-color: var(--gray) !important;
}

button.bg-red-600:focus {
	opacity: 0.8 !important;
	background-color: var(--gray) !important;
	--tw-ring-color: var(--gray) !important;
}

div.shadow {
	box-shadow: var(--shadow) ;
}

/*scale-map*/

.city-modal__added-title {
	margin-top: 10px;
}

.city-modal__added-list {
	padding-left: 0px;
    margin: 5px 0px 0px;
    list-style-position: inside;
}

.city-modal__added-list .city-remove-button {
	margin-left: 5px;
}

.select-panel-level {
	width: auto;
	display: flex;
}

.double-function {
	position: relative;
    display: flex;
	width: 100%;
    max-width: 380px;
}

.button-map-input {
	color: white;
	font-size: 20px;
	padding: 0px;
	min-width: 33px;
	border-left: 0px;
	border: 0px;
	display: block;
	height: 100%;
	padding-bottom: 4px;
}

.link-share-map {
	display: flex;
	background-color: white;
	border-radius: 12px;
	font-size: 12px;
	align-items: center;
	padding: 0px 0px 0px 10px;
	gap: 10px;
	box-shadow: var(--shadow);
}

.link-share-map__a {
	color: #3b84e1;
    font-weight: 700;
}

.cities-list-items .menu-group {
	padding: 0px;
}

.hidden {
	display: none;
}

@media (max-width: 1500px) {
.hidden-1500 {
		display: none;
	}
}

.city-modal__box-footer {
	display: flex;
    justify-content: space-between;	
}

/*scroll*/

/* Chrome, Edge, Safari */

.custom-scroll::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.custom-scroll::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 999px;
}

.custom-scroll::-webkit-scrollbar-thumb {
    background: rgb(59 132 225) #ffffff00;
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

.custom-scroll::-webkit-scrollbar-thumb:hover {
    background: rgb(99 152 219) #ffffff00;
    background-clip: padding-box;
}

.custom-scroll::-webkit-scrollbar-corner {
    background: transparent;
}

/* Firefox */

.custom-scroll {
    scrollbar-width: thin;
    scrollbar-color: rgb(59 132 225) #ffffff00;
}

.custom-scroll:hover {
    scrollbar-color: rgb(99 152 219) #ffffff00;
}

/*scroll*/

.footer-map {
  margin-top: 18px;
}

.footer-map__share {
  display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.scale-map-header {
	position: relative;
}

/*save google map*/

.save-place-panel {
  position: absolute;
  z-index: 1000;
  margin-top: 10px;
  width: 240px;
  padding: 14px;
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow);
  border: 1px solid rgba(21, 27, 32, 0.12);
}

.save-place-panel__close {
  position: absolute;
  top: 0px;
  right: 10px;
  border: 0;
  background: transparent;
  font-size: 22px;
  cursor: pointer;
}

.save-place-panel__button {
  width: 100%;
  border: 0;
  border-radius: 12px;
  padding: 10px 14px;
  background: var(--main);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  margin-top: 15px
}

.save-place-panel {
    left: -120px;
    top: 40px;
}

/*save google map*/

/* =========================================================
   COMPATIBILITY LAYER
   Новый дизайн поверх существующей HTML-разметки Rightpins
   ========================================================= */

:root {
  --blue: #3b84e1;
  --main: #3b84e1;
  --white: #fff;
  --sky: #8fd3f0;
  --land: #8fd3f0;
  --ink-dark: #151b20;
  --muted: #68737d;
  --line: rgba(21, 27, 32, 0.12);
  --gray: #e5e7eb;
  --shadow: 0 20px 55px rgba(29, 42, 52, 0.14);
  --usa: #ff6b4a;
  --brazil: #33b879;
  --france: #8067f2;
  --india: #f2b63d;
  --japan: #e84f91;
}

button,
input,
select,
textarea {
  font: inherit;
}

.page {
  width: auto;
  margin: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}


.account-row {
  position: relative;
  z-index: 20;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  min-height: 88px;
  padding: 16px 20px;
  
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.14), transparent 48%),
    var(--blue);
  box-shadow:
    0 30px 76px rgba(59, 132, 225, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

.rp {
  display: inline-flex;
  align-items: start;
  flex: 0 0 auto;
  gap: 10px;
  margin-right: auto;
  color: #fff;
  text-decoration: none;
}

.rp svg {
  display: block;
  width: min(206px, 100%);
  max-width: 206px;
  height: auto;
  margin: 0;
}

.rp h1 {
  margin: 0;
  color: #fff;
}

.header-map-controls-slot,
.subheader-map-controls-slot {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
}

.header-map-controls-slot {
  justify-content: center;
  margin: 0;
}

.subheader-map-controls-slot {
  justify-content: flex-start;
}


.controls {
  position: relative;
  z-index: 15;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 14px 0 0;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 52%),
    var(--blue);
  box-shadow:
    0 20px 50px rgba(59, 132, 225, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.login,
.filter-button,
.static-button,
.save-map-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: auto;
  min-height: 36px;
  height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 13px;
  color: #fff;
  background:
    linear-gradient(180deg, rgba(59, 132, 225, 0.96), rgba(59, 132, 225, 0.72));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    0 12px 24px rgba(59, 132, 225, 0.22);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
  backdrop-filter: blur(14px) saturate(135%);
  transition:
    transform 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    opacity 160ms ease;
}

.login:hover,
.filter-button:hover,
.static-button:hover,
.save-map-button:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 255, 255, 0.58);
  background:
    linear-gradient(180deg, rgba(78, 149, 236, 0.98), rgba(59, 132, 225, 0.8));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 15px 30px rgba(31, 96, 180, 0.28);
}

.filter-button[aria-expanded="true"] {
  border-color: rgba(255, 255, 255, 0.72);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 15px 32px rgba(31, 96, 180, 0.34);
}

.static-button:disabled,
.save-map-button:disabled,
.login:disabled {
  opacity: 0.55;
  cursor: default;
  transform: none;
}

.button-label {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
}

.button-mark {
  flex: 0 0 auto;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ff, var(--sky));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ff, var(--sky)) 20%, transparent);
}

.chevron {
  flex: 0 0 auto;
  width: 9px;
  height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  opacity: 0.9;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 160ms ease;
}

.filter-button[aria-expanded="true"] .chevron {
  transform: rotate(225deg) translateY(-1px);
}

.left-button-header {
  margin-left: auto;
}

/* Новая рамка карты поверх старой структуры:
   .map-stage = внешний контейнер,
   .map-stage > .map-wrap = внутренняя карточка */
.map-stage {
  position: relative;
  display: block;
  margin-top: clamp(11px, 2.4vw, 31px);
  padding: 1px;
  border: 0;
  border-radius: 28px;
  background:
    linear-gradient(
      135deg,
      #fff,
      rgba(143, 211, 240, 0.86) 46%,
      rgba(59, 132, 225, 0.22)
    );
  box-shadow:
    0 34px 100px rgba(59, 132, 225, 0.2),
    0 12px 34px rgba(143, 211, 240, 0.34);
  overflow: visible;
}

.map-stage::before,
.map-stage::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.map-stage::before {
  inset: -30px 5% auto;
  height: 96px;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(143, 211, 240, 0.5),
      rgba(59, 132, 225, 0.22),
      transparent
    );
  filter: blur(28px);
}

.map-stage::after {
  inset: auto 9% -30px;
  height: 82px;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(59, 132, 225, 0.18),
      rgba(143, 211, 240, 0.42),
      transparent
    );
  filter: blur(34px);
}

.map-stage > .map-wrap {
  position: relative;
  display: block;
  width: 100%;
  min-height: 300px;
  aspect-ratio: 1503 / 650;
  margin: 0;
  padding: 0;
  border-radius: 27px;
  background: var(--blue);
  overflow: hidden;
  isolation: isolate;
  box-shadow: none;
}

.map-stage > .map-wrap::before,
.map-stage > .map-wrap::after {
  display: none;
}

.map-stage > .map-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 30;
  display: block;
  pointer-events: none;
  border-radius: inherit;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.38),
    inset 0 1px 0 rgba(255, 255, 255, 0.52);
}

.map-header {
  display: none;
}

#svg-map,
.google-map-wrapper {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
}

.world-map,
.google-map {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 300px;
  max-height: none;
  aspect-ratio: 1503 / 650;
  border-radius: 27px;
}

.world-map {
  object-fit: contain;
}

.google-map {
  overflow: hidden;
}

.real-world-map {
  overflow: visible;
}

.real-world-map .real-ocean {
  fill: var(--blue);
}

/* Меню должны находиться выше карты и декоративной рамки */
.dropdown {
  position: relative;
}

.menu,
.scale-map_menu,
.country-search__suggestions,
.city-suggestions {
  z-index: 1000;
}

/* Попапы нового дизайна */
.city-modal {
  z-index: 2000;
}

.city-modal__overlay {
  background: rgba(22, 47, 82, 0.46);
  backdrop-filter: blur(5px);
}

.city-modal__box {
  border: 1px solid rgba(59, 132, 225, 0.16);
  border-radius: 22px;
  box-shadow:
    0 28px 80px rgba(44, 93, 155, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.city-modal__submit,
.country-search__button,
.save-place-panel__button {
  background:
    linear-gradient(180deg, #4b92e9, var(--blue));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    0 10px 24px rgba(59, 132, 225, 0.25);
}

.save-place-panel {
  border: 1px solid rgba(59, 132, 225, 0.16);
  box-shadow: 0 22px 58px rgba(44, 93, 155, 0.26);
}

/* Служебные блоки */
.hidden {
  display: none;
}

.footer-map {
  position: relative;
  z-index: 5;
}

@media (max-width: 1180px) {
  .account-row {
    flex-wrap: wrap;
    border-radius: 24px;
  }

  .rp {
    width: 100%;
  }

  .left-button-header {
    margin-left: 0;
  }
}
@media (max-width: 1000px) {
  .header-map-controls-slot {
    justify-content: flex-start;
    width: 100%;
  }

}
@media (max-width: 760px) {
  .page {
    padding: 7px 14px;
  }

  .account-row {
    padding: 13px;
    border-radius: 22px;
  }

  .rp {
    justify-content: center;
  }

  .rp svg {
    width: min(206px, 82vw);
  }

  .controls,
  .header-map-controls-slot,
  .subheader-map-controls-slot {
    width: 100%;
  }

  .map-stage,
  .map-stage > .map-wrap,
  .world-map,
  .google-map {
    border-radius: 20px;
  }

  .map-stage > .map-wrap {
    aspect-ratio: auto;
    overflow: auto;
  }

  .world-map {
    width: 820px;
    max-width: none;
    height: auto;
    min-height: 350px;
  }
}
.header-right {
  display: flex;
  gap: 13px;
  flex-direction: column;
}
.header-auth-actions {
 
  justify-content: flex-end;
  display: flex;
  gap: 13px;
}

.header-level-2 {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
 
  min-width: 0;
}

/* Login modal */

.city-modal__box {
  position: relative;
  z-index: 1;
  width: min(100%, 380px);
  padding: 22px;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 20px 55px rgba(29, 42, 52, 0.24);
}

.city-modal__box h2 {
  margin: 0 0 16px;
  color: var(--main);
}

.city-modal__box label {
  display: grid;
  gap: 7px;
  margin-bottom: 14px;
  color: #52616d;
  font-size: 13px;
  font-weight: 700;
}

.city-modal__box input {
  width: 100%;
  height: 42px;
  padding: 0 12px;
  border: 1px solid rgba(21, 27, 32, 0.16);
  border-radius: 12px;
  font: inherit;
}

.city-modal__submit {
  width: 100%;
  height: 44px;
  border: 0;
  border-radius: 12px;
  color: #ffffff;
  background: var(--main);
  cursor: pointer;
  font-weight: 700;
}

.city-modal__close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 30px;
  height: 30px;
  border: 0;
  background: transparent;
  color: #151b20;
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
}

/* Remember me */

.login-modal__remember {
  display: flex !important;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  font-size: 13px;
}

.login-modal__remember input {
  flex: 0 0 auto;
  width: 14px !important;
  height: 14px !important;
  margin: 0;
}

.login-modal__remember span {
  display: inline-block;
}

/* Google button */

.login-modal__google {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 44px;
  margin-top: 10px;
  border-radius: 12px;
  color: #ffffff;
  background: #151b20;
  text-decoration: none;
  font-weight: 700;
}

/* Links */

.login-modal__forgot,
.login-modal__register {
  display: inline-flex;
  margin-top: 12px;
  color: var(--main);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.login-modal__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
@media (max-width: 1200px){
	#open-registration-modal {
		display: none;
	}	
}


@media (max-width: 1050px) {
	.header-left {
		width: 50%;
	    order: 1;
	}
	.header-map-controls-slot {
		order: 3;
	}
	.header-right {
		order: 2;
	}
	
}

@media (max-width: 620px) {
    .header-left {
        width: 100%;
    }
    .header-right {
        width: 100%;
    }
}
@media (max-width: 450px) {
  .dropdown,
  .filter-button,
  .static-button,
  .save-map-button,
  .login {
    width: 100%;
  }
.button-mark {
    display: none;
}
}

.gm-style .gm-style-iw-chr {
    padding: 8px 0px 0 0px;
}

.gm-style .gm-style-iw-chr button.gm-ui-hover-effect {
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    position: absolute !important;
    right: 0px;
    top: -30px;
    background-color: white!important;
    opacity: 1;
    padding: 5px 5px 6px !important;
    box-sizing: content-box;
    border-radius: 5px 5px 0px 0px;
}

.gm-style .gm-style-iw-chr button.gm-ui-hover-effect span {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
}

/*google-button*/
.google-map__center-button {
    position: absolute;
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
}

.google-map__switch {
    position: relative;
    display: grid;
    grid-template-columns: 45px 40px;
    align-items: center;
    width: 90px;
    height: 45px;
    padding: 4px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 999px;
    background: #3b82f6;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
    color: rgba(255, 255, 255, 0.72);
    cursor: pointer;
}

.google-map__switch-thumb {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background: #8bd7f5;
    box-shadow:
        0 2px 6px rgba(0, 0, 0, 0.18),
        inset 0 0 0 1px rgba(255, 255, 255, 0.45);
    transition: transform 0.25s ease;
}

.google-map__switch.is-places .google-map__switch-thumb {
    transform: translateX(44px);
}

.google-map__switch-option {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 30px;
    transition: color 0.2s ease;
}

.google-map__switch-option svg {
    width: 23px;
    height: 23px;
}

.google-map__switch:not(.is-places)
.google-map__switch-option:first-of-type {
    color: #fff;
}

.google-map__switch.is-places
.google-map__switch-option:last-of-type {
    color: #fff;
}
/*google-button*/


/*del-place*/
.gm-marker-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 150px;
  padding: 2px 0;
}

.gm-marker-card__title {
  display: block;
  min-width: 0;
  font-size: 14px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.gm-marker-remove-button {display: flex;border-radius: 50px;background-color: #ea4335;border: 1px solid #b41412;color: black;padding: 0px;justify-content: center;padding-bottom: 0px;align-items: center;padding-bottom: 3px;padding-left: 1px;}

.gm-marker-remove-button:disabled {
  opacity: 0.5;
  cursor: default;
}
/*del-place*/


.gm-style .gm-style-iw-c {
	overflow: visible;
	border-radius: 8px 0px 8px 8px;
}

.gm-style .gm-style-iw-chr button.gm-ui-hover-effect::before {
  content: "";
  position: absolute;
  inset: 0;
  box-shadow: 0 2px 7px 1px rgba(0, 0, 0, 0.3);
  clip-path: inset(-10px -20px 1px -20px);
  pointer-events: none;
  border-radius: 5px 5px 0px 0px;
}