body {
    font-size: 1em;
}

div.bevel {
    border: 1px solid #eee;
    border-radius: 10px;
    margin:  20px 3px 3px 3px;
    position: relative;
}

div.bevel > div.span {
    margin-top: -10px;
    margin-left: 10px;
}

div.bevel > div.span > span {
    font-size: 1.1em;
    padding: 0 3px 0 3px;
    background-color: white;
}
div.sliderexpandable > div.span {
    height:0;
}

div.bevel > div > div.check,
div.bevel > div > div.range,
div.bevel > div > div.select,
div.bevel > div > input,
div.bevel > div.check,
div.bevel > div.range,
div.bevel > div.select,
div.bevel > input,
div.bevel > section > label.toggle {
    margin-left: 10px;
    margin-bottom: 10px;
}

div.radio {
    min-height: 3em;
}

div.radio > div > label {
    padding-right: 10px;
}

label,
input[type=button],
.toggle {
    cursor: pointer;
}

div.sliderexpandable > section {
    margin-top: 20px;
    position: relative;
}

div.expander {
    overflow: hidden;
    visibility: hidden;
    height: 0;
    margin-top: 0px;
}

input.slider {
    width: calc(100% - 5rem);
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

.slider-background {
    border-radius: 5px;
}

.slider-background.red {
    background-color: #ff000044;
}

.slider-background.green {
    background-color: #00ff0044;
}

.slider-background.blue {
    background-color: #0000ff44;
}

.slider-background.hue {
    background: linear-gradient(to right, red, yellow, green, cyan, blue, violet, red);
}

.slider-background.saturation {
    background: linear-gradient(to right, gray, white);
}

.slider-background.lightness {
    background: linear-gradient(to right, black, white);
}

.slider-background.white {
    background-color: #ffffffbb;
}

.hidden {
    display: none;
}


/* Compass related elements */

.compass-container {
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: Arial, sans-serif;
}
.compass-border {
    width: calc(100% - 10px);
    height: calc(100% - 10px);
    border: 5px solid gray;
    border-radius: 50%;
    position: absolute;
}
.compass-needle {
    width: 2px;
    height: calc(50% - 5px);
    background-color: red;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-100%);
}
.compass-label {
    position: absolute;
    top: calc(50% + 5px);
    left: 50%;
    transform: translateX(-50%);
    font-size: 20px;
}
.compass-direction {
    position: absolute;
    font-size: 18px;
}
.compass-n { top: 5px; left: 50%; transform: translateX(-50%); }
.compass-s { bottom: 5px; left: 50%; transform: translateX(-50%); }
.compass-w { top: 50%; left: 5px; transform: translateY(-50%); }
.compass-e { top: 50%; right: 5px; transform: translateY(-50%); }


/* Media queries for dark mode users */

@media (prefers-color-scheme: dark) {
    :root {
        background: #111;
        color: #eee;
    }

    input, textarea {
        background-color: #111;
        color: var(--color);
    }

    .slider-background.white {
        background-color: #ffffff4b;
    }

    .slider-background.saturation {
        color: black;
    }

    .slider-background.lightness {
        color: black;
    }

    div.bevel > div.span > span {
        background-color: #111;
    }
}
