@import url("https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,200;0,6..12,300;0,6..12,400;0,6..12,500;0,6..12,600;0,6..12,700;0,6..12,800;0,6..12,900;0,6..12,1000;1,6..12,200;1,6..12,300;1,6..12,400;1,6..12,500;1,6..12,600;1,6..12,700;1,6..12,800;1,6..12,900;1,6..12,1000&display=swap");
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
body,
html {
  margin: 0;
  padding: 0;
}
* {
  /* font-family: "Nunito Sans", sans-serif; */
  font-family: "Inter", sans-serif;
  user-select: none;
}
body {
  cursor: pointer;
}
#mapContainer {
  height: 100vh;
  width: 100vw;
}
/* #mapContainer > canvas {
  width: 100vw !important;
  height: 100vh !important;
} */
 
.dg{
  opacity: 0;
}

canvas {
  /* */
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
}
#floor_numbers {
  /* position : fixed;
            right : 20px;
            bottom : 180px; */
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-end;
}
.floor_number {
  background-color: black;
  color: white;
  width: 40px;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 6px;
  margin-top: 10px;
  font-weight: 0;
  cursor: pointer;
}

.floor_number.active {
  background-color: #14e147;
  color: black;
  width: 50px;
  font-weight: 900;
  transition: all 0.2s ease-out;
}

.unitLabel {
  font-size: 8px;
  color: #4d5e6f;
  text-shadow: 1px 1px 0px white, -1px -1px 0px white, 1px -1px 0px white,
    -1px 1px 0px white;
  /* font-family: "Nunito Sans", sans-serif; */
  font-family: "Inter", sans-serif;
  font-weight: 900;
  padding: 5px;
  position: relative;
  margin-top: -68px;
  opacity: 0.1;
  background: white;
}

/* .unitLabel::before {
            content : "";
            height:5px;
            width:5px;
            border: 1px solid rgba(0,0,0,0.6);
            border-radius: 100%;
            position: absolute;
            left: calc(50% - 2px);
            background:rgba(0,0,0,0.6);
            top:68px;
        } */

/* .unitLabel::after {
            content : "";
            height:40px;
            width:1px;
            border-right: 1px solid rgba(0,0,0,0.6);
            position: absolute;
            left: 50%;
            top:100%;
        } */

/* #UIWrapper{
            background:red;
            height:300px;
            position: absolute;
            bottom:0px;
            width: 100%;
        }

        #searchWrapper {
            width: 100vw;
            height: 100vh;
            background-color: black;
            position: fixed;
            top:0px;
            left:0px;
            opacity: 0.4;
            backdrop-filter: invert(80%)
        } */

#poiSelector {
  position: fixed;
  bottom: 100px;
  left: 10px;
}

#distanceIndicator {
  background: #015c4d;
  color: white;
  border: 3px solid white;
  border-radius: 4px;
  box-shadow: 0px 0px 20px rgba(0, 0, 0, 1);
  position: absolute;
  top: 100px;
  left: 10px;
  padding: 10px;
  font-weight: 900;
}

#indxContainer {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
}

#indxContainer .ui-element {
  z-index: 99999999999 !important;
}

#indxContainer .ui-element.back-button {
  height: 20px;
  padding: 10px 20px;
  width: 100%;
  font-size: 12px;
  position: fixed;
  top: 10px;
  display: flex;
  align-items: center;
  color: #909090;
}
#indxContainer .ui-element.back-button img {
  margin-right: 10px;
}

#indxContainer .ui-element.search-input {
  position: fixed;
  top: 10px;
  width: 100%;
  display: flex;
}

#indxContainer .ui-element.search-input .left-part {
  padding-left: 30px;
  height: 48px;
}
#indxContainer .ui-element.search-input .center-part {
  flex-grow: 1;
  background-color: #f9f9f9;
  height: 48px;
  border: 1px solid #eeeeee;
  border-right: none;
  border-left: none;
}

#indxContainer .ui-element.search-input .center-part input {
  width: 100%;
  padding: 0px;
  margin: 0px;
  outline: 0px;
  border: 0px;
  height: 48px;
  font-size: 16px;
  background: none;
}

