:root {
    --ruffle-blue: #37528c;
    --ruffle-dark-blue: #184778;
    --ruffle-orange: #ffad33;
    --ruffle-dark-orange: #966214;
}

.notransition,
.notransition *,
.notransition::before,
.notransition::after {
    transition: none !important;
}

body {
    background: var(--ruffle-blue);
    font: 14px Arial, sans-serif;
    margin: auto;
    color: white;
}

.header {
    position: relative;
    background: var(--ruffle-dark-blue);
    text-align: center;
    padding: 16px;
    box-shadow: 0 0 15px #0008;
}

.logo {
    width: 100%;
    transition: opacity 0.5s;
}

.logo:hover {
    opacity: 0.5;
}

/* Based on "Pure CSS Slider Checkboxes": https://codepen.io/Qvcool/pen/bdzVYW */
.option {
    position: relative;
    display: flex;
    align-items: center;
}

.option:not(:first-child) {
    margin-top: 24px;
}

.option input,
.option select {
    position: absolute;
    right: 0;
}

.option.checkbox input {
    width: 40px;
    height: 20px;
    margin: auto;
    cursor: pointer;
    z-index: 1;
    opacity: 0;
}

.option label {
    display: inline-block;
    padding-right: 40px;
}

.option.checkbox label::before,
.option.checkbox label::after {
    content: "";
    position: absolute;
    border-radius: 10px;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: background 0.2s, right 0.2s;
}

.option.checkbox label::before {
    height: 20px;
    width: 40px;
    right: 0;
    background: gray;
}

.option.checkbox label::after {
    height: 18px;
    width: 18px;
    right: 21px;
    background: silver;
}

.option.checkbox input:checked + label::before {
    background: var(--ruffle-dark-orange);
}

.option.checkbox input:checked + label::after {
    background: var(--ruffle-orange);
    right: 1px;
}
