@charset "utf-8";
/**
 * KBoard 과제 게시판 스킨 (자유아카데미)
 * 디자인 기준: page-reviews.php (.reviews-page-container) 톤 그대로 차용
 *   - 페이지 배경 #eee, 카드 #fff + #e5e5e5 보더
 *   - 텍스트: #333 / #555 / #999
 *   - 포인트: #C9A86A (금색) / 액션: var(--color-teal)
 *   - 페이지네이션 활성: #343436
 */

/* ================================================================
   필수표시(*) 중복 제거
   - 테마 전역 CSS의 `.required label:after { content: " *" }` 가
     KBoard의 명시적 <span class="attr-required-text">*</span> 와 겹쳐 * 가 2번 나옴.
   - 과제 게시판 영역에서는 :after 자동 * 를 끄고, 명시 span 1개만 사용.
   ================================================================ */
#kboard-assignments-editor .required label:after,
#kboard-assignments-document .required label:after,
#kboard-assignments-list .required label:after {
    content: "" !important;
    display: none !important;
}
/* 명시적 필수표시는 살림 */
#kboard-assignments-editor .attr-required-text {
    color: #e74c3c;
    margin-left: 2px;
}
/* JS 폴백: required → assignment-required 로 바꾼 경우에도 자동 * 안 나오게 */
#kboard-assignments-editor .assignment-required-label:after { content: "" !important; display: none !important; }

/* ================================================================
   첨부파일 — 커스텀 버튼 스타일 (JS로 .assignment-file-wrap 래핑)
   ================================================================ */
#kboard-assignments-editor .assignment-file-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
#kboard-assignments-editor .assignment-file-wrap input[type="file"] {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}
#kboard-assignments-editor .assignment-file-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: #fff;
    border: 1px solid #d5d5d5;
    border-radius: 6px;
    color: #444;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all .15s;
}
#kboard-assignments-editor .assignment-file-btn svg {
    width: 15px;
    height: 15px;
    color: #888;
    flex-shrink: 0;
}
#kboard-assignments-editor .assignment-file-btn:hover {
    background: #f7f7f7;
    border-color: #bbb;
    color: #222;
}
#kboard-assignments-editor .assignment-file-btn:hover svg { color: #555; }
#kboard-assignments-editor .assignment-file-name {
    font-size: 13px;
    color: #999;
}
#kboard-assignments-editor .assignment-file-name.has-file {
    color: #333;
    font-weight: 600;
}

/* ================================================================
   페이지 배경 — 게시판이 출력되는 페이지 전체를 light 톤으로
   ================================================================ */
body.kboard-assignments-bg,
.page-template-page-kboard,
body:has(#kboard-assignments-list),
body:has(#kboard-default-list),
body:has(#kboard-assignments-document),
body:has(#kboard-assignments-editor) {
    background-color: #eee;
}

/* 컨테이너 자체는 max-width로 정렬 */
#kboard-assignments-list,
#kboard-assignments-document,
#kboard-assignments-editor {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px 100px;
    color: #333;
    font-family: 'Pretendard', 'Noto Sans KR', -apple-system, sans-serif;
    box-sizing: border-box;
}

/* ================================================================
   페이지 타이틀 + 총 개수 (후기 게시판 .reviews-header 동일)
   ================================================================ */
#kboard-assignments-list .assignment-header {
    margin-bottom: 30px;
    border-bottom: 2px solid #e5e5e5;
    padding-bottom: 20px;
}
#kboard-assignments-list .assignment-title {
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 8px;
    color: #333;
}
#kboard-assignments-list .assignment-count {
    font-size: 14px;
    color: #666;
    margin: 0;
}
#kboard-assignments-list .assignment-count strong {
    color: #e74c3c;
}

/* ================================================================
   필터 영역 (후기 게시판 .reviews-filters 동일)
   ================================================================ */
#kboard-assignments-list .assignment-filters {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}
#kboard-assignments-list .assignment-filter-form {
    display: flex;
    justify-content: flex-end;
}
#kboard-assignments-list .assignment-filter-group {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}
#kboard-assignments-list .assignment-filter-select,
#kboard-assignments-list .assignment-filter-input {
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 14px;
    background: #fff;
    color: #333;
    cursor: pointer;
    box-sizing: border-box;
}
#kboard-assignments-list .assignment-filter-input {
    min-width: 200px;
    cursor: text;
}
#kboard-assignments-list .assignment-filter-select:focus,
#kboard-assignments-list .assignment-filter-input:focus {
    outline: none;
    border-color: #C9A86A;
}
#kboard-assignments-list .assignment-filter-button {
    padding: 10px 20px;
    background: var(--color-teal, #3BA7A0);
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
}
#kboard-assignments-list .assignment-filter-button:hover {
    opacity: 0.9;
}
#kboard-assignments-list .assignment-filter-reset {
    padding: 10px 20px;
    background: #a4a5a5;
    color: #fff;
    border-radius: 5px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
}
#kboard-assignments-list .assignment-filter-reset:hover {
    background: #8e8f8f;
    color: #fff;
}

