You have a couple minor issues that means you might want to read my article on the topic.
The big issue I see with your implementation is the JavaScript for nothing, and missing JavaScript.
The "JS for nothing and your scripts for free" issue being that NOTHING your implementation has done warrants the presence of JavaScript. If you were to move the INPUT to before your wrapper, use the :checked attribute to hook its state, and the any sibling selector "~" to target what comes after it, you could set day/night without a single line of scripting.
The next issue is a lack of persistence. You didn't save the state anywhere meaning across page-loads or revisits the user has to manually select it again.
Check out this pen which is a little rewrite of what you were doing -- with normalized markup cutting back on the DIV for nothing, classes for nothing, JS for nothing, and using JS for something useful.
https://codepen.io/jason-knight/pen/MWompmv?editors=1111
The real magic being that clicking on a label is the same as clicking on the INPUT who's ID the LABEL is FOR="", the :checked state, and the adjacent sibling selector. From there we can just use localstorage to store the state for the next page load or visit. The script is written to allow multiple checkboxes to have their state stored in localstorage by simply putting a class on them.
Oh also, don't piss on accessibility by declaring font sizes, paddings, or widths in PX... and don't forget to use the "hidden" attribute to hide that input from non-visual users / UA's. Sadly that also means setting it to a visible display state in your screen media CSS -- remember, say media="screen" on your LINK in production -- then using aPo to hide it off screen.