button {
  padding: 5px;
  width: 100px;
  color: black;
  border: none;
  border-radius: 5px;
  box-shadow:
    3px 3px 5px #5A5C5E,
    -3px -3px 5px #ffffff;
  background: transparent;
  align-items: center;
  display: flex;
  justify-content: center;
  cursor: pointer;
}

select {
  background: transparent;
  padding: 5px;
  width: 150px;
  border-radius: 5px;
  box-shadow:
    3px 3px 5px #5A5C5E,
    -3px -3px 5px #ffffff;
  cursor: pointer;
  border: none;
  text-align: center;
  -webkit-appearance: none !important;
}

select:hover,
button:hover {
  box-shadow:
    2px 2px 3px #5A5C5E,
    -2px -2px 3px #ffffff;
}

.flex-labels {
  margin-left: auto;
  margin-right: auto;
  width: 75%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  align-content: center;
  margin-top: 10px;
  border: none;
}

.flex-label-items {
  flex: 1 1 0;
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  border-radius: 5px;
  margin-left: auto;
  margin-right: auto;
  padding: 5px;
  margin: 10px;
  border: none;
}

.flex-buttons {
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 5px;
  border: none;
}

.flex-button-items {
  border-radius: 5px;
  margin-left: auto;
  margin-right: auto;
  margin: 5px;
  border: none;
}

/*------------------------------------------------------------------*/
/*----------------------Grid and Node CSS---------------------------*/

.container {
  display: grid;
  box-shadow:
    3px 3px 4px #5A5C5E,
    -3px -3px 4px #ffffff;
  border-radius: 5px;
  padding: 12px;
  margin-top: 10px;
  margin-left: auto;
  margin-right: auto;
  grid-template-rows: repeat(20, 30px);
  grid-template-columns: repeat(40, 30px);
  grid-row-gap: 5px;
  grid-column-gap: 5px;
  border: none;
}

.ends {
  background: #26466D;
  color: white;
  font-weight: bolder;
  text-align: center;
  box-shadow:
    3px 3px 4px #5A5C5E,
    -3px -3px 4px #ffffff;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: cell;
  border: none;
}

.before_start {
  background: transparent;
  text-align: center;
  box-shadow:
    3px 3px 4px #5A5C5E,
    -3px -3px 4px #ffffff;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: cell;
  border: none;
}

.Path_green {
  background: #00FF00;
  color: black;
  text-align: center;
  box-shadow:
    5px 5px 9px #5A5C5E,
    -5px -5px 9px #ffffff;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: cell;
  border: none;
}

.Path_red {
  background: #DC143C;
  color: white;
  text-align: center;
  box-shadow:
    3px 3px 4px #5A5C5E,
    -3px -3px 4px #ffffff;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: cell;
  border: none;
}

/* Wall */
.wall {
  background-color: #5A5C5E;
  box-shadow:
    inset 5px 5px 7px #464849,
    inset -1px -1px 2px #cccaca;
  color: #5A5C5E;
  text-align: center;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: cell;
  border: none;
}


/*------------------------------------------------------------*/
/* ---------------------Slider CSS--------------------------- */
.slidecontainer {
  width: 50%;
}

.slider {
  -webkit-appearance: none;
  min-width: 80px;
  height: 5px;
  border: none;
  border-radius: 5px;
  background: transparent;
  box-shadow:
    inset 3px 3px 4px #5A5C5E,
    inset -3px -3px 4px white;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
}

.slider:hover {
  box-shadow:
    inset 5px 5px 5px #5A5C5E,
    inset -5px -5px 5px white;
}

.slider::-moz-range-thumb,
.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 10px;
  height: 30px;
  background: #E0E5EC;
  border: none;
  box-shadow:
    4px 4px 5px #5A5C5E,
    -2px -2px 5px white;
  cursor: pointer;
}

/* ----------------------- Media Queries --------------------- */

