.nc-language-selector {
  --nc-lang-compact-width: 82px;
  --nc-lang-expanded-width: 260px;
  --nc-lang-line: rgba(39, 139, 190, .38);
  --nc-lang-line-hover: rgba(74, 193, 237, .52);
  --nc-lang-line-open: #b7e8ff;
  --nc-lang-text: #edf7ff;
  --nc-lang-muted: #8fa8bd;
  --nc-lang-accent: #47e6d1;
  --nc-lang-blue: #42c9ff;
  --nc-lang-ease: cubic-bezier(.22, .8, .24, 1);
  --nc-lang-spring: cubic-bezier(.18, 1.2, .36, 1);
  --nc-lang-preview-duration: 15s;

  width: var(--nc-lang-compact-width);
  min-width: var(--nc-lang-compact-width);
  height: 44px;
  position: relative;
  display: inline-block;
  flex: 0 0 var(--nc-lang-compact-width);
  z-index: 90;
  margin-left: 0;
  overflow: visible;
  vertical-align: top;
  font-family: inherit;
  color: var(--nc-lang-text);
  border: 1px solid var(--nc-lang-line);
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(9, 27, 45, .99), rgba(5, 15, 26, .99));
  box-shadow: 0 14px 36px rgba(0, 0, 0, .30), inset 0 1px 0 rgba(255, 255, 255, .018);
  transform-origin: top right;
  transition:
    width .66s var(--nc-lang-ease),
    min-width .66s var(--nc-lang-ease),
    margin-left .66s var(--nc-lang-ease),
    border-color .3s ease,
    border-radius .52s var(--nc-lang-ease),
    box-shadow .3s ease,
    transform .32s ease;
}

.nc-language-selector:hover {
  border-color: var(--nc-lang-line-hover);
}

.nc-language-selector.is-open,
.nc-language-selector.is-previewing {
  width: var(--nc-lang-expanded-width);
  min-width: var(--nc-lang-expanded-width);
  margin-left: calc(var(--nc-lang-compact-width) - var(--nc-lang-expanded-width));
}

.nc-language-selector.is-open {
  border-color: var(--nc-lang-line-open);
  border-radius: 17px;
  box-shadow:
    0 0 0 1px rgba(183, 232, 255, .06),
    0 18px 48px rgba(0, 0, 0, .38),
    inset 0 1px 0 rgba(255, 255, 255, .03);
}

.nc-language-selector.is-saving {
  pointer-events: none;
  opacity: .74;
}

.nc-language-selector.is-opening {
  animation: ncLanguageSelectSettle .72s var(--nc-lang-spring);
}

@keyframes ncLanguageSelectSettle {
  0% { transform: scaleX(.985); }
  58% { transform: scaleX(1.008); }
  100% { transform: scaleX(1); }
}

.nc-language-selector .nc-language-selector__trigger {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 42px !important;
  height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 41px minmax(0, 1fr) 41px;
  align-items: center;
  gap: 0 !important;
  overflow: hidden;
  border: 0 !important;
  border-radius: 13px !important;
  outline: 0;
  color: inherit !important;
  background: transparent !important;
  box-shadow: none !important;
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  transition: grid-template-columns .66s var(--nc-lang-ease), background .25s ease;
}

.nc-language-selector:not(.is-open):not(.is-previewing) .nc-language-selector__trigger {
  grid-template-columns: 41px 0fr 41px;
}

.nc-language-selector .nc-language-selector__trigger:hover,
.nc-language-selector .nc-language-selector__trigger:focus-visible {
  background: rgba(61, 173, 220, .025) !important;
  outline: none;
}

.nc-language-selector .nc-language-selector__trigger:focus-visible {
  box-shadow: inset 0 0 0 2px rgba(183, 232, 255, .42) !important;
}

.nc-language-selector__leading {
  width: 41px;
  height: 42px;
  display: grid;
  place-items: center;
  color: var(--nc-lang-blue);
  transition: transform .36s var(--nc-lang-spring), background .28s ease;
}

