/*! DSI 1.0 — Feedback / empty / error / loading */

.dxp-alert {
	padding: var(--dxp-space-4);
	border-radius: var(--dxp-radius-md);
	border: 1px solid var(--dxp-color-border-default);
	background: var(--dxp-color-surface-elevated);
}
.dxp-alert--success { border-color: color-mix(in srgb, var(--dxp-color-status-success) 45%, transparent); }
.dxp-alert--warning { border-color: color-mix(in srgb, var(--dxp-color-status-warning) 45%, transparent); }
.dxp-alert--danger { border-color: color-mix(in srgb, var(--dxp-color-status-danger) 45%, transparent); }
.dxp-empty-state,
.dxp-error-state {
	text-align: center;
	padding: var(--dxp-space-7) var(--dxp-space-4);
	border: 1px dashed var(--dxp-color-border-strong);
	border-radius: var(--dxp-radius-lg);
	background: var(--dxp-color-surface-primary);
}
.dxp-empty-state h2,
.dxp-error-state h2 {
	margin: 0 0 var(--dxp-space-2);
	color: var(--dxp-color-text-primary);
}
.dxp-empty-state p,
.dxp-error-state p {
	margin: 0 0 var(--dxp-space-4);
	color: var(--dxp-color-text-secondary);
}
.dxp-spinner {
	width: 1.5rem;
	height: 1.5rem;
	border: 2px solid var(--dxp-color-border-strong);
	border-top-color: var(--dxp-brand-accent);
	border-radius: 50%;
	animation: dxp-spin 0.8s linear infinite;
}
@keyframes dxp-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
	.dxp-spinner { animation: none; border-top-color: var(--dxp-color-border-strong); }
}
