
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.loading-spinner {
    animation: spin 1s linear infinite;
    display: inline-block;
    margin-right: 12px;
}

/* .grad-download-btn:disabled {
    background-color: #f9f9f9 !important;
    border-color: #ccc !important;
    color: #888 !important;
    cursor: not-allowed;
} */

/* Base state (how it looks normally) */
.grad-download-btn {
    transition: all 0.2s ease; /* Makes the color change smooth, not jerky */
}

/* Hover state (when the mouse is over it) */
.grad-download-btn:hover:not(:disabled) {
    background-color: #f0f0f0 !important; /* Slight grey tint */
    border-color: #bbb !important;       /* Darker border */
    transform: translateY(-1px);         /* Tiny lift effect */
    box-shadow: 0 4px 8px rgba(0,0,0,0.05); /* Soft shadow */
}

/* Active state (the moment it is clicked) */
.grad-download-btn:active:not(:disabled) {
    background-color: #e8e8e8 !important;
    transform: translateY(0);            /* Pushes back down */
}

/* Disabled state (while spinning) */
.grad-download-btn:disabled {
    cursor: not-allowed;
    background-color: #f9f9f9 !important;
    opacity: 0.7;
}

/* Makes the search button match your download buttons */
.search-submit-btn:hover {
    background-color: #ededed !important; /* Slightly darker grey */
    border-color: #bbb !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
}

.search-submit-btn:active {
    background-color: #e8e8e8 !important;
    transform: translateY(1px);
}

/* Specific styling for the dashicon alignment */
.search-submit-btn .dashicons {
    margin-top: 2px; /* Fine-tuning the vertical alignment */
}

/* Standardizing the select box appearance */
select#course_id {
    outline: none;
    transition: border-color 0.2s;
}

select#course_id:focus {
    border-color: #aaa;
}