.nc-language-selector:not(.is-open):not(.is-previewing):hover .nc-language-selector__leading {
  transform: scale(1.08);
  background: rgba(57, 199, 255, .05);
}

.nc-language-selector__globe {
  width: 22px;
  height: 22px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 5px rgba(57, 199, 255, .38));
  transition: opacity .28s ease, transform .45s var(--nc-lang-ease);
}

.nc-language-selector__flag {
  width: 24px;
  height: 18px;
  display: none;
  overflow: hidden;
  border-radius: 5px;
  opacity: 0;
  transform: scale(.72) rotate(-5deg);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .18), 0 5px 14px rgba(0, 0, 0, .28);
  transition: opacity .28s ease, transform .48s var(--nc-lang-spring);
}

.nc-language-selector__flag img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.nc-language-selector.has-selection:is(.is-open, .is-previewing) .nc-language-selector__globe {
  display: none;
}

.nc-language-selector.has-selection:is(.is-open, .is-previewing) .nc-language-selector__flag {
  display: inline-flex;
  opacity: 1;
  transform: scale(1) rotate(0);
}

.nc-language-selector__current {
  min-width: 0;
  overflow: hidden;
  opacity: 1;
  transform: translateX(0);
  filter: blur(0);
  transition: opacity .28s ease .16s, transform .52s var(--nc-lang-ease) .08s, filter .36s ease .08s;
}

.nc-language-selector:not(.is-open):not(.is-previewing) .nc-language-selector__current {
  opacity: 0;
  transform: translateX(-18px);
  filter: blur(3px);
  pointer-events: none;
  transition-delay: 0s;
}

.nc-language-selector__current strong,
.nc-language-selector__name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--nc-lang-text);
  font-size: 13px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: -.012em;
}

.nc-language-selector__current small,
.nc-language-selector__code {
  display: block;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--nc-lang-muted);
  font-size: 9px;
  line-height: 1.3;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.nc-language-selector__arrow-slot {
  width: 41px;
  height: 42px;
  display: grid;
  place-items: center;
}

.nc-language-selector__icon-box {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  position: relative;
  flex: 0 0 auto;
  overflow: hidden;
  border: 1px solid rgba(48, 187, 255, .36);
  border-radius: 10px;
  color: var(--nc-lang-accent);
  background: rgba(2, 12, 21, .38);
  transition:
    width .5s var(--nc-lang-ease),
    border-radius .5s var(--nc-lang-ease),
    border-color .3s ease,
    background .3s ease,
    transform .62s var(--nc-lang-ease),
    box-shadow .3s ease;
}

.nc-language-selector.is-open .nc-language-selector__icon-box {
  transform: rotate(90deg);
  border-radius: 50%;
  border-color: color-mix(in srgb, var(--nc-lang-accent) 62%, transparent);
  background: color-mix(in srgb, var(--nc-lang-accent) 7%, rgba(2, 12, 21, .48));
}

.nc-language-selector__arrow {
  width: 18px;
  height: 18px;
  position: relative;
  display: block;
  transform-origin: 50% 50%;
  transition: transform .62s var(--nc-lang-ease), filter .3s ease, opacity .3s ease;
}

.nc-language-selector__line {
  position: absolute;
  display: block;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  box-shadow: 0 0 8px color-mix(in srgb, currentColor 38%, transparent);
  transition:
    width .55s var(--nc-lang-ease),
    left .55s var(--nc-lang-ease),
    right .55s var(--nc-lang-ease),
    top .55s var(--nc-lang-ease),
    transform .55s var(--nc-lang-ease),
    opacity .3s ease;
}

.nc-language-selector__line--a { width: 8px; left: 3px; top: 9px; transform: rotate(42deg); }
.nc-language-selector__line--b { width: 8px; right: 3px; top: 9px; transform: rotate(-42deg); }
.nc-language-selector__line--c { width: 7px; left: 3px; top: 3px; transform: rotate(42deg); opacity: 0; }
.nc-language-selector__line--d { width: 7px; right: 3px; top: 3px; transform: rotate(-42deg); opacity: 0; }

