 html, body {
      margin: 0;
      padding: 0;
      width: 100%;
      height: 100%;
    }

    #map {
      width: 100%;
      height: 100%;
      z-index: 0;
    }

    #sidebarToggleButton {
      position: absolute;
      top: 10px;
      left: 10px;
      border: black;
      border-radius: 10%;
      background-color: transparent;
      display:block;
      color: white;
      font-size: 30px;
      cursor: pointer;
      z-index: 12;
      transition: all 0.3s ease;
    }
    .menu-title {
      text-align: center;
      font-size: 24px;
      margin-bottom: 20px;
      color: #d3a6f6;
      font-weight: 600;
      letter-spacing: 0.5px;
      text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
    }

    #sidebar {
      justify-content: space-between;
      position: fixed;
      top: 0;
      left: -300px;
      width: 300px;
      height: 100%;
      background-color: #fffdfd;
      transition: left 0.3s ease-in-out;
      padding: 0px;
      z-index: 12;
      box-shadow: 4px 0 8px rgba(0, 0, 0, 0.2);
      border-radius: 10px 0 0 10px;
    }

    #sidebar h2 {
      display:flex;
      justify-content: left;
      list-style-type: none;
      padding: 13px 18px; 
      align-items:center;
      width: 100%; /* Full-width button */
    }


    #sidebar ul {
      display:flex;
      justify-content: left;
      list-style-type: none;
      padding: 13px 18px; 
      align-items:center;
      width: 100%; /* Full-width button */
    }

    #sidebar ul li {
      justify-content: left;
      padding: 13px 18px;
      cursor: pointer;
      border-bottom: 1px solid #444;
      border-radius: 5px;
      transition: background-color 0.3s ease;
    }

    #sidebar ul li:hover {
      background-color: #555;
    }
    .sidebar-button {
      display: flex; /* Flex for icon and text alignment */
      align-items: center;
      justify-content: space-between;
      width: 100%; /* Full-width button */
      padding: 13px 18px; /* Spacing */
      font-size: 16px; /* Button text size */
      font-weight: 500; /* Slightly bold */
      color: #333; /* Neutral text color */
      background-color: transparent; /* Transparent background */
      border: none; /* No border */
      border-radius: 8px; /* Rounded corners */
      text-align: left; /* Align text to the left */
      cursor: pointer; /* Pointer cursor on hover */
      transition: background-color 0.3s ease, color 0.3s ease;
      margin-right: 20px; /* Space between icon and text */
      font-size: 20px; /* Icon size */
      transition: color 0.3s ease;
    }
    
    /* Hover effect */
    .sidebar-button:hover {
      background-color: #f0f0f0; /* Light grey background */
      color: #007bff; /* Blue text on hover */
      transform: scale(1.12);
      transition: all 0.3s ease;
    }
    
    /* Active/selected state */
    .sidebar-button.active {
      background-color: #007bff; /* Blue background */
      color: #fff; /* White text */
    }
    

    #closeSidebarButton {
      position: absolute;
      top: 10px;
      right: 10px;
      background-color: transparent;
      color: rgb(0, 0, 0);
      display: block;
      border: none;
      font-size: 30px;
      cursor: pointer;
    }
    #routeButton {
      position: fixed;
      bottom: 140px;
      right: 20px;
      padding: 10px;
      background-color: white;
      border-radius: 50%;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
      font-size: 24px;
      text-align: center;
      cursor: pointer;
      z-index: 1;
    }


    #recenterButton {
      position: fixed;
      bottom: 20px;
      right: 20px;
      padding: 10px;
      background-color: white;
      border-radius: 50%;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
      font-size: 24px;
      text-align: center;
      cursor: pointer;
      z-index: 1;
    }

    #toggleViewButton {
      position: absolute;
      bottom: 80px;
      right: 20px;
      padding: 10px;
      background-color: white;
      border-radius: 50%;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
      font-size: 24px;
      text-align: center;
      cursor: pointer;
      z-index: 1;
    }

    #searchBar {
      display: block;
      align-items: end;
      position: absolute;
      top: 10px;
      left: 50%;
      transform: translateX(-50%);
      background-color: white;
      border: 2px solid #ccc;
      border-radius: 25px;
      padding: 10px;
      width: 300px;
      font-size: 16px;
      z-index: 10;
    }

    .container {
      align-items: center;
      display: flex;
    }

    /* From Uiverse.io by satyamchaudharydev */ 
.button {
  --primary-color: #645bff;
  --secondary-color: #fff;
  --hover-color: #111;
  --arrow-width: 10px;
  --arrow-stroke: 2px;
  box-sizing: border-box;
  border: 0;
  border-radius: 20px;
  color: var(--secondary-color);
  padding: 1em 1.8em;
  background: var(--primary-color);
  display: flex;
  transition: 0.2s background;
  align-items: center;
  gap: 0.6em;
  font-weight: bold;
}

