.input__checkbox {
    display: inline-flex;
    margin: 1px 0;
    overflow: hidden;
}
.input__checkbox:not(.input__checkbox--disabled) {
    cursor: pointer;
}
.input__checkbox--radio .input__checkbox__display,
.input__checkbox--radio .input__checkbox__display__icon {
    border-radius: 100%;
}
.input__checkbox__input {
    display: inline-block;
    position: absolute;
    z-index: -1000;
    top: -100%;
}
.input__checkbox__display {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 1px solid #222;
    background: #222;
    color: #fff;
    border-radius: 2px;
    box-shadow: inset 0 0 4px #111;
    transition: border-color .2s;
}
.input__checkbox__display__icon {
    background-color: var(--accent-colour);
    background-size: 28px 28px;
    background-image: radial-gradient(ellipse at center, rgba(255, 255, 255, .2) 0%, rgba(0, 0, 0, .4) 100%);
    box-shadow: 0 0 2px #111;
    border-radius: 2px;
    margin: 2px;
    width: 14px;
    height: 14px;
    opacity: 0;
    transition: opacity .2s;
}
.input__checkbox__input:checked ~ .input__checkbox__display .input__checkbox__display__icon {
    opacity: 1;
}
.input__checkbox:not(.input__checkbox--disabled):hover .input__checkbox__display,
.input__checkbox:not(.input__checkbox--disabled) .input__checkbox__input:focus ~ .input__checkbox__display {
    border-color: var(--accent-colour);
}
.input__checkbox__text {
    display: inline-block;
    margin-left: 4px;
}
.input__checkbox--disabled {
    opacity: .5;
}
