* {
  margin: 0px;
  padding: 0px;
  font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

body {
  background-color: #212121;
  width: 100vw;
  height: 100vh;
  overflow-x: hidden;
}

:root {
  --nav-height: 50px;
}

nav {
  height: var(--nav-height);
  display: flex;
  align-items: center;

  position: fixed;
  top: 0;
  left: 0;
  right: 0;

  padding: 0 0 0 15px;
  color: black;
  background-color: whitesmoke;
  z-index: 999;
  box-shadow: 0px 3px 9px rgb(0, 0, 0);
}

.nav-title {
  text-decoration: none;
  color: black;
  font-size: 28px;
  font-weight: bold;
  margin-right: auto;
}

.nav-title::after {
  content: "-by pavan mahesh";
  position: absolute;
  pointer-events: none;
  z-index: -1;
  opacity: 0;
}

.ds-options-container {
  height: var(--nav-height);
  display: flex;
  align-items: center;
  justify-content: end;
}

.ds-types-container {
  height: var(--nav-height);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  position: relative;
}

.ds-name {
  font-size: 19px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;

  padding: 0 24px;
  transition: background-color 0.15s;
  z-index: 1;
}

#stack .ds-name{
  padding: 0 30px;
}

#linked-list .ds-name {
  padding: 0 22px;
}


.ds-types-container:has(.ds-types:hover) .ds-name,
.ds-name:hover {
  background-color: rgb(220, 220, 220);
}

.ds-types {
  height: 0px;

  display: flex;
  flex-direction: column;
  align-items: center;

  position: absolute;
  top: 100%;

  background-color: whitesmoke;
  box-shadow: 0px 3px 9px rgb(0, 0, 0, 0.7);
  overflow: hidden;
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
  transition: height 0.25s;
}

.ds-name:hover ~ .ds-types,
.ds-types:hover {
  height: 200%;
}

.ds-types a {
  width: 100%;
  min-height: var(--nav-height);
  display: flex;
  align-items: center;
  justify-content: center;

  box-sizing: border-box;
  padding: 0 8px;
  text-decoration: none;
  text-align: center;
  color: black;
  transition: background-color 0.15s;
}

.ds-types a:hover {
  background-color: rgb(200, 200, 200);
}

.download {
  height: 100%;
  width: 100%;
  margin: 0 24px
}

.download a{
  height: 100%;
  width: 100%;
  
  display: flex;
  align-items: center;
  justify-content: center;
  
  font-size: 19px;
  text-decoration: none;
  color: black;

  transition: background-color 0.15s;
}

.download:hover {
  background-color: rgb(220, 220, 220);
}

#sidebar-active {
  display: none;
}

.open-sidebar-button, 
.close-sidebar-button {
  display: none;
}

@media (max-width: 700px) {
  .ds-options-container {
    width: 180px;
    height: max-content;
    flex-direction: column;
    justify-content: start;

    position: fixed;
    top: 0;
    right: -100%;
    
    padding-bottom: 50px;
    border-radius: 2px;
    border-top-right-radius: 0px;
    background-color: whitesmoke;
    box-shadow: -2px -2px 6px rgba(0, 0, 0, 0.3);
    transition: right 0.3s;
  }

  .ds-types-container {
    width: 100%;

    transition: height 0.25s;
  }

  .ds-types-container:has(.ds-name:hover),
  .ds-types-container:has(.ds-types a:hover) {
    height: calc(3 * var(--nav-height));
  }

  .ds-name {
    width: 100%;
    min-height: var(--nav-height);
    padding: 0 0 !important;
  }

  .ds-types {
    width: 100%;
    position: static;
    box-shadow: 
      inset 0 2px 6px rgba(0, 0, 0, 0.3),
      inset 0 -2px 6px rgba(0, 0, 0, 0.3);
  }

  .ds-types a {
    padding: 0;
  }

  .open-sidebar-button, 
  .close-sidebar-button {
    width: var(--nav-height);
    height: var(--nav-height);
    
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .close-sidebar-button {
    align-self: flex-start;
  }

  .open-sidebar-button:hover, 
  .close-sidebar-button:hover {
    background-color: rgb(220, 220, 220);
  }

  #sidebar-active:checked ~ .ds-options-container {
    right: 0;
  }

  #sidebar-active:checked ~ #overlay {
    width: 100%;
    height: 100%;

    position: fixed;
    top: 0;
    left: 0;
  }
}