/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/*********** FA ***********/

@font-face {
    font-family: 'Font Awesome 5 Free';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("dist/fa-regular-400.eot");
    src: url("dist/fa-regular-400.eot?#iefix") format("embedded-opentype"),
        url("dist/fa-regular-400.woff2") format("woff2"),
        url("dist/fa-regular-400.woff") format("woff"),
        url("dist/fa-regular-400.ttf") format("truetype"),
        url("dist/fa-regular-400.svg#fontawesome") format("svg"); }

.far {
    font-family: 'Font Awesome 5 Free';
    font-weight: 400;
}

@font-face {
    font-family: 'Font Awesome 5 Free';
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url("dist/fa-solid-900.eot");
    src: url("dist/fa-solid-900.eot?#iefix") format("embedded-opentype"),
        url("dist/fa-solid-900.woff2") format("woff2"),
        url("dist/fa-solid-900.woff") format("woff"),
        url("dist/fa-solid-900.ttf") format("truetype"),
        url("dist/fa-solid-900.svg#fontawesome") format("svg"); }

.fa,
.fas {
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
}

/************ FW *************/

body {
    background: white;
}
body,
input, textarea, select {
    font-family: 'Verdana', 'Geneva', sans-serif;
    font-size: 9pt;
    color: #333;
}
.header-wrapper {
    width: 100%;
    background: red;
}
header {
    background: #34495e;
    color: white;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
    border-radius: 0 0 2px 2px;
    padding: 3px;
}
header a {
    color: white;
}
p {
    line-height: 1.5em;
}
.wrapper {
    max-width: 900px;
    margin: 0 auto;
}
h3 {
    font-size: 12pt;
    padding: 16px 16px 0;
}
/* breadcrumbs */
.navigation {
    font-size: 10pt;
    font-weight: bold;
    padding: 6px 10px;
    line-height: 24px;
}
/* subheader */
.subheader {
    display: flex;
}
.subheader .title {
    font-size: 14pt;
    font-weight: bold;
    letter-spacing: -0.5px;
    word-break: break-word;
    margin: 16px;
    line-height: 30px;
    order: 1;
    width: 100%;
}
.subheader .title a {
    text-decoration: none;
}
.subheader .right {
    margin: 15px 15px 15px 0;
    order: 2;
    display: flex;
}
.subheader .right > * {
    align-self: flex-start;
    margin-left: 5px;
}
.subheader .right > *:first-child {
    margin-left: 0;
}
/* main */
main {
    margin-bottom: 10px;
}
/* footer */
footer {
    padding-right: 10px;
    font-size: 8pt;
    text-align: right;
    margin-bottom: 10px;
    line-height: 20px;
}
footer a {
    color: #333;
}
footer .login {
    font-weight: bold;
}
footer .rev {
    font-family: monospace;
}
footer .form {
    display: none;
}

