/* omega-utilities.css
 * Utility classes for spacing, layout, text, display, flex, grid, and visibility.
 */

/* ========== SPACING UTILITIES ========== */

[class*="omega-m-"] { margin: var(--omega-space-4); }
[class*="omega-p-"] { padding: var(--omega-space-4); }

/* Margin */
.omega-m-0 { margin: 0; }
.omega-m-1 { margin: var(--omega-space-1); }
.omega-m-2 { margin: var(--omega-space-2); }
.omega-m-3 { margin: var(--omega-space-3); }
.omega-m-4 { margin: var(--omega-space-4); }
.omega-m-5 { margin: var(--omega-space-5); }
.omega-m-6 { margin: var(--omega-space-6); }
.omega-m-8 { margin: var(--omega-space-8); }
.omega-m-10 { margin: var(--omega-space-10); }

/* Padding */
.omega-p-0 { padding: 0; }
.omega-p-1 { padding: var(--omega-space-1); }
.omega-p-2 { padding: var(--omega-space-2); }
.omega-p-3 { padding: var(--omega-space-3); }
.omega-p-4 { padding: var(--omega-space-4); }
.omega-p-5 { padding: var(--omega-space-5); }
.omega-p-6 { padding: var(--omega-space-6); }
.omega-p-8 { padding: var(--omega-space-8); }
.omega-p-10 { padding: var(--omega-space-10); }

/* ========== TEXT UTILITIES ========== */

.omega-text-xs { font-size: var(--omega-text-xs); }
.omega-text-sm { font-size: var(--omega-text-sm); }
.omega-text-base { font-size: var(--omega-text-base); }
.omega-text-lg { font-size: var(--omega-text-lg); }
.omega-text-xl { font-size: var(--omega-text-xl); }
.omega-text-2xl { font-size: var(--omega-text-2xl); }
.omega-text-3xl { font-size: var(--omega-text-3xl); }

.omega-text-center { text-align: center; }
.omega-text-left { text-align: left; }
.omega-text-right { text-align: right; }

.omega-text-muted { color: var(--omega-color-muted); }

/* ========== DISPLAY UTILITIES ========== */

.omega-block { display: block; }
.omega-inline { display: inline; }
.omega-inline-block { display: inline-block; }
.omega-flex { display: flex; }
.omega-inline-flex { display: inline-flex; }
.omega-grid { display: grid; }
.omega-hidden { display: none; }

/* ========== FLEX UTILITIES ========== */

.omega-flex-row { flex-direction: row; }
.omega-flex-col { flex-direction: column; }

.omega-justify-start { justify-content: flex-start; }
.omega-justify-center { justify-content: center; }
.omega-justify-end { justify-content: flex-end; }
.omega-justify-between { justify-content: space-between; }

.omega-items-start { align-items: flex-start; }
.omega-items-center { align-items: center; }
.omega-items-end { align-items: flex-end; }

/* ========== GRID UTILITIES ========== */

.omega-grid-1 { grid-template-columns: repeat(1, 1fr); }
.omega-grid-2 { grid-template-columns: repeat(2, 1fr); }
.omega-grid-3 { grid-template-columns: repeat(3, 1fr); }
.omega-grid-4 { grid-template-columns: repeat(4, 1fr); }
.omega-grid-5 { grid-template-columns: repeat(5, 1fr); }

.omega-gap-1 { gap: var(--omega-space-1); }
.omega-gap-2 { gap: var(--omega-space-2); }
.omega-gap-3 { gap: var(--omega-space-3); }
.omega-gap-4 { gap: var(--omega-space-4); }
.omega-gap-6 { gap: var(--omega-space-6); }
.omega-gap-8 { gap: var(--omega-space-8); }

/* ========== WIDTH / HEIGHT UTILITIES ========== */

.omega-w-full { width: 100%; }
.omega-w-auto { width: auto; }

.omega-h-full { height: 100%; }
.omega-h-auto { height: auto; }

/* ========== BORDER UTILITIES ========== */

.omega-border { border: 1px solid var(--omega-color-border); }
.omega-border-0 { border: none; }

.omega-rounded-sm { border-radius: var(--omega-radius-sm); }
.omega-rounded-md { border-radius: var(--omega-radius-md); }
.omega-rounded-lg { border-radius: var(--omega-radius-lg); }
.omega-rounded-full { border-radius: var(--omega-radius-full); }

/* ========== POSITION UTILITIES ========== */

.omega-relative { position: relative; }
.omega-absolute { position: absolute; }
.omega-fixed { position: fixed; }

/* ========== VISIBILITY UTILITIES ========== */

.omega-visible { visibility: visible; }
.omega-invisible { visibility: hidden; }

/* ========== OPACITY UTILITIES ========== */

.omega-opacity-0 { opacity: 0; }
.omega-opacity-25 { opacity: 0.25; }
.omega-opacity-50 { opacity: 0.5; }
.omega-opacity-75 { opacity: 0.75; }
.omega-opacity-100 { opacity: 1; }

/* ========== Z-INDEX UTILITIES ========== */

.omega-z-0 { z-index: 0; }
.omega-z-10 { z-index: 10; }
.omega-z-20 { z-index: 20; }
.omega-z-30 { z-index: 30; }
.omega-z-40 { z-index: 40; }
.omega-z-50 { z-index: 50; }

/* ========== CURSOR UTILITIES ========== */

.omega-cursor-pointer { cursor: pointer; }
.omega-cursor-default { cursor: default; }

/* ========== OVERFLOW UTILITIES ========== */

.omega-overflow-hidden { overflow: hidden; }
.omega-overflow-auto { overflow: auto; }
.omega-overflow-scroll { overflow: scroll; }