/* Custom styles for the stock position extractor */

/* Upload area styling */
.upload-area {
    border: 2px dashed var(--bs-secondary);
    border-radius: 6px;
    transition: all 0.3s ease;
}

.upload-area:hover, .upload-area.highlight {
    border-color: var(--bs-primary);
    background-color: rgba(var(--bs-primary-rgb), 0.05);
}

/* Table styling overrides */
.table {
    font-size: 0.875rem;
}

.table thead th {
    position: sticky;
    top: 0;
    background-color: var(--bs-secondary-bg);
    z-index: 1;
}

.table-responsive {
    max-height: 500px;
    overflow-y: auto;
}

/* Feature icon styling */
.feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 1rem;
    font-size: 2rem;
    color: var(--bs-primary);
    background-color: rgba(var(--bs-primary-rgb), 0.1);
    border-radius: 50%;
}

/* Spinner animation */
@keyframes spinner {
    to {transform: rotate(360deg);}
}

.spinner-border {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    vertical-align: text-bottom;
    border: 0.2em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spinner .75s linear infinite;
}

/* Progress bar animation */
.progress-bar {
    transition: width 0.6s ease;
}
