.hidden { display: none !important; }
.w-full { width: 100%; }
.text-center { text-align: center; }
.mt-2 { margin-top: var(--space-2); } .mt-3 { margin-top: var(--space-3); } .mt-4 { margin-top: var(--space-4); }
.mb-2 { margin-bottom: var(--space-2); } .mb-3 { margin-bottom: var(--space-3); } .mb-4 { margin-bottom: var(--space-4); }
.gap-2 { gap: var(--space-2); }
.rounded { border-radius: var(--radius-sm); }
.shadow { box-shadow: var(--shadow-sm); }
.skeleton { background: linear-gradient(90deg, var(--color-border) 25%, #eef2f4 37%, var(--color-border) 63%); background-size: 400% 100%; animation: skeleton-loading 1.4s ease infinite; border-radius: var(--radius-sm); }
@keyframes skeleton-loading { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
.empty-state { text-align: center; padding: var(--space-7) var(--space-4); color: var(--color-text-secondary); }
.empty-state .empty-icon { width: 56px; height: 56px; margin: 0 auto var(--space-3); color: var(--color-text-muted); }
