
         .alert {
         padding: 12px;
         border-radius: 8px;
         margin-bottom: 16px;
         }
         .alert-error {
         background: #f8d7da;
         color: #721c24;
         border: 1px solid #f5c6cb;
         }
         .alert-success {
         background: #d4edda;
         color: #155724;
         border: 1px solid #c3e6cb;
         }
         .spinner {
         animation: rotate 2s linear infinite;
         vertical-align: middle;
         margin-right: 8px;
         }
         .spinner .path {
         stroke: currentColor;
         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; }
         }
         .submit-btn:disabled {
         opacity: 0.7;
         cursor: not-allowed;
         }
     