/* CacheCRMBASE lazy placeholder — minimal skeleton to avoid layout jump */
.cachecrmbase-lazy {
    min-height: 200px;
    position: relative;
}
.cachecrmbase-lazy__placeholder {
    height: 200px;
    background: linear-gradient(90deg, #f4f4f4 0%, #ececec 50%, #f4f4f4 100%);
    background-size: 200% 100%;
    animation: cachecrmbase-shimmer 1.4s ease-in-out infinite;
    border-radius: 4px;
}
.cachecrmbase-lazy__error {
    padding: 20px;
    color: #999;
    text-align: center;
    font-size: 14px;
}
@keyframes cachecrmbase-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
