.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.9);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: var(--z-index-loading);
    /* 添加硬件加速 */
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}

.loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    /* 提前告知浏览器变化 */
    will-change: transform;
}

.loading-container .loading-spinner {
    width: 50px;
    height: 50px;
    border: 3px solid rgba(45, 140, 240, 0.1);
    border-top: 3px solid #2d8cf0;
    border-radius: 50%;
    animation: spin 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
    box-shadow: 0 0 10px rgba(45, 140, 240, 0.1);
    transition: all 0.3s ease;
    /* 添加硬件加速和提前告知变化 */
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    will-change: transform;
}

.loading-container .loading-text {
    color: #666;
    font-size: 16px;
    text-align: center;
    letter-spacing: 1px;
    transition: all 0.3s ease;
    /* 添加硬件加速 */
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}

.loading-overlay.show {
    display: flex;
}

.loading-overlay.hide {
    display: none;
}

.loading-text.animation {
    animation: fadeInOut 2s ease-in-out infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
        border-top-color: #2d8cf0;
    }

    50% {
        border-top-color: #2d8cf0;
        border-right-color: rgba(45, 140, 240, 0.3);
    }

    100% {
        transform: rotate(360deg);
        border-top-color: #2d8cf0;
    }
}

@keyframes fadeInOut {
    0% {
        opacity: 0.6;
        /* 使用transform替代scale */
        transform: translateZ(0) scale(0.98);
    }

    50% {
        opacity: 1;
        transform: translateZ(0) scale(1);
    }

    100% {
        opacity: 0.6;
        transform: translateZ(0) scale(0.98);
    }
}