#indxContainer .ui-element.search-input .right-part {
  padding-right: 30px;
}
#indxContainer .ui-element.search-input .left-part > div {
  background-color: #f9f9f9;
  width: 50px;
  height: 48px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50% 0 0 50%;
  border: 1px solid #eeeeee;
  border-right: none;
}
#indxContainer .ui-element.search-input .right-part > div {
  background-color: #f9f9f9;
  width: 50px;
  height: 48px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 0 50% 50% 0;
  border: 1px solid #eeeeee;
  border-left: none;
}

#indxContainer #categoryList.hidden {
  display: none;
}

#indxContainer #categoryList {
  max-width: 100vw;
  position: absolute;
  left: 0;
  padding: 15px 10px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

#indxContainer #categoryList::-webkit-scrollbar {
  display: none;
}

#indxContainer #categoryList ul {
  display: flex;
  margin: 0px;
  padding: 0px;
  min-width: 100vw;
  padding-right: 80vw;
}

#indxContainer #categoryList ul li {
  background: white;
  list-style-type: none;
  margin-right: 10px;
  font-size: 14px;
  font-weight: 600;
  padding: 5px 10px;
  min-width: 150px;
  border-radius: 100px;
  box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  user-select: none;
}

#indxContainer .ui-element.floor-numbers {
  position: fixed;
  right: 0px;
  bottom: 140px;
}

#indxContainer .ui-element.function-buttons {
  width: 100vw;
  display: flex;
  position: fixed;
  bottom: 40px;
  z-index: 99999999999 !important;
}
#indxContainer .function-button {
  border: none;
  outline: none;
  border-radius: none;
  background: none;
  background-color: black;
  color: white;
  padding: 12px 24px;
  border-radius: 24px;
  z-index: 99999999999 !important;
}
#indxContainer .function-icon-button {
  background-color: black;
  color: white;
  width: 45px;
  height: 45px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 24px;
  z-index: 99999999999 !important;
}

#indxContainer .function-buttons-column:nth-of-type(1) {
  width: 25%;
  text-align: center;
  display: flex;
  justify-content: center;
}
#indxContainer .function-buttons-column:nth-of-type(2) {
  width: 50%;
  text-align: center;
}
#indxContainer .function-buttons-column:nth-of-type(3) {
  width: 25%;
  text-align: center;
  display: flex;
  justify-content: center;
}
.label {
  z-index: 99 !important;
  position: relative;
}
.label .poiLabel {
  background-color: rgba(0, 0, 0, 0.7);
  padding: 1px 6px;
  border-radius: 15px;
  color: whitesmoke;
  font-weight: 600;
  font-size: 8px;
  letter-spacing: 1px;
  border: 2px solid rgba(255, 255, 255, 1);
  /* box-shadow: 0px 0px 8px rgba(0,0,0,.8); */
}

.label.dimmed {
  opacity: 0.1 !important;
}

.label.dimmed:hover,
.label:hover {
  opacity: 1 !important;
}

.label .distanceLabel {
  /* background:#015c4d; */
  background: #1d5eba;
  color: white;
  border: 3px solid white;
  border-radius: 4px;
  box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
  padding: 5px 10px;
  font-weight: 700;
  display: flex;
  justify-content: center;
  bottom: 10px;
  position: absolute;
  width: max-content;
}
.label .distanceLabel::before {
  content: "";
  box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
  position: absolute;
  display: flex;
  clip-path: polygon(12.5% 0, 87.5% 0, 50% 100%);
  width: 20px;
  height: 10px;
  top: 100%;
  background-color: white;
}

#bridgeValue {
  position: absolute;
  bottom: 0px;
  left: 0px;
  background: rgba(0, 0, 0, 0.1);
  color: #4d5e6f;
  width: 100%;
  font-size: 10px;
  user-select: none;
  display: none;
}

#loadingScreen {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 24px;
  z-index: 3000;
}