/* common styles */
.boards, .posts, .threads {
    margin-bottom: 0;
}
.board, .post, .thread, .thread-warning,
.flashed-message, .recent-post {
    background: #f9f9ff;
    display: block;
    border-top: 1px solid #e9e9ee;
    border-bottom: 1px solid #e9e9ee;
    margin-bottom: 6px;
    text-decoration: none;
    color: #333;
    padding: 8px 12px;
}
.board .name,
.thread .name {
    font-weight: bold;
    word-break: break-all;
    line-height: 22px;
    font-size: 10pt;
}
.board .description,
.thread, .post {
    color: #333;
    font-size: 9pt;
    line-height: 22px;
}
/* home */
.home-container {
    display: flex;
    flex-wrap: wrap;
}
.recent-posts {
    margin-left: 3px;
    width: calc(50% - 3px);
}
.boards h2, .recent-posts h2,
.recent-attachments h2,
.recent-posts .rss-icon {
    font-size: 12pt;
    line-height: 24px;
    font-weight: bold;
    margin: 10px 20px;
}
.recent-posts-header h2 {
    flex: 1;
}
.recent-posts-header .rss-icon {
    float: right;
    font-size: unset;
    margin: 10px;
    width: 20px;
}
.recent-posts-header {
    display: flex;
}
.recent-attachments h2 {
    margin-top: 16px;
}
.recent-posts-header h2 a,
.recent-posts-header .rss-icon,
.recent-attachments h2 a {
    color: #333;
}
.recent-post {
    display: flex;
    flex-wrap: wrap;
}
.recent-post .name,
.recent-post .reply-count,
.recent-post .author,
.recent-post .time,
.recent-post .excerpt {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    color: #333;
    line-height: 20px;
}
.recent-post .name {
    font-weight: bold;
    flex: 1;
    padding-right: 10px;
}
.recent-post .reply-count {
    width: 100px;
    padding-right: 10px;
}
.recent-post .author {
    width: 100px;
    font-weight: bold;
    padding-right: 10px;
}
.recent-post .time {
    width: 100px;
}
.recent-post .excerpt {
    width: 100%;
    color: #444;
}
.recent-post.is-thread .name {
    width: 100%;
    flex: unset;
}
.recent-post:last-child {
    margin-bottom: 0;
}
.recent-attachments {
    width: 100%;
}
.recent-attachments-gallery {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}
.recent-attachments-gallery .recent-attachment {
    margin: 6px;
    width: 120px;
    height: 120px;
    align-items: center;
    justify-content: center;
    display: flex;
    background: #f9f9ff;
    border: 1px solid #eee;
}
.recent-attachments-gallery .recent-attachment .thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.recent-attachments-gallery .recent-attachment .thumb img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
.recent-attachments
.recent-attachments-see-more {
    margin: 10px 10px;
    text-align: right;
}
/* board list */
.boards:not(.full-width) {
    margin-right: 3px;
    width: calc(50% - 3px);
}
.boards.full-width {
    width: 100%;
}
.board {
    display: flex;
    flex-wrap: wrap;
    flex: auto;
    padding-top: 10px;
}
.board.hidden .name .icon {
    color: #f8b700;
}
.board .name {
    flex: 1;
}
.board .thread-count,
.board .post-count {
    width: 90px;
    line-height: 22px;
}
.board .description {
    width: 100%;
}
.board:last-child {
    margin-bottom: 0;
}

/* search */
.search-container {
    display: flex;
    align-items: flex-start;
}
.search-container .form {
    width: 30%;
    position: sticky;
    top: 0;
}
.search-container .form form {
    padding: 0 20px 0 10px;
}
.search-container .form .left {
    justify-content: flex-start;
    width: 100%;
    margin-bottom: 0;
    margin-left: 8px;
}
.search-container .form .right {
    width: 100%;
    margin-bottom: 6px;
}
.search-container .form input[type=submit] {
    margin-top: 10px;
}
.search-container .posts {
    width: 70%;
}
.search-container .posts .result-count {
    margin: 8px 10px;
    line-height: 20px;
}
.posts .post-meta {
    border-top: 1px solid #eee;
    background: #eee;
    padding: 8px 20px;
    line-height: 20px;
}
.posts .post-meta a {
    color: #333;
}

