/* Reset body */
html, body {
  margin: 0;
  font-family: Arial, sans-serif;
  height: 100%;
}

/* Fullscreen overlay */
.overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.6);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}

/* Bouncing dots loader */
.bouncing-dots {
  display: flex;
  gap: 8px;
}
.bouncing-dots span {
  width: 12px; height: 12px;
  background: white;
  border-radius: 50%;
  animation: bounce 0.6s infinite alternate;
}
.bouncing-dots span:nth-child(2) { animation-delay: 0.2s; }
.bouncing-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes bounce { from { transform: translateY(0); opacity: 0.5; } to { transform: translateY(-12px); opacity: 1; } }

/* Flex container for left/right split */
.container-flex {
  display: flex;
  height: 100vh;
}

/* Left panel */
.split-left {
  flex: 0.35;
  background: white;
  color: black;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 2rem;
}
.split-left img {
  max-width: 500px;
  margin-bottom: 20px;
}
.split-left h1 { font-size: 1.8rem; margin: 0; }
.split-left p { font-size: 1.2rem; margin-top: 10px; }

/* Right panel */
.split-right {
  flex: 0.65;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;  /* center vertically */
  background: #EEEEEE;
  padding: 0;
}

/* Login wrapper */
.login-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;  /* optional, centers content inside wrapper */
  width: 100%;
  margin: 0;                /* remove previous margin-top */
}

/* Logo above login card */
.login-logo {
  width: 300px;
  height: auto;
  display: block;
  margin-bottom: 5px;
}


/* Login box */
.login-box {
  background: white;
  padding: 25px 20px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  width: 100%;
  max-width: 360px;
  text-align: center;
  box-sizing: border-box;
}

/* Inputs and button */
.login-box input,
.login-box button {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  display: block;
  margin: 10px auto;
  padding: 12px;
  font-size: 1rem;
}
.login-box button {
  background: #9B7EBD;
  color: white;
  border: none;
  border-radius: 6px;
  font-weight: bold;
  cursor: pointer;
}
.login-box button:disabled { background: #888; cursor: not-allowed; }

/* Error message */
.error-msg { color: red; margin-bottom: 10px; }

/* Responsive */
@media (max-width: 768px) {
  .container-flex { flex-direction: column; height: auto; }
  .split-left, .split-right { width: 100%; flex: none; padding: 20px; }
  .login-wrapper { max-width: 320px; margin-top: 20px; }
  .login-logo { max-width: 250px; }
  .login-box { max-width: 320px; margin-top: 5px; }
}
