:root {
    --accent: #33ff66;
    --accent-soft: #66ff88;
    --accent-dim: #257a3b;
    --panel-bg: #071007;
}

body.theme-orange {
    --accent: #ff9a33;
    --accent-soft: #ffb866;
    --accent-dim: #8a4f1f;
    --panel-bg: #100a04;
}

body.theme-blue {
    --accent: #33aaff;
    --accent-soft: #66c2ff;
    --accent-dim: #1f5f8a;
    --panel-bg: #040b10;
}

* {

    box-sizing: border-box;

}

html,

body {

    margin: 0;

    background: #050505;

    color: var(--accent);

    font-family: "Courier New", monospace;

    font-size: 16px;

}

a {

    color: var(--accent-soft);

    text-decoration: none;

}

a:hover {

    background: var(--accent);

    color: #050505;

}

.terminal {

    max-width: 1050px;

    margin: auto;

    padding: 18px;

}

.topbar {

    display: flex;

    justify-content: space-between;

    gap: 20px;

    align-items: center;

    flex-wrap: wrap;

}

.logo {

    font-weight: bold;

}

.topbar nav {

    display: flex;

    gap: 12px;

    flex-wrap: wrap;

}

.rule {

    border-top: 1px solid var(--accent);

    margin: 14px 0;

}

hr {

    border: 0;

    border-top: 1px solid var(--accent);

    margin: 16px 0;

}

.hero {

    text-align: center;

    padding: 20px 0;

}

.box {

    border: 1px solid var(--accent);

    padding: 16px;

    margin: 18px 0;

    background: var(--panel-bg);

}

.thread-box {

    border: 1px solid var(--accent);

}

.box-title {

    border-bottom: 1px dashed var(--accent);

    padding-bottom: 8px;

    margin-bottom: 12px;

}

.menu {

    display: flex;

    flex-direction: column;

    gap: 7px;

    margin: 20px 0;

}

.menu a {

    padding: 8px;

    border: 1px solid transparent;

}

table {

    width: 100%;

    border-collapse: collapse;

    margin: 15px 0;

}

th,

td {

    border: 1px solid var(--accent);

    padding: 9px;

    text-align: left;

    vertical-align: top;

}

th {

    font-weight: bold;

}

input:not([type="hidden"]),

textarea,

select {

    display: block;

    width: 100%;

    max-width: 700px;

    background: #020602;

    color: var(--accent-soft);

    border: 1px solid var(--accent);

    padding: 9px;

    font: inherit;

    margin-top: 5px;

}

textarea {

    min-height: 150px;

    resize: vertical;

}

label {

    display: block;

    margin: 12px 0;

}

form.inline {

    display: inline-flex;

    width: auto;

    margin: 0 6px 0 0;

    padding: 0;

    vertical-align: middle;

}

form.inline button {

    display: inline-block;

    width: auto;

    margin: 0;

}

button,

.button {

    background: #050505;

    color: var(--accent-soft);

    border: 1px solid var(--accent);

    padding: 8px 13px;

    font: inherit;

    cursor: pointer;

    display: inline-block;

}

button:hover,

.button:hover {

    background: var(--accent);

    color: #050505;

}

.notice {

    border: 1px dashed var(--accent);

    padding: 10px;

    margin: 12px 0;

}

.dim {

    opacity: 0.7;

    font-size: 0.9em;

}

footer {

    display: flex;

    justify-content: space-between;

    gap: 20px;

    flex-wrap: wrap;

    opacity: 0.75;

    font-size: 0.85em;

}

.profile-grid {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 18px;

    align-items: stretch;

}

.profile-info,

.profile-avatar {

    margin: 0;

    border-color: var(--accent);

}

.profile-avatar {

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    min-height: 260px;

}

.avatar-svg {

    width: min(220px, 70%);

    height: auto;

    color: var(--accent);

}

.password-box {

    margin-top: 18px;

}

.board-list {

    width: 100%;

    margin: 15px 0;

}

