/* Professional Loader */
.loading-container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: linear-gradient(to bottom, #ffffff, #f8fafc);
    border-radius: var(--radius-lg);
    box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.02);
}

.loader-content {
    text-align: center;
}

.financial-pulse {
    position: relative;
    width: 80px;
    height: 80px;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px;
    box-shadow: 0 0 0 0 rgba(0, 105, 255, 0.7);
    animation: pulse-blue 2s infinite;
}

.financial-pulse i {
    font-size: 32px;
    color: var(--primary-color);
    animation: chart-grow 2s infinite;
}

.loading-text {
    font-size: 1.25rem;
    font-weight: 600;
    color: #1e293b;
    margin-bottom: 8px;
}

.loading-subtext {
    color: #64748b;
    font-size: 0.95rem;
}

@keyframes pulse-blue {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(0, 105, 255, 0.7);
    }

    70% {
        transform: scale(1);
        box-shadow: 0 0 0 20px rgba(0, 105, 255, 0);
    }

    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(0, 105, 255, 0);
    }
}

@keyframes chart-grow {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.1);
    }

    100% {
        transform: scale(1);
    }
}

/* Skeleton Loading */
.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 8px;
}

@keyframes skeleton-loading {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.skeleton-card {
    height: 180px;
    margin-bottom: 25px;
}

.skeleton-text {
    height: 16px;
    margin-bottom: 10px;
    width: 60%;
}

.skeleton-title {
    height: 32px;
    width: 40%;
    margin-bottom: 20px;
}

.skeleton-header {
    height: 120px;
    margin-bottom: 30px;
    border-radius: 16px;
}

.skeleton-metric {
    height: 80px;
    border-radius: 12px;
}