.codeglow-block {
  --cg-block-header-bg: color-mix(in srgb, var(--cg-bg) 88%, var(--cg-fg) 12%);
  --cg-block-muted: color-mix(in srgb, var(--cg-fg) 58%, var(--cg-bg) 42%);
  --cg-block-divider: color-mix(in srgb, var(--cg-border) 80%, transparent);
  margin: 1.5em 0;
}

.codeglow-block__header {
  align-items: center;
  background: var(--cg-block-header-bg);
  border: 1px solid var(--cg-border);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  color: var(--cg-fg);
  display: flex;
  font: 12px/1.4 "SF Mono", ui-monospace, Menlo, Consolas, monospace;
  gap: 10px;
  min-height: 40px;
  padding: 0 12px 0 16px;
}

.codeglow-block__title {
  flex: 1 1 auto;
  font-weight: 700;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.codeglow-block__language {
  color: var(--cg-block-muted);
  flex: 0 0 auto;
  font-size: 11px;
  text-transform: uppercase;
}

.codeglow-block__copy {
  appearance: none;
  background: transparent;
  border: 1px solid var(--cg-border);
  border-radius: 5px;
  color: var(--cg-fg);
  cursor: pointer;
  flex: 0 0 auto;
  font: inherit;
  min-height: 28px;
  padding: 0 9px;
}

.codeglow-block__copy:hover,
.codeglow-block__copy:focus {
  border-color: var(--cg-block-muted);
  outline: none;
}

.codeglow-block__body {
  align-items: stretch;
  display: flex;
  min-width: 0;
}

.codeglow-block__gutter {
  background: var(--cg-bg);
  border: 1px solid var(--cg-border);
  border-right: 1px solid var(--cg-block-divider);
  color: var(--cg-gutter-fg);
  counter-reset: codeglow-line;
  flex: 0 0 auto;
  font: 13px/1.65 "SF Mono", ui-monospace, Menlo, Consolas, monospace;
  list-style: none;
  margin: 0;
  padding: 20px 11px 20px 14px;
  text-align: right;
  user-select: none;
}

.codeglow-block__gutter li {
  counter-increment: codeglow-line;
  min-width: 2ch;
}

.codeglow-block__gutter li::before {
  content: counter(codeglow-line);
}

.codeglow-block pre.codeglow {
  border: 1px solid var(--cg-border);
  flex: 1 1 auto;
  margin: 0;
  min-width: 0;
}

.codeglow-block__header + .codeglow-block__body pre.codeglow {
  border-radius: 0 0 8px 8px;
}

.codeglow-block__header + .codeglow-block__body .codeglow-block__gutter {
  border-radius: 0 0 0 8px;
  border-top: 1px solid var(--cg-border);
}

.codeglow-block.has-line-numbers pre.codeglow {
  border-left: 0;
  border-radius: 0 0 8px 0;
}

.codeglow-block:not(.has-line-numbers) pre.codeglow {
  border-radius: 0 0 8px 8px;
}

.codeglow-block:not(.has-line-numbers):not(:has(.codeglow-block__header)) pre.codeglow {
  border-radius: 8px;
}

.codeglow-block.has-line-numbers:not(:has(.codeglow-block__header)) .codeglow-block__gutter {
  border-radius: 8px 0 0 8px;
}

.codeglow-block.has-line-numbers:not(:has(.codeglow-block__header)) pre.codeglow {
  border-radius: 0 8px 8px 0;
}

@media (max-width: 640px) {
  .codeglow-block__header {
    padding-left: 12px;
  }

  .codeglow-block__language {
    display: none;
  }

  .codeglow-block__gutter {
    padding-left: 10px;
    padding-right: 9px;
  }
}
