html,
body {
  overscroll-behavior-y: contain;
  overscroll-behavior-x: none;
}
* {
  scroll-behavior: smooth;
}
*:focus {
  outline: none;
}

.loading-screen {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
}
.intro-loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
  background: #f0f0f0; /* or any bg you want */
  overflow: hidden;
  position: relative;
}

/* Circle Play Button */
.play-circle {
  width: 60px;
  height: 60px;
  background: #333;
  border-radius: 50%;
  animation: fadeInScale 0.6s ease forwards;
  opacity: 0;
}

/* Line + Ends */
.line-wrapper {
  position: relative;
  height: 20px;
  margin-top: 40px;
  width: 100%;
  max-width: 300px;
}

.load-line {
  position: absolute;
  top: 50%;
  left: 50%;
  height: 4px;
  background: #0099FF;
  transform: translate(-50%, -50%) scaleX(0);
  transform-origin: center;
  animation: growLine 0.6s 0.6s ease forwards;
  border-radius: 2px;
}

.line-end {
  position: absolute;
  top: 50%;
  width: 10px;
  height: 10px;
  background: #0099FF;
  border-radius: 50%;
  transform: translateY(-50%) scale(0);
  animation: popEnd 0.6s 0.6s ease forwards;
}

.left-end {
  left: 50%;
  transform-origin: right center;
  animation-name: popEndLeft;
}

.right-end {
  right: 50%;
  transform-origin: left center;
  animation-name: popEndRight;
}

/* Animations */
@keyframes fadeInScale {
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes growLine {
  to {
    transform: translate(-50%, -50%) scaleX(1);
    width: 12em;
  }
}

@keyframes popEndLeft {
  0% {
    transform: translateY(-50%) translateX(0) scale(0);
  }
  100% {
    transform: translateY(-50%) translateX(-150px) scale(1);
  }
}

@keyframes popEndRight {
  0% {
    transform: translateY(-50%) translateX(0) scale(0);
  }
  100% {
    transform: translateY(-50%) translateX(150px) scale(1);
  }
}

.login-container {
    text-align: center;
}
#installContainer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.8);  /* Semi-transparent background */
    color: white;
    text-align: center;
    padding: 10px 0;
    display: none;  /* Hidden initially */
  }
  
  #installButton {
    background-color: #007bff;
    color: white;
    border: none;
    padding: 10px 20px;
    font-size: 16px;
    cursor: pointer;
  }
  
  /* Confirmation Overlay Styles */
.confirmation-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.confirmation-content {
  background: #fff;
  padding: 20px;
  border-radius: 8px;
  text-align: center;
  width: 300px;
}

.confirmation-content p {
  margin-bottom: 20px;
  font-size: 16px;
}

.confirmation-actions {
  display: flex;
  justify-content: space-between;
}

.confirmation-actions button {
  background-color: #007bff;
  color: #fff;
  border: none;
  padding: 10px 20px;
  border-radius: 5px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.confirmation-actions button:hover {
  background-color: #0056b3;
}

.confirmation-actions button#cancelDelete {
  background-color: #ccc;
}

.confirmation-actions button#cancelDelete:hover {
  background-color: #888;
}



/* other profiles */
.profile-overlay.no-text-select {
  user-select: none;
  -webkit-user-select: none;
}

.media-popup-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0,0,0,0.85);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.media-popup img,
.media-popup video {
  max-width: 90vw;
  max-height: 90vh;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4);
}



/* Custom Alert Styles */
.custom-alert {
  position: fixed;
  top: 20px; /* Distance from the top of the screen */
  right: 5%; /* Distance from the right of the screen */
  background-color: #edeeed; /* Green background for success */
  color: rgb(19, 19, 19); /* White text color */
  padding: 1em 20px; /* Padding around the text */
  border-radius: .4em; /* Rounded corners */
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); /* Subtle shadow */
  z-index: 10000; /* Ensure it appears above other elements */
  transition: opacity 0.3s ease, transform 0.3s ease; /* Smooth transition */
  opacity: 1; /* Fully visible */
  transform: translateY(0); /* Initial position */
  width: 90%;
}

/* Alert message styles */
.alert-message {
  margin: 0; /* Remove default margin */
  font-size: 1em; /* Font size for the message */
  font-weight: 600; /* Medium font weight */
}

/* Countdown bar styles */
.countdown {
  height: 5px; /* Height of the countdown bar */
  background-color: rgba(240, 57, 11, 0.7); /* Light background for the countdown */
  width: 100%; /* Full width */
  transition: width 0.1s linear; /* Smooth width transition */
  border-radius: 5px; /* Rounded corners for the countdown */
  margin-top: 1em; /* Space between message and countdown */
}

/* Optional: Add a fade-out effect */
.custom-alert.fade-out {
  opacity: 0; /* Fade out */
  transform: translateY(-20px); /* Move up slightly */
}