/* Utility classes — a small, curated set for common patterns.
   Not a framework. Just the handful that earn their keep. */

@layer utilities {
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
  }

  .external-link-icon.external-link-icon {
    width: 0.75em;
    height: 0.75em;
    margin-inline-start: 0.25em;
    vertical-align: baseline;
    opacity: 0.6;
  }

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

  .text-balance {
    text-wrap: balance;
  }

  .hidden {
    display: none;
  }

  /* Hide visually but keep in DOM (for phx-update="stream" empty states etc.) */
  .visually-hidden:not(:focus):not(:active) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
  }
}