.nc-language-selector__ring {
  position: absolute;
  inset: 5px;
  border-radius: 50%;
  border: 1px solid transparent;
  pointer-events: none;
  transition: transform .75s var(--nc-lang-ease), opacity .3s ease, inset .45s var(--nc-lang-ease), border-color .3s ease;
}

.nc-language-selector__ring--full { border-color: currentColor; opacity: .16; }
.nc-language-selector__ring--top { border-top-color: currentColor; opacity: .7; }
.nc-language-selector__ring--bottom { border-bottom-color: currentColor; opacity: .65; }

.nc-language-selector.is-open .nc-language-selector__arrow {
  transform: rotate(90deg) scaleY(-1);
}

.nc-language-selector.is-open .nc-language-selector__ring--full {
  transform: rotate(180deg) scale(.78);
  opacity: .58;
}

.nc-language-selector__menu {
  width: 100%;
  position: absolute;
  top: calc(100% + 7px);
  right: 0;
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-9px) scaleY(.985);
  transform-origin: top;
  border: 1px solid rgba(183, 232, 255, .26);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(9, 27, 45, .99), rgba(5, 15, 26, .99));
  box-shadow: 0 24px 60px rgba(0, 0, 0, .46), inset 0 1px 0 rgba(255, 255, 255, .025);
  transition:
    grid-template-rows .54s var(--nc-lang-ease),
    opacity .25s ease,
    visibility 0s linear .54s,
    transform .48s var(--nc-lang-ease);
}

.nc-language-selector.is-open .nc-language-selector__menu {
  grid-template-rows: 1fr;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scaleY(1);
  transition-delay: 0s, .1s, 0s, .04s;
}

.nc-language-selector__menu-clip {
  min-height: 0;
  overflow: hidden;
}

.nc-language-selector__list-shell {
  margin: 8px;
  padding: 7px;
  border: 1px solid rgba(78, 150, 201, .17);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(3, 13, 23, .76), rgba(2, 10, 18, .62));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .018);
  clip-path: inset(0 0 100% 0 round 14px);
  transition: clip-path .52s var(--nc-lang-ease) .02s;
}

.nc-language-selector.is-open .nc-language-selector__list-shell {
  clip-path: inset(0 0 0 0 round 14px);
}

.nc-language-selector__list {
  max-height: 355px;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  list-style: none;
}

.nc-language-selector__list::-webkit-scrollbar { width: 7px; }
.nc-language-selector__list::-webkit-scrollbar-track { background: transparent; }
.nc-language-selector__list::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(90, 171, 224, .3); }

.nc-language-selector .nc-language-selector__option {
  --nc-lang-delay: 0ms;
  width: 100% !important;
  min-height: 45px !important;
  margin: 0 !important;
  padding: 6px 10px !important;
  display: grid !important;
  grid-template-columns: 38px minmax(0, 1fr) 22px;
  align-items: center;
  gap: 10px !important;
  border: 1px solid transparent !important;
  border-radius: 11px !important;
  color: #dceaf5 !important;
  background: transparent !important;
  box-shadow: none !important;
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  opacity: 0;
  transform: translateY(-8px) scale(.985);
  transition:
    opacity .28s ease,
    transform .42s var(--nc-lang-ease),
    border-color .2s ease,
    background .2s ease;
}

.nc-language-selector.is-open .nc-language-selector__option {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition-delay: var(--nc-lang-delay), var(--nc-lang-delay), 0s, 0s;
}

.nc-language-selector .nc-language-selector__option:hover,
.nc-language-selector .nc-language-selector__option:focus-visible {
  outline: 0;
  border-color: rgba(71, 195, 234, .26) !important;
  background: rgba(41, 138, 190, .1) !important;
  transform: translateX(2px);
}

.nc-language-selector .nc-language-selector__option.is-active {
  border-color: rgba(67, 226, 208, .3) !important;
  background: rgba(67, 226, 208, .08) !important;
}

.nc-language-selector__option-flag {
  width: 30px;
  height: 22px;
  display: inline-flex;
  justify-self: center;
  overflow: hidden;
  border-radius: 4px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .16);
}

