
  /* HTMX Loading Indicator Styles */
  .htmx-indicator {
    display: none;
  }

  .htmx-request .htmx-indicator {
    display: inline-block;
  }

  .htmx-request .button-text {
    display: none;
  }

  /* Optional: Style disabled button during request */
  button[disabled] {
    opacity: 0.8;
    cursor: not-allowed;
  }

  /* Bounce animation for password strength validation */
  @keyframes bounce {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-10px); }
    75% { transform: translateX(10px); }
  }

  .bounce {
    animation: bounce 0.5s;
  }

  /* Fade in animation for success state */
  @keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
  }

  .fade-in {
    animation: fadeIn 0.5s ease-out;
  }

  .register-container {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
  }

  .card {
    overflow: hidden;
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
  }

  .cursor-pointer {
    cursor: pointer;
  }

  .input-group-text {
    background-color: transparent;
  }

  .form-control:focus {
    box-shadow: none;
    border-color: var(--bs-primary);
  }

  .input-group:focus-within .input-group-text {
    border-color: var(--bs-primary);
  }

  /* Smooth transitions */
  .btn, .form-control, .input-group-text {
    transition: all 0.2s ease-in-out;
  }

  /* Logo sizing */
  .logo-img {
    max-width: 150px;
    width: 100%;
    height: auto;
    margin: 0 auto;
    display: block;
  }

  /* Progress bar styling */
  .progress {
    background-color: #e9ecef;
    border-radius: 4px;
  }

  /* Success checkmark animation */
  @keyframes checkmark {
    0% { transform: scale(0); }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); }
  }

  .success-checkmark {
    animation: checkmark 0.5s ease-out;
  }

  /* Mobile responsive adjustments */
  @media (max-width: 576px) {
    .register-container {
      padding: 0.5rem 0.25rem;
    }

    .card {
      box-shadow: none !important;
      border: none;
      border-radius: 0;
    }

    .card-body {
      padding: 1.25rem 1rem !important;
    }

    .logo-img {
      max-width: 100px;
      margin-bottom: 1rem !important;
    }

    .nim-btn {
      width: 100%;
      padding: 0.625rem 1rem;
    }

    .text-center h4 {
      font-size: 1.25rem;
      margin-bottom: 0.5rem !important;
    }

    .text-center p {
      font-size: 0.875rem;
    }

    .text-center.mb-4 {
      margin-bottom: 1.5rem !important;
    }

    .mb-3 {
      margin-bottom: 0.875rem !important;
    }

    .mb-4 {
      margin-bottom: 1rem !important;
    }

    .mt-4 {
      margin-top: 1.5rem !important;
    }

    /* Reduce input padding on mobile */
    .form-control {
      padding: 0.5rem 0.75rem;
      font-size: 0.9375rem;
    }

    .input-group-text {
      padding: 0.5rem 0.75rem;
    }

    label small {
      font-size: 0.8125rem;
    }
  }

  /* Tablet adjustments */
  @media (min-width: 577px) and (max-width: 992px) {
    .register-container {
      padding: 2rem 1rem;
    }

    .card-body {
      padding: 2.5rem !important;
    }
  }

  /* Desktop adjustments */
  @media (min-width: 993px) {
    .register-container {
      padding: 2rem 1rem;
    }

    .card-body {
      padding: 3.5rem 4rem !important;
    }

    .form-control, .input-group-text {
      padding: 0.75rem 1rem;
      font-size: 1rem;
    }
  }
