:root {
  --main: #005e3e;
  --white: #fffffa;
  --black: #030300;
  --text-color: var(--white);
  --text-second-color: var(--black);
  --background-color: color-mix(in srgb, var(--main) 5%, var(--white));
  --background-second-color: color-mix(in srgb, var(--main) 35%, var(--white));
  --background-third-color: color-mix(in srgb, var(--main) 65%, var(--white));
  --interactive-color: color-mix(in srgb, var(--main) 85%, var(--white));
  --interactive-color-hover: color-mix(in srgb, var(--main) 85%, var(--black));
  --contrast-color: color-mix(in srgb, var(--main) 95%, var(--black));
}

@media (prefers-color-scheme: dark) {
  :root {
    --text-second-color: var(--white);
    --background-color: color-mix(in srgb, var(--main) 5%, var(--black));
    --background-second-color: color-mix(in srgb, var(--main) 35%, var(--black));
    --background-third-color: color-mix(in srgb, var(--main) 65%, var(--black));
    --interactive-color: color-mix(in srgb, var(--main) 85%, var(--black));
    --interactive-color-hover: color-mix(in srgb, var(--main) 85%, var(--white));
    --contrast-color: color-mix(in srgb, var(--main) 95%, var(--white));
  }
}

* {
  margin: 0px;
  padding: 0px;
  list-style: none;
  font-family:
    "Lucida Sans", "Lucida Sans Regular", "Lucida Grande",
    "Lucida Sans Unicode", Geneva, Verdana, sans-serif, Times, serif;
  color: var(--text-color);
  font-size: 1.05em;
  font-weight: bolder;
  text-align: center;
  transition: all 0.3s;
  overflow: hidden;
  user-select: none;
}

html,
body,
#app,
#settings {
  height: 100dvh;
  width: 100dvw;
}

body {
  background: var(--background-color);
}

.not-displayed {
  display: none !important;
}

.hidden {
  opacity: 0;
  pointer-events: none;
}

.heading {
  font-size: 1.5em;
}

.subheading {
  font-size: 1.3em;
  text-decoration: underline;
  color: var(--text-second-color);
}

.bar {
  display: flex;
  background: linear-gradient(90deg, var(--background-third-color) 0%, var(--background-second-color) 50%, var(--background-third-color) 100%);
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.bar-text {
  color: var(--text-second-color);
}

.button {
  background: var(--interactive-color);
  border-radius: 7px;
  padding: 5%;
  margin: 5%;
  max-width: max-content;
  cursor: pointer;
}

.button:hover {
  background: var(--interactive-color-hover);
}

.input {
  outline: none;
  border: solid var(--interactive-color-hover) 1px;
  background: var(--interactive-color);
  height: 100%;
  width: 100%;
}

.select {
  background: var(--interactive-color-hover);
  border-radius: 5px;
  cursor: pointer;
}

.select:hover,
.select-active {
  background: var(--interactive-color);
  color: var(--text-highlight) !important;
}

#settings {
  display: grid;
  position: absolute;
  background: radial-gradient(
    var(--background-second-color),
    var(--background-color) 100%
  );
  justify-items: center;
  align-items: center;
  grid-template-columns: 1fr;
  grid-template-rows: 0.7fr 0.7fr 0.3fr 0.7fr;
}

#settings div {
  display: grid;
  background: var(--background-third-color);
  border-radius: 5px;
  padding: 1.3%;
  width: 60%;
}

#settings div * {
  max-width: 97.4%;
  padding: 1.3%;
}

.settings-margin-down {
  margin-bottom: 1.3%;
}

.settings-input {
  border-radius: 5px;
  border: none;
}

.settings-buttons {
  color: var(--text-color) !important;
  margin: 0% !important;
}

.settings-felds {
  grid-area: 2 / 1 / 3 / 2;
}

.settings-button-feld {
  grid-area: 3 / 1 / 4 / 2;
}

#app {
  display: grid;
  grid-template-rows: 10% 80% 10%;
}

