@charset "utf-8";
/* ============================================================
   WELFARE BOX COMMON BOARD
   BASIC SKIN
   LIST + WRITE
============================================================ */

:root {
    --wb-board-text: #242424;
    --wb-board-sub: #666;
    --wb-board-muted: #888;

    --wb-board-line: #e5e5e5;
    --wb-board-line-dark: #cfcfcf;

    --wb-board-soft: #f7f7f7;
    --wb-board-bg: #fff;

    --wb-board-radius: 8px;
}


/* ============================================================
   COMMON
============================================================ */

.wb-board {
    position: relative;

    width: 100%;

    margin: 0;
    padding: 0;

    color: var(--wb-board-text);

    font-size: 16px;

    box-sizing: border-box;
}


.wb-board *,
.wb-board *::before,
.wb-board *::after {
    box-sizing: border-box;
}


/* ============================================================
   ACCESSIBILITY FOCUS
============================================================ */

.wb-board a:focus-visible,
.wb-board button:focus-visible,
.wb-board input:focus-visible,
.wb-board select:focus-visible,
.wb-board textarea:focus-visible {
    outline: 2px dotted var(--wb-focus, #555);
    outline-offset: 3px;
}

@charset "utf-8";


/* ============================================================
   WELFARE BOX COMMON BOARD
   GALLERY LIST
============================================================ */


/* ============================================================
   CONTAINER
============================================================ */

#bo_gall.wb-board-gallery {
    width: 100%;

    margin: 0;
    padding: 0;
}


/* ============================================================
   TOOLBAR
============================================================ */

.wb-board-gallery .wb-board-toolbar {
    margin-bottom: 24px;
}


/* ============================================================
   SELECT ALL
============================================================ */

.wb-gallery-select-all {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    min-height: 44px;

    padding: 0 8px;

    color: #555;

    font-size: 15px;
    font-weight: 500;

    cursor: pointer;
}


.wb-gallery-select-check {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: none;
}


.wb-gallery-select-check input {
    position: absolute;

    width: 1px;
    height: 1px;

    margin: 0;

    overflow: hidden;

    opacity: 0;
}


.wb-gallery-select-check > span {
    position: relative;

    display: block;

    width: 20px;
    height: 20px;

    border: 1px solid #bbb;
    border-radius: 4px;

    background: #fff;
}


.wb-gallery-select-check input:checked + span {
    border-color: #333;

    background: #333;
}


.wb-gallery-select-check input:checked + span::after {
    content: "";

    position: absolute;

    left: 6px;
    top: 2px;

    width: 5px;
    height: 10px;

    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;

    transform: rotate(45deg);
}


.wb-gallery-select-check input:focus-visible + span {
    outline: 2px dotted var(--wb-focus, #555);
    outline-offset: 3px;
}


/* ============================================================
   GRID
============================================================ */

.wb-gallery-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 44px 28px;

    width: 100%;

    margin: 0;
    padding: 0;

    list-style: none;
}


/* ============================================================
   ITEM
============================================================ */

.wb-gallery-item {
    position: relative;

    min-width: 0;

    margin: 0;
    padding: 0;
}


.wb-gallery-card {
    position: relative;

    width: 100%;

    margin: 0;
    padding: 0;
}


/* ============================================================
   CHECKBOX
============================================================ */

.wb-gallery-check {
    position: absolute;

    top: 12px;
    right: 12px;

    z-index: 20;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 6px;

    background: rgba(255, 255, 255, .94);

    box-shadow:
        0 3px 12px
        rgba(0, 0, 0, .08);
}


/* ============================================================
   THUMBNAIL
============================================================ */

.wb-gallery-thumb {
    position: relative;

    display: block;

    width: 100%;

    aspect-ratio: 4 / 3;

    overflow: hidden;

    border: 1px solid #e7e7e7;
    border-radius: 8px;

    background: #f3f3f3;

    color: inherit;

    text-decoration: none;
}


.wb-gallery-thumb img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform .35s ease;
}


.wb-gallery-card:hover
.wb-gallery-thumb img {
    transform: scale(1.025);
}


/* ============================================================
   NO IMAGE
============================================================ */

.wb-gallery-no-image {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 100%;

    background:
        #f4f4f4;

    color: #aaa;
}


.wb-gallery-no-image svg {
    width: 42px;
    height: 42px;

    stroke-width: 1.2;
}


/* ============================================================
   NOTICE
============================================================ */

.wb-gallery-notice {
    position: absolute;

    top: 12px;
    left: 12px;

    z-index: 10;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 30px;

    padding: 0 10px;

    border: 1px solid rgba(0,0,0,.12);
    border-radius: 4px;

    background: rgba(255,255,255,.94);

    color: #333;

    font-size: 14px;
    font-weight: 700;

    backdrop-filter: blur(3px);
}


/* ============================================================
   CONTENT
============================================================ */

.wb-gallery-content {
    padding: 17px 2px 0;
}


/* ============================================================
   CATEGORY
============================================================ */

.wb-board-gallery
.wb-gallery-content
.wb-board-category-tag {
    margin-bottom: 7px;
}


/* ============================================================
   TITLE
============================================================ */

.wb-gallery-title-row {
    display: flex;
    align-items: center;

    gap: 7px;

    min-width: 0;
}


.wb-gallery-title {
    min-width: 0;

    overflow: hidden;

    color: #222;

    font-size: 18px;
    font-weight: 600;
    line-height: 1.55;

    text-decoration: none;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.wb-gallery-title:hover {
    color: #111;

    text-decoration: underline;

    text-underline-offset: 4px;
}


.wb-gallery-item.is-notice
.wb-gallery-title {
    font-weight: 700;
}


/* ============================================================
   NEW / STATUS ICON
============================================================ */

.wb-gallery-title-row
.wb-new-badge {
    flex: none;
}


.wb-gallery-title-row
.wb-title-status {
    flex: none;
}


/* ============================================================
   SUMMARY
============================================================ */

.wb-gallery-summary {
    display: -webkit-box;

    margin: 8px 0 0;

    overflow: hidden;

    color: #666;

    font-size: 15px;
    line-height: 1.65;

    word-break: keep-all;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}


/* ============================================================
   META
============================================================ */

.wb-gallery-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 6px;

    margin-top: 13px;

    color: #888;

    font-size: 14px;
    line-height: 1.5;
}


.wb-gallery-author {
    color: #666;

    font-weight: 500;
}


.wb-gallery-divider {
    color: #bbb;
}


/* ============================================================
   CURRENT
============================================================ */

.wb-gallery-item.is-current
.wb-gallery-thumb {
    outline: 2px solid #555;

    outline-offset: 3px;
}


/* ============================================================
   EMPTY
============================================================ */

.wb-gallery-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;

    min-height: 280px;

    padding: 40px 20px;

    border-top: 2px solid #333;
    border-bottom: 1px solid #e5e5e5;

    color: #777;

    text-align: center;
}


.wb-gallery-empty svg {
    width: 40px;
    height: 40px;

    margin-bottom: 14px;

    color: #aaa;

    stroke-width: 1.25;
}


.wb-gallery-empty strong {
    display: block;

    color: #555;

    font-size: 17px;
    font-weight: 600;
}


.wb-gallery-empty p {
    margin: 7px 0 0;

    color: #888;

    font-size: 15px;
    line-height: 1.6;
}


/* ============================================================
   SEARCH
============================================================ */

.wb-board-gallery
.wb-board-search {
    margin-top: 46px;
}


/* ============================================================
   FOCUS
============================================================ */

.wb-gallery-thumb:focus-visible,
.wb-gallery-title:focus-visible {
    outline: 2px dotted var(--wb-focus, #555);
    outline-offset: 4px;
}


/* ============================================================
   1280
============================================================ */

@media (max-width: 1280px) {

    .wb-gallery-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));

        gap:
            40px
            24px;
    }

}


/* ============================================================
   TABLET
============================================================ */

@media (max-width: 900px) {

    .wb-gallery-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            34px
            18px;
    }

}


