body {
    margin: 0;
	overflow: hidden;
    font-family: Arial, Helvetica, sans-serif;
}

.layerchooser {
    display: flex;
    position: absolute;
    left: 5px;
    bottom: 5px;
    z-index: 100;
    flex-wrap: wrap;
}

.layerbutton {
    all: unset;
    margin: 5px;
    cursor: pointer;
    background-color: rgb(245, 245, 245);
    border-radius: 5px;
    padding: 5px;
    width: 50px;
    text-align: center;
    aspect-ratio: 1 / 1;
    border: solid 1px gray;
    user-select: none;
    transition: filter 0.2s, background-color 0.2s;
}

.layerbutton:hover {
    border: solid 1px black;
    background-color: rgb(220, 220, 220);
}

.layerbutton:active {
    background-color: rgb(200, 200, 200);
}

.buttonselect {
    background-color: white;
    filter: drop-shadow(0px 0px 30px black);
}

.buttonselect:hover {
    background-color: rgb(235, 235, 235);
}

.mappositioner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100vh;
    background-color: red;
}

#mapbackground {
    width: 100%;
    height: 100%;
    background-color: #e4f3f0;
}

.canvascontainer {
    position: absolute;
    display: grid;
    aspect-ratio: 16 / 9;
    width: 100%;
    align-items: center;
}

@media (min-aspect-ratio: 4535 / 2301) {
    .canvascontainer {
        width: auto;
        height: 100%;
        align-items: center;
        justify-items: center;
    }
}

.canvascontainer > * {
    position: absolute;
    width: inherit;
    height: inherit;
}

.overlaycanvas {
    z-index: 100;
}

.countrymap {
    filter: drop-shadow(0px 0px 15px black);
    transition: hidden 0.2s;
}

.selected {
    filter: drop-shadow(0px 0px 30px white);
}

.infobox {
    position: absolute;
    width: 500px;
    padding: 20px;
    padding-top: 10px;
    top: 0px;
    right: 0px;
    background-color: white;
    border-bottom-left-radius: 15px;
    border-left: solid 2px gray;
    border-bottom: solid 2px gray;
}

@media (width < 540px) {
    .infobox {
        width: auto;
        left: 0px;
        right: auto;
        border-left: none;
        border-bottom-left-radius: 0px;
        font-size: small;
    }

    .infocontent {
        width: 100%;
    }

    .infocontent > * > * {
        width: 100%;
    }

    .infocontent > * > * > * {
        width: 100%;
    }
}

@media (width < 440px) {
    .infobox {
        font-size: x-small;
    }
}

@media (width < 340px) {
    .infobox {
        font-size: xx-small;
    }
}

#infoheader {
    margin: 0px;
}

.infoheadercontainer {
    display: flex;
    align-items: center;
}

#collapseinfobutton {
    aspect-ratio: 1 / 1;
    margin-right: 15px;
}

#collapseinfobuttoncontent {
    transition: border 0.2s;
}

.triangleup {
    width: 0px;
    height: 0px;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid black;
}

.triangledown {
    width: 0px;
    height: 0px;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid black;
}

.infocontent {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s;
}

.uncollapsed {
    max-height: 40vh;
    overflow: scroll;
}

.infocontent > h2 {
    margin-top: 10px;
    margin-bottom: 0px;
}

.infocontent > #infozusatz > * {
    margin-top: 5px;
}

.backlink {
    position: absolute;
    bottom: 5px;
    right: 5px;
    border-radius: 5px;
    background-color: white;
}

.darken {
	filter: brightness(60%);
}

.monochromemap {
    filter: drop-shadow(0px 0px 7px white);
	opacity: 100%;
}

.loadingoverlay {
    position: absolute;
    display: flex;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    background-color: white;
    z-index: 200;
    font-size: 5vh;
    flex-direction: column;
}

.loadinganimation {
    display: flex;
}

@keyframes load {
    0% {transform: translateX(-25px)};
    100% {transform: translateX(25px)};
}

.circle {
    width: 10px;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    background-color: gray;
    animation: load alternate infinite 1s ease-in-out;
}