/* Omni Resume — utility classes
   Focused, opt-in helpers. Keep this file small. */

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

/* Text color helpers */
.text-muted   { color: var(--color-text-muted); }
.text-subtle  { color: var(--color-text-subtle); }
.text-strong  { color: var(--color-text-strong); }
.text-primary { color: var(--color-primary); }
.text-danger  { color: var(--color-danger); }
.text-success { color: var(--color-success); }
.text-warning { color: var(--color-warning); }

/* Text transforms */
.uppercase   { text-transform: uppercase; letter-spacing: var(--letter-spacing-wide); }
.capitalize  { text-transform: capitalize; }
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.clamp-1,
.clamp-2,
.clamp-3,
.clamp-4,
.clamp-6 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.clamp-1 { -webkit-line-clamp: 1; line-clamp: 1; }
.clamp-2 { -webkit-line-clamp: 2; line-clamp: 2; }
.clamp-3 { -webkit-line-clamp: 3; line-clamp: 3; }
.clamp-4 { -webkit-line-clamp: 4; line-clamp: 4; }
.clamp-6 { -webkit-line-clamp: 6; line-clamp: 6; }

/* Fonts & weights */
.font-sans      { font-family: var(--font-sans); }
.font-serif     { font-family: var(--font-serif); }
.font-mono      { font-family: var(--font-mono); }
.font-regular   { font-weight: var(--font-weight-regular); }
.font-medium    { font-weight: var(--font-weight-medium); }
.font-semibold  { font-weight: var(--font-weight-semibold); }
.font-bold      { font-weight: var(--font-weight-bold); }

/* Font sizes */
.text-2xs { font-size: var(--font-size-2xs); }
.text-xs  { font-size: var(--font-size-xs); }
.text-sm  { font-size: var(--font-size-sm); }
.text-md  { font-size: var(--font-size-md); }
.text-lg  { font-size: var(--font-size-lg); }
.text-xl  { font-size: var(--font-size-xl); }
.text-2xl { font-size: var(--font-size-2xl); }
.text-3xl { font-size: var(--font-size-3xl); }

/* Line heights */
.leading-tight   { line-height: var(--line-height-tight); }
.leading-normal  { line-height: var(--line-height-normal); }
.leading-relaxed { line-height: var(--line-height-relaxed); }

/* Width / height */
.w-full   { width: 100%; }
.w-auto   { width: auto; }
.max-w-narrow { max-width: var(--container-narrow); }
.max-w-base   { max-width: var(--container-base); }
.max-w-prose  { max-width: 68ch; }

/* Margins (semantic) */
.m-0  { margin: 0; }
.mt-0 { margin-block-start: 0; }
.mt-2 { margin-block-start: var(--space-2); }
.mt-4 { margin-block-start: var(--space-4); }
.mt-6 { margin-block-start: var(--space-6); }
.mt-8 { margin-block-start: var(--space-8); }
.mb-0 { margin-block-end: 0; }
.mb-2 { margin-block-end: var(--space-2); }
.mb-4 { margin-block-end: var(--space-4); }
.mb-6 { margin-block-end: var(--space-6); }
.mb-8 { margin-block-end: var(--space-8); }
.mx-auto { margin-inline: auto; }

/* Padding */
.p-0 { padding: 0; }
.p-2 { padding: var(--space-2); }
.p-3 { padding: var(--space-3); }
.p-4 { padding: var(--space-4); }
.p-6 { padding: var(--space-6); }
.p-8 { padding: var(--space-8); }

/* Borders */
.border        { border: var(--border-width-1) solid var(--color-border); }
.border-top    { border-block-start: var(--border-width-1) solid var(--color-border); }
.border-bottom { border-block-end: var(--border-width-1) solid var(--color-border); }
.border-none   { border: 0; }
.rounded-sm  { border-radius: var(--radius-sm); }
.rounded-md  { border-radius: var(--radius-md); }
.rounded-lg  { border-radius: var(--radius-lg); }
.rounded-xl  { border-radius: var(--radius-xl); }
.rounded-pill { border-radius: var(--radius-pill); }

/* Backgrounds */
.bg-surface      { background-color: var(--color-surface); }
.bg-surface-alt  { background-color: var(--color-surface-alt); }
.bg-primary      { background-color: var(--color-primary); color: var(--color-primary-contrast); }

/* Shadows */
.shadow-sm { box-shadow: var(--shadow-sm); }
.shadow-md { box-shadow: var(--shadow-md); }
.shadow-lg { box-shadow: var(--shadow-lg); }
.shadow-none { box-shadow: none; }

/* Positioning */
.relative { position: relative; }
.absolute { position: absolute; }
.sticky   { position: sticky; }

/* Opacity */
.opacity-0   { opacity: 0; }
.opacity-50  { opacity: 0.5; }
.opacity-75  { opacity: 0.75; }
.opacity-100 { opacity: 1; }

/* Cursor */
.cursor-pointer { cursor: pointer; }
.cursor-not-allowed { cursor: not-allowed; }

/* Overflow */
.overflow-hidden { overflow: hidden; }
.overflow-auto   { overflow: auto; }

/* Lists reset */
.list-none { list-style: none; padding: 0; margin: 0; }

/* Pointer events */
.pe-none { pointer-events: none; }
.pe-auto { pointer-events: auto; }

/* Users select */
.select-none { user-select: none; }
.select-text { user-select: text; }

/* Interaction: no tap highlight */
.no-tap-highlight { -webkit-tap-highlight-color: transparent; }