body
{
    height:100%;
    width:100%;
    border:0;
    margin:0;
    padding:0;
    background-color:#63e3ff;
    color:black;
    font-size:16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    -webkit-align-items:center;
    -webkit-justify-content:center;
}

.mw_spinner
{
    position:absolute;
    right:8px;
    top:8px;
    animation-duration:1s;
    animation-name:spinner-spin;
    animation-iteration-count:infinite;
    animation-timing-function:linear;
}

@keyframes spinner-spin {
    from {
        transform: rotate(0);
    }

    to {
        transform: rotate(360deg);
    }
}

.mw_spinner svg
{
    width:32px;
    height:32px;
    fill:#e3faff;
}

.mw_loading, .mw_error
{
    margin:24px;
    text-align:center;
}

.mw_mainblock
{
    display:flex;
    flex-flow:column;
    height:100%;
    width:100%
}

.mw_userblock
{
    width:100%;
    margin:4px;
}

.mw_avatar:hover,
.mw_entry_avatar:hover,
.mw_media_item img:hover
{
    border:2px solid #505050;
}

.mw_avatar:active,
.mw_entry_avatar:active,
.mw_media_item img:active
{
    border:2px solid #700000;
}

.mw_userblock p
{
    /* TODO: Find a better way to do this. */
    margin-block-start:0;
    margin-block-end:0;
}

.mw_userdisplayname a
{
    font-size:larger;
    font-weight:bold;
}

.mw_entry_content a.mention,
.mw_reply_container a
{
    font-weight:bold;
}

.mw_entry_content a,
.mw_footerblock a
{
    /* Keep the underline on actual entries and in footerblock.  Those aren't
       as obvious that they're links. */
    text-decoration:underline;
    color:black;
}

.mw_entry_date a,
.mw_reply_container a,
.mw_userdisplayname a,
.mw_entry_userdisplayname a,
.mw_entry_content a.mention
{
    text-decoration:none;
    color:black;
}

.mw_entry_content a.mention:hover,
a:hover
{
    color:#505050;
    text-decoration:underline;
}

.mw_entry_content a.mention:active,
a:active
{
    color:#700000;
    text-decoration:underline;
}

.mw_summary
{
    margin-top:4px;
    font-size:smaller;
    font-style:italic;
}

.mw_contentblock
{
    margin:4px;
    overflow-y:auto;
}

.mw_contentblock > hr,
.mw_userblock > hr,
.mw_entry > hr
{
    height:1px;
    border:0;
    background-image:linear-gradient(to right, #00000000, #000000aa, #00000000);
}

.mw_entry
{
    margin-bottom:8px;
    margin-left:4px;
    margin-right:4px;
}

.mw_entry_userblock
{
    display:flex;
    width:100%;
    margin-bottom:4px;
}

.mw_entry_date
{
    font-size:smaller;
    font-weight:bold;
}

.mw_entry_edit_date
{
    font-size:smaller;
    margin-bottom:4px;
}

.mw_entry_boosting
{
    font-size:smaller;
    font-style:italic;
}

.mw_entry_userdisplayname
{
    font-weight:bold;
}

.mw_entry_avatar
{
    width:48px;
    height:48px;
    border:2px solid black;
    margin:2px 4px 0 0;
    background-color:#63e3ff;
    background-size:contain;
    border-radius:4px;
}

.mw_reply_avatar
{
    display:inline-block;
    width:24px;
    height:24px;
    border:1px solid black;
    margin:0 4px;
    background-size:contain;
    border-radius:4px;
    vertical-align:middle;
}

.mw_entry_content
{
    max-width:100%;
    overflow:auto hidden;
}

.mw_entry_content p {
    margin-block-start:0.6em;
    margin-block-end:0.6em;
}

.mw_reply_container {
    font-size:smaller;
    font-style:italic;
}

.mw_spoiler_button {
    background-color:#30acc7;
    border:0;
    border-radius:2px;
    cursor:pointer;
    font-size:12px;
    font-weight:bold;
    padding:2px 6px;
    vertical-align:middle;
}

.mw_spoiler_button:hover {
    background-color:#76c9db;
}

.mw_spoiler_button:active {
    background-color:#0c8ca6;
}

.mw_emoji {
    width:20px;
    height:20px;
    vertical-align:middle;
}

.mw_media_container
{
    max-width:100%;
    position:relative;
}

.mw_media_item img,
.mw_media_item video
{
    max-width:calc(100% - 10px);
}

.mw_media_item audio
{
    /* Audio really has no intrinsic size, so max-width isn't what we want. */
    width:calc(100% - 10px);
}

.mw_media_item img
{
    border: 2px solid black;
}

.mw_media_item video
{
    border: 2px solid transparent;
}

.mw_media_item a,
.mw_media_item video,
.mw_media_item audio
{
    position: relative;
    z-index: 1;
}

.mw_media_item img.mw_media_blurhash
{
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
}

.mw_media_spoiler_button
{
    background-color: transparent;
    border: 2px solid transparent;
    position: absolute;
    top: 0;
    left: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    max-width: calc(100% - 10px);
    z-index: 2;
    cursor: pointer;
}

.mw_media_spoiler_button_audio
{
    background-color: transparent;
    border: 2px solid transparent;
    width: calc(100% - 10px);
    z-index: 2;
    cursor: pointer;
    margin-top: 8px;
}

.mw_media_spoiler_button span,
.mw_media_spoiler_button_audio span
{
    background-color: rgba(0,0,0,0.3);
    border-radius: 8px;
    color: white;
    padding: 8px 12px;
}

.mw_media_spoiler_button:hover span,
.mw_media_spoiler_button_audio:hover span
{
    background-color: rgba(0,0,0,0.6);
}

.mw_media_spoiler_button:active span,
.mw_media_spoiler_button_audio:active span
{
    background-color: rgba(0,0,0,0.4);
}

.mw_poll_option_container {
    list-style-type:none;
}

.mw_poll_option_percent {
    display:inline-block;
    font-weight:bold;
    margin-right:16px;
    width:50px;
}

.mw_poll_option_bar {
    height:5px;
    border-radius:4px;
    min-width:1%;
    background-color:#19a1bf;
    margin:5px 0;
}

.mw_info_bar {
    display:flex;
    font-size:smaller;
    margin-top:4px;
    width:100%;
}

.mw_info_element {
    flex-grow:0;
    margin-right:8px;

}

.mw_info_bar svg {
    width:16px;
    height:16px;
    margin-right:4px;
    fill:#1d5f6e;
    vertical-align:bottom;
}

.mw_footerblock {
    font-size:x-small;
    margin:0px 8px 4px;
    text-align:right;
}

/* TODO: Find a way to namespace this to mw_?  Maybe? */
.invisible {
    display:none;
}

.ellipsis::after {
    content:"…";
}
