/* =========================================
   Korridorkarten: Legenden- und Panel-Overrides
========================================= */

body.korridor-map .deferred-station-loader {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2100;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: #353535;
  border: 1px solid rgba(0, 0, 0, 0.14);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
  font-family: "Noto Sans", sans-serif;
  font-size: 12px;
  line-height: 1.2;
  pointer-events: none;
  white-space: nowrap;
}

@media (max-width: 768px) {
  body.korridor-map .deferred-station-loader {
    top: 10px;
    font-size: 11px;
    padding: 6px 10px;
    max-width: calc(100% - 28px);
    text-overflow: ellipsis;
    overflow: hidden;
  }
}

body.korridor-map .map-panel--legend .map-panel__body {
  background: transparent;
  display: block;
  padding: 8px 12px 12px;
  overflow: visible;
}

body.korridor-map .map-panel--legend {
  width: auto;
  min-width: 0;
  max-width: none;
  height: auto;
  max-height: none;
  overflow: visible;
  box-shadow: none;
  left: var(--legend-offset-x, 0px);
  right: auto;
  top: var(--legend-offset-y, 52px);
  bottom: auto;
  --legend-header-scale: 1;
  --legend-hidden-shift-top: -220%;
  --legend-hidden-shift-bottom: 220%;
  --legend-extra-offset-top-left: 40px;
  --legend-extra-offset-bottom-right: 20px;
  transform: translateY(var(--legend-hidden-shift-top));
}

body.korridor-map .map-panel--legend.legend-anchor-top-left {
  top: calc(var(--legend-offset-y, 52px) + var(--legend-extra-offset-top-left, 20px));
}

body.korridor-map .map-panel--legend .map-panel__close {
  right: 20px;
}

body.korridor-map .map-panel--legend .map-panel__head-icons {
  transform: scale(var(--legend-header-scale, 1));
  transform-origin: left top;
}

body.korridor-map .map-panel--legend .map-panel__close img {
  transform: scale(var(--legend-header-scale, 1));
  transform-origin: center;
}

body.korridor-map .map-panel--legend.legend-header-clear .map-panel__head {
  background: transparent;
}

body.korridor-map .map-panel--legend.is-open {
  transform: translateY(0);
}

body.korridor-map .map-panel--legend.legend-anchor-top-right {
  left: auto;
  right: var(--legend-offset-x, 10px);
  top: var(--legend-offset-y, 52px);
  bottom: auto;
  transform: translateY(var(--legend-hidden-shift-top));
}

body.korridor-map .map-panel--legend.legend-anchor-top-right.is-open {
  transform: translateY(0);
}

body.korridor-map .map-panel--legend.legend-anchor-bottom-left {
  left: var(--legend-offset-x, 10px);
  right: auto;
  top: auto;
  bottom: var(--legend-offset-y, 52px);
  transform: translateY(var(--legend-hidden-shift-bottom));
}

body.korridor-map .map-panel--legend.legend-anchor-bottom-left.is-open {
  transform: translateY(0);
}

body.korridor-map .map-panel--legend.legend-anchor-bottom-right {
  left: auto;
  right: var(--legend-offset-x, 10px);
  top: auto;
  bottom: calc(var(--legend-offset-y, 52px) + var(--legend-extra-offset-bottom-right, 20px));
  transform: translateY(var(--legend-hidden-shift-bottom));
}

body.korridor-map .map-panel--legend.legend-anchor-bottom-right.is-open {
  transform: translateY(0);
}

body.korridor-map .map-panel--legend.legend-corner-bottom-left {
  border-radius: 0 0 0 65px;
}

body.korridor-map .map-panel--legend.legend-corner-bottom-right {
  border-radius: 0 0 65px 0;
}

body.korridor-map .map-panel--legend .legend-panel__image {
  width: auto;
  max-width: min(60vw, 960px);
  height: auto;
  max-height: min(60vh, 720px);
  transform: translateX(15px);
}

body.korridor-map .map-panel--legend.legend-mobile-svg-only {
  background: transparent !important;
  border-radius: 0;
}

body.korridor-map .map-panel--legend.legend-mobile-svg-only .map-panel__head {
  display: none;
}

body.korridor-map .map-panel--legend.legend-mobile-svg-only .map-panel__body {
  padding: 0;
  background: transparent;
}

body.korridor-map .map-panel--legend.legend-mobile-svg-only .legend-panel__image {
  transform: none;
}

body.korridor-map .map-panel--legend .legend-panel__sb-menu {
  width: min(520px, calc(100vw - 72px));
  max-width: 100%;
}

body.korridor-map .map-panel--legend .legend-panel__sb-menu-host {
  width: 100%;
}

body.korridor-map .map-panel--legend .legend-panel__sb-menu .sb-menu-svg {
  display: block;
  width: 100%;
  height: auto;
}

body.korridor-map .map-panel--legend.legend-sbahn-layout {
  left: 50% !important;
  right: auto !important;
  top: 0 !important;
  bottom: auto !important;
  transform: translate(-50%, -220%) !important;
  width: min(1100px, calc(100% - 14px));
  max-width: 1100px;
  max-height: 460px;
  box-shadow: 0 18px 32px rgba(0, 0, 0, 0.24);
  overflow: auto;
  border-radius: 0 0 0 65px;
}

body.korridor-map .map-panel--legend.legend-sbahn-layout.is-open {
  transform: translate(-50%, 0) !important;
}

body.korridor-map .map-panel--legend.legend-sbahn-layout .map-panel__head {
  background: #e6e6e6;
}

body.korridor-map .map-panel--legend.legend-sbahn-layout .map-panel__head-icons .map-panel__head-icon:nth-child(2) {
  display: none;
}

body.korridor-map .map-panel--legend.legend-sbahn-layout .map-panel__body {
  background: #fff;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 28px 30px;
  overflow: auto;
}

body.korridor-map .map-panel--legend.legend-sbahn-layout .legend-panel__image {
  display: none !important;
}

body.korridor-map .map-panel--legend.legend-sbahn-layout .legend-panel__sb-menu {
  flex: 0 0 46%;
  width: 46%;
  min-width: 320px;
  max-width: 520px;
}

body.korridor-map .map-panel--legend.legend-sbahn-layout .legend-panel__sb-info {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.korridor-map .map-panel--legend.legend-sbahn-layout .corridor-panel__icons {
  margin-bottom: 8px;
}

@media (max-width: 980px) {
  body.korridor-map .map-panel--legend.legend-sbahn-layout {
    max-height: 50%;
  }

  body.korridor-map .map-panel--legend.legend-sbahn-layout .map-panel__body {
    flex-direction: column;
    gap: 16px;
    padding: 16px 18px 20px;
  }

  body.korridor-map .map-panel--legend.legend-sbahn-layout .legend-panel__sb-menu {
    width: 100%;
    min-width: 0;
    max-width: none;
    flex: 1 1 auto;
  }
}

body.korridor-map .leaflet-top.leaflet-left .leaflet-bar.legend-control {
  margin-top: 6px;
}