#edit-button {
  margin: 0% 5% 5% 5%;
}

main {
  display: grid;
  grid-template-columns: 15% 70% 15%;
  background: radial-gradient(
    var(--background-second-color),
    var(--background-color) 100%
  );
}

#edit-bar {
  display: flex;
  justify-content: start;
  align-items: start;
  flex-direction: column;
}

#save-bar {
  display: flex;
  justify-content: end;
  align-items: end;
  flex-direction: column;
}

#maps {
  display: grid;
}

#full-map {
  display: grid;
  justify-self: center;
  align-self: center;
  aspect-ratio: 1/1;
  max-width: 100dvw;
  grid-template-columns: repeat(32, 1fr);
  grid-template-rows: repeat(32, 1fr);
}

.full-map-scale-hight {
  height: 100%;
  width: auto;
}

.full-map-scale-width {
  height: auto;
  width: 100%;
}

.houses {
  display: grid;
  background: var(--interactive-color);
  height: 100%;
  width: 100%;
  justify-content: center;
  align-items: center;
  border-radius: 3px;
  cursor: pointer;
}

.houses:hover {
  background: var(--interactive-color-hover);
}

.corridors {
  display: grid;
  background: var(--contrast-color);
  height: 100%;
  width: 100%;
}

#house-1 {
  grid-area: 13 / 22 / 28 / 25;
}

#house-2 {
  grid-area: 15 / 9 / 27 / 12;
}

#house-3 {
  grid-area: 9 / 8 / 12 / 25;
}

#house-4 {
  grid-area: 2 / 14 / 7 / 19;
}

#house-5 {
  grid-area: 2 / 26 / 5 / 29;
}

#house-6 {
  grid-area: 7 / 26 / 12 / 29;
}

#house-8 {
  grid-area: 23 / 27 / 30 / 29;
}

#house-11 {
  grid-area: 30 / 14 / 32 / 16;
}

.corridor-1 {
  grid-area: 12 / 23 / 13/ 24;
}

.corridor-2 {
  grid-area: 7 / 16 / 9 / 17;
}

.corridor-3 {
  grid-area: 12 / 10 / 15 / 11;
}

.houses-map {
  display: grid;
  justify-self: center;
  align-self: center;
  height: 90%;
  width: 90%;
  background: var(--interactive-color);
  border-radius: 9px;
}

.basements {
  background: var(--contrast-color) !important;
}

.house-1-map {
  grid-template-rows: repeat(5, 1fr);
  grid-template-columns: repeat(2, 1fr);
}

.house-2-map {
  grid-template-rows: repeat(5, 1fr);
  grid-template-columns: repeat(2, 1fr);
}

.house-3-map {
  grid-template-rows: repeat(6, 1fr);
  grid-template-columns: 40% 20% 40%;
}

.house-4-map {
  grid-template-rows: repeat(5, 1fr);
  grid-template-columns: 100%;
}

.house-5-map {
  grid-template-rows: repeat(4, 1fr);
  grid-template-columns: 100%;
}

.house-6-map {
  grid-template-rows: repeat(3, 1fr);
  grid-template-columns: 100%;
}

.house-8-map {
  grid-template-rows: repeat(3, 1fr);
  grid-template-columns: repeat(2, 1fr);
}

.house-11-map {
  grid-template-rows: 100%;
  grid-template-columns: repeat(2, 1fr);
}

@media (orientation: portrait) {
  main {
    display: grid;
    grid-template-columns: unset;
    grid-template-rows: 10% 80% 10%;
  }

  .heading {
    font-size: 1.4em;
  }

  .bar {
    flex-direction: column;
  }

  .button {
    padding: 1.3%;
    margin: 1.3%;
  }

  #settings div {
    width: 80%;
  }

  #edit-button {
    margin: 1.3% 1.3% 1.3% 0%;
  }

  #edit-bar,
  #save-bar {
    flex-direction: row;
  }
}
