.blueprint-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
  max-block-size: calc(100dvh - var(--space-12) * 3);
  margin-inline: calc(var(--space-3) * -1);
  padding-inline: var(--space-3);
  overflow-y: auto;
}

.blueprint-preview__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-inline-size: 0;
  color: var(--color-text);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  cursor: pointer;
}

.blueprint-preview__title {
  min-inline-size: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.blueprint-preview__head--deep,
.blueprint-preview__part--deep {
  margin-inline-start: var(--indent-step);
}

.blueprint-preview__part {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-2);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-xs);
  cursor: pointer;
}

.blueprint-preview__part--hit {
  border-color: var(--color-warning);
}

.blueprint-preview__line {
  display: block;
  block-size: var(--space-1);
  border-radius: var(--radius-pill);
  background: var(--color-border);
}

.blueprint-preview__line--end {
  inline-size: 60%;
}

.blueprint-preview__point {
  display: grid;
  grid-template-columns: var(--space-1) minmax(0, 1fr);
  gap: var(--space-2);
  align-items: center;
}

.blueprint-preview__point::before {
  content: "";
  block-size: var(--space-1);
  border-radius: var(--radius-pill);
  background: var(--color-text-subtle);
}

.blueprint-preview__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-1);
  cursor: pointer;
}

.blueprint-preview__grid > span {
  block-size: var(--space-8);
  border-radius: var(--radius-xs);
  background: var(--color-surface-sunken);
}

@media (hover: hover) {
  .blueprint-preview__part:hover,
  .blueprint-preview__head:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
  }
}

@media (min-width: 1280px) {
  .blueprint-preview {
    max-block-size: none;
    margin-inline: 0;
    padding-inline: 0;
    overflow-y: visible;
  }
}
