@charset "utf-8";

/* responsive_gallery: 심플한 반응형 갤러리 스킨 */
:root {
    --rg-point: #244d5a;
    --rg-point-dark: #173943;
    --rg-text: #20262a;
    --rg-muted: #7c858a;
    --rg-line: #e6eaec;
    --rg-soft: #f6f8f8;
    --rg-radius: 14px;
    --rg-shadow: 0 10px 28px rgba(25, 42, 48, .08);
}

.rg-board {max-width:1200px; margin:0 auto; color:var(--rg-text); box-sizing:border-box;}
.rg-board *, .rg-board *::before, .rg-board *::after {box-sizing:border-box;}
.rg-board a {text-decoration:none;}
.rg-board button, .rg-board input, .rg-board select {font:inherit;}

/* category */
.rg-category {margin:0 0 30px; overflow-x:auto; scrollbar-width:none;}
.rg-category::-webkit-scrollbar {display:none;}
.rg-category ul {display:flex; gap:8px; min-width:max-content; margin:0; padding:0; list-style:none;}
.rg-category a {display:block; padding:10px 17px; border:1px solid var(--rg-line); border-radius:999px; color:#607078; background:#fff; font-size:14px; transition:.2s ease;}
.rg-category #bo_cate_on, .rg-category a:hover {border-color:var(--rg-point); color:#fff; background:var(--rg-point);}

/* list toolbar */
.rg-toolbar, .rg-bottom-actions, .rg-view-toolbar, .rg-view-bottom {display:flex; align-items:center; justify-content:space-between; gap:10px;}
.rg-toolbar {margin-bottom:18px;}
.rg-total {font-size:15px; color:var(--rg-muted);}
.rg-total strong {color:var(--rg-point);}
.rg-toolbar-buttons, .rg-view-toolbar-right {display:flex; align-items:center; gap:7px; flex-wrap:wrap;}
.rg-icon-btn, .rg-light-btn, .rg-write-btn {display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:40px; border:1px solid var(--rg-line); border-radius:8px; padding:0 13px; color:#506069; background:#fff; font-size:14px; cursor:pointer; transition:.2s ease;}
.rg-icon-btn {width:40px; padding:0;}
.rg-icon-btn:hover, .rg-light-btn:hover {border-color:#b8c5c9; color:var(--rg-point); background:var(--rg-soft);}
.rg-write-btn {border-color:var(--rg-point); color:#fff !important; background:var(--rg-point);}
.rg-write-btn:hover {border-color:var(--rg-point-dark); background:var(--rg-point-dark);}

/* admin selection */
.rg-admin-select {display:flex; justify-content:space-between; gap:12px; padding:12px 14px; margin-bottom:14px; border:1px solid var(--rg-line); border-radius:10px; background:var(--rg-soft);}
.rg-check-label {display:flex; align-items:center; gap:7px; color:#5d6b70; font-size:14px; cursor:pointer;}
.rg-admin-actions {display:flex; gap:5px; flex-wrap:wrap;}
.rg-admin-actions button {padding:5px 9px; border:1px solid #d9e0e2; border-radius:6px; color:#66757b; background:#fff; font-size:12px; cursor:pointer;}

/* grid */
.rg-grid {display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:24px 18px; margin:0; padding:0; list-style:none;}
.rg-card {position:relative; min-width:0; overflow:hidden; border:1px solid var(--rg-line); border-radius:var(--rg-radius); background:#fff; transition:.25s ease;}
.rg-card:hover {transform:translateY(-4px); box-shadow:var(--rg-shadow);}
.rg-card.is-current {border-color:var(--rg-point);}
.rg-card-check {position:absolute; z-index:3; top:10px; right:10px; display:flex; width:24px; height:24px; align-items:center; justify-content:center; border-radius:6px; background:rgba(255,255,255,.9); box-shadow:0 2px 6px rgba(0,0,0,.13);}
.rg-card-check input {width:15px; height:15px; margin:0; accent-color:var(--rg-point);}
.rg-thumb {position:relative; display:block; overflow:hidden; aspect-ratio:4 / 3; background:#eef2f3;}
.rg-thumb > img, .rg-no-image img {width:100%; height:100%; object-fit:cover; transition:transform .35s ease;}
.rg-card:hover .rg-thumb > img {transform:scale(1.045);}
.rg-no-image {display:block; width:100%; height:100%;}
.rg-thumb-cover {position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; background:rgba(20,45,53,.2); opacity:0; transition:.25s ease;}
.rg-thumb-cover i {font-size:23px;}
.rg-card:hover .rg-thumb-cover {opacity:1;}
.rg-badge {position:absolute; z-index:2; left:11px; top:11px; display:inline-flex; align-items:center; min-height:26px; padding:0 9px; border-radius:999px; color:#fff; background:rgba(36,77,90,.9); font-size:11px; font-weight:700;}
.rg-badge-current {top:auto; bottom:11px; background:rgba(32,38,42,.82);}
.rg-card-body {padding:15px 15px 14px;}
.rg-card-category {display:inline-block; margin-bottom:7px; color:var(--rg-point); font-size:12px; font-weight:700;}
.rg-card-title {height:45px; margin:0; font-size:16px; font-weight:600; line-height:1.45;}
.rg-card-title a {display:-webkit-box; overflow:hidden; color:var(--rg-text); -webkit-box-orient:vertical; -webkit-line-clamp:2;}
.rg-comment-count {margin-left:4px; color:var(--rg-point); font-size:12px;}
.rg-card-meta {display:flex; align-items:center; gap:8px; margin-top:14px; color:var(--rg-muted); font-size:12px; white-space:nowrap; overflow:hidden;}
.rg-card-meta span {overflow:hidden; text-overflow:ellipsis;}
.rg-card-meta span:first-child {max-width:36%;}
.rg-card-icons {min-height:17px; margin-top:8px; color:var(--rg-muted); font-size:11px;}
.rg-card-icons img {vertical-align:middle;}
.rg-new {display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px; border-radius:50%; color:#fff; background:#e66858; font-size:10px; font-weight:800;}
.rg-empty {grid-column:1 / -1; padding:80px 15px; border:1px solid var(--rg-line); border-radius:12px; color:var(--rg-muted); text-align:center; background:var(--rg-soft);}
.rg-pagination {margin:34px 0 20px; text-align:center;}
.rg-bottom-actions {justify-content:flex-end;}

/* search layer */
.rg-search-layer {position:fixed; z-index:9999; inset:0; display:none; align-items:center; justify-content:center; padding:20px;}
.rg-search-layer.is-open {display:flex;}
.rg-search-bg {position:absolute; inset:0; background:rgba(14,26,30,.62);}
.rg-search-box {position:relative; z-index:1; width:min(520px, 100%); margin:0; padding:28px; border:0; border-radius:14px; background:#fff; box-shadow:0 16px 45px rgba(0,0,0,.2);}
.rg-search-box h3 {margin:0 0 16px; color:var(--rg-text); font-size:20px;}
.rg-search-box select {width:100%; height:43px; margin-bottom:8px; padding:0 10px; border:1px solid var(--rg-line); border-radius:7px; color:#53636a; background:#fff;}
.rg-search-input-wrap {display:flex; overflow:hidden; border:1px solid var(--rg-line); border-radius:7px;}
.rg-search-input-wrap input {min-width:0; flex:1; height:44px; padding:0 11px; border:0; outline:0;}
.rg-search-input-wrap button {width:46px; border:0; color:#fff; background:var(--rg-point); cursor:pointer;}
.rg-close-search {position:absolute; top:15px; right:15px; width:32px; height:32px; border:0; color:#879398; background:transparent; cursor:pointer;}

/* view */
.rg-view-header {padding:8px 0 25px; border-bottom:1px solid var(--rg-line);}
.rg-view-category {margin-bottom:10px; color:var(--rg-point); font-size:13px; font-weight:700;}
.rg-view-title {margin:0; color:var(--rg-text); font-size:28px; font-weight:700; line-height:1.35;}
.rg-view-meta {display:flex; gap:14px; flex-wrap:wrap; margin-top:15px; color:var(--rg-muted); font-size:13px;}
.rg-view-name {color:#53636a; font-weight:600;}
.rg-view-toolbar {padding:14px 0; border-bottom:1px solid var(--rg-line);}
.rg-file-list, .rg-link-list {margin-top:18px; padding:15px 17px; border:1px solid var(--rg-line); border-radius:10px; background:var(--rg-soft);}
.rg-file-list h3, .rg-link-list h3 {margin:0 0 8px; color:#5c6b71; font-size:14px;}
.rg-file-list ul, .rg-link-list ul {margin:0; padding:0; list-style:none;}
.rg-file-list li, .rg-link-list li {display:flex; gap:9px; justify-content:space-between; padding:5px 0; color:var(--rg-muted); font-size:12px;}
.rg-file-list a, .rg-link-list a {min-width:0; overflow:hidden; color:#53636a; text-overflow:ellipsis; white-space:nowrap;}
.rg-view-content {min-height:220px; padding:38px 0 30px; color:#374247; font-size:16px; line-height:1.8;}
.rg-attached-images img, .rg-editor-content img {max-width:100%; height:auto;}
.rg-attached-images img {display:block; margin:0 auto 18px;}
.rg-editor-content {overflow:hidden;}
.rg-modal-target {cursor:zoom-in;}
.rg-recommend {display:flex; justify-content:center; gap:8px; padding:15px 0 28px;}
.rg-recommend-btn {display:flex; align-items:center; gap:7px; min-width:104px; justify-content:center; padding:11px 14px; border:1px solid var(--rg-line); border-radius:999px; color:#5d6b70; background:#fff; font-size:13px;}
.rg-recommend-btn:hover {border-color:var(--rg-point); color:var(--rg-point);}
.rg-recommend-btn strong {color:var(--rg-point);}
.rg-prev-next {border-top:1px solid var(--rg-line); border-bottom:1px solid var(--rg-line);}
.rg-prev-next a {display:flex; gap:16px; align-items:center; padding:14px 4px; color:#526167; font-size:14px;}
.rg-prev-next a + a {border-top:1px solid var(--rg-line);}
.rg-prev-next span {flex:0 0 52px; color:var(--rg-muted); font-size:12px;}
.rg-prev-next strong {overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500;}
.rg-view-bottom {justify-content:flex-end; padding-top:20px;}

/* modal */
.rg-modal-lock {overflow:hidden;}
.rg-modal {position:fixed; z-index:100000; inset:0; display:none; color:#fff;}
.rg-modal.is-open {display:block;}
.rg-modal-backdrop {position:absolute; inset:0; background:rgba(4,8,10,.9);}
.rg-modal-panel {position:absolute; inset:0; display:grid; grid-template-columns:68px minmax(0, 1fr) 68px; grid-template-rows:56px minmax(0, 1fr);}
.rg-modal-top {grid-column:1 / -1; display:flex; z-index:1; align-items:center; justify-content:flex-end; gap:15px; padding:0 18px; background:rgba(0,0,0,.2); font-size:13px;}
.rg-modal-counter {margin-right:auto; color:rgba(255,255,255,.8);}
.rg-modal-original {color:#fff; opacity:.85;}
.rg-modal-close {width:38px; height:38px; border:0; color:#fff; background:transparent; font-size:34px; line-height:1; cursor:pointer; opacity:.85;}
.rg-modal-arrow {z-index:1; border:0; color:#fff; background:transparent; font-size:37px; cursor:pointer; opacity:.72; transition:.2s ease;}
.rg-modal-arrow:hover {opacity:1; background:rgba(255,255,255,.05);}
.rg-modal-arrow:disabled {opacity:.15; cursor:default;}
.rg-modal-stage {display:flex; min-width:0; min-height:0; align-items:center; justify-content:center; overflow:auto; padding:18px;}
.rg-modal-image {display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain;}
.rg-skin-error {margin:15px 0; padding:15px; border:1px solid #efcaca; border-radius:8px; color:#a33333; background:#fff3f3;}

/* delegated basic form refinements */
#bo_w, #bo_vc {max-width:1200px; margin-left:auto; margin-right:auto;}
#bo_w .btn_submit, #bo_vc .btn_submit {background:var(--rg-point);}

@media (max-width:1100px) {
    .rg-grid {grid-template-columns:repeat(3, minmax(0, 1fr));}
}
@media (max-width:760px) {
    .rg-board {padding-left:14px; padding-right:14px;}
    .rg-grid {grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px 10px;}
    .rg-toolbar {align-items:flex-end;}
    .rg-icon-btn {width:38px; min-height:38px;}
    .rg-write-btn, .rg-light-btn {min-height:38px; padding:0 11px; font-size:13px;}
    .rg-card {border-radius:10px;}
    .rg-card-body {padding:12px 11px 11px;}
    .rg-card-title {height:40px; font-size:14px;}
    .rg-card-meta {gap:5px; margin-top:10px; font-size:11px;}
    .rg-card-meta span:first-child {display:none;}
    .rg-thumb-cover {display:none;}
    .rg-view-title {font-size:22px;}
    .rg-view-toolbar {align-items:flex-start;}
    .rg-view-toolbar-left {display:none;}
    .rg-view-toolbar-right {justify-content:flex-end; width:100%;}
    .rg-view-content {padding-top:26px; font-size:15px;}
    .rg-modal-panel {grid-template-columns:45px minmax(0, 1fr) 45px;}
    .rg-modal-stage {padding:8px;}
    .rg-modal-arrow {font-size:28px;}
    .rg-file-list li {display:block;}
    .rg-file-list li span {display:block; margin-top:3px;}
}
@media (max-width:390px) {
    .rg-grid {gap:12px 8px;}
    .rg-card-body {padding:10px 9px;}
    .rg-card-title {height:38px; font-size:13px;}
    .rg-card-meta {font-size:10px;}
    .rg-card-icons {display:none;}
    .rg-total {font-size:13px;}
    .rg-toolbar-buttons {gap:4px;}
    .rg-icon-btn {width:35px; min-height:35px;}
    .rg-write-btn {min-height:35px; padding:0 9px;}
}