.button .arrow-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
}

.button .arrow {
  margin-top: 1px;
  width: var(--arrow-width);
  background: var(--primary-color);
  height: var(--arrow-stroke);
  position: relative;
  transition: 0.2s;
}

.button .arrow::before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  border: solid var(--secondary-color);
  border-width: 0 var(--arrow-stroke) var(--arrow-stroke) 0;
  display: inline-block;
  top: -3px;
  right: 3px;
  transition: 0.2s;
  padding: 3px;
  transform: rotate(-45deg);
}

.button:hover {
  background-color: var(--hover-color);
}

.button:hover .arrow {
  background: var(--secondary-color);
}

.button:hover .arrow:before {
  right: 0;
}
    .error-popup {
      display: flex;
      justify-content: center;
      align-items: center;
      position: fixed;
      bottom: 20px;
      right: 20px;
      background-color: #232531;
      color: #ffffff;
      border-radius: 8px;
      padding: 10px 15px;
      box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
      width: 300px;
      z-index: 1000;
      animation: slideIn 0.3s ease-out;
    }
    
    .error-popup-content {
      display: flex;
      align-items: center;
      gap: 10px;
      position: relative;
    }
    
    .icon {
      color: #d65563;
      background-color: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(5px);
      padding: 6px;
      border-radius: 50%;
    }
    
    .icon-svg {
      width: 24px;
      height: 24px;
    }
    
    .text-main {
      font-size: 14px;
      font-weight: bold;
    }
    
    .text-desc {
      font-size: 12px;
      color: #a0a0a0;
    }

   @keyframes slideIn {
      from {
        transform: translateY(50px);
        opacity: 0;
      }
      to {
        transform: translateY(0);
        opacity: 1;
      }
    }
    
    .scrollable-button-container {
      display: flex;
      flex-wrap: nowrap;
      overflow-x: auto;
      width: 100%;
      padding-bottom: 8px;  /* Adds some space for the scrollbar */
    }
    
    .scrollable-button {
      padding: 10px 20px;
      margin: 5px;
      background-color: #7808d0;
      color: white;
      border: none;
      border-radius: 4px;
      cursor: pointer;
      white-space: nowrap;
      flex-shrink: 0;  /* Prevent buttons from shrinking */
      text-align: center;
      transition: background-color 0.3s ease;
    }
    
/* From Uiverse.io by Creatlydev */ 
.floatbutton {
  position: absolute;
      top: 10px;
      left: 68%;
      transform: translateX(-50%);
  line-height: 1;
  text-decoration: none;
  display: inline-flex;
  border: none;
  cursor: pointer;
  align-items: center;
  gap: 0.75rem;
  background-color: var(--clr);
  color: #fff;
  border-radius: 25px;
  font-weight: 600;
  padding: 9px 1rem;
  padding-left: 20px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background-color 0.3s;
  z-index: 10;
}

.floatbutton__icon-wrapper {
  flex-shrink: 0;
  width: 25px;
  height: 25px;
  position: relative;
  color: var(--clr);
  background-color: #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.floatbutton:hover {
  background-color: #000;
}

.floatbutton:hover .floatbutton__icon-wrapper {
  color: #000;
}

.floatbutton__icon-svg--copy {
  position: absolute;
  transform: translate(-150%, 150%);
}

.floatbutton:hover .floatbutton__icon-svg:first-child {
  transition: transform 0.3s ease-in-out;
  transform: translate(150%, -150%);
}

.floatbutton:hover .floatbutton__icon-svg--copy {
  transition: transform 0.3s ease-in-out 0.1s;
  transform: translate(0);
}

   
/* The switch - the box around the slider */
.switch {
  font-size: 14px;
  position: relative;
  display: inline-block;
  width: 35px;
  height: 20px;
}

/* Hide default HTML checkbox */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

/* The slider */
.slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #d4acfb;
  border-radius: 50px;
  transition: all 0.4s cubic-bezier(0.23, 1, 0.320, 1);
}

.slider:before {
  position: absolute;
  content: "";
  height: 15px;
  width: 15px;
  left: 0.2em;
  bottom: 0.15em;
  background-color: white;
  border-radius: 50px;
  box-shadow: 0 0px 20px rgba(0,0,0,0.4);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.switch input:checked + .slider {
  background: #b84fce;
}

.switch input:focus + .slider {
  box-shadow: 0 0 3px #000000;
}

.switch input:checked + .slider:before {
  transform: translateX(1.6em);
  width: 20px;
  height: 20px;
  bottom: 0;
}
/* Popup Styles */
.popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  background: rgba(0, 0, 0, 0.8); /* Semi-transparent black background */
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.4s ease, visibility 0s 0.4s; /* Smooth fade-in/fade-out */
}