.board-row {

    display: grid;

    grid-template-columns: 160px minmax(0, 1fr) 110px;

    width: 100%;

    align-items: stretch;

    background: var(--panel-bg);

    border-left: 1px solid var(--accent);

    border-right: 1px solid var(--accent);

    border-bottom: 1px solid var(--accent);

}

.board-row:first-child {

    border-top: 1px solid var(--accent);

}

.board-row > div {

    min-width: 0;

    padding: 9px;

    border-left: 1px solid var(--accent);

}

.board-row > div:first-child {

    border-left: 0;

    text-align: center;

}

.board-header {

    font-weight: bold;

    background: #050505;

}

.board-row a {

    overflow-wrap: anywhere;

}

.thread-list {

    width: 100%;

    margin: 15px 0;

}

.thread-row {

    display: grid;

    grid-template-columns: minmax(0, 1fr) 150px 170px 90px;

    width: 100%;

    align-items: stretch;

    background: var(--panel-bg);

    border-left: 1px solid var(--accent);

    border-right: 1px solid var(--accent);

    border-bottom: 1px solid var(--accent);

}

.thread-row:first-child {

    border-top: 1px solid var(--accent);

}

.thread-row > div {

    min-width: 0;

    padding: 9px;

    border-left: 1px solid var(--accent);

}

.thread-row > div:first-child {

    border-left: 0;

}

.thread-row > div:nth-child(3) {

    text-align: center;

}

.thread-header {

    font-weight: bold;

    background: #050505;

}

.thread-row a {

    overflow-wrap: anywhere;

}

.thread-empty {

    border: 1px solid var(--accent);

    padding: 12px;

    background: var(--panel-bg);

}

.mail-list {

    width: 100%;

    margin: 15px 0;

}

.mail-row {

    display: grid;

    grid-template-columns: 90px 180px minmax(0, 1fr) 180px;

    width: 100%;

    align-items: stretch;

    background: var(--panel-bg);

    border-left: 1px solid var(--accent);

    border-right: 1px solid var(--accent);

    border-bottom: 1px solid var(--accent);

}

.mail-row:first-child {

    border-top: 1px solid var(--accent);

}

.mail-row > div {

    min-width: 0;

    padding: 9px;

    border-left: 1px solid var(--accent);

}

.mail-row > div:first-child {

    border-left: 0;

    text-align: center;

}

.mail-header {

    font-weight: bold;

    background: #050505;

}

.mail-row a {

    overflow-wrap: anywhere;

}

.mail-row.unread {

    font-weight: bold;

}

.mail-subject {

    overflow-wrap: anywhere;

}

.mail-empty {

    border: 1px solid var(--accent);

    padding: 12px;

    background: var(--panel-bg);

}

.admin-list,

.admin-threads {

    width: 100%;

    margin: 15px 0;

}

.admin-user {

    display: grid;

    grid-template-columns: 60px
        minmax(140px, 1fr)
        90px
        110px
        minmax(260px, 1.4fr);

    width: 100%;

    align-items: stretch;

    background: var(--panel-bg);

    border-left: 1px solid var(--accent);

    border-right: 1px solid var(--accent);

    border-bottom: 1px solid var(--accent);

}

.admin-user:first-child {

    border-top: 1px solid var(--accent);

}

.admin-user > div {

    min-width: 0;

    padding: 9px;

    border-left: 1px solid var(--accent);

}

.admin-user > div:first-child {

    border-left: 0;

    text-align: center;

}

.admin-thread {

    display: grid;

    grid-template-columns: 130px 340px 130px minmax(200px, 1fr);

    width: 100%;

    align-items: stretch;

    background: var(--panel-bg);

    border-left: 1px solid var(--accent);

    border-right: 1px solid var(--accent);

    border-bottom: 1px solid var(--accent);

}

.admin-thread:first-child {

    border-top: 1px solid var(--accent);

}

.admin-thread > div {

    min-width: 0;

    padding: 9px;

    border-left: 1px solid var(--accent);

}