@media (max-width: 768px) {
    #kboard-assignments-list .assignment-filter-form { justify-content: stretch; }
    #kboard-assignments-list .assignment-filter-group { width: 100%; }
    #kboard-assignments-list .assignment-filter-input { flex: 1; min-width: 0; }
}

/* ================================================================
   카테고리
   ================================================================ */
.kboard-assignments-list-category,
.kboard-assignments-list-category-tree {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 30px;
}
.kboard-assignments-list-category a,
.kboard-assignments-list-category-tree a {
    display: inline-block;
    padding: 6px 14px;
    margin: 4px 6px 4px 0;
    border-radius: 20px;
    background: #fff;
    color: #555;
    border: 1px solid #ddd;
    text-decoration: none !important;
    font-size: 13px;
    transition: all .2s;
}
.kboard-assignments-list-category a:hover,
.kboard-assignments-list-category-tree a:hover {
    background: rgba(201,168,106,.1);
    border-color: #C9A86A;
    color: #C9A86A;
}
.kboard-assignments-list-category a.active,
.kboard-assignments-list-category-tree a.active {
    background: #C9A86A;
    color: #fff;
    border-color: #C9A86A;
}

/* ================================================================
   리스트 (테이블 → reviews 카드형)
   ================================================================ */
#kboard-assignments-list .kboard-list {
    margin-bottom: 30px;
}
#kboard-assignments-list .kboard-list table {
    width: 100%;
    border-collapse: collapse;
    background: transparent;
    border: none;
}
#kboard-assignments-list .kboard-list thead {
    background: #fff;
    border: 1px solid #e5e5e5;
    display: block;
    border-radius: 8px 8px 0 0;
}
#kboard-assignments-list .kboard-list thead tr {
    display: grid;
    grid-template-columns: 60px 1fr 110px 120px 180px 100px;
    align-items: center;
}
#kboard-assignments-list .kboard-list thead td {
    padding: 14px 16px;
    font-weight: 600;
    color: #555;
    font-size: 13px;
    background: transparent !important;
    border: none !important;
    text-align: center;
}
#kboard-assignments-list .kboard-list thead .kboard-list-title { text-align: left; }
#kboard-assignments-list .kboard-list tbody {
    display: block;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-top: none;
    border-radius: 0 0 8px 8px;
    overflow: hidden;
}
#kboard-assignments-list .kboard-list tbody tr {
    display: grid;
    grid-template-columns: 60px 1fr 110px 120px 180px 100px;
    align-items: center;
    border-bottom: 1px solid #f0f0f0;
    transition: background .2s;
}
#kboard-assignments-list .kboard-list tbody tr:last-child { border-bottom: none; }
#kboard-assignments-list .kboard-list tbody tr:hover { background: #fafbfc; }
#kboard-assignments-list .kboard-list tbody td {
    padding: 16px;
    color: #555;
    font-size: 14px;
    text-align: center;
    background: transparent !important;
    border: none !important;
}
#kboard-assignments-list .kboard-list tbody td.kboard-list-title { text-align: left; }
#kboard-assignments-list .kboard-list tbody td.kboard-list-title a {
    color: #333 !important;
    text-decoration: none !important;
    font-weight: 600;
    display: inline-block;
}
#kboard-assignments-list .kboard-list tbody td.kboard-list-title a:hover {
    color: #C9A86A !important;
}
#kboard-assignments-list .kboard-list tbody td.kboard-list-user {
    color: #555;
    font-weight: 500;
}
#kboard-assignments-list .kboard-list tbody td.kboard-list-date {
    color: #999;
    font-size: 13px;
}
#kboard-assignments-list .kboard-list tbody td.kboard-list-uid {
    color: #999;
    font-size: 13px;
}

/* 공지 / 인기 행 */
#kboard-assignments-list .kboard-list tbody tr.kboard-notice {
    background: rgba(201,168,106,.05);
}
#kboard-assignments-list .kboard-list tbody tr.kboard-notice .kboard-list-uid {
    color: #C9A86A;
    font-weight: 700;
}
.kboard-notice-badge {
    display: inline-block;
    padding: 2px 7px;
    background: #C9A86A;
    color: #fff;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
#kboard-assignments-list .kboard-list tbody tr.kboard-popular .kboard-list-uid {
    color: #d64a4e;
    font-weight: 700;
}