/* Hide popup */
.popup.hidden {
  opacity: 0;
  visibility: hidden;
}

/* Popup content box */
.popup-content {
  background: linear-gradient(145deg, #0a0a0a, #1a1a1a); /* Subtle gradient for depth */
  padding: 30px;
  text-align: center;
  border-radius: 12px;
  width: 350px;
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2); /* Soft shadow for depth */
  transition: transform 0.3s ease-in-out; /* Subtle scaling effect */
}

.popup-content:hover {
  transform: scale(1.02); /* Slight zoom effect on hover */
}

/* Popup button styles */
.popup-btn {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #8a2be2; /* Neon lavender */
  border: none;
  padding: 15px;
  width: 100%;
  margin: 12px 0;
  font-size: 16px;
  color: #fff;
  font-weight: 500;
  cursor: pointer;
  border-radius: 8px;
  transition: all 0.3s ease; /* Smooth hover effect */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* Soft shadow */
}

.popup-btn:hover {
  background: #9b30ff; /* Neon purple on hover */
  transform: translateY(-3px); /* Slight lift effect on hover */
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); /* Enhanced shadow */
}
.icon2 {
  width: 30px;
  height: 30px;
  margin-right: 16px; /* Space between icon and text */
  transition: transform 0.2s ease;
}

/* Icon styles */
.icon {
  width: 26px;
  height: 26px;
  margin-right: 12px; /* Space between icon and text */
  transition: transform 0.2s ease;
}


/* Close button */
.popup-close {
  background: white; /* white background for close button */
  color: rgb(0, 0, 0);
  border: none;
  padding: 12px 25px;
  cursor: pointer;
  font-size: 14px;
  margin-top: 25px;
  border-radius: 6px;
  transition: background 0.3s ease, transform 0.3s ease; /* Smooth transition */
}

.popup-close:hover {
  background: #c0392b; /* Darker red when hovered */
  transform: translateY(-3px); /* Slight lift on hover */
}

/* Animations for smooth visibility */
.popup-content {
  opacity: 0;
  animation: fadeInUp 0.5s ease-out forwards;
}
 /* Custom Marker Style */
 .fixed-size-marker {
  width: 40px;
  height: 40px;
  border-radius: 50%; /* Circular marker */
  transform: translate(-50%, -50%); /* Center marker */
  position: absolute; /* Ensure it doesn't scale with zoom */
  background-image: url('location.png');
  background-size: contain;
  background-repeat: no-repeat;
}
#planRouteContainer {
  display: none;
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  width: 300px;
  z-index: 2;
}

#routeInputs {
  background-color: white;
  border: 2px solid #ccc;
  border-radius: 25px;
  padding: 15px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px; /* Space between elements */
}

.input-container {
  width: 100%;
  position: relative;
  display: flex;
  align-items: center;
}
 /* Back Button inside the start location input */
 .route-back-button {
  background-color: white;
  color: black; /* Changed to black */
  border: none;
  font-size: 18px;
  width: 32px;
  height: 32px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  position: absolute;
  left: 10px;
  z-index: 1;
  outline: none;
}
#startLocation {
  padding-left: 40px; /* To make space for the back button */
  padding: 10px 15px;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 20px;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.3s;
}

#startLocation:focus {
  border-color: #4285F4;
}

#routeInputs input[type="text"] {
  width: 100%;
  padding: 10px 15px;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 20px;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.3s;
}

#routeInputs input[type="text"]:focus {
  border-color: #4285F4;
}

.current-location {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  font-size: 14px;
  color: #4285F4;
  cursor: pointer;
  white-space: nowrap;
}

#routeInputs button {
  width: 100%;
  padding: 10px 15px;
  font-size: 16px;
  border: none;
  border-radius: 20px;
  background-color: #4285F4;
  color: white;
  cursor: pointer;
  transition: background-color 0.3s;
}

#routeInputs button:hover {
  background-color: #357ae8;
}


@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(50px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}


    /* Media Query for Mobile Responsiveness */
    @media (max-width: 766px) {
      html, body {
        height: 100%; /* Ensure full height on mobile devices */
      }
    
      #map {
        height: 100%; /* Ensure the map covers the full viewport height */
      }
      #sidebar {
        left: -300px;
        width: 250px;
        padding: 0px;
      }
      #sidebarToggleButton {
        font-size: 28px;
        top: 8px;
        left: 15px;
      }

      #searchBar {
        width: 250px;
        font-size: 14px;
      }

      #recenterButton, #toggleViewButton {
        padding: 8px;
      }
      #sidebar ul {
        display: none;
      }
      .container {
        flex-direction: column;
      }
      
    }
    @media (max-width: 1280px) {
      .floatbutton {
        position: absolute;
            top: 52px;
            left: 50%;
      }
    }