html,
body,
main {
    height: 100%;
}

body,
input,
button {
    font-family: "Source Sans 3", Helvetica, sans-serif;
    line-height: 1.6;
}

body {
    margin: 0;
    background-color: #efeff2;
    color: #1e1e1e;
    display: flex;
    flex-direction: column;
}

::selection {
    background-color: #add6ff;
    color: #1e1e1e;
}

a {
    text-decoration: none;
    color: #1e1e1e;
}

a:hover {
    color: #1c97ea;
}

main {
    display: flex;
    flex-direction: column;
    margin: 2.5rem;
    border: 0.06rem solid #cccedb;
    background-color: #efeff2;
    box-shadow: 0 0.6rem 3rem #00000026;
}

h1 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.3rem 0.75rem;
    margin: 0;
    font-size: 0.8rem;
    letter-spacing: 0.05rem;
    color: #717171;
    border-bottom: 0.06rem solid #cccedb;
    user-select: none;
}

menu {
    display: flex;
    gap: 0.25rem;
    padding: 0.3rem 0.5rem;
    margin: 0;
    border-bottom: 0.06rem solid #cccedb;
}

button {
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: 0.1rem;
    text-transform: uppercase;
    padding: 0.4rem 1.1rem;
    border-radius: 0;
    background-color: transparent;
    color: #1e1e1e;
    cursor: pointer;
    transition: background-color 0.1s ease;
}

button:hover {
    background-color: #c9def5;
}

button:active {
    background-color: #afd5fd;
}

button:focus-visible {
    outline: 0.06rem dotted #1e1e1e;
    outline-offset: -0.25rem;
}

#buildandrun::before {
    content: "\25B6\00A0\00A0";
    color: #388a34;
    font-size: 0.7rem;
}

.tabs {
    display: flex;
    padding: 0.4rem 0 0 0;
}

.tab {
    font-size: 0.8rem;
    padding: 0.3rem 1.25rem;
    background-color: #007acc;
    color: #ffffff;
    user-select: none;
}

textarea {
    margin: 0;
    padding: 0.75rem 1rem;
    font-family: monospace;
    font-size: 1rem;
    background-color: #fff;
    color: #000;
    caret-color: #1e1e1e;
    border-radius: 0;
    resize: none;
}

textarea:focus-visible {
    box-shadow: inset 0 0 0 0.06rem #007acc;
}

#codearea {
    height: 100%;
}

#outputarea {
    resize: none;
    color: #717171;
}

h2 {
    font-size: 0.75rem;
    letter-spacing: 0.15rem;
    text-transform: uppercase;
    color: #717171;
    padding: 0.3rem 1rem;
    background-color: #efeff2;
    border-top: 0.06rem solid #cccedb;
    border-bottom: 0.06rem solid #cccedb;
    margin: 0;
    user-select: none;
}

footer {
    background-color: #007acc;
    color: #ffffff;
    font-size: 0.8rem;
    padding: 0.15rem 0.75rem;
    user-select: none;
}

input,
button,
textarea {
    outline: 0;
    border: 0;
    box-sizing: border-box;
}