body.app-shell-loading {
    overflow: hidden;
}

.app-shell-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 2500;
    background: linear-gradient(180deg, #ffffff 0%, #f7f7f7 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    transition: opacity 200ms ease, visibility 200ms ease;
}

.app-shell-loading-overlay.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.app-shell-loading-shell {
    width: min(420px, 92vw);
    display: grid;
    gap: 18px;
}

.app-shell-loading-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.app-shell-loading-logo {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(242, 162, 12, 0.35), rgba(51, 51, 51, 0.12));
    box-shadow: 0 10px 30px rgba(51, 51, 51, 0.12);
}

.app-shell-loading-title {
    height: 16px;
    flex: 1;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(230, 230, 230, 0.8), rgba(245, 245, 245, 1), rgba(230, 230, 230, 0.8));
    background-size: 200% 100%;
    animation: app-shell-shimmer 1.6s ease-in-out infinite;
}

.app-shell-loading-card {
    background: #ffffff;
    border-radius: 18px;
    padding: 18px;
    border: 1px solid #e6e6e6;
    box-shadow: 0 12px 28px rgba(51, 51, 51, 0.08);
    display: grid;
    gap: 10px;
}

.app-shell-loading-line {
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(230, 230, 230, 0.7), rgba(248, 248, 248, 1), rgba(230, 230, 230, 0.7));
    background-size: 200% 100%;
    animation: app-shell-shimmer 1.6s ease-in-out infinite;
}

.app-shell-loading-line--lg {
    height: 18px;
    width: 70%;
}

.app-shell-loading-line--sm {
    width: 45%;
}

.app-shell-loading-button {
    height: 52px;
    border-radius: 18px;
    background: linear-gradient(90deg, rgba(242, 162, 12, 0.35), rgba(255, 208, 122, 0.7), rgba(242, 162, 12, 0.35));
    background-size: 200% 100%;
    animation: app-shell-shimmer 1.6s ease-in-out infinite;
    box-shadow: 0 12px 28px rgba(51, 51, 51, 0.08);
}

@keyframes app-shell-shimmer {
    0% {
        background-position: 200% 0;
    }

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