@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap");
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: #1e1e1e;
  width: 100%;
  overflow: hidden;
}

.login-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 100vh;
  cursor: default;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.login-card {
  padding: 50px 40px;
  width: 380px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}
.login-card h2 {
  font-size: 2rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 3px;
  text-align: center;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  cursor: default;
}
.login-card form {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.login-logo {
  max-width: 220px;
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  cursor: default;
}

.login-subtitle {
  margin-top: -12px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #aaaaaa;
  text-align: center;
}

.login-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-align: center;
}
.login-links a {
  font-size: 0.82rem;
  color: #cccccc;
  text-decoration: none;
  transition: color 0.2s;
}
.login-links a:hover {
  color: #4fc3f7;
}

.input-group {
  position: relative;
  display: flex;
  align-items: center;
  background: #3a3a3a;
  border-radius: 50px;
  height: 62px;
  padding: 0 8px;
  width: 100%;
}
.input-group input {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: none;
  outline: none;
  font-size: 1rem;
  color: #ffffff;
  padding: 0 14px;
  cursor: text;
  -webkit-user-select: text;
     -moz-user-select: text;
          user-select: text;
}
.input-group input::-moz-placeholder {
  color: rgba(255, 255, 255, 0.75);
}
.input-group input::placeholder {
  color: rgba(255, 255, 255, 0.75);
}

input[type=password]::-moz-reveal {
  display: none;
}

input[type=password]::-ms-reveal {
  display: none;
}

.toggle-pw {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0 8px;
  display: flex;
  align-items: center;
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
  transition: color 0.2s;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  outline: none;
}
.toggle-pw:hover {
  color: rgba(255, 255, 255, 0.9);
}

.input-icon {
  width: 46px;
  height: 46px;
  background: #555;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  color: #ccc;
  cursor: default;
}

.turnstile-wrapper {
  display: flex;
  justify-content: center;
}

.erro-msg {
  display: none;
  color: #ff7676;
  font-size: 0.88rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: -4px;
}

button[type=submit] {
  width: 100%;
  height: 62px;
  background: #484848;
  border: none;
  border-radius: 50px;
  font-size: 1rem;
  font-weight: 700;
  color: #e0e0e0;
  letter-spacing: 3px;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: opacity 0.2s, transform 0.1s;
}
button[type=submit]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
button[type=submit]:hover {
  opacity: 0.92;
}
button[type=submit]:active {
  transform: scale(0.98);
}
