
  /* Error message styling */
  .error-feedback {
    color: #dc3545;
    font-size: 0.75rem;
    margin-top: 0.25rem;
    display: flex;
    align-items: center;
    gap: 0.25rem;
  }

  .error-feedback::before {
    content: "";
  }

  /* Alert messages (Django messages) */
  .auth-messages {
    margin-bottom: 1.5rem;
  }

  .alert {
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    margin-bottom: 0.75rem;
    font-size: 0.875rem;
    border: 1px solid transparent;
  }

  .alert-error {
    background-color: #fee;
    border-color: #f5c6cb;
    color: #721c24;
  }

  .alert-success {
    background-color: #d4edda;
    border-color: #c3e6cb;
    color: #155724;
  }

  .alert-info {
    background-color: #d1ecf1;
    border-color: #bee5eb;
    color: #0c5460;
  }

  .alert-warning {
    background-color: #fff3cd;
    border-color: #ffeaa7;
    color: #856404;
  }

  

  /* Spinner styles */
  .spinner-container {
    display: none;
    align-items: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.9);
  }

  .spinner {
    animation: rotate 2s linear infinite;
    width: 20px;
    height: 20px;
  }

  .spinner .path {
    stroke: rgba(255, 255, 255, 0.9);
    stroke-linecap: round;
    animation: dash 1.5s ease-in-out infinite;
  }

  @keyframes rotate {
    100% {
      transform: rotate(360deg);
    }
  }

  @keyframes dash {
    0% {
      stroke-dasharray: 1, 150;
      stroke-dashoffset: 0;
    }
    50% {
      stroke-dasharray: 90, 150;
      stroke-dashoffset: -35;
    }
    100% {
      stroke-dasharray: 90, 150;
      stroke-dashoffset: -124;
    }
  }

  /* Button processing state */
  .auth-submit.processing {
    opacity: 0.7;
    cursor: not-allowed;
  }

  .auth-submit.processing .btn-text {
    display: none;
  }

  .auth-submit.processing .spinner-container {
    display: flex;
  }
