.custom-blue {
    color: #1e3a8a;
  }
  .custom-blue-bg {
    background-color: #1e3a8a;
  }
  .custom-blue-hover:hover {
    background-color: #1e3a8a;
    opacity: 0.9;
  }

  /* Modal backdrop */
  .modal-backdrop {
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
  }

  /* Loading Spinner */
  .loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    backdrop-filter: blur(2px);
  }

  .loading-spinner {
    width: 50px;
    height: 50px;
    border: 5px solid #f3f3f3;
    border-top: 5px solid #1e3a8a;
    border-radius: 50%;
    animation: spin 1s linear infinite;
  }

  .loading-text {
    position: absolute;
    margin-top: 80px;
    color: #1e3a8a;
    font-weight: 500;
  }

  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }

  /* Ensure content stays visible */
  .modal-open {
    overflow: hidden;
  }

  /* Z-index layering */
  .nav-layer {
    z-index: 40;
  }

  .modal-layer {
    z-index: 50;
  }

  /* Navbar specific styles */
  .nav-shadow {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  }

  /* Animation classes */
  .fade-enter {
    opacity: 0;
  }

  .fade-enter-active {
    opacity: 1;
    transition: opacity 300ms ease-in-out;
  }

  .fade-exit {
    opacity: 1;
  }

  .fade-exit-active {
    opacity: 0;
    transition: opacity 300ms ease-in-out;
  }

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

.shake {
    animation: shake 0.3s ease-in-out;
}