/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 768px) {

    .wb-board-gallery
    .wb-board-toolbar {
        margin-bottom: 18px;
    }


    .wb-gallery-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            30px
            12px;
    }


    .wb-gallery-content {
        padding-top: 12px;
    }


    .wb-gallery-title {
        display: -webkit-box;

        overflow: hidden;

        font-size: 16px;
        line-height: 1.5;

        white-space: normal;

        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }


    /*
     * 모바일에서는 요약문 제거.
     * 사진 + 제목 + 최소 정보 중심.
     */

    .wb-gallery-summary {
        display: none;
    }


    .wb-gallery-meta {
        gap: 4px 6px;

        margin-top: 8px;

        font-size: 13px;
    }


    /*
     * 조회 / 댓글은 모바일에서 숨김.
     */

    .wb-gallery-meta-extra {
        display: none;
    }


    .wb-gallery-notice {
        top: 8px;
        left: 8px;

        min-height: 27px;

        padding: 0 8px;

        font-size: 13px;
    }


    .wb-gallery-check {
        top: 8px;
        right: 8px;

        width: 32px;
        height: 32px;
    }


    .wb-gallery-no-image svg {
        width: 34px;
        height: 34px;
    }


    .wb-board-gallery
    .wb-board-search {
        margin-top: 38px;
    }

}


/* ============================================================
   SMALL MOBILE
============================================================ */

@media (max-width: 480px) {

    /*
     * Gallery는 작은 화면에서도
     * 2열을 유지한다.
     */

    .wb-gallery-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            26px
            10px;
    }


    .wb-gallery-title {
        font-size: 16px;
    }


    .wb-gallery-author {
        max-width: 90px;

        overflow: hidden;

        text-overflow: ellipsis;
        white-space: nowrap;
    }


    .wb-gallery-select-text {
        display: none;
    }


    .wb-gallery-select-all {
        min-width: 36px;

        padding: 0;
    }

}


/* ============================================================
   VERY SMALL MOBILE
============================================================ */

@media (max-width: 360px) {

    /*
     * 360px에서도 2열은 유지하되
     * 간격만 최소화한다.
     */

    .wb-gallery-grid {
        gap:
            24px
            8px;
    }


    .wb-gallery-content {
        padding-left: 0;
        padding-right: 0;
    }


    .wb-gallery-title {
        font-size: 15px;
    }


    .wb-gallery-meta {
        font-size: 12px;
    }

}

/* ============================================================
   ============================================================
   LIST
   ============================================================
============================================================ */


/* ============================================================
   BOARD LIST
============================================================ */

#bo_list.wb-board-list {
    width: 100%;

    margin: 0;
    padding: 0;
}


/* ============================================================
   CATEGORY
============================================================ */

.wb-board-category {
    margin: 0 0 40px;
}


.wb-board-category-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 8px;

    margin: 0;
    padding: 0;

    list-style: none;
}


.wb-board-category-list li {
    margin: 0;
    padding: 0;
}


.wb-board-category-list a {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 44px;

    padding: 0 20px;

    border: 1px solid var(--wb-board-line);
    border-radius: 22px;

    background: #fff;

    color: #555;

    font-size: 16px;
    font-weight: 500;
    line-height: 1;

    text-decoration: none;

    transition:
        border-color .18s ease,
        background .18s ease,
        color .18s ease;
}


.wb-board-category-list a:hover {
    border-color: #777;

    color: #222;
}


.wb-board-category-list #bo_cate_on {
    border-color: #333;

    background: #333;

    color: #fff;

    font-weight: 700;
}


/* ============================================================
   LIST TOOLBAR
============================================================ */

.wb-board-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin: 0 0 18px;
}


.wb-board-count {
    display: flex;
    align-items: baseline;

    gap: 5px;

    color: var(--wb-board-sub);

    font-size: 16px;
}


.wb-board-count strong {
    color: #222;

    font-size: 17px;
    font-weight: 700;
}


.wb-board-actions {
    display: flex;
    align-items: center;

    gap: 7px;
}


/* ============================================================
   LIST BUTTONS
============================================================ */

.wb-board-icon-button,
.wb-board-write-button {
    box-sizing: border-box;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 46px;

    border: 1px solid var(--wb-board-line-dark);
    border-radius: 7px;

    background: #fff;

    color: #333;

    font-family: inherit;
    text-decoration: none;

    cursor: pointer;

    transition:
        border-color .18s ease,
        background .18s ease,
        color .18s ease;
}


.wb-board-icon-button {
    width: 46px;

    padding: 0;
}


.wb-board-icon-button svg {
    width: 19px;
    height: 19px;
}


.wb-board-write-button {
    gap: 8px;

    padding: 0 20px;

    border-color: #333;

    background: #333;

    color: #fff;

    font-size: 16px;
    font-weight: 700;
}


.wb-board-write-button svg {
    width: 18px;
    height: 18px;
}


.wb-board-icon-button:hover {
    background: #f6f6f6;

    color: #111;
}


.wb-board-write-button:hover,
.wb-board-write-button:focus-visible {
    background: #111;

    color: #fff;
}


/* ============================================================
   ADMIN MENU
============================================================ */

.wb-board-admin-menu {
    position: relative;
}


.wb-board-admin-options {
    position: absolute;

    top: calc(100% + 8px);
    right: 0;

    z-index: 100;

    width: 160px;

    padding: 8px;

    border: 1px solid var(--wb-board-line);
    border-radius: 8px;

    background: #fff;

    box-shadow:
        0 12px 30px
        rgba(0, 0, 0, .08);
}


.wb-board-admin-options[hidden] {
    display: none;
}


.wb-board-admin-options button {
    display: flex;
    align-items: center;

    gap: 10px;

    width: 100%;
    min-height: 44px;

    padding: 0 12px;

    border: 0;
    border-radius: 5px;

    background: transparent;

    color: #444;

    font-family: inherit;
    font-size: 15px;

    text-align: left;

    cursor: pointer;
}


.wb-board-admin-options button:hover {
    background: #f5f5f5;

    color: #111;
}


.wb-board-admin-options button svg {
    flex: none;

    width: 17px;
    height: 17px;
}


/* ============================================================
   LIST TABLE
============================================================ */

.wb-board-table-wrap {
    width: 100%;

    border-top: 2px solid #333;

    overflow: hidden;
}


.wb-board-table {
    width: 100%;

    margin: 0;

    border: 0;
    border-spacing: 0;
    border-collapse: collapse;

    table-layout: fixed;
}


.wb-board-table caption {
    position: absolute;

    width: 1px;
    height: 1px;

    margin: -1px;
    padding: 0;

    overflow: hidden;

    clip: rect(0, 0, 0, 0);

    white-space: nowrap;

    border: 0;
}


.wb-board-table th {
    height: 64px;

    padding: 0 14px;

    border: 0;
    border-bottom: 1px solid #d5d5d5;

    background: #fafafa;

    color: #444;

    font-size: 16px;
    font-weight: 600;

    text-align: center;

    vertical-align: middle;
}


.wb-board-table th a {
    color: inherit;

    text-decoration: none;
}


.wb-board-table td {
    height: 76px;

    padding: 14px;

    border: 0;
    border-bottom: 1px solid var(--wb-board-line);

    background: #fff;

    color: #555;

    font-size: 16px;

    vertical-align: middle;

    transition: background .15s ease;
}


.wb-board-table tbody tr:hover td {
    background: #fafafa;
}


/* ============================================================
   LIST COLUMN WIDTH
============================================================ */

.wb-col-check {
    width: 55px;
}


.wb-col-number {
    width: 90px;
}


.wb-col-name {
    width: 140px;
}


.wb-col-hit {
    width: 90px;
}


.wb-col-good,
.wb-col-nogood {
    width: 90px;
}


.wb-col-date {
    width: 130px;
}


/* ============================================================
   LIST CELLS
============================================================ */

.wb-td-check,
.wb-td-number,
.wb-td-name,
.wb-td-hit,
.wb-td-good,
.wb-td-nogood,
.wb-td-date {
    text-align: center;
}


.wb-td-number,
.wb-td-hit,
.wb-td-good,
.wb-td-nogood,
.wb-td-date {
    color: #777 !important;
}


.wb-td-name {
    overflow: hidden;

    text-overflow: ellipsis;
    white-space: nowrap;
}


/* ============================================================
   CHECKBOX
============================================================ */

.wb-checkbox {
    display: flex;
    align-items: center;
    justify-content: center;
}


.wb-checkbox input {
    position: absolute;

    width: 1px;
    height: 1px;

    overflow: hidden;

    opacity: 0;
}


.wb-checkbox label {
    display: flex;
    align-items: center;
    justify-content: center;

    cursor: pointer;
}