#indxContainer .ui-element.hidden {
  display: none;
}
/* Search */
#poiContainer {
  background-color: #fefefe;
  height: max-content;
  max-height: 240px;
  overflow-y: scroll;
  display: flex;
  flex-direction: column;
  justify-content: start;
  border-radius: 24px;
  margin: 0px 30px;
  width: 100%;
}
#poiContainer::-webkit-scrollbar {
  display: none;
  width: 5px;
  height: 8px;
}
#poiContainer::-webkit-scrollbar-thumb {
  background: #fff !important;
}
#poiContainer::-webkit-scrollbar-track {
  background: #000 !important;
}
#poiContainer::-webkit-scrollbar-track-piece {
  background: #000 !important;
}
.poiTitle {
  display: flex;
  align-items: center;
  justify-content: start;
  min-height: 40px;
  padding: 0 24px;
  font-size: 12px;
  cursor: pointer;
  background-color: #f9f9f9;
}
.poiTitle:nth-child(even) {
  background-color: #ebebeb;
}
.poi-container {
  position: fixed;
  justify-content: center;
  top: 69px; /*105px*/
  width: 100%;
  display: flex;
}

/* Find My Car */
#placeMyCar {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 10px;
  cursor: pointer;
  width: 50px;
  height: 50px;
  background-color: #000000;
  border-radius: 50%;
  bottom: 50%;
  right: 5px;
  z-index: 2500;
  border: none;
}

#deleteMyCar {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 10px;
  cursor: pointer;
  width: 50px;
  height: 50px;
  background-color: #000000;
  border-radius: 50%;
  bottom: 50%;
  right: 5px;
  z-index: 2500;
  border: none;
}

#cancelMyCarButton {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 10px;
  cursor: pointer;
  width: 50px;
  height: 50px;
  background-color: #000000;
  border-radius: 50%;
  z-index: 2500;
  border: none;
}
#selectPositionTitle {
  position: absolute;
  top: 120px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2500;
  background-color: #000;
  margin: 8px;
  padding: 8px;
  border-radius: 4px;
  opacity: 0.76;
  border: none;
  width: calc(100vw - 100px);
}
#saveMyCarButton {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 10px;
  cursor: pointer;
  width: 50px;
  height: 50px;
  background-color: #000000;
  border-radius: 50%;
  z-index: 2500;
  border: none;
}

/* Click Menu */

#plusButton {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 28px;
  cursor: pointer;
  width: 24px;
  height: 24px;
  background-color: #000;
  border-radius: 4px;
}
#actionMenu {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100px;
  background-color: #000;
  color: #fff;
  padding: 10px;
  border-radius: 4px;
}
#poiActionMenu {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: max-content;
  background-color: #000;
  color: #fff;
  padding: 10px;
  border-radius: 4px;
}
#poiSelectBox {
}

/* LOADING */
#loading {
  position: fixed;
  top: 0px;
  left: 0px;
  width: 100vw;
  height: 100vh;
  background: rgba(255, 255, 255, 0);
  backdrop-filter: blur(0px);
  display: flex;
  align-items: center;
  justify-content: center;
  /* transition: all 1s ease-out; */
  opacity: 1;
}

#loading.blurred {
  /* transition: all 1s ease-out; */
  backdrop-filter: blur(8px);
}

#loading.fadeOut {
  opacity: 0;
}

#loading .contentContainer {
  background: transparent;
  width: 30vw;
  height: 30vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

#loading .loading-cube {
  width: 40px;
  height: 40px;
  position: relative;
  transform-style: preserve-3d;
  animation: rotateCube 5s infinite linear;
  background-color: white;
  border-radius: 22px;
  box-shadow: 0px 0px 10px white;
}

#loading .loading-cube:before {
  content: "";
  width: 140px;
  height: 40px;
  position: relative;
  transform-style: preserve-3d;
  background-color: pink;
  border-radius: 22px;
  box-shadow: 0px 0px 10px pink;
}

#loading .loading-cube div {
  position: absolute;
  width: 40px;
  height: 40px;
  background: rgba(0, 0, 50, 0.2);
  border: 4px solid black;
  border-radius: 12px;
  display: flex;
  justify-content: center;
  align-items: center;
}

#loading .face1 {
  transform: rotateY(0deg) translateZ(50px);
}
#loading .face2 {
  transform: rotateY(90deg) translateZ(50px);
}
#loading .face3 {
  transform: rotateY(180deg) translateZ(50px);
}
#loading .face4 {
  transform: rotateY(270deg) translateZ(50px);
}
#loading .face5 {
  transform: rotateX(90deg) translateZ(50px);
}
#loading .face6 {
  transform: rotateX(-90deg) translateZ(50px);
}

@keyframes rotateCube {
  from {
    transform: rotateX(360deg) rotateY(0deg);
  }
  to {
    transform: rotateX(0deg) rotateY(360deg);
  }
}

