/* Additional Utility Classes */

/* Grid Pattern Background */
.bg-grid-pattern {
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.1' fill-rule='evenodd'%3E%3Ccircle cx='3' cy='3' r='1'/%3E%3Ccircle cx='13' cy='13' r='1'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 20px 20px;
}

/* Custom spinner animation for loading indicators */
@keyframes spinner {
  to {transform: rotate(360deg);}
}

.custom-spinner {
  position: relative;
  width: 20px;
  height: 20px;
  display: inline-block;
}

.custom-spinner:before {
  content: '';
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 2px solid transparent;
  border-top-color: currentColor;
  border-bottom-color: currentColor;
  animation: spinner .8s ease infinite;
} 