.skeleton-card{background:#fff;border:1px solid #eee;border-radius:9px;padding:11px;pointer-events:none}.skeleton-box,.skeleton-line,.skeleton-circle{position:relative;overflow:hidden;background:#ececec}.skeleton-box:after,.skeleton-line:after,.skeleton-circle:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);animation:skeleton-shine 1.15s infinite}@keyframes skeleton-shine{to{transform:translateX(100%)}}
.skeleton-box{height:130px;border-radius:7px}.skeleton-line{height:10px;border-radius:5px;margin-top:10px}.skeleton-line.short{width:58%}.skeleton-line.tiny{width:38%;height:8px}.skeleton-button{height:31px;margin-top:10px;border-radius:6px;background:#e5e5e5}.skeleton-circle{width:48px;height:48px;border-radius:50%}
.skeleton-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;width:100%}.skeleton-list{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.skeleton-list .skeleton-card{display:grid;grid-template-columns:65px 1fr;gap:12px;border-radius:0}.skeleton-list .skeleton-box{height:62px}.skeleton-summary{display:grid;gap:8px}.skeleton-summary .skeleton-card{display:grid;grid-template-columns:54px 1fr;gap:10px}.skeleton-summary .skeleton-box{height:54px}
.skeleton-fade-in{animation:skeleton-content-in .28s ease}@keyframes skeleton-content-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.product-grid{position:relative}.product-grid-skeleton{position:absolute;inset:0;z-index:8;background:#fff;padding:0;overflow:hidden;transition:opacity .25s}.product-grid-skeleton.hide{opacity:0;pointer-events:none}.product-grid-skeleton .skeleton-grid{height:100%}.product-grid-skeleton .skeleton-card{height:100%}
@media(max-width:1100px){.skeleton-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.skeleton-grid{display:flex;overflow:hidden}.skeleton-grid .skeleton-card{min-width:155px}.skeleton-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.skeleton-box:after,.skeleton-line:after,.skeleton-circle:after{animation:none}.skeleton-fade-in{animation:none}}
