.comp-btn {
  --btn-bg: var(--color-muted);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.3rem 1rem;
  height: 2rem;
  box-sizing: border-box;
  font-size: 1rem;
  background-color: var(--btn-bg);
  color: var(--color-text);
  text-decoration: none;
  border: 1.5px solid var(--color-text);
  box-shadow: 2px 2px 0 var(--color-text);
  transition: background-color 0.12s ease, box-shadow 0.12s ease, transform 0.12s ease;
}

.comp-btn:visited {
  color: var(--color-text);
}

.comp-btn:hover {
  --btn-bg: var(--color-active);
  color: var(--color-text);
  text-decoration: none;
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--color-text);
}

.comp-btn:active {
  transform: translate(2px, 2px);
  box-shadow: none;
}

.comp-btn:focus-visible {
  outline: none;
  box-shadow: 2px 2px 0 var(--color-text), 0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-primary);
}

.comp-btn-icon {
  font-size: 1.25rem;
  line-height: 1;
}

.comp-btn-icon-toggle .comp-btn-icon {
  transition: transform 0.2s ease;
}

.comp-btn-icon-toggle[data-collapsed] .comp-btn-icon {
  transform: rotate(-90deg);
}