.wb-checkbox label > span:first-child {
    position: relative;

    display: block;

    width: 20px;
    height: 20px;

    border: 1px solid #bdbdbd;
    border-radius: 4px;

    background: #fff;
}


.wb-checkbox input:checked + label > span:first-child {
    border-color: #333;

    background: #333;
}


.wb-checkbox input:checked + label > span:first-child::after {
    content: "";

    position: absolute;

    left: 6px;
    top: 2px;

    width: 5px;
    height: 10px;

    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;

    transform: rotate(45deg);
}


.wb-checkbox input:focus-visible + label > span:first-child {
    outline: 2px dotted var(--wb-focus, #555);
    outline-offset: 3px;
}


/* ============================================================
   SUBJECT
============================================================ */

.wb-board-subject {
    min-width: 0;
}


.wb-board-title-row {
    display: flex;
    align-items: center;

    min-width: 0;

    gap: 7px;
}


.wb-board-title {
    min-width: 0;

    overflow: hidden;

    color: #222;

    font-size: 17px;
    font-weight: 500;
    line-height: 1.55;

    text-decoration: none;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.wb-board-title:hover {
    color: #111;

    text-decoration: underline;

    text-underline-offset: 4px;
}


.is-notice .wb-board-title {
    font-weight: 700;
}


.wb-reply-icon {
    flex: none;

    width: 17px;
    height: 17px;

    color: #999;
}


/* ============================================================
   CATEGORY TAG
============================================================ */

.wb-board-category-tag {
    display: inline-flex;

    margin: 0 0 7px;

    color: #666;

    font-size: 15px;
    font-weight: 500;

    text-decoration: none;
}


.wb-board-category-tag::before {
    content: "[";

    margin-right: 2px;
}


.wb-board-category-tag::after {
    content: "]";

    margin-left: 2px;
}


/* ============================================================
   LIST STATUS
============================================================ */

.wb-notice-badge,
.wb-current-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 46px;
    min-height: 30px;

    padding: 0 8px;

    border-radius: 4px;

    font-size: 14px;
    font-weight: 700;
}


.wb-notice-badge {
    background: #eee;

    color: #333;
}


.wb-current-badge {
    border: 1px solid #ccc;

    background: #fff;

    color: #555;
}


.wb-new-badge {
    flex: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 20px;
    height: 20px;

    border-radius: 50%;

    background: #333;

    color: #fff;

    font-size: 12px;
    font-weight: 700;
}


.wb-title-status {
    display: inline-flex;

    flex: none;

    color: #888;
}


.wb-title-status svg {
    width: 16px;
    height: 16px;
}


.wb-comment-count {
    flex: none;

    color: #777;

    font-size: 14px;
    font-weight: 600;
}


.wb-board-mobile-meta {
    display: none;
}


/* ============================================================
   NOTICE / CURRENT
============================================================ */

.wb-board-table tbody tr.is-notice td {
    background: #fafafa;
}


.wb-board-table tbody tr.is-current td {
    background: #fcfcfc;
}


/* ============================================================
   EMPTY LIST
============================================================ */

.wb-board-empty {
    height: 240px !important;

    color: #888 !important;

    text-align: center;
}


.wb-board-empty svg {
    display: block;

    width: 34px;
    height: 34px;

    margin: 0 auto 12px;

    stroke-width: 1.4;
}


.wb-board-empty p {
    margin: 0;

    font-size: 16px;
}


/* ============================================================
   PAGINATION
============================================================ */

.wb-board-pagination {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;

    margin: 46px 0 0;

    text-align: center;
}


.wb-board-pagination .pg_wrap {
    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0;
    padding: 0;
}


.wb-board-pagination .pg {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;

    gap: 6px;

    margin: 0;
    padding: 0;
}


/* ------------------------------------------------------------
   PAGE COMMON
------------------------------------------------------------ */

.wb-board-pagination .pg_page,
.wb-board-pagination .pg_current {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 44px;
    min-width: 44px;
    height: 44px;

    margin: 0;
    padding: 0;

    border: 1px solid #dedede;
    border-radius: 6px;

    background: #fff;

    color: #555;

    font-size: 15px;
    font-weight: 500;
    line-height: 1;

    text-align: center;
    text-decoration: none;

    transition:
        border-color .18s ease,
        background .18s ease,
        color .18s ease;
}


.wb-board-pagination .pg_page:hover {
    border-color: #999;

    background: #fafafa;

    color: #222;
}


/* ------------------------------------------------------------
   CURRENT PAGE
------------------------------------------------------------ */

.wb-board-pagination .pg_current {
    border-color: #333;

    background: #333;

    color: #fff;

    font-weight: 700;

    cursor: default;
}


/* ------------------------------------------------------------
   FIRST / PREV / NEXT / END
------------------------------------------------------------ */

.wb-board-pagination .pg_start,
.wb-board-pagination .pg_prev,
.wb-board-pagination .pg_next,
.wb-board-pagination .pg_end {
    font-size: 0;
}


.wb-board-pagination .pg_start svg,
.wb-board-pagination .pg_prev svg,
.wb-board-pagination .pg_next svg,
.wb-board-pagination .pg_end svg {
    display: block;

    width: 18px;
    height: 18px;

    stroke-width: 1.8;

    pointer-events: none;
}


/* 이전 그룹과 숫자 사이 */

.wb-board-pagination .pg_prev {
    margin-right: 5px;
}


/* 숫자와 다음 그룹 사이 */

.wb-board-pagination .pg_next {
    margin-left: 5px;
}


/* ------------------------------------------------------------
   FOCUS
------------------------------------------------------------ */

.wb-board-pagination a:focus-visible {
    outline: 2px dotted var(--wb-focus, #555);
    outline-offset: 3px;
}


/* ============================================================
   PAGINATION MOBILE
============================================================ */

@media (max-width: 768px) {

    .wb-board-pagination {
        margin-top: 36px;
    }


    .wb-board-pagination .pg {
        gap: 4px;
    }


    .wb-board-pagination .pg_page,
    .wb-board-pagination .pg_current {
        width: 40px;
        min-width: 40px;
        height: 40px;

        font-size: 14px;
    }


    .wb-board-pagination .pg_start svg,
    .wb-board-pagination .pg_prev svg,
    .wb-board-pagination .pg_next svg,
    .wb-board-pagination .pg_end svg {
        width: 17px;
        height: 17px;
    }


    .wb-board-pagination .pg_prev {
        margin-right: 2px;
    }


    .wb-board-pagination .pg_next {
        margin-left: 2px;
    }

}


@media (max-width: 480px) {

    .wb-board-pagination .pg {
        gap: 3px;
    }


    .wb-board-pagination .pg_page,
    .wb-board-pagination .pg_current {
        width: 38px;
        min-width: 38px;
        height: 38px;
    }

}


/* ============================================================
   LIST SEARCH
============================================================ */

.wb-board-search {
    display: flex;
    justify-content: center;

    margin: 55px 0 0;
}


.wb-board-search-form {
    display: flex;

    width: min(620px, 100%);
}


.wb-board-search-select {
    flex: 0 0 150px;

    height: 50px;

    padding: 0 38px 0 16px;

    border: 1px solid #ccc;
    border-right: 0;
    border-radius: 7px 0 0 7px;

    background: #fff;

    color: #444;

    font-family: inherit;
    font-size: 16px;
}


.wb-board-search-input {
    display: flex;

    flex: 1;

    min-width: 0;

    border: 1px solid #ccc;
    border-radius: 0 7px 7px 0;

    background: #fff;
}


.wb-board-search-input:focus-within {
    border-color: #777;
}


.wb-board-search-input input {
    flex: 1;

    min-width: 0;
    height: 48px;

    padding: 0 15px;

    border: 0;

    background: transparent;

    color: #222;

    font-family: inherit;
    font-size: 16px;

    outline: 0;
}


.wb-board-search-input input::placeholder {
    color: #aaa;
}


.wb-board-search-input button {
    flex: 0 0 50px;

    height: 48px;

    padding: 0;

    border: 0;

    background: transparent;

    color: #444;

    cursor: pointer;
}


.wb-board-search-input button svg {
    width: 20px;
    height: 20px;
}


/* ============================================================
   NOSCRIPT
============================================================ */

.wb-board-noscript {
    margin: 20px 0;

    padding: 15px;

    border: 1px solid #ddd;

    background: #fafafa;

    color: #555;

    font-size: 16px;
    line-height: 1.6;
}


/* ============================================================
   ============================================================
   WRITE
   ============================================================
============================================================ */


/* ============================================================
   WRITE CONTAINER

   중요:
   .wb-board-write는 작성페이지 전체 컨테이너이다.
   글쓰기 버튼에 사용하지 않는다.
============================================================ */

#bo_w.wb-board-write {
    width: 100%;

    margin: 0;
    padding: 0;

    background: transparent;

    color: #222;

    font-size: 16px;
}


/* ============================================================
   WRITE FORM
============================================================ */

.wb-write-form {
    width: 100%;

    border-top: 2px solid #333;
}


/* ============================================================
   WRITE ROW
============================================================ */

.wb-write-row {
    display: grid;

    grid-template-columns:
        180px
        minmax(0, 1fr);

    min-height: 78px;

    border-bottom: 1px solid #e5e5e5;
}


.wb-write-label {
    display: flex;
    align-items: center;

    padding: 18px 24px;

    background: #fafafa;
}


.wb-write-label label,
.wb-write-label > span {
    color: #333;

    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
}


.wb-write-control {
    min-width: 0;

    padding: 14px 20px;
}


.wb-required {
    display: inline-block;

    margin-left: 5px;

    color: #777;

    font-size: 14px;
    font-weight: 500;
}


/* ============================================================
   WRITE INPUT COMMON
============================================================ */

.wb-write-control input[type="text"],
.wb-write-control input[type="email"],
.wb-write-control input[type="url"],
.wb-write-control input[type="password"],
.wb-write-control input[type="datetime-local"],
.wb-write-field input[type="text"],
.wb-write-field input[type="email"],
.wb-write-field input[type="url"],
.wb-write-field input[type="password"],
.wb-write-field input[type="datetime-local"] {
    width: 100%;
    height: 50px;

    padding: 0 15px;

    border: 1px solid #ccc;
    border-radius: 6px;

    background: #fff;

    color: #222;

    font-family: inherit;
    font-size: 16px;

    transition:
        border-color .18s ease,
        background .18s ease;
}


.wb-write-control input::placeholder,
.wb-write-field input::placeholder {
    color: #aaa;
}


.wb-write-control input:hover,
.wb-write-field input:hover {
    border-color: #aaa;
}


/* ============================================================
   SELECT
============================================================ */

.wb-select-wrap {
    position: relative;

    width: 100%;
    max-width: 360px;
}


.wb-select-wrap select {
    width: 100%;
    height: 50px;

    padding: 0 46px 0 15px;

    border: 1px solid #ccc;
    border-radius: 6px;

    background: #fff;

    color: #333;

    font-family: inherit;
    font-size: 16px;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;
}


.wb-select-wrap > svg {
    position: absolute;

    top: 50%;
    right: 15px;

    width: 18px;
    height: 18px;

    color: #777;

    pointer-events: none;

    transform: translateY(-50%);
}


/* ============================================================
   WRITER INFORMATION
============================================================ */

.wb-write-section {
    margin: 0;
    padding: 28px 0;

    border-bottom: 1px solid #e5e5e5;
}


.wb-write-section-head {
    margin: 0 0 18px;
}


.wb-write-section-head strong {
    color: #222;

    font-size: 17px;
    font-weight: 700;
}


.wb-write-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;
}


