@keyframes hide-scroll {
  from, to { overflow: hidden; } 
}

.collapsable-code {
  --border-color: color-mod(var(--accent) blend(#999 90%));

  position: relative;
  width: 100%;
  margin: 40px 0;

  input[type="checkbox"] {
    position: absolute;
    visibility: hidden;
  }
  
  input[type="checkbox"]:checked {
    ~ pre,
    ~ .code-toolbar pre {
	  padding: 0;
	  border-top: none;
    }

    ~ .code-toolbar {
      padding: 0;
      border-top: none;
	  max-height: 0px;
	  animation: hide-scroll 0.4s backwards;
	  overflow-y: hidden;
      .toolbar {
        display: none;
      }
	  
    }

    ~ label .collapsable-code__toggle:after {
      content: attr(data-label-expand);
    }
  }

  label {
    position: relative;
    display: flex;
    justify-content: space-between;
    min-width: 30px;
    min-height: 30px;
    margin: 0;
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
  }

  &__title {
    flex: 1;
    color: var(--accent);
    padding: 3px 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  &__language {
    color: var(--accent);
    border: 1px solid var(--border-color);
    border-bottom: none;
    padding: 3px 10px;
  }

  &__toggle {
    color: var(--accent);
    font-size: 16px;
    padding: 3px 10px;

    &:after {
      content: attr(data-label-collapse);
    }
  }

  pre {
    margin-top: 0;

    &::first-line {
      line-height: 0;
    }
  }

  .code-toolbar {
	position: static;
    margin: 0;
	max-height: 600px;
	transition: max-height 0.4s, padding 0.4s;
	overflow-y: auto;
	.toolbar {
	  position: absolute;
	  top: 55px;
	  right: 30px;
	}
  }
}