/* New 배지 */
.kboard-assignments-new-notify {
    display: inline-block;
    padding: 2px 6px;
    background: #d64a4e !important;
    color: #fff !important;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 700;
    margin-right: 4px;
    vertical-align: middle;
}

/* 댓글 수 */
.kboard-comments-count {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 8px;
    background: #f0f0f0;
    color: #555;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
}

/* ================================================================
   모바일 — 표 → 카드
   ================================================================ */
.kboard-mobile-contents {
    display: none;
    margin-top: 6px;
    font-size: 12px;
    color: #999;
}
.kboard-mobile-contents .contents-item { color: #999; }
.kboard-mobile-contents .contents-separator { color: #ddd; margin: 0 6px; }

@media (max-width: 768px) {
    #kboard-assignments-list .kboard-list thead { display: none; }
    #kboard-assignments-list .kboard-list tbody {
        background: transparent;
        border: none;
        border-radius: 0;
    }
    #kboard-assignments-list .kboard-list tbody tr {
        display: block;
        background: #fff;
        border: 1px solid #e5e5e5;
        border-radius: 8px;
        padding: 16px;
        margin-bottom: 10px;
    }
    #kboard-assignments-list .kboard-list tbody td {
        display: none;
        text-align: left;
        padding: 0;
    }
    #kboard-assignments-list .kboard-list tbody td.kboard-list-title { display: block; }
    #kboard-assignments-list .kboard-list tbody td.kboard-list-uid {
        display: inline-block;
        background: #f0f0f0;
        color: #555;
        padding: 2px 8px;
        border-radius: 4px;
        font-size: 11px;
        margin-bottom: 8px;
    }
    /* 모바일에서 코스/상태는 제목 아래 한 줄로 표시 */
    #kboard-assignments-list .kboard-list tbody td.kboard-list-course {
        display: block;
        margin-top: 8px;
        font-size: 13px;
        color: #C9A86A;
        font-weight: 600;
    }
    #kboard-assignments-list .kboard-list tbody td.kboard-list-course::before {
        content: '코스: ';
        color: #999;
        font-weight: 400;
    }
    #kboard-assignments-list .kboard-list tbody td.kboard-list-status {
        display: block;
        margin-top: 6px;
    }
    .kboard-mobile-contents { display: block; }
}

/* 승인 상태 배지 (목록 + 상세 공용) */
.assignment-status-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
}
/* 코스 셀 */
#kboard-assignments-list .kboard-list-course {
    font-size: 13px;
    color: #555;
}

/* ================================================================
   페이지네이션 (reviews 페이지 .page-link 톤)
   ================================================================ */
.kboard-pagination { margin: 30px 0 20px; }
.kboard-pagination-pages {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 0;
    list-style: none;
}
.kboard-pagination-pages li { list-style: none; }
.kboard-pagination-pages li a,
.kboard-pagination-pages li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 4px 12px;
    border: 1px solid #ddd;
    border-radius: 5px;
    background: #ffffffe0;
    color: #333333db;
    text-decoration: none;
    font-size: 14px;
    transition: all .3s;
}
.kboard-pagination-pages li a:hover,
.kboard-pagination-pages li.active a,
.kboard-pagination-pages li span.active {
    background: #343436;
    color: #fff;
    border-color: #343436;
    font-weight: 600;
}

/* ================================================================
   검색 폼
   ================================================================ */
.kboard-search {
    margin: 30px 0 16px;
}
.kboard-search form {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}
.kboard-search select,
.kboard-search input[type="text"] {
    padding: 10px 14px;
    border: 1px solid #ddd;
    border-radius: 5px;
    background: #fff;
    font-size: 14px;
    color: #333;
    box-sizing: border-box;
}
.kboard-search input[type="text"] { min-width: 240px; }
.kboard-search select:focus,
.kboard-search input[type="text"]:focus {
    outline: none;
    border-color: #C9A86A;
}

/* ================================================================
   버튼 — 미니멀 톤 (기본: 흰 배경 / 회색 보더)
   ================================================================ */
a.kboard-assignments-button-small,
input.kboard-assignments-button-small,
button.kboard-assignments-button-small {
    display: inline-block;
    padding: 9px 18px;
    background: #fff !important;
    color: #444 !important;
    border: 1px solid #d5d5d5 !important;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none !important;
    cursor: pointer;
    transition: all .15s;
    line-height: 1.4;
    height: auto;
    text-shadow: none;
    box-shadow: none;
    box-sizing: border-box;
}
a.kboard-assignments-button-small:hover,
input.kboard-assignments-button-small:hover,
button.kboard-assignments-button-small:hover {
    background: #f7f7f7 !important;
    border-color: #bbb !important;
    color: #222 !important;
    opacity: 1;
}