.wb-write-field {
    min-width: 0;
}


.wb-write-field label {
    display: block;

    margin: 0 0 9px;

    color: #444;

    font-size: 16px;
    font-weight: 600;
}


/* ============================================================
   LEVEL 10 ADMIN META
============================================================ */

.wb-write-admin-meta {
    margin: 28px 0;
    padding: 24px;

    border: 1px solid #dcdcdc;
    border-radius: 8px;

    background: #fafafa;
}


.wb-write-admin-meta-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    margin: 0 0 20px;
}


.wb-write-admin-meta-head strong {
    display: block;

    color: #222;

    font-size: 17px;
    font-weight: 700;
}


.wb-write-admin-meta-head p {
    margin: 5px 0 0;

    color: #777;

    font-size: 15px;
    line-height: 1.5;
}


.wb-write-admin-meta-head > svg {
    flex: none;

    width: 22px;
    height: 22px;

    color: #666;
}


.wb-write-admin-meta-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;
}


/* ============================================================
   WRITE OPTIONS
============================================================ */

.wb-write-options {
    display: flex;
    align-items: center;

    gap: 25px;

    min-height: 68px;

    padding: 12px 20px;

    border-bottom: 1px solid #e5e5e5;

    background: #fafafa;
}


.wb-write-options-title {
    flex: none;

    color: #333;

    font-size: 16px;
    font-weight: 700;
}


.wb-write-option-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 20px;

    margin: 0;
    padding: 0;

    list-style: none;
}


.wb-write-option-item {
    margin: 0;
    padding: 0;
}


.wb-write-option-item input {
    position: absolute;

    width: 1px;
    height: 1px;

    overflow: hidden;

    opacity: 0;
}


.wb-write-option-item label {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    color: #444;

    font-size: 16px;
    line-height: 1;

    cursor: pointer;
}


.wb-option-check {
    position: relative;

    flex: none;

    width: 20px;
    height: 20px;

    border: 1px solid #bbb;
    border-radius: 4px;

    background: #fff;
}


.wb-write-option-item input:checked
+ label
.wb-option-check {
    border-color: #333;

    background: #333;
}


.wb-write-option-item input:checked
+ label
.wb-option-check::after {
    content: "";

    position: absolute;

    left: 6px;
    top: 2px;

    width: 5px;
    height: 10px;

    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;

    transform: rotate(45deg);
}


.wb-write-option-item input:focus-visible
+ label
.wb-option-check {
    outline: 2px dotted var(--wb-focus, #555);
    outline-offset: 3px;
}


/* ============================================================
   WRITE SUBJECT
============================================================ */

.wb-write-subject-wrap {
    position: relative;

    display: flex;
    align-items: center;

    gap: 8px;

    width: 100%;
}


.wb-write-subject-wrap > input {
    flex: 1;

    min-width: 0;
}


/* ============================================================
   AUTOSAVE BUTTON
============================================================ */

.wb-autosave-button {
    flex: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    min-width: 122px;
    height: 50px;

    padding: 0 14px;

    border: 1px solid #ccc;
    border-radius: 6px;

    background: #fff;

    color: #555;

    font-family: inherit;
    font-size: 15px;

    cursor: pointer;
}


.wb-autosave-button:hover {
    background: #f7f7f7;

    color: #222;
}


.wb-autosave-button svg {
    width: 17px;
    height: 17px;
}


.wb-autosave-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 24px;
    height: 24px;

    padding: 0 5px;

    border-radius: 12px;

    background: #eee;

    color: #444;

    font-size: 13px;
    font-weight: 700;
}


/* ============================================================
   AUTOSAVE POPUP
============================================================ */

#autosave_wrapper {
    position: relative;
}


#autosave_pop {
    display: none;

    position: absolute;

    top: 58px;
    right: 0;

    z-index: 200;

    width: min(420px, 90vw);

    border: 1px solid #ddd;
    border-radius: 8px;

    background: #fff;

    box-shadow:
        0 15px 35px
        rgba(0, 0, 0, .10);
}


#autosave_pop > strong {
    display: block;

    padding: 18px;

    border-bottom: 1px solid #eee;

    color: #222;

    font-size: 16px;
    font-weight: 700;
}


#autosave_pop ul {
    max-height: 240px;

    margin: 0;
    padding: 10px;

    overflow-y: auto;

    list-style: none;
}


#autosave_pop li {
    position: relative;

    min-height: 44px;

    padding: 12px 10px;

    border-bottom: 1px solid #eee;
}


#autosave_pop li:last-child {
    border-bottom: 0;
}


#autosave_pop li a {
    color: #333;

    font-size: 15px;
    line-height: 1.5;

    text-decoration: none;
}


#autosave_pop li a:hover {
    text-decoration: underline;
}


#autosave_pop li span {
    color: #888;

    font-size: 14px;
}


.wb-autosave-bottom {
    padding: 10px;

    border-top: 1px solid #eee;

    text-align: right;
}


.autosave_close {
    min-height: 40px;

    padding: 0 18px;

    border: 1px solid #ccc;
    border-radius: 5px;

    background: #fff;

    color: #444;

    font-family: inherit;
    font-size: 15px;

    cursor: pointer;
}


