body {
    height:100vh;
    margin: 0;
}

#root, .App {
    height: 100%;
}

#map {
    height: 75vh;
    width: 100%;
    max-width: 1024px;
    max-height: 720px;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

html {
    font-family: system-ui;
}

header {
    font-size: larger;
    text-align: center;
    padding: 8px;
    max-width: 768px;
    margin: auto;
}

header a {
    display: inline-flex;
}

header a img {
    margin-left: 3px;
}

header a:visited path {
    fill: purple;
}

button.geolocation {
    position: absolute;
    top: 0;
    right: 0;
    margin: 10px;
    z-index: 700;

    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
}

.connections {
    margin-top: 1em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.connections p {
    margin-top: 0;
}

.connections ul {
    margin-top: 0;
    padding-left: 0;
    max-width: 720px;
    list-style: none;

    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
}

.connections ul li {
    margin: 8px;
}

.connections ul li a {
    display: inline-block;
    padding: 4px;
    appearance: none;
    border: 1px solid lightgrey;
    background-color: whitesmoke;
    border-radius: 4px;
    color: black;
    text-decoration: none;
    font-size: 0.85em;
}

.connections ul li a.active {
    transform: scale(115%);
    box-shadow: 2px 2px 2px black;
}

footer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-top: 16px;
}

footer .links {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 24px;
}

footer a:visited {
    color: LinkText;
}

.page {
    margin: auto;
    padding: 0 8px;
    max-width: 480px;
    display: grid;
    height: 100%;
    grid-template-rows: 1fr auto;
}

.page header {
    text-align: initial;
    padding: 16px 0 0 0;
}

.settings form label {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    padding: 8px;

    &:hover {
        background-color: whitesmoke;
    }
}

#buy-me-a-coffee {
    height: 48px;
    margin: 24px auto 8px auto;
}

.shimmer {
    width: 100%;
    margin: auto;
    animation: shimmer 1s infinite linear;
    background: linear-gradient(
        90deg,
        rgba(211,211,211,0.5),
        rgba(211,211,211,0.8),
        rgba(211,211,211,0.5)
    );
    background-size: 200% 100%;
}

@keyframes shimmer {
    from {
        background-position: -200% 0;
    }
    to {
        background-position: 200% 0;
    }
}

.climate {
    border-collapse: collapse;
    margin: auto;
    table-layout: fixed;
}

.climate, .climate th, .climate td {
    border: 1px solid lightgrey;
}

.climate th {
    width: 25%;
}

.climate th, .climate td {
    text-align: center;
    padding: 4px;
}

.climate td {
    line-height: 1rem;
}