html {
    box-sizing: border-box;
}

*, *::before, *::after {
    box-sizing: inherit;
}

a, a:link, a:visited, a:hover, a:focus, a:active {
    text-decoration: none;
}

body {
    background-color: ghostwhite;
    color: #333;
    font-family: 'Cascadia Code', 'Consolas', 'Lucida Console', Menlo, 'Courier New', Courier, monospace;
    font-size: 20px;
    margin: 0 0.4rem;
    padding: 0;
}

body.waiting * {
    cursor: wait;
}

button, input {
    font-family: inherit;
    font-size: inherit;
}

#main-content button {
    background-color: #3498db;
    border-left: 1px solid #2980b9;
    border-top: 1px solid #2980b9;
    border-right: 1px solid #0d5b8f;
    border-bottom: 1px solid #0d5b8f;
    border-radius: 3px;
    box-shadow: 1px 1px 0px #0d5b8f;
    color: #f9f9f9;
    padding: 0.125em 1em;
    text-shadow: -0.6px -0.6px 0px rgba(0,0,0,0.5);
}

#main-content button:disabled {
    background-color: #ccc;
    border-left: 1px solid #ccc;
    border-top: 1px solid #ccc;
    border-right: 1px solid #555;
    border-bottom: 1px solid #555;
    box-shadow: 1px 1px 0px #555;
    color: #f9f9f9;
    text-shadow: -0.6px -0.6px 0px rgba(0,0,0,0.2);
}

#main-content button:hover:enabled {
    background-color: #2980b9;
}

header {
    align-items: baseline;
    display: grid;
    grid-template-columns: 3fr 1fr;

    margin: 0 auto;
    max-width: 860px;
}

header h1 {
    display: inline;
    margin: 0;
    text-transform: uppercase;
}
header h1>a {
    color: #a5a5a5;
    text-shadow: 0.5px 0.5px 0 #0d5b8f, 1px 1px 0 #0d5b8f, 1.5px 1.5px 0 #0d5b8f, 2px 2px 0 #0d5b8f;
}
header span {
    text-align: right;
}

h2, header span a, header span a:link, header span a:visited, header span a:hover, header span a:focus, header span a:active {
    color: #0d5b8f; 
}

label {
    font-weight: bold;
    display: block;
}

li {
    margin-top: 0.5rem;
}

p + form>input[type="url"]#resolve-query {
    margin-top: 0;
}

section {
    margin: auto;
    max-width: 860px;
}

table {
    border-collapse: collapse;
}
thead {
    border-bottom: 2px solid #ccc;
}
td, th {
    /* border: 1px solid #ccc; */
    padding: 0.4rem 1rem 0.4rem 0;
}
th {
    text-align: left;
}

.center {
    text-align: center;
}

.current-page {
    background-color: hsla(204, 83%, 31%, 0.1);
    padding: 0.4rem;
}

.resolve-link {
    color: forestgreen;
    font-size: larger;
    font-weight: bold;
}

.stat-details {
    font-size: 90%;
    margin-left: 1rem;
}

#login-section {
    padding: 1rem;
    max-width: unset;
}

#login-section div:not(:first-child), #login-section button {
    margin-top: 1rem;
}

#login-section input {
    width: 20rem;
}

#meta {
    color: rgb(56, 56, 56);
    font-size: .9rem;
}

#pagination {
    margin-bottom: 2rem;
    margin-top: 2rem;
}

#resolve-form {
    text-align: center;
}

#resolve-query {
    display: inline-block;
    font-size: 0.98rem;
    margin: 1rem 0;
    width: 100%;
}

#result {
    border: 1px solid #ccc;
    border-radius: 0.618rem;
    margin: 1rem 0;
    padding: 0 0.2rem;
}

#stats-section button {
    background-color: transparent;
    border: none;
    color: crimson;
    cursor: pointer;
    font-size: larger;
    font-weight: bold;
}
#stats-section p {
    margin-bottom: 0;
}

#step-list {
    list-style-type: none;
}
#step-list li {
    margin-top: 0.25rem;
}

@media (min-width:870px) {
    body {
        margin: 0;
    }
    header h1>a {
        text-shadow: 0.5px 0.5px 0 #0d5b8f, 1px 1px 0 #0d5b8f, 1.5px 1.5px 0 #0d5b8f, 2px 2px 0 #0d5b8f;
    }
    #login-section {
        border: 1px solid #ccc;
        border-radius: 4px;
        margin: 1em auto;
        max-width: 860px;
    }
}

@media (min-width:1070px) {
    header, section {
        max-width: 960px;
    }
}

@media (min-width:1270px) {
    header, section {
        max-width: 1160px;
    }
}