.autosave_close:hover {
    background: #f7f7f7;
}


/* ============================================================
   EDITOR
============================================================ */

.wb-write-content-row {
    align-items: stretch;
}


.wb-editor-wrap {
    width: 100%;

    min-height: 300px;
}


.wb-editor-wrap textarea {
    width: 100%;
    min-height: 360px;

    padding: 18px;

    border: 1px solid #ccc;
    border-radius: 6px;

    background: #fff;

    color: #222;

    font-family: inherit;
    font-size: 16px;
    line-height: 1.7;

    resize: vertical;
}


.wb-editor-wrap iframe {
    max-width: 100%;
}


.wb-write-help {
    margin: 0 0 12px;

    color: #777;

    font-size: 15px;
    line-height: 1.6;
}


.wb-write-help strong {
    color: #444;
}


.wb-char-count {
    margin: 8px 0 0;

    color: #777;

    font-size: 15px;

    text-align: right;
}


/* ============================================================
   LINK INPUT
============================================================ */

.wb-input-icon-wrap {
    position: relative;

    width: 100%;
}


.wb-input-icon-wrap > svg {
    position: absolute;

    top: 50%;
    left: 15px;

    z-index: 2;

    width: 18px;
    height: 18px;

    color: #888;

    pointer-events: none;

    transform: translateY(-50%);
}


.wb-input-icon-wrap input {
    padding-left: 46px !important;
}


/* ============================================================
   FILE
============================================================ */

.wb-file-input {
    display: flex;
    align-items: center;

    min-height: 52px;

    padding: 7px 15px;

    border: 1px solid #ccc;
    border-radius: 6px;

    background: #fff;
}


.wb-file-input > svg {
    flex: none;

    width: 19px;
    height: 19px;

    margin-right: 12px;

    color: #777;
}


.wb-file-input input[type="file"] {
    width: 100%;

    min-width: 0;

    color: #555;

    font-family: inherit;
    font-size: 15px;
}


.wb-file-input input[type="file"]::file-selector-button {
    min-height: 36px;

    margin-right: 12px;
    padding: 0 15px;

    border: 0;
    border-radius: 5px;

    background: #eee;

    color: #333;

    font-family: inherit;
    font-size: 15px;

    cursor: pointer;
}


.wb-file-input input[type="file"]::file-selector-button:hover {
    background: #ddd;
}


.wb-write-file-help {
    margin: 8px 0 0;

    color: #888;

    font-size: 14px;
    line-height: 1.5;
}


.wb-file-description {
    width: 100%;
    height: 48px;

    margin: 10px 0 0;
    padding: 0 14px;

    border: 1px solid #ddd;
    border-radius: 6px;

    background: #fff;

    color: #333;

    font-family: inherit;
    font-size: 15px;
}


/* ============================================================
   EXISTING FILE
============================================================ */

.wb-existing-file {
    display: flex;
    align-items: center;

    gap: 10px;

    margin: 10px 0 0;
    padding: 12px 14px;

    border: 1px solid #e5e5e5;
    border-radius: 6px;

    background: #fafafa;
}


.wb-existing-file > svg {
    flex: none;

    width: 18px;
    height: 18px;

    color: #777;
}


.wb-existing-file-name {
    flex: 1;

    min-width: 0;

    overflow: hidden;

    color: #444;

    font-size: 15px;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.wb-existing-file-name small {
    margin-left: 6px;

    color: #888;

    font-size: 14px;
}


.wb-file-delete {
    flex: none;

    display: inline-flex;
    align-items: center;

    gap: 6px;

    color: #666;

    font-size: 15px;

    cursor: pointer;
}


.wb-file-delete input {
    width: 18px;
    height: 18px;

    margin: 0;
}


/* ============================================================
   CAPTCHA
============================================================ */

.wb-write-captcha {
    min-height: 50px;
}


/* ============================================================
   WRITE BOTTOM BUTTONS
============================================================ */

.wb-write-buttons {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    margin: 40px 0 0;
}


.wb-write-cancel,
.wb-write-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 120px;
    min-height: 50px;

    padding: 0 22px;

    border-radius: 6px;

    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;

    text-decoration: none;

    cursor: pointer;

    transition:
        border-color .18s ease,
        background .18s ease,
        color .18s ease;
}


.wb-write-cancel {
    border: 1px solid #bbb;

    background: #fff;

    color: #444;
}


.wb-write-submit {
    gap: 7px;

    border: 1px solid #333;

    background: #333;

    color: #fff;
}


.wb-write-submit svg {
    width: 18px;
    height: 18px;
}


.wb-write-cancel:hover {
    background: #f7f7f7;

    color: #222;
}


.wb-write-submit:hover {
    background: #111;

    color: #fff;
}


.wb-write-submit:disabled {
    opacity: .55;

    cursor: wait;
}


/* ============================================================
   TABLET
============================================================ */

@media (max-width: 1024px) {

    /* LIST */

    .wb-col-number {
        width: 75px;
    }


    .wb-col-name {
        width: 120px;
    }


    .wb-col-hit {
        width: 80px;
    }


    .wb-col-date {
        width: 110px;
    }


    /* WRITE */

    .wb-write-row {
        grid-template-columns:
            150px
            minmax(0, 1fr);
    }


    .wb-write-label {
        padding-left: 20px;
        padding-right: 20px;
    }

}


/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 768px) {


    /* ========================================================
       LIST MOBILE
    ======================================================== */

    .wb-board-category {
        margin-bottom: 28px;
    }


    .wb-board-category-list {
        gap: 6px;
    }


    .wb-board-category-list a {
        min-height: 42px;

        padding: 0 16px;

        font-size: 16px;
    }


    .wb-board-toolbar {
        gap: 12px;

        margin-bottom: 15px;
    }


    .wb-board-count {
        font-size: 16px;
    }


    .wb-board-actions {
        gap: 5px;
    }


    .wb-board-icon-button {
        width: 44px;
        min-height: 44px;
    }


    .wb-board-write-button {
        min-height: 44px;

        padding: 0 15px;
    }


    /* --------------------------------------------------------
       LIST TABLE → MOBILE LIST
    -------------------------------------------------------- */

    .wb-board-table {
        table-layout: auto;
    }


    .wb-board-table thead,
    .wb-board-table colgroup {
        display: none;
    }


    .wb-board-table tbody,
    .wb-board-table tr,
    .wb-board-table td {
        display: block;

        width: 100%;
        height: auto;
    }


    .wb-board-table tr {
        position: relative;

        border-bottom: 1px solid var(--wb-board-line);
    }


    .wb-board-table td {
        border-bottom: 0;
    }


    .wb-board-table tbody tr:hover td {
        background: inherit;
    }


    .wb-board-table tbody tr.is-notice {
        background: #fafafa;
    }


    .wb-board-table tbody tr.is-notice td {
        background: transparent;
    }


    .wb-td-number,
    .wb-td-name,
    .wb-td-hit,
    .wb-td-good,
    .wb-td-nogood,
    .wb-td-date {
        display: none !important;
    }


    /* --------------------------------------------------------
       MOBILE CHECKBOX
    -------------------------------------------------------- */

    .wb-td-check {
        position: absolute;

        left: 10px;
        top: 24px;

        z-index: 2;

        width: 26px !important;

        padding: 0 !important;
    }


    .wb-td-check + .wb-td-subject {
        padding-left: 48px !important;
    }


    /* --------------------------------------------------------
       MOBILE SUBJECT
    -------------------------------------------------------- */

    .wb-td-subject {
        padding: 21px 16px 20px !important;
    }


    .wb-board-title-row {
        align-items: flex-start;
        flex-wrap: wrap;

        gap: 6px;
    }


    .wb-board-title {
        flex: 1 1 auto;

        min-width: 60%;

        font-size: 17px;
        line-height: 1.55;

        white-space: normal;

        text-overflow: initial;
    }


    .wb-board-mobile-meta {
        display: flex;
        align-items: center;
        flex-wrap: wrap;

        gap: 7px;

        margin-top: 9px;

        color: #777;

        font-size: 15px;
        line-height: 1.5;
    }


    .wb-board-category-tag {
        margin-bottom: 5px;
    }


    .is-notice .wb-td-subject::before {
        content: "공지";

        display: inline-flex;
        align-items: center;
        justify-content: center;

        min-height: 26px;

        margin: 0 0 7px;
        padding: 0 8px;

        border-radius: 4px;

        background: #eee;

        color: #333;

        font-size: 13px;
        font-weight: 700;
    }

    /* --------------------------------------------------------
       SEARCH
    -------------------------------------------------------- */

    .wb-board-search {
        margin-top: 40px;
    }


    .wb-board-search-form {
        width: 100%;
    }


    .wb-board-search-select {
        flex-basis: 125px;

        padding-left: 12px;

        font-size: 16px;
    }


    /* ========================================================
       WRITE MOBILE
    ======================================================== */

    .wb-write-row {
        display: block;

        min-height: 0;

        padding: 18px 0;
    }


    .wb-write-label {
        display: block;

        padding: 0 0 9px;

        background: transparent;
    }


    .wb-write-control {
        padding: 0;
    }


    .wb-write-grid {
        grid-template-columns: 1fr;
    }


    .wb-write-section {
        padding: 22px 0;
    }


    .wb-write-options {
        display: block;

        min-height: 0;

        padding: 18px 0;

        background: transparent;
    }


    .wb-write-options-title {
        display: block;

        margin-bottom: 12px;
    }


    .wb-write-option-list {
        gap: 14px 20px;
    }


    .wb-write-subject-wrap {
        display: block;
    }


    .wb-autosave-button {
        width: 100%;

        margin-top: 8px;
    }


    #autosave_pop {
        top: 112px;

        width: 100%;
        max-width: none;
    }


    .wb-write-admin-meta {
        margin: 22px 0;

        padding: 20px 16px;
    }


    .wb-write-admin-meta-grid {
        grid-template-columns: 1fr;
    }


    .wb-editor-wrap textarea {
        min-height: 300px;
    }


    .wb-write-buttons {
        margin-top: 30px;
    }


    .wb-select-wrap {
        max-width: none;
    }

}


