.loading-box {
    position: relative;
}
.loading-box.is-loading {
    pointer-events: none;
}
.app-loading-overlay {
    position: absolute;
    inset: 0;
    z-index: 30;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    border-radius: inherit;
    min-height: 72px;
}
.loading-box.is-loading > .app-loading-overlay {
    opacity: 1;
    visibility: visible;
}
.app-loading-spinner {
    width: 34px;
    height: 34px;
    border: 3px solid #e3ebf3;
    border-top-color: #2c897b;
    border-radius: 50%;
    animation: app-loading-spin 0.75s linear infinite;
}
.app-loading-text {
    font-size: 0.82rem;
    color: #4a6575;
    letter-spacing: 0.5px;
}
.main-content.is-global-loading {
    position: relative;
}
.main-content.is-global-loading > .app-global-loading {
    opacity: 1;
    visibility: visible;
}
.app-global-loading {
    position: absolute;
    inset: 0;
    z-index: 50;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: rgba(238, 242, 245, 0.72);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}
@keyframes app-loading-spin {
    to { transform: rotate(360deg); }
}
