.boda-access-form {
  max-width: 360px;
  margin: 80px auto;
  padding: 28px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

.boda-access-form input[type="text"],
.boda-access-form input[type="password"] {
  width: 100%;
  box-sizing: border-box;
}

#boda_card_code {
  width: 100%;
  box-sizing: border-box;
  font-family: "Courier New", monospace;
  font-size: 1rem;
  letter-spacing: 0.04em;
}

@media (max-width: 480px) {
  .boda-access-form {
    margin: 32px 16px;
    padding: 20px;
  }

  #boda_card_code {
    font-size: 0.92rem;
    letter-spacing: 0.02em;
  }
}

.boda-nfc-detected {
  margin-bottom: 18px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(80, 170, 120, 0.12);
  border: 1px solid rgba(80, 170, 120, 0.25);
  color: #235c38;
  font-weight: 600;
  animation: bodaFadeInDown 0.45s ease-out;
}

.boda-nfc-detected small {
  display: block;
  margin-top: 4px;
  font-weight: 400;
  opacity: 0.85;
}

#boda_card_code {
  font-family: "Courier New", monospace;
  font-size: 1.08rem;
  letter-spacing: 0.08em;
}

.boda-card-detected {
  animation: bodaCardPulse 1.2s ease-out 1, bodaCardGlow 2.2s ease-in-out 1;
  border-color: #5aa774 !important;
  box-shadow: 0 0 0 4px rgba(90, 167, 116, 0.12);
}

@keyframes bodaFadeInDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes bodaCardPulse {
  0% { transform: scale(0.985); }
  40% { transform: scale(1.015); }
  100% { transform: scale(1); }
}

@keyframes bodaCardGlow {
  0% { box-shadow: 0 0 0 0 rgba(90,167,116,0); }
  35% { box-shadow: 0 0 0 8px rgba(90,167,116,0.18); }
  100% { box-shadow: 0 0 0 4px rgba(90,167,116,0.12); }
}