/* '과제 등록' 버튼 — 강조 (미니멀 다크) */
.kboard-control {
    text-align: right;
    margin: 20px 0 0;
}
.kboard-control a.kboard-assignments-button-small {
    background: #2e2e2e !important;
    color: #fff !important;
    border-color: #2e2e2e !important;
    padding: 11px 26px;
    font-weight: 600;
}
.kboard-control a.kboard-assignments-button-small:hover {
    background: #1a1a1a !important;
    border-color: #1a1a1a !important;
    color: #fff !important;
}

/* ================================================================
   본문 보기 (document.php) — 실제 마크업 클래스 기준
   .kboard-document-wrap / .kboard-title / .kboard-detail / .kboard-content
   ================================================================ */
#kboard-assignments-document {
    max-width: 900px;
}

/* 본문 카드 (제목 + 메타 + 내용 한 박스) */
#kboard-assignments-document .kboard-document-wrap {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    padding: 32px;
    margin-bottom: 20px;
}

/* 제목 */
#kboard-assignments-document .kboard-title h1 {
    font-size: 26px;
    font-weight: 700;
    color: #333;
    margin: 0;
    line-height: 1.4;
}

/* 메타 정보 (작성자/날짜/조회/카테고리) */
#kboard-assignments-document .kboard-detail {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-top: 16px;
    padding: 14px 0;
    border-top: 1px solid #f0f0f0;
    border-bottom: 1px solid #f0f0f0;
}
#kboard-assignments-document .kboard-detail .detail-attr {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
}
#kboard-assignments-document .kboard-detail .detail-name {
    color: #999;
}
#kboard-assignments-document .kboard-detail .detail-value {
    color: #555;
    font-weight: 500;
}
/* 카테고리 배지 */
#kboard-assignments-document .kboard-detail .detail-category1 .detail-name,
#kboard-assignments-document .kboard-detail .detail-category2 .detail-name,
#kboard-assignments-document .kboard-detail [class*="detail-tree-category"] .detail-name {
    display: inline-block;
    padding: 3px 10px;
    background: rgba(201,168,106,.1);
    color: #C9A86A;
    border-radius: 12px;
    font-weight: 600;
}

/* 본문 내용 */
#kboard-assignments-document .kboard-content {
    margin-top: 24px;
}
#kboard-assignments-document .kboard-content .content-view {
    color: #333;
    line-height: 1.8;
    font-size: 15px;
    min-height: 80px;
}
#kboard-assignments-document .kboard-content .content-view img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
}
#kboard-assignments-document .kboard-content .content-view p { margin: 0 0 16px; }

/* 좋아요/인쇄 액션 */
#kboard-assignments-document .kboard-document-action {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #f0f0f0;
    flex-wrap: wrap;
    gap: 10px;
}
#kboard-assignments-document .kboard-button-action {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 16px;
    background: #fff;
    border: 1px solid #d5d5d5;
    border-radius: 6px;
    color: #555;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all .15s;
}
#kboard-assignments-document .kboard-button-action:hover {
    background: #f7f7f7;
    border-color: #bbb;
    color: #222;
}
#kboard-assignments-document .kboard-button-like:hover {
    border-color: #C9A86A;
    color: #C9A86A;
}

/* 첨부파일 */
#kboard-assignments-document .kboard-attach {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #f0f0f0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
#kboard-assignments-document .kboard-button-download {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #f8f9fa;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    color: #555;
    font-size: 13px;
    cursor: pointer;
    transition: all .15s;
}
#kboard-assignments-document .kboard-button-download::before {
    content: '';
    display: inline-block;
    width: 14px; height: 14px;
    background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}
#kboard-assignments-document .kboard-button-download:hover {
    background: rgba(201,168,106,.08);
    border-color: #C9A86A;
    color: #C9A86A;
}

/* 댓글 영역 */
#kboard-assignments-document .kboard-comments-area {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    padding: 28px 32px;
    margin-bottom: 20px;
}
#kboard-assignments-document .kboard-comments-area .kboard-comment-row,
#kboard-assignments-document .kboard-comments-area .kboard-comment {
    padding: 16px 0;
    border-bottom: 1px solid #f0f0f0;
}
#kboard-assignments-document .kboard-comments-area textarea {
    width: 100%;
    min-height: 90px;
    padding: 12px 14px;
    border: 1px solid #ddd;
    border-radius: 6px;
    background: #fff;
    color: #333;
    font-size: 14px;
    box-sizing: border-box;
    resize: vertical;
    font-family: inherit;
}
#kboard-assignments-document .kboard-comments-area textarea:focus {
    outline: none;
    border-color: #C9A86A;
}
#kboard-assignments-document .kboard-comments-area input[type="text"],
#kboard-assignments-document .kboard-comments-area input[type="password"] {
    padding: 9px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    background: #fff;
    color: #333;
    font-size: 13px;
    box-sizing: border-box;
}