/* Poi Content Box */
#poiContentBox {
  background: white;
  border-radius: 24px; /* 20px */
  position: absolute;
  top: 70px;
  left: 30px;
  z-index: 999999999999;
  box-shadow: 3px 5px 10px rgba(0, 0, 0, 0.2);
  min-width: 200px;
}

#poiContentBox .row {
  padding: 18px 20px;
}
#poiContentBox .row:last-child {
  border-top: 1px solid #f2f2f2;
  display: flex;
  justify-content: center;
  align-items: center;
}

#poiContentBox h3 {
  margin: 0px;
  padding: 0px;
}
#poiContentBox button.getDirections {
  outline: none;
  border: none;
  background: none;

  background: #297df1;
  color: white;
  padding: 8px 12px;
  border-radius: 6px;
  cursor: pointer;
}
#poiContentBox button.close {
  outline: none;
  border: none;
  background: none;

  background: #f5f5f5;
  color: rgb(85, 85, 85);
  padding: 4px 8px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 800;
}
#poiContentBox .title {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: start;
  gap: 5px;
}

/* Color Filter */
#color-filter {
  width: 100vw;
  height: 100vh;
  background: #35aeee;
  /* background:black; */
  opacity: 0.12;
  position: absolute;
  top: 0px;
  left: 0px;
  pointer-events: none;
  user-select: none;
  z-index: 1;
}

/* Tilt Shifting */
#tilt-shift {
  display: block;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0);
  position: absolute;
  top: 0px;
  left: 0px;
  pointer-events: none;
  user-select: none;
  opacity: 0.8;

  mask-image: linear-gradient(
    to top,
    black 0%,
    transparent 20%,
    transparent 75%,
    black 100%
  );
  -webkit-mask-image: linear-gradient(
    to top,
    black 0%,
    transparent 20%,
    transparent 75%,
    black 100%
  );
  -moz-mask-image: linear-gradient(
    to top,
    black 0%,
    transparent 20%,
    transparent 75%,
    black 100%
  );
  mask-size: 100% 100%;
  -webkit-mask-size: 100% 100%;
  -moz-mask-size: 100% 100%;

  backdrop-filter: blur(2px);
}

/* Media Queries */
/* displays wider then 1023px */

@media screen and (min-width: 1023px) {
  body {
    cursor: auto;
  }
  #indxContainer .ui-element.search-input .center-part {
    flex-grow: initial;
    width: 450px;
    background-color: #f9f9f9;
    height: 48px;
    border: 1px solid #eeeeee;
    border-right: none;
    border-left: none;
  }

  .label .poiLabel {
    background-color: rgba(0, 0, 0, 0.7);
    padding: 4px 12px;
    border-radius: 15px;
    color: whitesmoke;
    font-weight: 600;
    font-size: 10px;
    letter-spacing: 1px;
    border: 2px solid rgba(255, 255, 255, 1);
    /* box-shadow: 0px 0px 8px rgba(0,0,0,.8); */
  }
  .poi-container {
    position: fixed;
    justify-content: center;
    top: 100px;
    width: 550px;
    display: flex;
    margin-left: 30px;
  }

  #poiContainer {
    background-color: #fefefe;
    height: max-content;
    max-height: 240px;
    overflow-y: scroll;
    display: flex;
    flex-direction: column;
    justify-content: start;
    border-radius: 24px;
    margin: initial;
    width: 100%;
  }

  #tilt-shift {
  }

  .label .poiLabel::before {
    content: "";
    position: absolute;
    left: calc(50% - 20%);
    top: 40px;
    width: 40%;
    height: 16px;
    border-radius: 100%;
    background-color: rgba(0, 0, 0, 0.2);
    box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
    filter: blur(6px);
  }
}

/*
    Hide all UI elements on the HomePage Map
*/
@media screen and (max-height: 350px) {
  .ui-element {
    display: none !important;
  }
}

/*
    Only for iOS devices
*/

@supports (-webkit-touch-callout: none) {
  .label .poiLabel::before {
    content: "";
    position: absolute;
    left: calc(50% - 20%);
    top: 40px;
    width: 40%;
    height: 16px;
    border-radius: 100%;
    background-color: rgba(0, 0, 0, 0.2);
    box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
    filter: blur(6px);
  }
}
