@media screen {
    .app-content {
        transition: opacity 150ms ease, transform 150ms ease;
    }

    .crm-shell-navigating .app-content {
        opacity: 0.48;
        pointer-events: none;
        transform: translateY(2px);
    }

    .crm-shell-progress {
        background: rgba(115, 103, 240, 0.14);
        height: 2px;
        inset: var(--crm-header-height, 74px) 0 auto 0;
        overflow: hidden;
        pointer-events: none;
        position: fixed;
        z-index: 1090;
    }

    .crm-shell-progress::after {
        animation: crm-shell-progress 900ms ease-in-out infinite;
        background: #7367f0;
        content: '';
        display: block;
        height: 100%;
        width: 42%;
    }

    .crm-shell-announcer {
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        height: 1px;
        overflow: hidden;
        position: absolute;
        white-space: nowrap;
        width: 1px;
    }

    @keyframes crm-shell-progress {
        from { transform: translateX(-110%); }
        to { transform: translateX(350%); }
    }

    @media (prefers-reduced-motion: reduce) {
        .app-content { transition: none; }
        .crm-shell-progress::after { animation: none; width: 100%; }
    }
}
