* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: sans-serif;
  padding-top: 60px;
  overflow: hidden;
  height: 100vh;
}

#aside {
  position: fixed;
  left: 0;
  top: 60px;
  width: 250px;
  height: calc(100dvh - 60px);
  background-color: #2b2b2b;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

#modal-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 998;
  /* Below aside (999) but above content */
  backdrop-filter: blur(2px);
}

#modal-overlay.active {
  display: block;
}

main {
  margin-left: 250px;
  padding: 20px;
  background-color: #e8e8e8;
  overflow-y: auto;
  height: calc(100dvh - 60px);
}


@media (max-width: 768px) {
  #aside {
    transform: translateX(-100%);
    transition: transform 0.3s ease-in-out;
    z-index: 999;
    width: 100svw;
    /* Keep width fixed for drawer effect */
  }

  #aside.active {
    transform: translateX(0);
  }

  main {
    margin-left: 0;
    width: 100%;
  }
}

/* Close the existing media query */

/* Helper classes for responsive views - Defaults (Desktop) */
.view-desktop {
  display: block !important;
}

.view-mobile {
  display: none !important;
}

/* Overrides for Mobile */
@media (max-width: 768px) {
  .view-desktop {
    display: none !important;
  }

  .view-mobile {
    display: block !important;
  }
}