.activity-heatmap {
  --activity-heatmap-cell: 1.125rem;
  --activity-heatmap-gap: 3px;
  background-color: var(--spruce-base-color-surface);
  border: var(--spruce-border-width-base) solid var(--spruce-base-color-border);
  border-radius: var(--spruce-border-radius-lg);
  margin: 0;
  padding: 1.5rem;
}
.activity-heatmap > * {
  margin-block-end: 0;
  margin-block-start: 0;
}
.activity-heatmap > * + * {
  margin-block-start: 1rem;
}
.activity-heatmap__caption {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.5rem;
  justify-content: space-between;
}
.activity-heatmap__title {
  color: var(--spruce-base-color-heading);
  font-weight: 700;
}
.activity-heatmap__subtitle {
  color: var(--spruce-base-color-muted);
  font-size: var(--spruce-font-size-sm);
}
.activity-heatmap__scroll {
  overflow-x: auto;
}
.activity-heatmap__scroll:focus-visible {
  outline: 2px solid var(--spruce-base-color-focus-ring);
  outline-offset: 2px;
}
.activity-heatmap__grid {
  border-collapse: separate;
  border-spacing: var(--activity-heatmap-gap);
  color: var(--spruce-base-color-muted);
  font-size: 0.75rem;
  inline-size: auto;
  margin: 0;
  table-layout: fixed;
}
.activity-heatmap__grid th,
.activity-heatmap__grid td {
  border: 0;
  line-height: 1;
  padding: 0;
}
.activity-heatmap__grid thead th {
  block-size: 1.25em;
  font-weight: 400;
  inline-size: var(--activity-heatmap-cell);
  position: relative;
  text-align: start;
}
.activity-heatmap__grid abbr {
  border: 0;
  cursor: default;
  text-decoration: none;
}
.activity-heatmap__grid td[data-level] {
  block-size: var(--activity-heatmap-cell);
}
.activity-heatmap__month {
  inset-block-start: 0;
  inset-inline-start: 0;
  position: absolute;
  white-space: nowrap;
}
.activity-heatmap__day {
  font-weight: 400;
  padding-inline-end: 0.25rem !important;
  text-align: start;
}
.activity-heatmap__day--hidden abbr {
  block-size: 1px !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  inline-size: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
}
.activity-heatmap__cell, .activity-heatmap__grid td[data-level] {
  background-color: var(--spruce-base-color-surface-muted);
  border-radius: var(--spruce-border-radius-sm);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--spruce-base-color-border) 80%, transparent);
  inline-size: var(--activity-heatmap-cell);
}
.activity-heatmap__cell[data-level="1"], .activity-heatmap__grid td[data-level="1"] {
  background-color: color-mix(in srgb, var(--spruce-base-color-primary) 25%, transparent);
}
.activity-heatmap__cell[data-level="2"], .activity-heatmap__grid td[data-level="2"] {
  background-color: color-mix(in srgb, var(--spruce-base-color-primary) 50%, transparent);
}
.activity-heatmap__cell[data-level="3"], .activity-heatmap__grid td[data-level="3"] {
  background-color: color-mix(in srgb, var(--spruce-base-color-primary) 75%, transparent);
}
.activity-heatmap__cell[data-level="4"], .activity-heatmap__grid td[data-level="4"] {
  background-color: var(--spruce-base-color-primary);
}
.activity-heatmap__legend {
  align-items: center;
  color: var(--spruce-base-color-muted);
  display: flex;
  font-size: 0.75rem;
  gap: var(--activity-heatmap-gap);
  justify-content: flex-end;
}
.activity-heatmap__legend span:first-child {
  margin-inline-end: 0.25rem;
}
.activity-heatmap__legend span:last-child {
  margin-inline-start: 0.25rem;
}
.activity-heatmap__cell {
  block-size: var(--activity-heatmap-cell);
  display: inline-block;
}
