/**
 * Custom utilities.
 *
 * Imported by `index.css`. Part of the token source of truth —
 * run `pnpm generate:tokens` after editing.
 */

@utility grid-cols-auto-fill-* {
  grid-template-columns: repeat(
    auto-fill,
    minmax(min(calc(var(--spacing) * --value(integer)), 100%), 1fr)
  );
}

@utility grid-cols-auto-fit-* {
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(calc(var(--spacing) * --value(integer)), 100%), 1fr)
  );
}

@utility grid-rows-auto-fill-* {
  grid-template-rows: repeat(
    auto-fill,
    minmax(min(calc(var(--spacing) * --value(integer)), 100%), 1fr)
  );
}

@utility grid-rows-auto-fit-* {
  grid-template-rows: repeat(
    auto-fit,
    minmax(min(calc(var(--spacing) * --value(integer)), 100%), 1fr)
  );
}

@utility writing-h {
  writing-mode: horizontal-tb;
}

@utility writing-v {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  text-underline-position: under left;
  line-break: strict;
  word-break: normal;
}

@utility writing-sideways-rl {
  writing-mode: sideways-rl;
}

@utility z-overlay {
  z-index: var(--z-overlay);
}

@utility z-modal {
  z-index: var(--z-modal);
}

@utility z-toast {
  z-index: var(--z-toast);
}
