.ui-skeleton{background:linear-gradient(90deg, var(--wash) 25%, #ededea 37%, var(--wash) 63%);border-radius:var(--radius-sm);background-size:400% 100%;animation:1.4s ease-in-out infinite ui-skeleton-sheen;display:block}@keyframes ui-skeleton-sheen{0%{background-position:100%}to{background-position:0}}.ui-skeleton--text{height:1em;margin-block:.35em}.ui-skeleton--title{height:1.6em;margin-block:.4em}.ui-skeleton--media{aspect-ratio:1;border-radius:var(--radius-md);width:100%}.ui-skeleton-grid{gap:var(--space-5);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.ui-skeleton-card{gap:var(--space-2);display:grid}.ui-skeleton-page{gap:var(--space-6);width:100%;max-width:1240px;margin-inline:auto;padding:clamp(24px,5vw,72px) clamp(16px,5vw,60px);display:grid}.ui-skeleton-hero{gap:var(--space-3);max-width:620px;display:grid}.ui-spinner{vertical-align:-.2em;border:2px solid;border-right-color:#0000;border-radius:50%;width:1.15em;height:1.15em;animation:.7s linear infinite ui-spinner-turn;display:inline-block}@keyframes ui-spinner-turn{to{transform:rotate(360deg)}}.ui-empty{justify-items:center;gap:var(--space-3);text-align:center;padding:clamp(32px, 6vw, 72px) var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);display:grid}.ui-empty__icon{background:var(--wash);width:56px;height:56px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.ui-empty__icon svg{width:26px;height:26px}.ui-empty h2{margin:0;font-size:clamp(1.1rem,2.4vw,1.4rem);font-weight:600}.ui-empty p{max-width:46ch;color:var(--muted);margin:0;line-height:1.6}.ui-empty__actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}@media (max-width:900px){.ui-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.ui-skeleton-grid{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.ui-skeleton{background:var(--wash);animation:none}.ui-spinner{animation-duration:1.6s}}.ui-skeleton.admin-loading-tile{aspect-ratio:auto;height:104px}.ui-skeleton.admin-loading-panel{aspect-ratio:auto;height:320px}