.admin-thread > div:first-child {

    border-left: 0;

}

.admin-header {

    font-weight: bold;

    background: #050505;

}

.admin-actions {

    white-space: normal;

}

.admin-actions form {

    display: inline-block;

    margin: 0 6px 4px 0;

}

.admin-user button,

.admin-thread button {

    white-space: nowrap;

}

@media (max-width: 800px) {

    .logo {

        display: none;

    }

    .hero pre {

        font-size: 10px;

    }

    .profile-grid {

        grid-template-columns: 1fr;

    }

    .profile-avatar {

        min-height: 220px;

    }

    .board-header,

    .thread-header,

    .mail-header,

    .admin-header {

        display: none !important;

    }

    .board-row:not(.board-header),

    .thread-row:not(.thread-header),

    .mail-row:not(.mail-header),

    .admin-user:not(.admin-header),

    .admin-thread:not(.admin-header) {

        display: block;

        border: 1px solid var(--accent);

        margin: 12px 0;

        padding: 9px;

    }

    .board-row > div,

    .thread-row > div,

    .mail-row > div,

    .admin-user > div,

    .admin-thread > div {

        border-left: 0;

        border-top: 1px solid var(--accent);

        padding: 8px 0 0;

        margin-top: 8px;

        text-align: left !important;

    }

    .board-row > div:first-child,

    .thread-row > div:first-child,

    .mail-row > div:first-child,

    .admin-user > div:first-child,

    .admin-thread > div:first-child {

        border-top: 0;

        padding-top: 0;

        margin-top: 0;

    }

    .board-row > div::before,

    .thread-row > div::before,

    .mail-row > div::before,

    .admin-user > div::before,

    .admin-thread > div::before {

        display: block;

        font-weight: bold;

        opacity: 0.7;

        font-size: 0.82em;

        margin-bottom: 3px;

    }

    .board-row > div:nth-child(1)::before {

        content: "BOARD";

    }

    .board-row > div:nth-child(2)::before {

        content: "DESCRIPTION";

    }

    .board-row > div:nth-child(3)::before {

        content: "THREADS";

    }

    .thread-row > div:nth-child(1)::before {

        content: "SUBJECT";

    }

    .thread-row > div:nth-child(2)::before {

        content: "BY";

    }

    .thread-row > div:nth-child(3)::before {

        content: "UPDATED";

    }

    .thread-row > div:nth-child(4)::before {

        content: "POSTS";

    }

    .mail-row > div:nth-child(1)::before {

        content: "TYPE";

    }

    .mail-row > div:nth-child(2)::before {

        content: "FROM / TO";

    }

    .mail-row > div:nth-child(3)::before {

        content: "SUBJECT";

    }

    .mail-row > div:nth-child(4)::before {

        content: "DATE";

    }

    .admin-user > div:nth-child(1)::before {

        content: "ID";

    }

    .admin-user > div:nth-child(2)::before {

        content: "HANDLE";

    }

    .admin-user > div:nth-child(3)::before {

        content: "ADMIN";

    }

    .admin-user > div:nth-child(4)::before {

        content: "STATUS";

    }

    .admin-user > div:nth-child(5)::before {

        content: "ACTION";

    }

    .admin-thread > div:nth-child(1)::before {

        content: "BOARD";

    }

    .admin-thread > div:nth-child(2)::before {

        content: "THREAD";

    }

    .admin-thread > div:nth-child(3)::before {

        content: "BY";

    }

    .admin-thread > div:nth-child(4)::before {

        content: "ACTION";

    }

}

.notice {

    border: 1px solid var(--accent);

    background: var(--panel-bg);

    color: var(--accent-soft);

    padding: 12px;

    margin: 12px 0;

    font-weight: bold;

}

.notice::before {

    content: "[ SYSTEM ] ";

    color: var(--accent);

}

@media (max-width: 800px) {

    
}

.mail-subject-link {

    color: var(--accent-soft);

    text-decoration: none;

    display: inline-block;

}