/* 이전/다음 글 네비 */
#kboard-assignments-document .kboard-document-navi {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 20px;
}
#kboard-assignments-document .kboard-document-navi > div {
    border-bottom: 1px solid #f0f0f0;
}
#kboard-assignments-document .kboard-document-navi > div:last-child { border-bottom: none; }
#kboard-assignments-document .kboard-document-navi a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 24px;
    color: #555;
    text-decoration: none;
    font-size: 14px;
    transition: background .15s;
}
#kboard-assignments-document .kboard-document-navi a:hover {
    background: #fafbfc;
    color: #C9A86A;
}
#kboard-assignments-document .kboard-document-navi .navi-arrow {
    color: #bbb;
    font-weight: 700;
    flex-shrink: 0;
}
#kboard-assignments-document .kboard-document-navi .navi-document-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
#kboard-assignments-document .kboard-next-document a { justify-content: flex-end; }

/* ================================================================
   과제 코스/승인 상태 안내 박스
   ================================================================ */
#kboard-assignments-document .assignment-info-box {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 20px;
    background: #f8f9fa;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    margin: 0 0 16px;
}
#kboard-assignments-document .assignment-info-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
#kboard-assignments-document .assignment-info-label {
    flex: 0 0 130px;        /* 라벨 고정폭 */
    font-size: 13px;
    color: #999;
    font-weight: 500;
    padding-top: 1px;
}
#kboard-assignments-document .assignment-info-value {
    flex: 1;
    min-width: 0;
    font-size: 14px;
    color: #333;
    font-weight: 600;
    line-height: 1.5;
    word-break: keep-all;     /* 한글 단어 단위 줄바꿈 */
    overflow-wrap: anywhere;  /* 긴 영문/숫자도 줄바꿈 */
}
@media (max-width: 600px) {
    #kboard-assignments-document .assignment-info-row { flex-direction: column; gap: 3px; }
    #kboard-assignments-document .assignment-info-label { flex: none; }
}

/* 축하 메시지 */
#kboard-assignments-document .assignment-congrats {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px 20px;
    background: rgba(34, 197, 94, .08);
    border: 1px solid rgba(34, 197, 94, .3);
    border-radius: 8px;
    margin: 0 0 20px;
}
#kboard-assignments-document .assignment-congrats-icon {
    color: #22c55e;
    flex-shrink: 0;
    display: flex;
}
#kboard-assignments-document .assignment-congrats-text {
    font-size: 14px;
    color: #333;
    line-height: 1.6;
}
#kboard-assignments-document .assignment-congrats-text strong { color: #16a34a; }
#kboard-assignments-document .assignment-congrats-text em {
    font-style: normal;
    font-weight: 700;
    color: #333;
}
#kboard-assignments-document .assignment-congrats-text a {
    display: inline-block;
    margin-left: 6px;
    color: #16a34a;
    font-weight: 600;
    text-decoration: none;
}
#kboard-assignments-document .assignment-congrats-text a:hover { text-decoration: underline; }

/* 대기 / 반려 안내 */
#kboard-assignments-document .assignment-pending-note,
#kboard-assignments-document .assignment-rejected-note {
    padding: 14px 18px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.6;
    margin: 0 0 20px;
}
#kboard-assignments-document .assignment-pending-note {
    background: rgba(245, 158, 11, .08);
    border: 1px solid rgba(245, 158, 11, .3);
    color: #92722a;
}
#kboard-assignments-document .assignment-rejected-note {
    background: rgba(239, 68, 68, .08);
    border: 1px solid rgba(239, 68, 68, .3);
    color: #b91c1c;
}

/* 상세 컨트롤 버튼 영역 */
#kboard-assignments-document .kboard-control {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
    flex-wrap: wrap;
}
#kboard-assignments-document .kboard-control .left,
#kboard-assignments-document .kboard-control .right {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* ================================================================
   글 작성/편집 폼 (editor.php) — reviews-page와 동일 톤
   ================================================================ */
#kboard-assignments-editor {
    max-width: 1000px;
}
#kboard-assignments-editor .kboard-form {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    padding: 30px;
}

