input[type="checkbox"] {
    margin: 0;
    font: inherit;
    color: #ffffff;
    width: 22px;
    height: 22px;
    min-width    : 22px;
    min-height   : 22px;
    border: 2px solid #555555;
    border-radius: 0.15em;
    cursor:pointer;
    accent-color: yellowgreen;
}

input[type="checkbox"]:checked {
    background-color: var(--primary);
    border: 0.10em solid var(--primary);
}

input[type="checkbox"]:focus {
    outline: max(2px, 0.15em) solid currentColor;
    outline-offset: max(2px, 0.15em);
}

input[type="checkbox"]:disabled {
    --primary: var(--form-control-disabled);

    color: var(--form-control-disabled);
    cursor: not-allowed;
}

input[type="checkbox"] + label {
    cursor: pointer;
}

input[type="radio"] {
    -webkit-appearance: none;
    appearance        : none;
    margin            : 0;
    font              : inherit;
    color             : #555555;
    width             : 22px;
    height            : 22px;
    min-width         : 22px;
    min-height        : 22px;
    border            : 0.10em solid #555555;
    border-radius     : 50%;
    display           : grid;
    place-content     : center;
}

input[type="radio"]::before {
    content      : "";
    width        : 14px;
    height       : 14px;
    min-width    : 14px;
    min-height   : 14px;
    border-radius: 50%;
    transform    : scale(0);
    transition   : 120ms transform ease-in-out;
    box-shadow   : inset 1em 1em yellowgreen;
}

input[type="radio"]:checked::before {
    transform: scale(1);
}

input[type="radio"]:focus {
    outline: max(2px, 0.15em) solid currentColor;
    outline-offset: max(2px, 0.15em);
}

input[type="radio"] + label {
    cursor: pointer;
}