/* POL-PERF: Home loading skeletons. No spinner: the page frame and tile frames show at once and each tile fills in as its data lands. */
.skel{display:block;border-radius:8px;background:linear-gradient(90deg,var(--skel-a,#e8e9e3) 25%,var(--skel-b,#f4f5f0) 50%,var(--skel-a,#e8e9e3) 75%);background-size:220% 100%;animation:m-shimmer 1.4s linear infinite}
.skel-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dashboard-loader.home-skeleton{display:block;min-height:0;padding:8px 0 24px;font-size:inherit}
.dashboard-loader.home-skeleton[hidden]{display:none}
.home-skeleton .skel-head{display:grid;gap:12px;margin:8px 0 24px}
.home-skeleton .skel-line{height:12px}.home-skeleton .skel-title{height:34px;width:min(560px,80%)}
.home-skeleton .skel-w20{width:20%;max-width:160px}.home-skeleton .skel-w30{width:30%;max-width:240px}.home-skeleton .skel-w40{width:40%}.home-skeleton .skel-w70{width:70%}
.home-skeleton .skel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.home-skeleton .skel-card{display:grid;gap:14px;padding:16px;border:1px solid var(--line,#e2e4dc);border-radius:16px;background:var(--surface,#fff)}
.home-skeleton .skel-photo{height:96px;border-radius:12px}.home-skeleton .skel-num{height:44px;width:55%}
/* A tile whose reads are still running: its numbers and loading lines become shimmer bars. Text stays in the DOM (screen readers, tests). */
.studio-card.tile-pending .metric-value,.studio-card.tile-pending #schedule-summary>p,.studio-card.tile-pending .food-soon,.studio-card.tile-pending [data-grove-state]{
 color:transparent!important;border-radius:8px;min-width:3.2em;background:linear-gradient(90deg,var(--skel-a,#e8e9e3) 25%,var(--skel-b,#f4f5f0) 50%,var(--skel-a,#e8e9e3) 75%);background-size:220% 100%;animation:m-shimmer 1.4s linear infinite;pointer-events:none}
.studio-card.tile-pending #schedule-summary>p{min-height:4.5em}
.studio-card.tile-pending .metric-value{display:inline-block}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--skel-a:#2a2d29;--skel-b:#363a35}}
:root[data-theme="dark"]{--skel-a:#2a2d29;--skel-b:#363a35}
@media(prefers-reduced-motion:reduce){.skel,.studio-card.tile-pending .metric-value,.studio-card.tile-pending #schedule-summary>p,.studio-card.tile-pending .food-soon,.studio-card.tile-pending [data-grove-state]{animation:none}}