/* board->thread */
.thread {
    display: flex;
    flex: auto;
    flex-wrap: wrap;
    text-decoration: none;
    color: #333;
}
.thread:visited .name {
    color: #666;
}
.thread > * {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    padding-right: 5px;
}
.thread .name {
    order: 1;
    flex: 1;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.thread.mod .name .icon {
    color: #f8b700;
}
.thread .reply-count {
    order: 2;
    width: 64px;
}
.thread .author {
    order: 3;
    width: 108px;
    font-weight: bold;
}
.thread .time {
    order: 4;
    width: 100px;
}
.thread .time a {
    color: #444;
    text-decoration: none;
}
.thread .reply-count,
.thread .author,
.thread .time {
    color: #444;
}
.thread .excerpt {
    order: 5;
    width: 100%;
    color: #666;
    font-size: 9pt;
    line-height: 20px;
    display: none;
}
.thread-warning {
    padding: 10px;
    text-align: center;
    font-weight: bold;
    line-height: 18px;
}

/* thread->post */
.post {
    position: relative;
    overflow: hidden;
    padding-bottom: 0;
}
.post .author,
.post .time,
.post .ip_hash {
    margin-right: 8px;
    white-space: nowrap;
    line-height: 20px;
}
.post .time a {
    color: #333;
    text-decoration: none;
}
.post.anonymous .meta .author {
    font-style: italic;
}
.post .ip_hash {
    font-size: 9pt;
    padding: 1px 3px;
    border-radius: 2px;
    font-family: 'Consolas', monospace;
}
.post.mod .author .icon {
    color: #f8b700;
}
.post .text {
    margin: 10px 25px 16px;
    font-size: 9.5pt;
    line-height: 20px;
    word-wrap: break-word;
}
.post .text img {
    max-width: 100%;
    max-height: 2000px;
}
.post.short .text {
    overflow-y: auto;
    max-height: 250px;
}
.post .attachment {
}
.post .attachment .meta {
    font-size: 8pt;
}
.post .attachment .thumb {
    float: left;
    margin: 0 12px 12px 0;
}
.post .attachment .thumb img {
    float: left;
    max-width: 120px;
    max-height: 120px;
}
.post.deleted .text {
    font-style: italic;
}
.post .text .greentext {
    color: #789922;
}
.post .text .title {
    font-weight: bold;
}
.post .author {
    font-weight: bold;
}
.post .post-buttons {
    float: right;
}
.post .post-buttons .post-button {
    display: inline-block;
    border: 1px solid #ccc;
    background-color: white;
    width: 26px;
    height: 26px;
    box-sizing: border-box;
    cursor: pointer;
    text-align: center;
    line-height: 24px;
    color: #333;
}
.post.deleted {
    opacity: .7;
}

/* buttons */
.subheader .right .button, form input[type=submit] {
    border: 0;
    border-radius: 3px;
    background: #34495e;
    color: white;
    padding: 0 10px;
    line-height: 30px;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 9pt;
    font-weight: bold;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
    white-space: nowrap;
    -webkit-appearance: none;
}

/* forms */
form {
    display: flex;
    flex-wrap: wrap;
    padding: 10px;
}
form h4 {
    width: 100%;
    margin: 10px 0 5px 0;
}
form .left, form .right {
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin-bottom: 10px;
}
form .left {
    width: 30%;
    justify-content: flex-end;
}
form .left input[type=checkbox] {
    margin-right: 7px;
    margin-top: 7px;
}
form .left label,
form .right label {
    line-height: 20px;
    padding-top: 3px;
    padding-bottom: 3px;
}
form .left label {
    padding-right: 10px;
}
form .right input:not([type=submit]),
form .right textarea,
form .right select {
    box-sizing: border-box;
    padding: 5px;
    width: 500px;
    border: 1px solid #ddd;
}
form .right textarea {
    height: 160px;
}
form .right input[type=text] {
    height: 28px;
}
form .right input[type=submit] {
    width: auto;
    padding-left: 18px;
    padding-right: 18px;
}
form .errors {
    color: #d00;
    line-height: 20px;
    font-style: italic;
    width: 100%;
    margin-left: 30%;
    margin-bottom: 14px;
}
form .right {
    width: 70%;
    margin-left: 0;
}
.flashed-message {
    padding: 10px;
    margin: 20px 0 0 20px;
    text-align: center;
    display: inline-block;
    line-height: 18px;
}

/* pager */
.pager {
    padding: 10px 15px;
    line-height: 24px;
    font-size: 9pt;
}
.pager span,
.pager a {
    display: inline-block;
    text-decoration: none;
    border-radius: 3px;
    padding: 0 8px;
    color: #333;
    margin-bottom: 6px;
    font-weight: bold;
}
.pager span {
    border: 1px solid #f9f9f9;
    background: #f9f9f9;
}
.pager a {
    border: 1px solid #ccd;
}
.pager a:hover,
.pager span.current {
    border: 1px solid #666;
    background: #666;
    color: white;
}

/* help */
.help {
    width: 600px;
    margin: 15px auto 10px;
}
.help p {
    padding-bottom: 8px;
}
.help p.highlight {
    padding: 12px 16px;
    margin: 15px 30px 10px;
    color: white;
    background-color: #34495e;
    border-radius: 3px;
}
.help h1, .help h2 {
    font-size: 13pt;
    font-weight: bold;
    line-height: 24px;
    margin-bottom: 10px;
}
.help h2 {
    margin-bottom: 10px;
    margin-top: 14px;
    font-size: 10pt;
    border-bottom: 1px dashed #ddd;
}

/* post info/admin ui */
.post-info, .cfg-params {
    padding: 12px 24px;
}
.post-info {
    border-bottom: 1px solid #e9e9ee;
}
.post-info p, .cfg-params p {
    margin-bottom: 5px;
}
.post-info p.indented {
    padding-left: 12px;
}
.admin-panel .flashed-message {
    margin: 10px 0 10px 10px;
}

/* cache status table */
.cfg-params table {
    width: 100%;
    margin-top: 10px;
}
.cfg-params th, .cfg-params td {
    border: 1px dotted #999;
    padding: 8px 10px;
    text-align: left;
}

/* aux */
.icon.fa-file-alt {
    padding: 0 2px;
}

.tippy-tooltip.flamewars-theme {
    border-radius: 2px;
    background: #34495e;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
    word-break: break-word;
}
.tippy-tooltip.flamewars-theme.no-padding-theme {
    padding: 2px 0;
}
.tippy-tooltip.flamewars-theme .tippy-arrow {
    border-top-color: #34495e;
    border-bottom-color: #34495e;
}

@media all and (max-width: 600px) {
    select, textarea, input {
        /* this size is required so ios doesn't zoom in to the input field */
        font-size: 16px;
    }

    header {
        border-radius: 0;
    }

    form .left, form .right {
        width: 100%;
        margin-bottom: 8px;
    }
    form .left {
        justify-content: flex-start;
    }
    form .left.checkbox, form .right.checkbox {
        width: auto;
        margin-top: 7px;
    }
    form .left.checkbox {
        width: 24px;
    }
    form .right.checkbox {
        width: calc(100% - 24px);
    }
    form .right input[type=submit] {
        margin-top: 6px;
    }
    form .right input[type=file] {
        width: 100%;
    }

    .help {
        width: auto;
        margin: 20px;
    }

    .pager {
        line-height: 32px;
        font-size: 10pt;
    }
    .pager a, .pager span {
        padding: 0 14px;
    }

    .subheader {
        flex-wrap: wrap;
    }
    .subheader .right {
        margin-top: 0;
        margin-left: 15px;
    }
    .subheader .title {
        margin: 10px 16px;
    }

    .boards, .recent-posts {
        width: unset;
        margin: 0;
    }
    .board .name {
        flex: 100% 0 0;
    }

    .search-container {
        flex-wrap: wrap;
    }
    .search-container .form {
        position: unset;
    }
    .search-container .form,
    .search-container .posts {
        width: 100%;
    }
    .search-container .result-count.empty-query {
        display: none;
    }

    .thread {
        line-height: 28px;
    }
    .thread .name {
        flex: 100% 0 0;
        overflow: unset;
        white-space: unset;
        word-break: break-word;
        line-height: 20px;
    }

    .post .text {
        margin: 10px 5px;
    }

    .home-container {
        flex-direction: column;
    }

    .recent-post .name {
        flex: 100% 0 0;
    }
    .recent-post .reply-count {
        width: 75px;
    }
    .recent-post .author {
        width: 90px;
    }

    form .errors {
        margin-left: unset;
        margin-bottom: 10px;
    }

    .boards, .boards:not(.full-width), .recent-posts {
        width: unset;
        margin: 0;
    }
}