.mail-subject-link:hover {

    background: var(--accent);

    color: #050505;

}

.profile-link {

    color: var(--accent-soft);

    text-decoration: none;

    display: inline-block;

}

.profile-link:hover {

    background: var(--accent);

    color: #050505;

}

.pagination {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin: 18px 0;

    align-items: center;

}

.pagination a,

.pagination .current {

    display: inline-block;

}

.pagination .current {

    color: var(--accent);

    font-weight: bold;

}

.thread-admin-link {

    color: var(--accent-soft);

    text-decoration: none;

    display: inline-block;

}

.thread-admin-link:hover {

    background: var(--accent);

    color: #050505;

}

.post-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 12px;

    flex-wrap: wrap;

}

.post-meta {

    min-width: 0;

}

.post-moderation {

    display: flex;

    flex-wrap: wrap;

    gap: 6px;

    margin-left: auto;

}

.post-moderation form.inline {

    margin: 0;

}

.post-moderation button {

    white-space: nowrap;

}

@media (max-width: 800px) {

    .post-header {

        align-items: flex-start;

    }

    .post-moderation {

        width: 100%;

        margin-left: 0;

    }

}

.post-moderation-bottom {

    justify-content: flex-end;

    margin-left: 0;

    margin-top: 0;

}

@media (max-width: 800px) {

    .post-moderation-bottom {

        justify-content: flex-start;

        width: 100%;

    }

}

.profile-admin-controls .inline {

    margin-bottom: 6px;

}

.profile-admin-controls button {

    white-space: nowrap;

}

.profile-rename-form {

    margin: 0 0 12px;

    max-width: 420px;

}

.profile-rename-form label {

    margin-top: 0;

}

.profile-rename-section {

    margin-top: 14px;

}

.thread-meta-link {

    color: var(--accent-soft);

    text-decoration: none;

    display: inline-block;

}

.thread-meta-link:hover {

    background: var(--accent);

    color: #050505;

}

.page-action-right {

    text-align: right;

}

.board-row > div:last-child {
    text-align: center;
}

.thread-row > div:last-child {
    text-align: center;
}

@media (min-width: 701px) {
    .thread-row > div:nth-child(3) {
        text-align: left;
    }

    .thread-row > div:nth-child(4) {
        text-align: center;
    }
}




.admin-thread .admin-actions {
    flex-wrap: nowrap;
    white-space: nowrap;
}


@media (max-width: 800px) {
    .admin-thread .admin-actions {
        flex-wrap: wrap;
        white-space: normal;
    }
}

.board-admin-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
    margin-top: 8px;
}

.board-admin-actions form.inline {
    margin: 0;
}

@media (max-width: 800px) {
    .board-admin-actions {
        flex-wrap: wrap;
    }
}


.bbs-text-logo {
    width: 100%;
    text-align: center;
    font-family: "Lucida Console", "DejaVu Sans Mono", "Liberation Mono", monospace;
    font-size: 144px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 2px;
    color: var(--accent);
    box-sizing: border-box;
}

@media (max-width: 800px) {
    .bbs-text-logo {
        font-size: 112px;
        letter-spacing: 2px;
    }
}




.mention-link {
    color: var(--accent-soft);
    text-decoration: none;
    display: inline-block;
}

.mention-link:hover,
.mention-link:focus {
    color: #000;
    background: var(--accent);
    text-decoration: none;
}


.admin-users-top-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}


.has-notifications {
    font-weight: bold;
}

.notification-actions {
    margin-bottom: 10px;
}

.notification-list {
    display: grid;
    gap: 8px;
}

.notification-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.notification-main {
    min-width: 0;
}

.notification-link {
    color: var(--accent-soft);
    text-decoration: none;
}

.notification-link:hover,
.notification-link:focus {
    color: #000;
    background: var(--accent);
}

.notification-clear {
    flex: 0 0 auto;
}

@media (max-width: 800px) {
    .notification-item {
        align-items: flex-start;
        flex-direction: column;
    }
}