/* ============================================================
   SMALL MOBILE
============================================================ */

@media (max-width: 480px) {


    /* ========================================================
       LIST
    ======================================================== */

    .wb-board-toolbar {
        align-items: center;
    }


    .wb-board-write-button {
        width: 44px;

        padding: 0;
    }


    .wb-board-write-button span {
        display: none;
    }


    .wb-board-search-form {
        display: grid;

        grid-template-columns: 1fr;

        gap: 8px;
    }


    .wb-board-search-select {
        width: 100%;
        height: 48px;

        border: 1px solid #ccc;
        border-radius: 6px;
    }


    .wb-board-search-input {
        border-radius: 6px;
    }


    /* ========================================================
       WRITE
    ======================================================== */

    .wb-write-buttons {
        display: grid;

        grid-template-columns:
            1fr
            1fr;
    }


    .wb-write-cancel,
    .wb-write-submit {
        width: 100%;

        min-width: 0;
    }


    .wb-existing-file {
        align-items: flex-start;
        flex-wrap: wrap;
    }


    .wb-existing-file-name {
        flex-basis: calc(100% - 30px);

        white-space: normal;
    }


    .wb-file-delete {
        margin-left: 28px;
    }


    .wb-file-input {
        align-items: flex-start;

        padding-top: 12px;
        padding-bottom: 12px;
    }


    .wb-file-input > svg {
        margin-top: 8px;
    }

}

/* ============================================================
   ============================================================
   VIEW
   ============================================================
============================================================ */


/* ============================================================
   VIEW CONTAINER
============================================================ */

#bo_v.wb-board-view {
    width: 100%;

    margin: 0;
    padding: 0;
}


/* ============================================================
   VIEW HEADER
============================================================ */

.wb-view-header {
    padding: 0 0 30px;
    border-bottom: 1px solid #ddd;
}


.wb-view-category {
    display: inline-flex;

    margin: 28px 0 12px;

    color: #666;

    font-size: 15px;
    font-weight: 600;
}


.wb-view-category::before {
    content: "[";

    margin-right: 2px;
}


.wb-view-category::after {
    content: "]";

    margin-left: 2px;
}


.wb-view-title {
    margin: 0px 0 0;

    color: #222;

    font-size: clamp(25px, 2vw, 32px);
    font-weight: 700;
    line-height: 1.45;

    letter-spacing: -.03em;

    word-break: keep-all;
}


/*
 * 카테고리가 있으면
 * 제목 위 여백 축소
 */

.wb-view-category + .wb-view-title {
    margin-top: 0;
}


/* ============================================================
   VIEW META
============================================================ */

.wb-view-meta {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 30px;

    margin-top: 24px;

    color: #777;

    font-size: 15px;
}


.wb-view-author {
    display: flex;

    align-items: center;

    gap: 7px;

    min-width: 0;
}


.wb-view-author > svg {
    flex: none;

    width: 18px;
    height: 18px;

    color: #777;
}


