/* Centered circular spinner */
#loading {
    width: 120px;
    height: 120px;
    border: 16px solid #f3f3f3;
    border-radius: 50%;
    border-top: 16px solid #ff6600;
    -webkit-animation: spin 2s linear infinite;
    animation: spin 2s linear infinite;
}

/* Full-screen overlay backing for loader */
.loader-overlay {
    position: fixed;
    inset: 0;
    background: rgba(255, 255, 255, 0.6);
    display: none; /* hidden by default */
    align-items: center;
    justify-content: center;
    z-index: 2000; /* above app chrome */
    transition: opacity 100ms linear;
}

.loader-overlay[aria-hidden="false"] { display: flex; }

@-webkit-keyframes spin {
    from {
        -webkit-transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* No default page hiding; overlay handles perceived loading state */
