.map-expansion.map-controls-compact {
  display: block;
  padding: 5px 10px 7px;
  overflow: visible;
}

.map-control-grid {
  display: grid;
  gap: 5px;
  min-width: 650px;
  color: var(--text);
}

.map-control-levels {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  justify-content: start;
  align-items: center;
  gap: 4px;
  height: 27px;
}

.map-control-grid button,
.map-action-slots button {
  border: 1px solid transparent;
  border-radius: 5px;
  font-size: 11px;
  line-height: 1.3;
  min-height: 25px;
  padding: 3px 7px;
  white-space: nowrap;
}

.map-control-levels button {
  color: #aebed5;
  border-color: #293a51;
}

.map-control-grid button[aria-pressed="true"],
.map-action-slots button[aria-pressed="true"] {
  color: #dceaff;
  background: #233c5c;
  border-color: #4e719e;
}

.map-control-grid button:focus-visible,
.map-control-grid input:focus-visible,
.map-control-grid select:focus-visible,
.map-action-slots button:focus-visible,
.map-control-advanced summary:focus-visible {
  outline: 2px solid #a7cbff;
  outline-offset: 2px;
}

.map-action-slots {
  display: grid;
  grid-template-columns: 71px 102px 49px 69px 114px;
  align-items: center;
  justify-content: end;
  gap: 2px;
  height: 30px;
  flex: 0 0 auto;
}

.map-control-empty {
  visibility: hidden;
  pointer-events: none;
}

.map-control-panel {
  position: relative;
  padding: 5px 8px 6px;
  border: 1px solid #293b53;
  border-radius: 7px;
  background: #132035;
}

.map-control-primary,
.map-control-dimensions,
.map-control-bands,
.map-control-hierarchy {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 180px)) 170px;
  column-gap: 14px;
  align-items: center;
  height: 35px;
}

.map-control-hierarchy {
  border-top: 1px solid #2b3b51;
  margin-top: 5px;
  padding-top: 5px;
  height: 41px;
}

.map-control-hierarchy-caption {
  color: #95aeca;
  font-size: 10px;
  grid-column: 4;
  align-self: center;
}

.map-control-primary .map-control-labels {
  width: 100%;
  height: 27px;
  padding: 3px 6px;
  font-size: 11px;
  border-radius: 5px;
}

.map-control-dimension-heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid #2b3b51;
  height: 24px;
  margin-top: 4px;
  color: #95aeca;
  font-size: 10px;
  line-height: 1.2;
}

.map-control-dimensions > label:not(.stair-range) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  min-width: 0;
  white-space: nowrap;
  font-size: 11px;
}

.map-control-dimensions input[type="number"] {
  width: 68px;
  min-width: 46px;
  padding: 4px;
  border-radius: 5px;
  font-size: 11px;
}

.map-control-dimensions > button {
  justify-self: stretch;
  border-color: #334965;
  font-size: 10px;
}

.map-control-zoom {
  position: absolute;
  right: 150px;
  color: #a2b9d9;
  font-variant-numeric: tabular-nums;
}

.map-control-advanced {
  margin-left: auto;
}

.map-control-advanced summary {
  color: #b7cce9;
  cursor: pointer;
  padding: 3px 0 3px 8px;
  font-size: 11px;
}

.map-control-advanced-panel {
  position: absolute;
  right: 0;
  top: 23px;
  width: min(620px, 100%);
  padding: 12px;
  display: grid;
  gap: 13px;
  border: 1px solid #527098;
  border-radius: 7px;
  background: #152338;
  box-shadow: 0 12px 25px #0008;
  z-index: 20;
}

.map-control-advanced-panel .map-settings {
  margin: 0;
  align-items: center;
  gap: 8px;
}

.map-control-advanced-panel label {
  font-size: 11px;
}

.map-control-advanced-panel input[type="number"] {
  width: 75px;
}

.map-control-advanced-panel select {
  padding: 4px;
  font-size: 11px;
}

.map-control-advanced-panel small {
  width: 100%;
  color: #a2b3c9;
  font-size: 10px;
}

.map-control-grid .stair-window-buttons button {
  min-height: 20px;
  padding: 0;
  font-size: 13px;
}

@media (max-width: 1300px) {
  .map-expansion.map-controls-compact {
    overflow: visible;
  }

  .map-control-grid {
    min-width: 0;
    overflow-x: auto;
  }

  .map-control-levels,
  .map-control-panel {
    min-width: 650px;
  }

  .map-control-advanced-panel {
    position: fixed;
    top: auto;
    bottom: 20px;
    right: 20px;
    width: min(620px, calc(100vw - 40px));
  }
}