.wb-view-author strong {
    overflow: hidden;

    color: #444;

    font-size: 16px;
    font-weight: 600;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.wb-view-ip {
    color: #999;

    font-size: 14px;
}


.wb-view-meta-list {
    display: flex;

    align-items: center;
    flex-wrap: wrap;

    gap: 18px;
}


.wb-view-meta-list > span,
.wb-view-meta-list > time {
    display: inline-flex;

    align-items: center;

    gap: 6px;
}


.wb-view-meta-list svg {
    width: 17px;
    height: 17px;

    color: #888;
}


/* ============================================================
   VIEW TOOLBAR
============================================================ */

.wb-view-toolbar {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 15px;

    margin: 18px 0 0;
}


.wb-view-toolbar-left,
.wb-view-toolbar-right {
    display: flex;

    align-items: center;

    gap: 6px;
}


.wb-view-button {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 7px;

    min-height: 44px;

    padding: 0 15px;

    border: 1px solid #ccc;
    border-radius: 6px;

    background: #fff;

    color: #444;

    font-size: 15px;
    font-weight: 500;

    text-decoration: none;

    cursor: pointer;
}


.wb-view-button:hover {
    border-color: #999;

    background: #f8f8f8;

    color: #222;
}


.wb-view-button svg {
    width: 17px;
    height: 17px;
}


/* ============================================================
   VIEW MORE
============================================================ */

.wb-view-more {
    position: relative;
}


.wb-view-more-toggle {
    width: 44px;

    padding: 0;
}


.wb-view-more-menu {
    position: absolute;

    top: calc(100% + 7px);
    right: 0;

    z-index: 150;

    width: 150px;

    padding: 7px;

    border: 1px solid #ddd;
    border-radius: 7px;

    background: #fff;

    box-shadow:
        0 12px 28px
        rgba(0,0,0,.08);
}


.wb-view-more-menu[hidden] {
    display: none;
}


.wb-view-more-menu a {
    display: flex;

    align-items: center;

    gap: 9px;

    min-height: 43px;

    padding: 0 11px;

    border-radius: 5px;

    color: #444;

    font-size: 15px;

    text-decoration: none;
}


.wb-view-more-menu a:hover {
    background: #f5f5f5;

    color: #111;
}


.wb-view-more-menu svg {
    width: 17px;
    height: 17px;
}


/* ============================================================
   VIEW CONTENT
============================================================ */

.wb-view-content {
    min-height: 300px;

    padding: 55px 0 60px;
}


.wb-view-images {
    width: 100%;

    margin: 0 0 30px;

    text-align: center;
}


.wb-view-images img {
    max-width: 100%;
    height: auto;

    margin: 0 auto 20px;
}


.wb-view-body {
    width: 100%;

    min-height: 220px;

    color: #333;

    font-size: 17px;
    line-height: 1.9;

    word-break: break-word;
}


.wb-view-body p {
    margin: 0 0 1.3em;
}


.wb-view-body img {
    max-width: 100%;
    height: auto;
}


.wb-view-body a {
    color: inherit;

    text-decoration: underline;

    text-underline-offset: 3px;
}


.wb-view-signature {
    margin-top: 40px;

    padding-top: 25px;

    border-top: 1px solid #eee;

    color: #555;

    font-size: 16px;
}


/* ============================================================
   GOOD / NOGOOD
============================================================ */

.wb-view-reaction {
    display: flex;

    justify-content: center;
    align-items: center;

    gap: 8px;

    margin-top: 50px;
}


.wb-view-reaction-item {
    position: relative;
}


.wb-view-reaction-button {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 7px;

    min-width: 110px;
    min-height: 48px;

    padding: 0 15px;

    border: 1px solid #ccc;
    border-radius: 24px;

    background: #fff;

    color: #555;

    font-size: 15px;

    text-decoration: none;
}


.wb-view-reaction-button:hover {
    border-color: #888;

    color: #222;
}


.wb-view-reaction-button svg {
    width: 18px;
    height: 18px;
}


.wb-view-reaction-button strong {
    color: #222;

    font-size: 15px;
}


.wb-view-reaction-button.is-disabled {
    cursor: default;
}


.wb-reaction-message {
    display: none;

    position: absolute;

    left: 50%;
    bottom: calc(100% + 10px);

    z-index: 50;

    min-width: 190px;

    padding: 10px 12px;

    border: 1px solid #ddd;
    border-radius: 6px;

    background: #fff;

    color: #444;

    font-size: 14px;

    text-align: center;

    box-shadow:
        0 8px 20px
        rgba(0,0,0,.08);

    transform: translateX(-50%);
}


/* ============================================================
   VIEW EXTRA
============================================================ */

.wb-view-extra {
    margin-top: 35px;

    border-top: 1px solid #ddd;
}


.wb-view-extra-title {
    display: flex;

    align-items: center;

    gap: 8px;

    margin: 0;
    padding: 20px 0 14px;

    color: #333;

    font-size: 17px;
    font-weight: 700;
}


.wb-view-extra-title svg {
    width: 18px;
    height: 18px;

    color: #777;
}


/* ============================================================
   FILE LIST
============================================================ */

.wb-view-file-list,
.wb-view-link-list {
    margin: 0;
    padding: 0;

    list-style: none;
}


.wb-view-file-list li {
    display: flex;

    align-items: center;

    gap: 15px;

    min-height: 76px;

    padding: 12px 15px;

    border: 1px solid #e3e3e3;
    border-radius: 7px;

    background: #fafafa;
}


.wb-view-file-list li + li {
    margin-top: 8px;
}


.wb-view-file-icon {
    flex: none;

    display: flex;

    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border: 1px solid #ddd;
    border-radius: 6px;

    background: #fff;
}


.wb-view-file-icon svg {
    width: 19px;
    height: 19px;

    color: #777;
}


.wb-view-file-info {
    flex: 1;

    min-width: 0;
}


.wb-view-file-info > a {
    color: #333;

    font-size: 16px;

    text-decoration: none;
}


.wb-view-file-info > a:hover {
    text-decoration: underline;
}


.wb-view-file-info p {
    margin: 5px 0 0;

    color: #666;

    font-size: 15px;
    line-height: 1.5;
}


.wb-view-file-meta {
    display: flex;

    flex-wrap: wrap;

    gap: 12px;

    margin-top: 5px;

    color: #888;

    font-size: 14px;
}


.wb-view-file-download {
    flex: none;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border: 1px solid #ccc;
    border-radius: 6px;

    background: #fff;

    color: #555;
}


.wb-view-file-download:hover {
    border-color: #888;

    color: #222;
}


.wb-view-file-download svg {
    width: 18px;
    height: 18px;
}


/* ============================================================
   LINK LIST
============================================================ */

.wb-view-link-list li {
    display: flex;

    align-items: center;

    gap: 15px;

    min-height: 56px;

    padding: 9px 14px;

    border: 1px solid #e5e5e5;
    border-radius: 6px;
}


.wb-view-link-list li + li {
    margin-top: 7px;
}


.wb-view-link-list a {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 12px;

    flex: 1;

    min-width: 0;

    color: #333;

    font-size: 16px;

    text-decoration: none;
}


.wb-view-link-list a span {
    min-width: 0;

    overflow: hidden;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.wb-view-link-list a svg {
    flex: none;

    width: 17px;
    height: 17px;

    color: #777;
}


.wb-view-link-hit {
    flex: none;

    color: #888;

    font-size: 14px;
}


/* ============================================================
   PREV / NEXT
============================================================ */

.wb-view-neighbor {
    margin-top: 50px;

    border-top: 1px solid #ddd;
}


.wb-view-neighbor-row {
    display: grid;

    grid-template-columns:
        120px
        minmax(0, 1fr)
        110px;

    align-items: center;

    min-height: 66px;

    border-bottom: 1px solid #e5e5e5;
}


.wb-view-neighbor-label {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    color: #777;

    font-size: 15px;
    font-weight: 600;
}


.wb-view-neighbor-label svg {
    width: 16px;
    height: 16px;
}


.wb-view-neighbor-row > a {
    min-width: 0;

    overflow: hidden;

    color: #333;

    font-size: 16px;

    text-decoration: none;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.wb-view-neighbor-row > a:hover {
    text-decoration: underline;

    text-underline-offset: 3px;
}


.wb-view-neighbor-row time {
    color: #888;

    font-size: 14px;

    text-align: right;
}


/* ============================================================
   VIEW BOTTOM
============================================================ */

.wb-view-bottom {
    display: flex;
    align-items: center;
    justify-content: flex-end;

    margin-top: 40px;
}


.wb-view-list-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    min-width: 120px;
    min-height: 50px;

    padding: 0 20px;

    border: 1px solid #333;
    border-radius: 6px;

    background: #333;

    color: #fff;

    font-size: 16px;
    font-weight: 700;

    text-decoration: none;
}


.wb-view-list-button:hover {
    background: #111;
    color: #fff;
}


.wb-view-list-button svg {
    width: 18px;
    height: 18px;
}


/* ============================================================
   ============================================================
   COMMENT
   ============================================================
============================================================ */


/* ============================================================
   COMMENT HEADING
============================================================ */

.wb-comment-heading {
    margin-top: 60px;

    padding-bottom: 16px;

    border-bottom: 2px solid #333;
}


.wb-comment-heading h3 {
    margin: 0;

    color: #222;

    font-size: 20px;
    font-weight: 700;
}


.wb-comment-heading h3 strong {
    margin-left: 5px;

    color: #666;

    font-size: 17px;
    font-weight: 600;
}


/* ============================================================
   COMMENT LIST
============================================================ */

.wb-comment-list {
    width: 100%;
}


.wb-comment-item {
    position: relative;

    display: flex;

    margin-left:
        calc(
            var(--wb-comment-depth, 0)
            * 32px
        );

    padding: 24px 0;

    border-bottom: 1px solid #e5e5e5;
}


.wb-comment-item.is-reply {
    padding-left: 24px;

    background: #fcfcfc;
}


.wb-comment-reply-mark {
    flex: none;

    width: 28px;

    padding-top: 2px;
}


.wb-comment-reply-mark svg {
    width: 17px;
    height: 17px;

    color: #aaa;
}


.wb-comment-body {
    flex: 1;

    min-width: 0;
}


/* ============================================================
   COMMENT HEADER
============================================================ */

.wb-comment-header {
    position: relative;

    display: flex;

    align-items: center;

    gap: 15px;

    padding-right: 45px;
}


.wb-comment-user {
    display: flex;

    align-items: center;

    gap: 7px;

    min-width: 0;
}


.wb-comment-user strong {
    color: #333;

    font-size: 16px;
    font-weight: 700;
}


.wb-comment-ip {
    color: #999;

    font-size: 14px;
}


.wb-comment-secret {
    display: inline-flex;

    color: #888;
}


.wb-comment-secret svg {
    width: 15px;
    height: 15px;
}


.wb-comment-date {
    display: inline-flex;

    align-items: center;

    gap: 5px;

    color: #888;

    font-size: 14px;
}


.wb-comment-date svg {
    width: 15px;
    height: 15px;
}


/* ============================================================
   COMMENT CONTENT
============================================================ */

.wb-comment-content {
    margin-top: 13px;

    color: #444;

    font-size: 16px;
    line-height: 1.75;

    word-break: break-word;
}


.wb-comment-content p {
    margin: 0;
}


/* ============================================================
   COMMENT MENU
============================================================ */

.wb-comment-menu {
    position: absolute;

    top: -7px;
    right: 0;
}


.wb-comment-menu-toggle {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    padding: 0;

    border: 0;
    border-radius: 5px;

    background: transparent;

    color: #666;

    cursor: pointer;
}


.wb-comment-menu-toggle:hover {
    background: #f3f3f3;

    color: #222;
}


.wb-comment-menu-toggle svg {
    width: 18px;
    height: 18px;
}


.wb-comment-menu-list {
    position: absolute;

    top: 42px;
    right: 0;

    z-index: 120;

    width: 130px;

    padding: 6px;

    border: 1px solid #ddd;
    border-radius: 6px;

    background: #fff;

    box-shadow:
        0 10px 24px
        rgba(0,0,0,.08);
}


.wb-comment-menu-list[hidden] {
    display: none;
}


.wb-comment-menu-list a {
    display: flex;

    align-items: center;

    gap: 8px;

    min-height: 40px;

    padding: 0 10px;

    border-radius: 4px;

    color: #444;

    font-size: 15px;

    text-decoration: none;
}


.wb-comment-menu-list a:hover {
    background: #f5f5f5;

    color: #111;
}


.wb-comment-menu-list svg {
    width: 16px;
    height: 16px;
}


/* ============================================================
   COMMENT EMPTY
============================================================ */

.wb-comment-empty {
    padding: 55px 20px;

    color: #888;

    text-align: center;
}


.wb-comment-empty svg {
    width: 30px;
    height: 30px;

    margin-bottom: 8px;

    stroke-width: 1.5;
}


.wb-comment-empty p {
    margin: 0;

    font-size: 16px;
}


/* ============================================================
   COMMENT FORM SLOT
============================================================ */

.wb-comment-form-slot {
    margin-top: 18px;
}


.wb-comment-form-slot:empty {
    display: none;
}


/* ============================================================
   COMMENT WRITE
============================================================ */

.wb-comment-write {
    margin-top: 35px;

    padding: 25px;

    border: 1px solid #ddd;
    border-radius: 8px;

    background: #fafafa;
}


.wb-comment-write > h3 {
    margin: 0 0 18px;

    color: #222;

    font-size: 18px;
    font-weight: 700;
}


/* ============================================================
   COMMENT GUEST
============================================================ */

.wb-comment-guest {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;

    margin-bottom: 10px;
}


.wb-comment-guest label {
    display: block;

    margin-bottom: 7px;

    color: #444;

    font-size: 15px;
    font-weight: 600;
}


.wb-comment-guest input {
    width: 100%;
    height: 46px;

    padding: 0 13px;

    border: 1px solid #ccc;
    border-radius: 5px;

    background: #fff;

    color: #222;

    font-family: inherit;
    font-size: 16px;
}


/* ============================================================
   COMMENT TEXTAREA
============================================================ */

.wb-comment-textarea {
    position: relative;
}


.wb-comment-textarea textarea {
    display: block;

    width: 100%;
    min-height: 130px;

    padding: 15px;

    border: 1px solid #ccc;
    border-radius: 6px;

    background: #fff;

    color: #333;

    font-family: inherit;
    font-size: 16px;
    line-height: 1.7;

    resize: vertical;
}


.wb-comment-textarea textarea::placeholder {
    color: #aaa;
}


.wb-comment-count {
    margin-top: 6px;

    color: #888;

    font-size: 14px;

    text-align: right;
}


/* ============================================================
   COMMENT CAPTCHA
============================================================ */

.wb-comment-captcha {
    margin-top: 15px;
}


/* ============================================================
   COMMENT FOOTER
============================================================ */

.wb-comment-write-footer {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-top: 14px;
}


/* ============================================================
   SECRET
============================================================ */

.wb-comment-secret-option {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: #555;

    font-size: 15px;

    cursor: pointer;
}


.wb-comment-secret-option input {
    position: absolute;

    width: 1px;
    height: 1px;

    opacity: 0;
}


.wb-comment-check {
    position: relative;

    width: 20px;
    height: 20px;

    border: 1px solid #bbb;
    border-radius: 4px;

    background: #fff;
}


.wb-comment-secret-option input:checked
+ .wb-comment-check {
    border-color: #333;

    background: #333;
}


.wb-comment-secret-option input:checked
+ .wb-comment-check::after {
    content: "";

    position: absolute;

    left: 6px;
    top: 2px;

    width: 5px;
    height: 10px;

    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;

    transform: rotate(45deg);
}


.wb-comment-secret-option input:focus-visible
+ .wb-comment-check {
    outline: 2px dotted var(--wb-focus, #555);
    outline-offset: 3px;
}


/* ============================================================
   COMMENT SUBMIT
============================================================ */

.wb-comment-submit {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 7px;

    min-width: 115px;
    min-height: 46px;

    padding: 0 18px;

    border: 1px solid #333;
    border-radius: 6px;

    background: #333;

    color: #fff;

    font-family: inherit;
    font-size: 15px;
    font-weight: 700;

    cursor: pointer;
}


.wb-comment-submit:hover {
    background: #111;
}


.wb-comment-submit:disabled {
    opacity: .55;

    cursor: wait;
}


.wb-comment-submit svg {
    width: 17px;
    height: 17px;
}


/* ============================================================
   VIEW + COMMENT TABLET
============================================================ */

@media (max-width: 1024px) {

    .wb-view-title {
        font-size: 28px;
    }


    .wb-view-neighbor-row {
        grid-template-columns:
            105px
            minmax(0, 1fr)
            100px;
    }

}


/* ============================================================
   VIEW + COMMENT MOBILE
============================================================ */

@media (max-width: 768px) {


    /* --------------------------------------------------------
       VIEW HEADER
    -------------------------------------------------------- */

    .wb-view-header {
        padding-bottom: 22px;
    }


    .wb-view-title {
        margin-top: 22px;

        font-size: 24px;
        line-height: 1.45;
    }


    .wb-view-meta {
        display: block;

        margin-top: 18px;
    }


    .wb-view-meta-list {
        gap: 11px;

        margin-top: 9px;

        font-size: 14px;
    }


    .wb-view-toolbar {
        margin-top: 14px;
    }


    .wb-view-button {
        min-height: 42px;

        padding: 0 12px;
    }


    /* --------------------------------------------------------
       CONTENT
    -------------------------------------------------------- */

    .wb-view-content {
        min-height: 220px;

        padding: 38px 0 45px;
    }


    .wb-view-body {
        font-size: 16px;
        line-height: 1.85;
    }


    /* --------------------------------------------------------
       FILE
    -------------------------------------------------------- */

    .wb-view-file-list li {
        align-items: flex-start;

        padding: 13px;
    }


    .wb-view-file-meta {
        gap: 6px 10px;
    }


    /* --------------------------------------------------------
       PREV NEXT
    -------------------------------------------------------- */

    .wb-view-neighbor {
        margin-top: 40px;
    }


    .wb-view-neighbor-row {
        grid-template-columns:
            85px
            minmax(0, 1fr);

        min-height: 62px;
    }


    .wb-view-neighbor-row time {
        display: none;
    }


    /* --------------------------------------------------------
       COMMENT
    -------------------------------------------------------- */

    .wb-comment-heading {
        margin-top: 50px;
    }


    .wb-comment-item {
        margin-left:
            calc(
                var(--wb-comment-depth, 0)
                * 12px
            );

        padding: 20px 0;
    }


    .wb-comment-item.is-reply {
        padding-left: 10px;
    }


    .wb-comment-reply-mark {
        width: 23px;
    }


    .wb-comment-header {
        display: block;

        padding-right: 42px;
    }


    .wb-comment-date {
        margin-top: 5px;
    }


    .wb-comment-write {
        padding: 20px 16px;
    }


    .wb-comment-guest {
        grid-template-columns: 1fr;
    }

}


/* ============================================================
   VIEW + COMMENT SMALL MOBILE
============================================================ */

@media (max-width: 480px) {


    .wb-view-toolbar-right {
        gap: 4px;
    }


    .wb-view-button span {
        display: none;
    }


    .wb-view-button {
        width: 42px;

        padding: 0;
    }


    .wb-view-toolbar-left
    .wb-view-button span {
        display: inline;
    }


    .wb-view-toolbar-left
    .wb-view-button {
        width: auto;

        padding: 0 13px;
    }


    .wb-view-reaction-button {
        min-width: 100px;
    }


    .wb-view-file-icon {
        display: none;
    }


    .wb-view-file-download {
        width: 40px;
        height: 40px;
    }


    .wb-view-link-hit {
        display: none;
    }


    .wb-comment-write-footer {
        align-items: stretch;

        flex-direction: column;
    }


    .wb-comment-submit {
        width: 100%;
    }

}