@layer components {
  .operator-directory {
    display: grid;
    gap: 1.5rem;
    inline-size: 100%;

    h2 {
      font-size: var(--text-xl);
      font-weight: var(--font-weight-semibold);
    }
  }

  .operator-directory__header {
    display: grid;
    gap: 0.5rem;
    max-inline-size: 44rem;
    text-wrap: pretty;
  }

  .operator-account {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
  }

  .operator-account__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 1rem;

    h3 { font-weight: var(--font-weight-semibold); }
  }

  .operator-account__summary {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }

  .operator-account__spaces {
    padding: 0;
    list-style: none;
  }

  .operator-account__empty { padding: 1rem; }

  .operator-space {
    display: grid;
    gap: 1rem;
    border-block-start: 1px solid var(--border);
    padding: 1rem;
  }

  .operator-space__identity,
  .operator-space__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    min-inline-size: 0;
  }

  .operator-space__name { overflow-wrap: anywhere; }

  .operator-user {
    display: grid;
    min-inline-size: 0;
    font-size: var(--text-sm);
  }

  .operator-action {
    display: grid;
    gap: 0.5rem;

    form { margin: 0; }
  }

  .operator-action__status { font-size: var(--text-sm); }

  .operator-webhook-url {
    font-size: var(--text-sm);
    overflow-wrap: anywhere;
  }

  .operator-feature-form {
    display: grid;
    gap: 0.75rem;
    max-inline-size: 32rem;
  }

  /* Beats the shell page's form default, which loads later. */
  form.operator-alias-form {
    display: flex;
    align-items: start;
    gap: 0.5rem;

    inline-size: min(26rem, 100%);

    .field { flex: 1; min-inline-size: 0; }
  }

  .operator-target-form {
    display: grid;
    gap: 0.75rem;
    max-inline-size: 32rem;
    border-block-start: 1px solid var(--border);
    padding: 1rem;
  }

  .operator-directory code {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.9em;
  }

  .operator-action .menu__item[data-pending] {
    color: var(--muted-foreground);
    cursor: progress;
  }

  .operator-account__filter { padding-inline: 1rem; padding-block-end: 1rem; }

  .operator-grant__sections {
    display: grid;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 0;
    list-style: none;
  }

  .operator-grant__section {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    padding: 0.5rem 0.75rem;

    & + & { border-block-start: 1px solid var(--border); }
  }

  .operator-grant__section-name {
    flex: 1 0 8rem;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
  }

  .operator-grant__account {
    display: grid;
    gap: 0.75rem;
    font-size: var(--text-sm);
  }

  .operator-grant__move {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 0.75rem;
    max-inline-size: 36rem;

    .field { flex: 1 1 16rem; min-inline-size: 0; }
  }

  @media (width >= 48rem) {
    .operator-space {
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
    }

    .operator-grant { grid-template-columns: minmax(0, 1fr); }
  }
}
