.spa-boot-skeleton .spa-boot-sidebar{width:260px;min-height:100vh;flex-shrink:0;background:var(--spa-bg-sidebar,#fff);border-right:1px solid var(--spa-border-sidebar,#eef2f6);padding:20px 16px;display:flex;flex-direction:column;gap:12px}.spa-boot-block{border-radius:10px;background:linear-gradient(90deg,var(--spa-bg-muted,#f1f5f9) 0%,#e8edf3 40%,var(--spa-bg-muted,#f1f5f9) 80%);background-size:200% 100%;animation:spa-boot-shimmer 1.4s ease-in-out infinite}.spa-boot-block--logo{height:40px;width:72%;margin-bottom:8px}.spa-boot-block--nav{height:36px;width:100%}.spa-boot-block--user{margin-top:auto;height:64px;width:100%}.spa-boot-line{display:block;height:14px;border-radius:6px;background:linear-gradient(90deg,var(--spa-bg-muted,#f1f5f9) 0%,#e8edf3 40%,var(--spa-bg-muted,#f1f5f9) 80%);background-size:200% 100%;animation:spa-boot-shimmer 1.4s ease-in-out infinite}.spa-boot-line--sm{width:42%;max-width:220px;margin-top:6px}.spa-boot-stats{min-height:108px}.spa-boot-stat-card{border-radius:20px;min-height:96px;background:linear-gradient(90deg,var(--spa-bg-muted,#f8fafc) 0%,#eef2f6 40%,var(--spa-bg-muted,#f8fafc) 80%);background-size:200% 100%;animation:spa-boot-shimmer 1.4s ease-in-out infinite;border:1px solid var(--spa-border,#e2e8f0)}.spa-boot-guest-slot{min-height:0}@keyframes spa-boot-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}.spa-guest-banner-slot{min-height:0;flex-shrink:0}.spa-guest-banner-slot.is-pending{min-height:52px}.spa-guest-banner-slot.is-visible .spa-guest-banner{opacity:1;visibility:visible}.spa-route-loading{display:flex;align-items:center;justify-content:center;padding:24px 0;min-height:48px}.spa-route-loading__spinner{width:22px;height:22px;border:2px solid var(--spa-border,#e2e8f0);border-top-color:var(--spa-accent,#6366f1);border-radius:50%;animation:spa-route-spin .7s linear infinite}@keyframes spa-route-spin{to{transform:rotate(360deg)}}

/* 登录进入工作台：全屏骨架屏覆盖层 */
.wlmg-boot-skeleton {
    position: fixed;
    inset: 0;
    z-index: 20000;
    background: var(--spa-bg-body, #f5f7fb);
    opacity: 1;
    transition: opacity 0.45s ease;
    overflow: hidden;
}

.wlmg-boot-skeleton.is-fade-out {
    opacity: 0;
    pointer-events: none;
}

body.wlmg-boot-skeleton-active {
    overflow: hidden;
}

.wlmg-boot-skeleton .spa-boot-skeleton {
    min-height: 100vh;
}

.wlmg-boot-skeleton .spa-main-content {
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    flex: 1;
}

.spa-boot-header-lines {
    min-height: 48px;
}

.wlmg-boot-skeleton .spa-boot-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.wlmg-boot-skeleton .spa-boot-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    flex: 1;
    min-height: 0;
}

.spa-boot-panel-card {
    border-radius: 20px;
    min-height: 220px;
    background: linear-gradient(90deg, var(--spa-bg-muted, #f8fafc) 0%, #eef2f6 40%, var(--spa-bg-muted, #f8fafc) 80%);
    background-size: 200% 100%;
    animation: spa-boot-shimmer 1.4s ease-in-out infinite;
    border: 1px solid var(--spa-border, #e2e8f0);
}

@media (max-width: 960px) {
    .wlmg-boot-skeleton .spa-boot-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wlmg-boot-skeleton .spa-boot-panels {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wlmg-boot-skeleton {
        transition: none;
    }
}