/* Chart loading overlay spinner */
.chart-wrapper {
    position: relative;
}
.chart-loading {
    pointer-events: none;
}
.chart-loading::after {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 10;
    border-radius: 4px;
}
.chart-loading::before {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    width: 40px; height: 40px;
    margin: -20px 0 0 -20px;
    border: 3px solid rgba(148,163,184,0.4);
    border-top-color: #3b82f6;
    border-radius: 50%;
    animation: chart-spin 0.7s linear infinite;
    z-index: 11;
}
@keyframes chart-spin {
    to { transform: rotate(360deg); }
}