/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {
  select {
    width: 120px;
  }

  .flex-labels {
    width: 90%;
  }

  button,
  select,
  .node,
  .container {
    box-shadow:
      2px 2px 2px #5A5C5E,
      -2px -2px 2px #ffffff;
  }

  button:hover,
  select:hover {
    box-shadow:
      1px 1px 1px #5A5C5E,
      -1px -1px 1px #ffffff;
  }

  .container {
    border-radius: 1px;
    padding: 5px;
    margin-top: 5px;
    grid-template-rows: repeat(20, 7px);
    grid-template-columns: repeat(40, 7px);
    grid-row-gap: 3px;
    grid-column-gap: 3px;
  }

  .node {
    font-size: 0.7ch;
    border-radius: 1px;
  }

  .wall {
    background-color: #5A5C5E;
    box-shadow:
      inset 1px 1px 2px #464849,
      inset -1px -1px 2px #cccaca;
    color: #5A5C5E;
  }
}

/* Extra small devices (phones, 600px and down) */
@media only screen and (min-width: 600px) {
  select {
    width: 120px;
  }

  .flex-labels {
    width: 90%;
  }

  button,
  select,
  .node,
  .container {
    box-shadow:
      2px 2px 3px #5A5C5E,
      -2px -2px 3px #ffffff;
  }

  button:hover,
  select:hover {
    box-shadow:
      1px 1px 2px #5A5C5E,
      -1px -1px 2px #ffffff;
  }

  .container {
    border-radius: 3px;
    padding: 10px;
    margin-top: 5px;
    grid-template-rows: repeat(20, 10px);
    grid-template-columns: repeat(40, 10px);
    grid-row-gap: 4px;
    grid-column-gap: 4px;
  }

  .node {
    font-size: 0.75ch;
    border-radius: 3px;
  }

  .wall {
    background-color: #5A5C5E;
    box-shadow:
      inset 2px 2px 3px #464849,
      inset -1px -1px 2px #cccaca;
    color: #5A5C5E;
  }
}

/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {
  .flex-labels {
    width: 80%;
  }

  button,
  select,
  .node,
  .container {
    box-shadow:
      2px 2px 3px #5A5C5E,
      -2px -2px 3px #ffffff;
  }

  button:hover,
  select:hover {
    box-shadow:
      2px 1px 2px #5A5C5E,
      -2px -1px 2px #ffffff;
  }

  .container {
    border-radius: 3px;
    padding: 7px;
    margin-top: 10px;
    grid-template-rows: repeat(20, 13px);
    grid-template-columns: repeat(40, 13px);
    grid-row-gap: 4px;
    grid-column-gap: 4px;
  }

  .node {
    font-size: 1ch;
    border-radius: 3px;
  }

  .wall {
    background-color: #5A5C5E;
    box-shadow:
      inset 2px 2px 4px #464849,
      inset -1px -1px 3px #cccaca;
    color: #5A5C5E;
  }
}

/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px) {
  .flex-labels {
    width: 80%;
  }

  button,
  select,
  .node,
  .container {
    box-shadow:
      3px 3px 4px #5A5C5E,
      -3px -3px 4px #ffffff;
  }

  button:hover,
  select:hover {
    box-shadow:
      2px 2px 3px #5A5C5E,
      -2px -2px 3px #ffffff;
  }

  .container {
    border-radius: 5px;
    padding: 10px;
    margin-top: 10px;
    grid-template-rows: repeat(20, 20px);
    grid-template-columns: repeat(40, 20px);
    grid-row-gap: 5px;
    grid-column-gap: 5px;
  }

  .node {
    font-size: 1.25ch;
    border-radius: 5px;
  }

  .wall {
    background-color: #5A5C5E;
    box-shadow:
      inset 3px 3px 5px #464849,
      inset -2px -2px 3px #cccaca;
    color: #5A5C5E;
  }
}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {

  button,
  select,
  .node,
  .container {
    box-shadow:
      4px 4px 5px #5A5C5E,
      -4px -4px 5px #ffffff;
  }

  button:hover,
  select:hover {
    box-shadow:
      3px 3px 4px #5A5C5E,
      -3px -3px 4px #ffffff;
  }

  .container {
    border-radius: 5px;
    padding: 12px;
    margin-top: 10px;
    grid-template-rows: repeat(20, 30px);
    grid-template-columns: repeat(40, 30px);
    grid-row-gap: 5px;
    grid-column-gap: 5px;
  }

  .node {
    font-size: 1.5ch;
    border-radius: 5px;
  }

  .wall {
    background-color: #5A5C5E;
    box-shadow:
      inset 3px 3px 5px #464849,
      inset -2px -2px 3px #cccaca;
    color: #5A5C5E;
  }
}