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

    margin: 0;
    padding: 0;

    position: relative;
    width: 100%;
    min-width: 300px;
    height: 100vh;
    overflow: hidden;

    font-family: 'Zilla Slab', sans-serif;

    color: #333;
    background-color: #fff;
}

h1 { margin: 0; padding: 1em 0; }

.boxquote {
    font-style: italic;
    margin-bottom: 2em;
}
.boxquote > .quote-txt {
    text-align: center;
    font-size: large;
    margin-bottom: 0.5em;
}
.boxquote > .quote-src { text-align: right; }

hr {
    height: 0;
    border: none;
    border-top: 1px solid #ccc;
}

nav {
    height: 2em;
    line-height: 2em;
}
nav > a {
    display: inline-block;
    margin-left: 1em;
}
a:link {
    color: #666;
    transition: color .1s;
}
nav > a:link, h1 > a:link { text-decoration: none; }
h1 > a:link { color: inherit; }
a:visited { color: #666; }
a:hover  { color: #ccc; }
/* a trick (TM) for css-only tabs */
.box {
    position: absolute;
    right: 0;
    visibility: hidden;

    top: 2em;
    bottom: 2em;
    left: 0;
    right: 0;

    overflow: auto;

    padding: 1em;

    line-height: 1.2em;

    background-color: #fff;
}

.box:target {
    visibility: visible;
}

#edit {
    white-space: pre-wrap;

    color: #999;
    background-color: #f6f6f6;
}
#edit:focus {
    color: #111;
}
#edit > .live {
    background-color: #ddd;
}
/* extra margin for comfy scrolling */
#edit > .curs::after {
    content: '';
    display: block;
    height: 60%;
}
h3 {
    margin: 0;
}

.box-content {
    width: 90%;
    max-width: 600px;
    margin: 0 auto;
}
.settings-group {
    vertical-align: top;
    display: inline-block;
    padding-bottom: 1em;
}
.settings-item-head {
    margin-bottom: 0.5em;
    text-decoration: underline;
}
.settings-item-desc {
    font-size: small;
}
.settings-item {
    margin: 1em 0;
}

#status-msg {
    position: absolute;
    bottom: 0;
    height: 2em;
    width: 100%;

    display: table;
    text-align: center;
}
#status-msg > .status-msg-content {
    display: table-cell;
    vertical-align: bottom;
}
#status-msg-progress {
    height: 0.5em;
}
#status-msg-progress > div {
    height: 100%;
}
.status-msg-default  .status-msg-fill { background-color: #999; }
.status-msg-default  #status-msg-text {            color: #777; }

.status-msg-enabled  .status-msg-fill { background-color: #999; }
.status-msg-enabled  #status-msg-text {            color: #777; }

.status-msg-engaged  .status-msg-fill { background-color: #7f7; }
.status-msg-engaged  #status-msg-text {            color: #3a3; }

.status-msg-disabled .status-msg-fill { background-color: #ddd; }
.status-msg-disabled #status-msg-text {            color: #aaa; }

.status-msg-error    .status-msg-fill { background-color: #f77; }
.status-msg-error    #status-msg-text {            color: #c55; }

.status-msg-warning  .status-msg-fill { background-color: #fc0; }
.status-msg-warning  #status-msg-text {            color: #d90; }