#kboard-assignments-editor h3,
#kboard-assignments-editor .kboard-editor-title {
    font-size: 22px;
    font-weight: 700;
    color: #333;
    margin: 0 0 20px;
}

#kboard-assignments-editor .kboard-attr-row {
    margin-bottom: 20px;
}
#kboard-assignments-editor .kboard-attr-row .attr-name {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #555;
    margin-bottom: 8px;
}
#kboard-assignments-editor .kboard-attr-row .attr-name .field-name { color: #333; }
#kboard-assignments-editor .kboard-attr-row .attr-required-text {
    color: #e74c3c;
    margin-left: 4px;
}
#kboard-assignments-editor .kboard-attr-row .attr-value { width: 100%; }
#kboard-assignments-editor .kboard-attr-row .description {
    margin-top: 6px;
    color: #999;
    font-size: 12px;
}

#kboard-assignments-editor input[type="text"],
#kboard-assignments-editor input[type="password"],
#kboard-assignments-editor input[type="email"],
#kboard-assignments-editor input[type="number"],
#kboard-assignments-editor input[type="url"],
#kboard-assignments-editor input[type="file"],
#kboard-assignments-editor select,
#kboard-assignments-editor textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #ddd;
    border-radius: 5px;
    background: #fff;
    color: #333;
    font-size: 14px;
    box-sizing: border-box;
    font-family: inherit;
}
#kboard-assignments-editor input[type="text"]:focus,
#kboard-assignments-editor input[type="password"]:focus,
#kboard-assignments-editor textarea:focus,
#kboard-assignments-editor select:focus {
    outline: none;
    border-color: #C9A86A;
}

/* 비밀번호 / 비공개 옵션 행 */
#kboard-assignments-editor .attr-value-option {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 16px;
    font-size: 13px;
    color: #555;
    cursor: pointer;
}
#kboard-assignments-editor .attr-value-option input[type="checkbox"] {
    width: auto;
    margin: 0;
}

/* 컨트롤 영역 (저장/뒤로) */
#kboard-assignments-editor .kboard-control {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #f0f0f0;
    flex-wrap: wrap;
}
#kboard-assignments-editor .kboard-control .left,
#kboard-assignments-editor .kboard-control .right {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* 저장 버튼 강조 (미니멀 다크) */
#kboard-assignments-editor .kboard-control .right button.kboard-assignments-button-small {
    background: #2e2e2e !important;
    color: #fff !important;
    border-color: #2e2e2e !important;
    padding: 11px 26px;
    font-weight: 600;
}
#kboard-assignments-editor .kboard-control .right button.kboard-assignments-button-small:hover {
    background: #1a1a1a !important;
    border-color: #1a1a1a !important;
}

/* 승인된 과제 수정 불가 안내 */
#kboard-assignments-editor .assignment-edit-locked {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    padding: 40px 32px;
    text-align: center;
}
#kboard-assignments-editor .assignment-edit-locked p {
    font-size: 16px;
    color: #555;
    margin: 0 0 20px;
}
#kboard-assignments-editor .assignment-edit-locked-btns {
    display: flex;
    gap: 8px;
    justify-content: center;
}

/* 강좌 선택 시 보상 강좌 안내 */
#kboard-assignments-editor .assignment-reward-note {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin-top: 10px;
    padding: 10px 14px;
    background: rgba(201,168,106,.08);
    border: 1px solid rgba(201,168,106,.25);
    border-radius: 6px;
    color: #8a6d3b;
    font-size: 13px;
    line-height: 1.5;
}
#kboard-assignments-editor .assignment-reward-note svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: #C9A86A;
}
#kboard-assignments-editor .assignment-reward-note strong {
    color: #8a6d3b;
    font-weight: 700;
    word-break: keep-all;
}

/* 과제 등록할 코스 — 안내 텍스트 */
#kboard-assignments-editor .assignment-course-row .assignment-no-course {
    color: #d64a4e;
    margin: 0;
    font-size: 13px;
    padding: 10px 14px;
    background: #fff5f5;
    border: 1px solid #fecaca;
    border-radius: 6px;
}

/* ================================================================
   confirm 페이지 (비밀번호 확인 등)
   ================================================================ */
#kboard-assignments-editor.confirm {
    max-width: 480px;
    margin: 60px auto;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    padding: 30px;
    text-align: center;
}
#kboard-assignments-editor.confirm input[type="password"] {
    margin: 10px 0;
}

/* ================================================================
   "Powered by KBoard" 숨김 (요청)
   ================================================================ */
.kboard-assignments-poweredby,
.kboard-default-poweredby {
    display: none !important;
}

