:root {
  --color-primary: #0dcaf0;
  --color-primary-hover: #0078c9;
  --color-background: linear-gradient(135deg, #cde9ff, #e7f5ff, #cde9ff);
  --color-white: #ffffff;
  --color-border: #bcd8ff;
  --color-shadow: rgba(0, 123, 255, 0.25);
  --spacing-small: 8px;
  --spacing-medium: 12px;
  --spacing-large: 20px;
}

/* ====== Layout ====== */
body {
  font-family: 'Segoe UI', Arial, sans-serif;
  background: var(--color-background);
  background-size: 300% 300%;
  animation: gradientFlow 10s ease infinite;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  margin: 0;
}

/* ====== Container ====== */
.login-container {
  background-color: var(--color-white);
  padding: var(--spacing-large);
  border-radius: 12px;
  box-shadow: 0 0 20px var(--color-shadow);
  width: 100%;
  max-width: 380px;
  box-sizing: border-box;
  text-align: center;
}

/* ====== Logo ====== */
.logo-container {
  margin-bottom: 10px;
}

.logo-container img {
  width: 90px;
  height: auto;
  filter: drop-shadow(0 0 6px rgba(0, 140, 255, 0.6));
}

/* ====== Title ====== */
.login-container h2 {
  color: #0078c9;
  margin-bottom: 18px;
}

/* ====== Form ====== */
#loginForm {
  width: 100%;
}

/* ====== Input ====== */
#loginForm input[type="email"],
#loginForm input[type="password"],
#loginForm input[type="text"] {
  width: 100%;
  padding: 12px 15px;
  margin-bottom: 15px;
  font-size: 15px;
  border-radius: 8px;
  border: 1px solid #b3d7ff;
  box-sizing: border-box;
  background-color: #e8f0fe;
}

#loginForm input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 6px rgba(13, 202, 240, 0.4);
}


/* ====== Password Wrapper ====== */
.password-wrapper {
  position: relative;
  width: 304px;
  max-width: 100%;
}

/* Input password */
.password-wrapper input {
  padding-right: 40px;
}

/* ====== Toggle Password (CENTER KLASIK) ====== */
.toggle-password {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-95%); /* NAIK 2–3px */
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  user-select: none;
}



/* ====== reCAPTCHA ====== */
#recaptchaContainer {
  margin: 12px 0;
  display: flex;
  justify-content: center;
}

/* ====== Button ====== */
/* ====== Button ====== */
#loginBtn {
  width: 304px;
  padding: 12px;
  border-radius: 6px;
  border: none;
  background: linear-gradient(135deg, #0dcaf0, #0078c9);
  color: #fff;
  font-size: 15px;
  font-weight: bold;
}

/* tombol non-aktif */
#loginBtn:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

/* tombol aktif */
#loginBtn:enabled {
  cursor: pointer;
}

/* ====== Forgot Password ====== */
.forgot-password {
  display: block;
  margin-top: 10px;
  font-size: 14px;
  color: #0078c9;
  text-decoration: none;
}

/* ====== Message ====== */
.message {
  margin-top: 12px;
  font-size: 14px;
}

/* ====== Animation ====== */
@keyframes gradientFlow {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* =====================================================
   FINAL FIX — SAMAKAN DENGAN LEBAR reCAPTCHA (304px)
   ===================================================== */

/* Form center */
#loginForm {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Input email & password */
#loginForm input[type="email"],
#loginForm input[type="password"],
#loginForm input[type="text"] {
  width: 304px;
  max-width: 100%;
}

/* Password wrapper ikut lebar */
.password-wrapper {
  width: 304px;
  max-width: 100%;
}

/* Tombol login ikut lebar */
#loginBtn {
  width: 304px;
  max-width: 100%;
}

/* reCAPTCHA tetap center & asli */
#recaptchaContainer {
  width: 304px;
  display: flex;
  justify-content: center;
}

/* =====================================================
   JUDUL LOGIN — CENTER & PROFESIONAL
   ===================================================== */

   .login-title {
    text-align: center;
    margin-bottom: 18px;
    color: #0078c9;
    font-weight: 700;
    line-height: 1.3;
  }
  
  .login-title span {
    display: block;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #005fa3;
    margin-top: 4px;
  }
  