/* NE Design System — utilities.css — Phase 2 (#65) */
/* Utility classes for quick layout and text adjustments */

/* === Display === */
.ne-hidden { display: none; }
.ne-block { display: block; }
.ne-inline { display: inline; }
.ne-inline-flex { display: inline-flex; }

/* === Visibility === */
.ne-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* === Text alignment === */
.ne-text-left { text-align: left; }
.ne-text-center { text-align: center; }
.ne-text-right { text-align: right; }

/* === Text styles === */
.ne-text-muted { color: var(--ne-text-muted); }
.ne-text-subtle { color: var(--ne-text-subtle); }
.ne-text-accent { color: var(--ne-accent); }
.ne-text-green { color: var(--ne-green); }
.ne-text-red { color: var(--ne-red); }
.ne-text-yellow { color: var(--ne-yellow); }

.ne-text-mono {
	font-family: var(--ne-font-mono);
	font-size: 0.85rem;
}

.ne-text-display {
	font-family: var(--ne-font-display);
}

.ne-text-uppercase {
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.ne-text-truncate {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ne-text-xs { font-size: 0.75rem; }
.ne-text-sm { font-size: 0.85rem; }

/* === Spacing (margin-top) === */
.ne-mt-0 { margin-top: 0; }
.ne-mt-1 { margin-top: var(--ne-space-1); }
.ne-mt-2 { margin-top: var(--ne-space-2); }
.ne-mt-3 { margin-top: var(--ne-space-3); }
.ne-mt-4 { margin-top: var(--ne-space-4); }
.ne-mt-5 { margin-top: var(--ne-space-5); }
.ne-mt-6 { margin-top: var(--ne-space-6); }
.ne-mt-7 { margin-top: var(--ne-space-7); }
.ne-mt-8 { margin-top: var(--ne-space-8); }

/* === Spacing (margin-bottom) === */
.ne-mb-0 { margin-bottom: 0; }
.ne-mb-1 { margin-bottom: var(--ne-space-1); }
.ne-mb-2 { margin-bottom: var(--ne-space-2); }
.ne-mb-3 { margin-bottom: var(--ne-space-3); }
.ne-mb-4 { margin-bottom: var(--ne-space-4); }
.ne-mb-5 { margin-bottom: var(--ne-space-5); }
.ne-mb-6 { margin-bottom: var(--ne-space-6); }

/* === Spacing (padding) === */
.ne-p-0 { padding: 0; }
.ne-p-3 { padding: var(--ne-space-3); }
.ne-p-4 { padding: var(--ne-space-4); }
.ne-p-5 { padding: var(--ne-space-5); }
.ne-p-6 { padding: var(--ne-space-6); }

/* === Width === */
.ne-w-full { width: 100%; }
.ne-w-auto { width: auto; }

/* === Border === */
.ne-border-t { border-top: 1px solid var(--ne-border); }
.ne-border-b { border-bottom: 1px solid var(--ne-border); }

/* === Border radius === */
.ne-rounded-sm { border-radius: var(--ne-radius-sm); }
.ne-rounded-md { border-radius: var(--ne-radius-md); }
.ne-rounded-lg { border-radius: var(--ne-radius-lg); }
.ne-rounded-pill { border-radius: var(--ne-radius-pill); }

/* === Background === */
.ne-bg-surface { background: var(--ne-surface); }
.ne-bg-elevated { background: var(--ne-elevated); }

/* === Gap === */
.ne-gap-1 { gap: var(--ne-space-1); }
.ne-gap-2 { gap: var(--ne-space-2); }
.ne-gap-3 { gap: var(--ne-space-3); }
.ne-gap-4 { gap: var(--ne-space-4); }
.ne-gap-5 { gap: var(--ne-space-5); }