/* ================================================================
   default 스킨 (#kboard-default-list) — assignments와 동일 디자인
   assignments 스킨 CSS를 그대로 재사용 (셀렉터만 교체)
   ================================================================ */

/* 컨테이너 */
#kboard-default-list {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px 100px;
    color: #333;
    font-family: 'Pretendard', 'Noto Sans KR', -apple-system, sans-serif;
    box-sizing: border-box;
}

/* 헤더 */
#kboard-default-list .assignment-header {
    margin-bottom: 30px;
    border-bottom: 2px solid #e5e5e5;
    padding-bottom: 20px;
}
#kboard-default-list .assignment-title {
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 8px;
    color: #333;
}
#kboard-default-list .assignment-count {
    font-size: 14px;
    color: #666;
    margin: 0;
}
#kboard-default-list .assignment-count strong { color: #e74c3c; }

/* 필터 */
#kboard-default-list .assignment-filters {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}
#kboard-default-list .assignment-filter-form {
    display: flex;
    justify-content: flex-end;
}
#kboard-default-list .assignment-filter-group {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}
#kboard-default-list .assignment-filter-select,
#kboard-default-list .assignment-filter-input {
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 14px;
    background: #fff;
    color: #333;
    cursor: pointer;
    box-sizing: border-box;
}
#kboard-default-list .assignment-filter-input {
    min-width: 200px;
    cursor: text;
}
#kboard-default-list .assignment-filter-select:focus,
#kboard-default-list .assignment-filter-input:focus {
    outline: none;
    border-color: #C9A86A;
}
#kboard-default-list .assignment-filter-button {
    padding: 10px 20px;
    background: var(--color-teal, #3BA7A0);
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
}
#kboard-default-list .assignment-filter-button:hover { opacity: 0.9; }
#kboard-default-list .assignment-filter-reset {
    padding: 10px 20px;
    background: #a4a5a5;
    color: #fff;
    border-radius: 5px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
}
#kboard-default-list .assignment-filter-reset:hover {
    background: #8e8f8f;
    color: #fff;
}

/* 리스트 테이블 — vote/view 컬럼 포함 (6컬럼) */
#kboard-default-list .kboard-list { margin-bottom: 30px; }
#kboard-default-list .kboard-list table {
    width: 100%;
    border-collapse: collapse;
    background: transparent;
    border: none;
}
#kboard-default-list .kboard-list thead {
    background: #fff;
    border: 1px solid #e5e5e5;
    display: block;
    border-radius: 8px 8px 0 0;
}
#kboard-default-list .kboard-list thead tr {
    display: grid;
    grid-template-columns: 60px 1fr 110px 100px 60px 60px;
    align-items: center;
}
#kboard-default-list .kboard-list thead td {
    padding: 14px 16px;
    font-weight: 600;
    color: #555;
    font-size: 13px;
    background: transparent !important;
    border: none !important;
    text-align: center;
}
#kboard-default-list .kboard-list thead td.kboard-list-title { text-align: left; }
#kboard-default-list .kboard-list tbody {
    display: block;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-top: none;
    border-radius: 0 0 8px 8px;
    overflow: hidden;
}
#kboard-default-list .kboard-list tbody tr {
    display: grid;
    grid-template-columns: 60px 1fr 110px 100px 60px 60px;
    align-items: center;
    border-bottom: 1px solid #f0f0f0;
    transition: background .2s;
}
#kboard-default-list .kboard-list tbody tr:last-child { border-bottom: none; }
#kboard-default-list .kboard-list tbody tr:hover { background: #fafbfc; }
#kboard-default-list .kboard-list tbody td {
    padding: 16px;
    color: #555;
    font-size: 14px;
    text-align: center;
    background: transparent !important;
    border: none !important;
}
#kboard-default-list .kboard-list tbody td.kboard-list-uid { color: #999; font-size: 13px; }
#kboard-default-list .kboard-list tbody td.kboard-list-title { text-align: left; }
#kboard-default-list .kboard-list tbody td.kboard-list-title a {
    color: #333 !important;
    text-decoration: none !important;
    font-weight: 600;
    display: inline-block;
}
#kboard-default-list .kboard-list tbody td.kboard-list-title a:hover { color: #C9A86A !important; }
#kboard-default-list .kboard-list tbody td.kboard-list-user { color: #555; font-weight: 500; }
#kboard-default-list .kboard-list tbody td.kboard-list-date { color: #999; font-size: 13px; }
#kboard-default-list .kboard-list tbody td.kboard-list-vote,
#kboard-default-list .kboard-list tbody td.kboard-list-view { color: #999; font-size: 13px; }
#kboard-default-list .kboard-list tbody td.kboard-list-title .kboard-comments-count {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 8px;
    background: #f0f0f0;
    color: #555;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
}

