body {
    background: #000;
    color: #fff;

    max-width: 800px;
    font-size: 24px;

    margin-left: auto;
    margin-right: auto;

    font-family: serif;
}

p {
    margin: 0;
    margin-bottom: 0.5em;
}

#logo {
    width: 100%;
}

#text, button {
    border-radius: 16px;
    border: 2px solid #fff;
    background: #000;
    color: #fff;

    width: 100%;
    font-family: serif;
    font-size: 30px;
}

#text {
    height: 8em;
    padding: 0.5em;
    box-sizing: border-box;
}

#instructions {
    display: block;
    font-size: 50%;
    text-align: right;
}

button {
    padding-top: 1em;
    padding-bottom: 1em;
    font-weight: bold;
}

button img {
    height: 1em;
}

button:hover:enabled {
    background: #444;
}

button:disabled {
    border-color: #444;
}

.waiting::after, .success::after, .failed::after {
    display: inline-block;
    margin-left: 0.5em;
}

.waiting::after {
    background-image: url("throbber.gif");
    background-size: 1em 1em;
    width: 1em;
    height: 1em;
    content: "";
}

.success::after {
    content: "✓";
    color: #0f0;
}

.failed::after {
    content: "✗";
    color: #f00;
}

.hidden {
    display: none;
}

#message-table {
    border-collapse: collapse;
    width: 100%;
}

#message-table button {
    width: auto;
    font-size: 75%;
    padding: 0.25em 0.5em 0.25em 0.5em;
    position: relative;
    top: -0.25em;
}

#message-table th {
    text-align: left;
    border-bottom: 2px;
    font-weight: normal;
}

#message-table td {
    font-size: 65%;
    padding-top: 0.5em;
}

#message-table td:last-child {
    text-align: right;
}