.fx-loader-wrap {
    padding: 10px 0 6px;
    text-align: center;
}

.fx-loader-ring {
    width: 64px;
    height: 64px;
    margin: 0 auto 18px;
    border-radius: 50%;
    border: 4px solid rgba(2, 136, 209, 0.15);
    border-top-color: #0288D1;
    border-right-color: #00c853;
    animation: fx-spin 0.9s linear infinite;
    box-shadow: 0 0 24px rgba(2, 136, 209, 0.25);
}

.fx-loader-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 6px;
}

.fx-loader-text {
    font-size: 0.95rem;
    color: #5f6b7a;
    margin-bottom: 14px;
    min-height: 22px;
}

.fx-loader-dots::after {
    content: '';
    animation: fx-dots 1.4s steps(4, end) infinite;
}

.fx-loader-bar {
    width: 220px;
    max-width: 100%;
    height: 5px;
    margin: 0 auto;
    background: #e8eef3;
    border-radius: 999px;
    overflow: hidden;
}

.fx-loader-bar span {
    display: block;
    height: 100%;
    width: 35%;
    background: linear-gradient(90deg, #0288D1, #00c853);
    border-radius: 999px;
    animation: fx-bar 1.2s ease-in-out infinite;
}

@keyframes fx-spin {
    to { transform: rotate(360deg); }
}

@keyframes fx-dots {
    0% { content: ''; }
    25% { content: '.'; }
    50% { content: '..'; }
    75% { content: '...'; }
}

@keyframes fx-bar {
    0% { transform: translateX(-120%); }
    100% { transform: translateX(320%); }
}

.swal2-popup.fx-loader-popup {
    border-radius: 18px;
    padding: 28px 24px 22px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.18);
}

.swal2-container {
    z-index: 210000 !important;
}