.nc-language-selector__option-flag img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.nc-language-selector__option-name {
  min-width: 0;
}

.nc-language-selector__option-name strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 800;
}

.nc-language-selector__option-name small {
  display: block;
  margin-top: 2px;
  color: #7692a8;
  font-size: 10px;
  line-height: 1.2;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.nc-language-selector__check {
  width: 14px;
  height: 8px;
  display: block;
  justify-self: center;
  border-left: 2px solid var(--nc-lang-accent);
  border-bottom: 2px solid var(--nc-lang-accent);
  opacity: 0;
  transform: rotate(-45deg) scale(.5);
  filter: drop-shadow(0 0 5px rgba(71, 230, 209, .45));
  transition: opacity .2s ease, transform .3s var(--nc-lang-spring);
}

.nc-language-selector__option.is-active .nc-language-selector__check {
  opacity: 1;
  transform: rotate(-45deg) scale(1);
}

.nc-language-selector__timer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  overflow: hidden;
  border-radius: 0 0 15px 15px;
  opacity: 0;
  pointer-events: none;
}

.nc-language-selector__timer::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--nc-lang-blue), var(--nc-lang-accent));
  transform-origin: left;
  transform: scaleX(1);
}

.nc-language-selector.is-previewing .nc-language-selector__timer {
  opacity: .65;
}

.nc-language-selector.is-previewing .nc-language-selector__timer::after {
  animation: ncLanguagePreviewTimer var(--nc-lang-preview-duration) linear forwards;
}

@keyframes ncLanguagePreviewTimer {
  from { transform: scaleX(1); }
  to { transform: scaleX(0); }
}

/* Patch 3.50o - kompakte Header-Proportionen */
.nc-language-selector__menu {
  min-width: var(--nc-lang-expanded-width);
}

.nc-language-selector__list-shell {
  margin: 7px;
  padding: 6px;
}

.nc-language-selector .nc-language-selector__option {
  padding: 5px 9px !important;
}

@media (max-width: 760px) {
  .nc-language-selector {
    --nc-lang-expanded-width: min(286px, calc(100vw - 28px));
  }

  .nc-language-selector.is-open,
  .nc-language-selector.is-previewing {
    margin-left: 0;
  }

  .nc-language-selector__menu {
    right: auto;
    left: 0;
  }
}

@media (max-width: 440px) {
  .nc-language-selector {
    --nc-lang-expanded-width: calc(100vw - 28px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .nc-language-selector,
  .nc-language-selector *,
  .nc-language-selector *::before,
  .nc-language-selector *::after {
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
  }
}

/* Patch 3.50s: registered language bundles that are not translated yet. */
.nc-language-selector__option.is-unavailable,
.nc-language-selector__option:disabled {
  cursor: not-allowed;
  opacity: .48;
  filter: saturate(.45);
}

.nc-language-selector__option.is-unavailable:hover,
.nc-language-selector__option.is-unavailable:focus-visible,
.nc-language-selector__option:disabled:hover,
.nc-language-selector__option:disabled:focus-visible {
  border-color: transparent;
  background: transparent;
  transform: none;
}

.nc-language-selector__option.is-unavailable .nc-language-selector__check {
  width: 13px;
  height: 14px;
  position: relative;
  display: block;
  border: 0;
  opacity: .78;
  transform: none;
  color: var(--nc-lang-muted);
  filter: drop-shadow(0 0 5px color-mix(in srgb, currentColor 24%, transparent));
}

.nc-language-selector__option.is-unavailable .nc-language-selector__check::before {
  content: "";
  position: absolute;
  left: 1px;
  right: 1px;
  bottom: 0;
  height: 8px;
  border: 1.25px solid currentColor;
  border-radius: 3px;
  background: color-mix(in srgb, currentColor 6%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, white 7%, transparent);
}

.nc-language-selector__option.is-unavailable .nc-language-selector__check::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 0;
  width: 7px;
  height: 7px;
  border: 1.25px solid currentColor;
  border-bottom: 0;
  border-radius: 7px 7px 0 0;
}

