          /* Error styling */
          .error-feedback {
            color: #dc3545;
            font-size: 0.75rem;
            margin-top: 0.25rem;
          }
          
          .alert {
            padding: 0.75rem 1rem;
            border-radius: 0.5rem;
            margin-bottom: 0.75rem;
            font-size: 0.875rem;
          }
          
          .alert-error {
            background-color: #fee;
            border: 1px solid #f5c6cb;
            color: #721c24;
          }
          
          .alert-success {
            background-color: #d4edda;
            border: 1px solid #c3e6cb;
            color: #155724;
          }
          
          /* Spinner */
          .spinner-container {
            display: flex;
            align-items: center;
            gap: 0.5rem;
          }
          
          .spinner {
            animation: rotate 2s linear infinite;
          }
          
          .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;
            }
          }