/* Utility Classes */
.hidden {
    display: none !important;
}

/* Color utilities */
.positive {
    color: #16a34a;
    font-weight: 600;
}

.negative {
    color: #dc2626;
    font-weight: 600;
}

.percentage-badge {
    padding: 0.15rem 0.4rem;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 500;
}

.percentage-badge.positive {
    background-color: #dcfce7;
}

.percentage-badge.negative {
    background-color: #fee2e2;
}

/* Animations */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.spread-row, .spread-card {
    animation: fadeIn 0.3s ease forwards;
}

@keyframes chartLoading {
    0% { opacity: 0.5; }
    50% { opacity: 1; }
    100% { opacity: 0.5; }
}

.spinner-border {
    animation: chartLoading 1.5s ease-in-out infinite;
}
