@layer components { /* Empty state placeholders — dashed border cards with icon, message, and optional action. */ .app-empty-state { border: 1px dashed var(--app-empty-border-color); border-radius: var(--app-border-radius); background: var(--app-empty-bg); color: var(--app-empty-text); padding: calc(var(--app-spacing) * 1.5) var(--app-spacing); display: grid; gap: calc(var(--app-spacing) * 0.35); text-align: center; justify-items: center; } .app-empty-state[data-size="compact"] { padding: calc(var(--app-spacing) * 0.75) calc(var(--app-spacing) * 0.75); gap: calc(var(--app-spacing) * 0.25); } .app-empty-state[data-size="small"] { padding: calc(var(--app-spacing) * 0.5) calc(var(--app-spacing) * 0.5); gap: calc(var(--app-spacing) * 0.15); } .app-empty-state[data-align="left"] { text-align: left; justify-items: start; } .app-empty-state-icon { color: var(--app-empty-hint); opacity: 0.5; margin-bottom: calc(var(--app-spacing) * 0.15); } .app-empty-state[data-size="compact"] .app-empty-state-icon { width: 28px; height: 28px; margin-bottom: 0; } .app-empty-state-message { margin: 0; color: var(--app-empty-hint); font-size: var(--text-xs); line-height: var(--leading-snug); } .app-empty-state-hint { margin: 0; color: var(--app-empty-hint); font-size: var(--text-sm); line-height: var(--leading-snug); opacity: 0.75; } .app-empty-state-action { justify-self: center; margin-top: calc(var(--app-spacing) * 0.25); } .app-empty-state[data-align="left"] .app-empty-state-action { justify-self: start; } }