/* Public language selector — visible before login and registration. */
.public-language-switcher {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 12050;
  font-family: inherit;
}

.public-language-switcher details,
.public-language-switcher summary {
  margin: 0;
}

.public-language-switcher summary {
  list-style: none;
}

.public-language-switcher summary::-webkit-details-marker {
  display: none;
}

.public-language-switcher__trigger {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 12px;
  background: rgba(24, 34, 47, 0.9);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
  color: #fff;
  cursor: pointer;
  user-select: none;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.public-language-switcher__trigger:hover,
.public-language-switcher__trigger:focus {
  border-color: rgba(17, 167, 219, 0.95);
  background: rgba(17, 46, 64, 0.96);
  outline: none;
}

.public-language-switcher__flag,
.public-language-switcher__option img {
  width: 24px;
  height: 16px;
  object-fit: cover;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.28);
  flex: 0 0 auto;
}

.public-language-switcher__label {
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.public-language-switcher__chevron {
  font-size: 11px;
  opacity: 0.8;
  transition: transform 0.18s ease;
}

.public-language-switcher details[open] .public-language-switcher__chevron {
  transform: rotate(180deg);
}

.public-language-switcher__menu {
  width: min(270px, calc(100vw - 24px));
  max-height: min(460px, calc(100vh - 82px));
  overflow-y: auto;
  margin: 8px 0 0;
  padding: 7px;
  list-style: none;
  border: 1px solid rgba(17, 167, 219, 0.28);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.24);
}

.public-language-switcher__option + .public-language-switcher__option {
  margin-top: 2px;
}

.public-language-switcher__option a {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 8px 10px;
  border-radius: 9px;
  color: #253240;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}

.public-language-switcher__option a:hover,
.public-language-switcher__option a:focus {
  background: #edf8fc;
  color: #087da8;
  outline: none;
}

.public-language-switcher__option.is-current a {
  background: #e7f6fb;
  color: #087da8;
}

.public-language-switcher__check {
  margin-left: auto;
  color: #11a7db;
  font-size: 13px;
}

@media (max-width: 767px) {
  .public-language-switcher {
    top: 10px;
    right: 10px;
  }

  .public-language-switcher__trigger {
    min-height: 38px;
    padding: 7px 10px;
    border-radius: 10px;
  }

  .public-language-switcher__label {
    max-width: 112px;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.login .form-signin {
    margin-top: 58px;
  }
}