/* 공지 행 */
#kboard-default-list .kboard-list tbody tr.kboard-notice { background: rgba(201,168,106,.05); }
#kboard-default-list .kboard-list tbody tr.kboard-notice .kboard-list-uid { color: #C9A86A; font-weight: 700; }
#kboard-default-list .kboard-list tbody tr.kboard-popular .kboard-list-uid { color: #d64a4e; font-weight: 700; }

/* N 배지 */
.kboard-default-new-notify {
    display: inline-block;
    padding: 2px 5px;
    background: #d64a4e !important;
    color: #fff !important;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 700;
    margin-right: 4px;
    vertical-align: middle;
}

/* 페이지네이션 */
#kboard-default-list .kboard-pagination { margin: 30px 0 20px; float: none; padding: 0; }
#kboard-default-list .kboard-pagination .kboard-pagination-pages {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 0;
    list-style: none;
    float: none;
    width: 100%;
    text-align: center;
}
#kboard-default-list .kboard-pagination .kboard-pagination-pages li {
    display: inline-block;
    margin: 0; padding: 0;
    background: none; border: 0; list-style: none;
}
#kboard-default-list .kboard-pagination .kboard-pagination-pages li::before,
#kboard-default-list .kboard-pagination .kboard-pagination-pages li::after { display: none; }
#kboard-default-list .kboard-pagination .kboard-pagination-pages li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 4px 12px;
    border: 1px solid #ddd;
    border-radius: 5px;
    background: rgba(255,255,255,.88);
    color: #333;
    text-decoration: none;
    font-size: 14px;
    transition: all .3s;
    box-shadow: none;
}
#kboard-default-list .kboard-pagination .kboard-pagination-pages li:hover a,
#kboard-default-list .kboard-pagination .kboard-pagination-pages li.active a {
    background: #343436;
    color: #fff;
    border-color: #343436;
    font-weight: 600;
}

/* 버튼 */
#kboard-default-list .kboard-control { float: none; text-align: right; margin-top: 20px; padding-bottom: 0; }
a.kboard-default-button-small,
input.kboard-default-button-small,
button.kboard-default-button-small {
    display: inline-block;
    padding: 9px 18px;
    background: #2e2e2e !important;
    color: #fff !important;
    border: 1px solid #2e2e2e !important;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none !important;
    cursor: pointer;
    transition: all .15s;
    line-height: 1.4;
    height: auto;
    text-shadow: none;
    box-shadow: none;
    box-sizing: border-box;
    letter-spacing: normal;
}
a.kboard-default-button-small:hover,
input.kboard-default-button-small:hover,
button.kboard-default-button-small:hover {
    background: #1a1a1a !important;
    border-color: #1a1a1a !important;
    color: #fff !important;
    opacity: 1;
}

/* 모바일 */
@media (max-width: 768px) {
    #kboard-default-list .assignment-filter-form { justify-content: stretch; }
    #kboard-default-list .assignment-filter-group { width: 100%; }
    #kboard-default-list .assignment-filter-input { flex: 1; min-width: 0; }
    #kboard-default-list .kboard-list thead { display: none; }
    #kboard-default-list .kboard-list tbody {
        background: transparent;
        border: none;
        border-radius: 0;
    }
    #kboard-default-list .kboard-list tbody tr {
        display: block;
        background: #fff !important;
        border: 1px solid #e5e5e5;
        border-radius: 8px;
        padding: 16px;
        margin-bottom: 10px;
    }
    #kboard-default-list .kboard-list tbody td {
        display: none;
        text-align: left;
        padding: 0;
    }
    #kboard-default-list .kboard-list tbody td.kboard-list-title { display: block; }
    #kboard-default-list .kboard-list tbody td.kboard-list-uid {
        display: inline-block;
        background: #f0f0f0;
        color: #555;
        padding: 2px 8px;
        border-radius: 4px;
        font-size: 11px;
        margin-bottom: 8px;
    }
    #kboard-default-list .kboard-list .kboard-mobile-contents { display: block; }
    #kboard-default-list .kboard-pagination .kboard-pagination-pages li { display: none; }
    #kboard-default-list .kboard-pagination .kboard-pagination-pages li.first-page,
    #kboard-default-list .kboard-pagination .kboard-pagination-pages li.last-page,
    #kboard-default-list .kboard-pagination .kboard-pagination-pages li.prev-page,
    #kboard-default-list .kboard-pagination .kboard-pagination-pages li.next-page,
    #kboard-default-list .kboard-pagination .kboard-pagination-pages li.active { display: inline-block; }
}
