body, html {
    margin: 0;
    padding: 0;
    background: hsl(23, 95%, 99%);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    font-size: min(4vw,4vh);
    touch-action: manipulation;
    -webkit-tab-highlight-color: rgb(0, 0, 0, 0); /*no blue flashes*/
    user-select: none;
    -webkit-touch-callout: none;
    -webkit-text-size-adjust: none;
    -webkit-user-select: none;
}

html {
    position: fixed;
    height: 100%;
    overflow: hidden;
}

body {
    width: 100vw;
    height: 100vh;
    overflow-y: scroll;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
}

body>header,
body>footer {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 10vh;
    background: hsl(23, 95%, 52%);
    color: hsl(23, 95%, 99%);
    margin: 0;
    padding: 0;
    position: stick;
}

body>header{
    text-shadow: 2px 2px hsl(23, 95%, 32%);
}

body>footer {
    flex-direction:column;
    justify-content: space-evenly;
}

body>header {
    top: 0;
}

body>footer {
    bottom: 0;
}

body>main {
    height: 80vh;
    margin: 0 auto;
    max-width: 1024px;
    padding: 0 0.25em;
    overflow-y: auto;
}

section {
    margin: 1em 0;
    padding: 1em;
    background: hsl(23, 95%, 80%);
    border-radius: 0.25em;
}

section.calculator {
    display: grid;
    align-items: center;
    grid-template-columns: 2fr 2fr 1fr 1fr 1fr;
    grid-template-rows: 1fr 1fr;
}

button {
    width: 2em;
    height: 2em;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: hsl(23, 95%, 52%);
    color: white;
    font-size: 1.2rem;
    border: none;
    transition: 0.3s;
    border: solid 1px white;
}

button:hover {
    transform: scale(1.1, 1.1)
}

button:active {
    transform: scale(0.9, 0.9);
    opacity: 0.6;
}

input {
    height: 2em;
    padding: 0 0.5em;
    font-size: 1rem;
    border: none;
}

input[list] {
    width: 3.5em;
}

label {
    justify-self: end;
    margin: 1em;
    font-weight: bold;
}

table {
    width: 100%;
    border-spacing: 0;
}

tr {
    height: 2em;
}

td {
    text-align: end;
    padding: 0.25em 0.5em;
    font-variant-numeric: tabular-nums;
}

td:nth-child(2) {
    text-align: start;
}

th {
    text-align: center;
}
a:visited, a:link {
    color:white;
}