/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *
 *= require_tree .
 *= require_self
 */

/* Enhanced button styles for loading states */
button[type="submit"], 
input[type="submit"] {
  position: relative;
  overflow: hidden;
}

button[type="submit"]:disabled,
input[type="submit"]:disabled {
  cursor: not-allowed;
  opacity: 0.8;
}

/* Loading spinner animation */
.animate-spin {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Button hover effects */
button[type="submit"]:not(:disabled):hover,
input[type="submit"]:not(:disabled):hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Focus states for accessibility */
button[type="submit"]:focus,
input[type="submit"]:focus {
  outline: none;
  ring: 2px;
  ring-offset: 2px;
  ring-color: rgb(99, 102, 241);
}

/* Smooth transitions for all interactive elements */
button, input, a {
  transition: all 0.2s ease-in-out;
}

/* Enhanced form styling */
form {
  transition: opacity 0.3s ease-in-out;
}

form.loading {
  opacity: 0.7;
  pointer-events: none;
}

/* Loading overlay for forms */
.form-loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  border-radius: inherit;
}
