:root {
  --skeleton-base: #e7e9ed;
  --skeleton-highlight: #f7f8fa;
  --skeleton-radius: 8px;
}
html,body{max-width:100%;overscroll-behavior:none}
.skeleton { position: relative; display: block; overflow: hidden; min-width: 24px; min-height: 12px; border-radius: var(--skeleton-radius); background: var(--skeleton-base); color: transparent!important; pointer-events: none; }
.skeleton::after,.async-image-wrap.is-loading::after,.async-background.is-loading::after { position:absolute;inset:0;content:"";pointer-events:none;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--skeleton-highlight),transparent);animation:yabadula-shimmer 1.45s ease-in-out 120ms infinite; }
.skeleton-circle{border-radius:999px}.skeleton-line{height:13px}.skeleton-title{height:24px}.skeleton-button{height:42px}.skeleton-media{width:100%;min-height:76px}.skeleton-stack{display:grid;gap:10px}.skeleton-row{display:flex;align-items:center;gap:12px}.skeleton-grow{flex:1;min-width:0}.skeleton-page{display:grid;gap:16px}.skeleton-card{padding:16px;border:1px solid var(--line,#dfe3ea);border-radius:8px;background:var(--panel,#fff)}
.skeleton-product{display:grid;grid-template-columns:86px minmax(0,1fr) 92px;align-items:center;gap:14px;padding:12px}.skeleton-product .skeleton-media{width:86px;height:76px}.skeleton-list{display:grid;gap:10px}.skeleton-list-item{display:grid;grid-template-columns:54px minmax(0,1fr) 78px;align-items:center;gap:10px;min-height:74px;padding:9px}
.skeleton-table{overflow:hidden;border:1px solid var(--line,#dfe3ea);border-radius:10px}.skeleton-table-row{display:grid;grid-template-columns:repeat(var(--skeleton-columns,3),minmax(0,1fr));gap:12px;padding:13px;border-bottom:1px solid var(--line,#dfe3ea)}.skeleton-table-row:last-child{border-bottom:0}
.skeleton-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.skeleton-stat{min-height:116px;padding:16px;border-radius:8px}.skeleton-dashboard-value{margin-top:18px}.skeleton-checkout{display:grid;gap:12px}.skeleton-checkout-step{display:grid;gap:10px;min-height:112px;padding:12px 0;border-top:1px solid var(--line,#dfe3ea)}.skeleton-category{min-height:165px;border-radius:0 0 16px 16px}
.async-content{animation:yabadula-fade-in 200ms ease-out both}.async-state{display:grid;place-items:center;gap:10px;min-height:180px;padding:28px;border:1px solid var(--line,#dfe3ea);border-radius:8px;background:var(--panel,#fff);text-align:center}.async-state h2,.async-state p{margin:0}.async-state p{color:var(--muted,#6d7480)}
.async-image-wrap,.async-background{position:relative;overflow:hidden;background:var(--skeleton-base)}.async-image-wrap{display:block}.async-image-wrap img{display:block;width:100%;height:100%;object-fit:cover;opacity:1;transition:opacity 200ms ease-out}.async-image-wrap.is-loading img{opacity:0}.async-image-wrap.is-error::before{position:absolute;inset:0;display:grid;place-items:center;content:"Imagem indisponível";padding:8px;color:var(--muted,#6d7480);font-size:11px;text-align:center}.async-background.is-loading{background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-highlight) 50%,var(--skeleton-base) 75%);background-size:200% 100%;animation:yabadula-background-shimmer 1.45s ease-in-out 120ms infinite}.async-background.is-loading::before{background-image:none!important}
.category::before,.category::after,.category>span{pointer-events:none}
@keyframes yabadula-shimmer{to{transform:translateX(100%)}}@keyframes yabadula-background-shimmer{to{background-position:-200% 0}}@keyframes yabadula-fade-in{from{opacity:0}to{opacity:1}}
@media(prefers-color-scheme:dark){:root{--skeleton-base:#343941;--skeleton-highlight:#4a5059}}
@media(max-width:1100px){.skeleton-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px),(pointer:coarse){body,.shell,.modal,.tabs{touch-action:pan-x pan-y}}
@media(max-width:800px){.skeleton-product{grid-template-columns:72px minmax(0,1fr)}.skeleton-product .skeleton-media{width:72px;height:68px}.skeleton-product>.skeleton-button{grid-column:2;width:100%!important}.skeleton-list-item{grid-template-columns:45px minmax(0,1fr)}.skeleton-list-item>.skeleton-button{grid-column:2;width:100%!important}.skeleton-stats{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.skeleton-stats{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.skeleton::after,.async-image-wrap.is-loading::after,.async-background.is-loading::after,.async-background.is-loading{animation:none}.async-content,.async-image-wrap img{animation:none;transition:none}}
