.upload-zone {
    border: 2px dashed var(--bs-secondary);
    border-radius: 8px;
    padding: 2rem;
    cursor: pointer;
    transition: border-color 0.3s ease, opacity 0.3s ease;
}

.upload-zone:hover {
    border-color: var(--bs-primary);
}

.upload-zone.dragover {
    border-color: var(--bs-success);
    background-color: rgba(var(--bs-success-rgb), 0.1);
}

.upload-zone.disabled {
    opacity: 0.6;
    cursor: not-allowed;
    pointer-events: none;
}

.instructions {
    border-top: 1px solid var(--bs-secondary);
    padding-top: 1.5rem;
}

/* Progress bar styles */
.progress {
    height: 1.5rem;
    background-color: var(--bs-secondary-bg);
    border-radius: 0.5rem;
    overflow: hidden;
}

.progress-bar {
    height: 100%;
    background-color: var(--bs-primary);
    transition: width 0.3s ease-in-out;
}

.progress-bar-animated {
    animation: progress-bar-stripes 1s linear infinite;
}

@keyframes progress-bar-stripes {
    0% { background-position-x: 1rem; }
}