@charset "utf-8";

:root {
    --primary: #2ba6a6;
    --primary-hover: #2596af;
    --foreground: #1a1a1a;
    --muted-foreground: #6b7280;
    --bg-card: #ffffff;
    --bg-accent: #f3f4f6;
    --border: #e5e7eb;
    --transition: all 0.2s ease;
}

/* 게시판 목록 */
#bo_cate {margin:25px 0}
#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_cate ul {zoom:1}
#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""}
#bo_cate li {display:inline-block;padding:2px}
#bo_cate a {display:block;line-height:28px;padding:5px 15px;border-radius:30px;border:1px solid #d6e9ff;color:#6794d3}
#bo_cate a:focus, #bo_cate a:hover, #bo_cate a:active {text-decoration:none;background:#3a8afd;color:#fff}
#bo_cate #bo_cate_on {z-index:2;background:#3a8afd;color:#fff;font-weight:bold;border:1px solid #3a8afd;
-webkit-box-shadow:inset 0 2px 5px rgb(33, 135, 202);
-moz-box-shadow:inset 0 2px 5px rgb(33, 135, 202);
box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
.td_subject img {margin-left:3px}

.selec_chk {position:absolute;top:0;left:0;width:0;height:0;opacity:0;outline:0;z-index:-1;overflow:hidden}
.chk_box {position:relative}
.chk_box input[type="checkbox"] + label {position:relative;padding-left:20px;color:#676e70;vertical-align:baseline}
.chk_box input[type="checkbox"] + label:hover{color:#2172f8}
.chk_box input[type="checkbox"] + label span {position:absolute;top:10px;left:10px;width:15px;height:15px;display:block;background:#fff;border:1px solid #d0d4df;border-radius:3px}
.write_div .chk_box input[type="checkbox"] + label, .bo_vc_w .chk_box input[type="checkbox"] + label {padding-left:20px}
.write_div .chk_box input[type="checkbox"] + label span, .bo_vc_w .chk_box input[type="checkbox"] + label span {position:absolute;top:2px;left:0;width:15px;height:15px;display:block;margin:0;background:#fff;border:1px solid #d0d4df;border-radius:3px}
.chk_box input[type="checkbox"]:checked + label {color:#000}
.chk_box input[type="checkbox"]:checked + label span {background:url(./img/chk.png) no-repeat 50% 50% #3a8afd;border-color:#1471f6;border-radius:3px}
.all_chk.chk_box input[type="checkbox"] + label span {top:0;left:0}


/* 갤러리 목록 */
#bo_gall {margin:1rem 0 5rem;}
#bo_gall h2 {/*margin:0;padding:0;width:1px;height:1px;font-size:0;line-height:0;overflow:hidden*/}
#bo_gall #gall_ul {margin:10px -10px 0;padding:0;list-style:none;zoom:1}
#bo_gall #gall_ul:after {display:block;visibility:hidden;clear:both;content:""}
#bo_gall .gall_li {}
#bo_gall .gall_li .gall_chk {position:absolute;top:0;left:0;padding:5px;z-index:1}
#bo_gall .gall_box {position:relative;margin:0 0 50px 0;border-radius:0 0 2px 2px}
#bo_gall .gall_con {position:relative}

.gall_row .col-gn-0,.gall_row .col-gn-1,.gall_row .col-gn-2,.gall_row .col-gn-3,.gall_row .col-gn-4,.gall_row .col-gn-5,.gall_row .col-gn-6,.gall_row .col-gn-7,.gall_row .col-gn-8,.gall_row .col-gn-9,.gall_row .col-gn-10 {position:relative;min-height:1px;padding-left:10px;*padding-left:0;padding-right:10px;*padding-right:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left:0}
.gall_row .col-gn-0,.gall_row .col-gn-1 {width:100%}
.gall_row .col-gn-2 {width:50%}
.gall_row .col-gn-3 {width:33.33333333%}
.gall_row .col-gn-4 {width:25%}
.gall_row .col-gn-5 {width:20%}
.gall_row .col-gn-6 {width:16.66666667%}
.gall_row .col-gn-7 {width:14.28571428%}
.gall_row .col-gn-8 {width:12.5%}
.gall_row .col-gn-9 {width:11.11111111%}
.gall_row .col-gn-10 {width:10%}

.gall_row .box_clear {clear:both}

#bo_gall .gall_now .gall_text_href a {color:#ff3061}

#bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none}
#bo_gall .gall_img {border-bottom:1px solid #eee;text-align:center;overflow:hidden}
#bo_gall .gall_img a,#bo_gall .gall_img .no_image,#bo_gall .gall_img .is_notice {display:block}
#bo_gall .gall_img img, #bo_gall .gall_img video {max-width:100%;height:auto !important}
#bo_gall .gall_img span {display:inline-block;background:#eaeaea;text-align:center;text-transform:uppercase;font-weight:bold;font-size:1.25em;color:#777}

#bo_gall .gall_text_href {margin:10px 0}
#bo_gall .gall_text_href a {font-weight:bold}
#bo_gall .gall_text_href img {margin:0 0 0 4px}
#bo_gall .bo_tit {display:block;line-height:30px;font-weight:bold;color:#000;font-size:1.2em}
#bo_gall .bo_tit .cnt_cmt {background:#e9eff5;color:#3a8afd;font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;vertical-align:middle}

#bo_gall .bo_cnt {color:#acacac;line-height:18px}
#bo_gall .profile_img img {border-radius:50%}

#bo_gall .gall_info {line-height:1.5em;line-height:20px}
#bo_gall .gall_info strong {display:inline-block;margin:0}
#bo_gall .gall_info i {font-size:12px}
#bo_gall .gall_info .gall_date,
#bo_gall .gall_info .gall_view {display:inline-block;margin-left:10px;color:#777}

#bo_gall .gall_option {position:absolute;top:10px;right:10px}
#bo_gall .gall_option strong {background:#fff;padding:5px 10px;border-radius:30px;-webkit-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);
-moz-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);
box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2)}

/* 게시판 목록 공통 */
#bo_btn_top {margin:10px 0}
#bo_btn_top:after {display:block;visibility:hidden;clear:both;content:""}
.bo_fx {margin-bottom:5px;float:right;zoom:1}
.bo_fx:after {display:block;visibility:hidden;clear:both;content:""}
.bo_fx ul {margin:0;padding:0;list-style:none}
#bo_list_total {float:left;line-height:34px;font-size:0.92em;color:#4e546f}

.btn_bo_user {float:right;margin:0;padding:0;list-style:none}
.btn_bo_user li {float:left;width:40px;text-align:center;margin-left:5px;background:#fff}
.btn_bo_user > li {position:relative}
.btn_bo_adm {float:left}
.btn_bo_adm li {float:left;margin-right:5px}
.btn_bo_adm input {padding:0 8px;border:0;background:#d4d4d4;color:#666;text-decoration:none;vertical-align:middle}
.bo_notice td {background:#fff6fa !important;border-bottom:1px solid #f8e6ee}
.bo_notice td a {font-weight:bold}
.bo_notice .notice_icon {display:inline-block;line-height:25px;border-radius:5px;font-weight:bold;color:#f9267f}

.more_opt {display:none;position:absolute;top:45px;right:0;background:#fff;border:1px solid #b8bfc4;z-index:999}
.more_opt:before {content:"";position:absolute;top:-8px;right:13px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #b8bfc4 transparent}
.more_opt:after {content:"";position:absolute;top:-6px;right:13px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #fff transparent}
.more_opt li {border-bottom:1px solid #f1f1f1;padding:10px;float:inherit;width:90px;margin:0;color:#6b757c;text-align:left}
.more_opt li:last-child {border-bottom:0}
.more_opt li button, .more_opt li a {width:100%;border:0;background:#fff;color:#6b757c}
.more_opt li:hover a,
.more_opt li:hover button {color:#000}
.more_opt li i {float:right;line-height:20px}

.td_num strong {color:#000}
.bo_cate_link {display:inline-block;background:#e2eaf6;color:#3a8afd;font-weight:normal !important;height:20px;line-height:10px;padding:5px 8px;border-radius:5px;font-size:0.95em}
.bo_cate_link:hover {text-decoration:none}
.bo_current {color:#e8180c}

#bo_gall li.empty_list {padding:85px 0;text-align:center}

.bo_sch_wrap {display:none;width:100%;height:100%;position:fixed;top:0;left:0;z-index:999}
.bo_sch {position:absolute;top:50%;left:50%;background:#fff;text-align:left;width:330px;max-height:300px;margin-left:-125px;margin-top:-180px;overflow-y:auto;border-radius:5px;-webkit-box-shadow:1px 1px 18px rgba(0,0,0,0.2);-moz-box-shadow:1px 1px 18px rgba(0,0,0,0.2);box-shadow:1px 1px 18px rgba(0,0,0,0.2);border:1px solid #dde7e9;background:#fff;border-radius:3px}
.bo_sch:after {display:block;visibility:hidden;clear:both;content:""}
.bo_sch h3 {padding:15px;border-bottom:1px solid #e8e8e8}
.bo_sch legend {background:red}
.bo_sch form {padding:15px;display:block}
.bo_sch select {border:0;width:100%;height:40px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;margin-top:15px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
.bo_sch .sch_input {width:250px;height:38px;border:0;padding:0;background-color:transparent;float:left}
.bo_sch .sch_btn {height:38px;float:right;color:#656565;background:none;border:0;width:40px;font-size:15px}
.bo_sch .bo_sch_cls {position:absolute;right:0;top:0;color:#b5b8bb;border:0;padding:12px 15px;font-size:16px;background:#fff}
.bo_sch_bg {background:#000;background:rgba(0,0,0,0.1);width:100%;height:100%}


/* 게시판 쓰기 */
#char_count_desc {display:block;margin:0 0 5px;padding:0}
#char_count_wrap {margin:5px 0 0;text-align:right}
#char_count {font-weight:bold}

#autosave_wrapper {position:relative}
#autosave_pop {display:none;z-index:10;position:absolute !important;top:34px;right:0;width:350px;height:auto !important;height:180px;max-height:180px;border:1px solid #565656;background:#fff;
-webkit-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);
-moz-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);
box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2)}
#autosave_pop:before {content:"";position:absolute;top:-8px;right:45px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #000 transparent}
#autosave_pop:after {content:"";position:absolute;top:-7px;right:45px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #fff transparent}
html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !important}
#autosave_pop strong {position:absolute;font-size:0;line-height:0;overflow:hidden}
#autosave_pop div {text-align:center;margin:0 !important}
#autosave_pop button {margin:0;padding:0;border:0}
#autosave_pop ul {padding:15px;border-top:1px solid #e9e9e9;list-style:none;overflow-y:scroll;height:130px;border-bottom:1px solid #e8e8e8}
#autosave_pop li {padding:8px 5px;border-bottom:1px solid #fff;background:#eee;zoom:1}
#autosave_pop li:after {display:block;visibility:hidden;clear:both;content:""}
#autosave_pop a {display:block;float:left}
#autosave_pop span {display:block;float:right;font-size:0.92em;font-style:italic;color:#999}
.autosave_close {cursor:pointer;width:100%;height:30px;background:none;color:#888;font-weight:bold;font-size:0.92em}
.autosave_close:hover {background:#f3f3f3;color:#3597d9}
.autosave_content {display:none}
.autosave_del {background:url(./img/close_btn.png) no-repeat 50% 50%;text-indent:-999px;overflow:hidden;height:20px;width:20px}

/* 게시판 읽기 */
#bo_v {margin-bottom:20px;background:#fff;box-sizing:border-box}
#bo_v_con {margin:10px 0 30px;width:100%;line-height:1.7em;min-height:200px;word-break:break-all;overflow:hidden}
#bo_v_con a {color:#000;text-decoration:underline}
#bo_v_con img {max-width:100%;height:auto}

#bo_v_file h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_file ul {margin:0;list-style:none}
#bo_v_file li {padding:15px;position:relative;margin:10px 0;border:1px solid #dfdfdf;border-radius:5px;}
#bo_v_file li i {float:left;color:#b2b2b2;font-size:2.35em;margin-right:20px}
#bo_v_file a {float:left;display:block;text-decoration:none;word-wrap:break-word;color:#000}
#bo_v_file a:focus, #bo_v_file li:hover a, #bo_v_file a:active {text-decoration:underline;color:#3a8afd}

.bo_v_nb {margin:20px 0;position:relative;clear:both;text-align:left}
.bo_v_nb:after {display:block;visibility:hidden;clear:both;content:""}
.bo_v_nb li {border-top:1px solid #f1f1f1;padding:13px}
.bo_v_nb li:last-child {border-bottom:1px solid #f1f1f1}
.bo_v_nb li:hover {background:#f6f6f6}

#bo_v_atc {min-height:200px;height:auto !important;height:200px}
#bo_v_atc_title {position:absolute;font-size:0;line-height:0;overflow:hidden}

/* =============================================
   갤러리 스킨 - 새 디자인
   ============================================= */

#bo_gall .gallery-top-section {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

#bo_gall .gallery-tabs {
    display: flex;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}
#bo_gall .gallery-tabs li { padding: 0; }
#bo_gall .gallery-tabs a {
    display: inline-block;
    padding: 12px 24px;
    color: #718096;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: all 0.2s;
}
#bo_gall .gallery-tabs a:hover { color: var(--primary); }
#bo_gall .gallery-tabs .active a,
#bo_gall .gallery-tabs #bo_cate_on a {
    color: var(--primary);
    font-weight: 600;
    border-bottom-color: var(--primary);
}

.total-info { display: flex; gap: 1.5rem; font-size: 0.9375rem; color: var(--muted-foreground); }
.total-count strong { color: var(--primary); font-weight: 700; }
.board-actions { display: flex; gap: 0.75rem; }

.btn-write {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: var(--primary);
    color: #fff;
    border-radius: 0.5rem;
    text-decoration: none;
    font-weight: 500;
    transition: var(--transition);
}
.btn-write:hover { background: var(--primary-hover); transform: translateY(-2px); }
.btn-write svg { width: 1rem; height: 1rem; }

/* 관리자 버튼 영역 */
#bo_gall .gallery-admin-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 0 20px;
    overflow: visible;
    clear: both;
}
#bo_gall .gallery-admin-left { display: flex; align-items: center; gap: 12px; }
#bo_gall .gallery-admin-right { display: flex; align-items: center; gap: 6px; }

#bo_gall .gallery-admin-btns {
    display: flex;
    align-items: center;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
}
#bo_gall .gallery-admin-btns li {
    display: inline-flex;
    align-items: center;
    position: relative;
    float: none;
    width: auto;
    background: transparent;
    margin: 0;
}
#bo_gall .gallery-admin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 34px;
    min-width: 34px;
    padding: 0 10px;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #718096;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.2s ease;
    position: static !important;
    white-space: nowrap;
}
#bo_gall .gallery-admin-btn i { font-size: 13px; margin: 0 !important; }
#bo_gall .gallery-admin-btn:hover {
    background: #f7fafc;
    border-color: #cbd5e0;
    color: #4a5568;
    text-decoration: none;
}

#bo_gall .more_opt {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 4px;
    min-width: 140px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    list-style: none;
    padding: 4px 0;
}
#bo_gall .more_opt li { display: block; width: 100%; }
#bo_gall .more_opt button {
    width: 100%;
    padding: 8px 14px;
    text-align: left;
    background: none;
    border: none;
    color: #4a5568;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 6px;
}
#bo_gall .more_opt button:hover { background: #f7fafc; color: var(--primary); }
#bo_gall .more_opt i { width: 14px; font-size: 12px; }

#bo_gall #gall_allchk { margin: 0; padding: 0; display: inline-flex; align-items: center; }

#bo_gall .gallery-search-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 34px;
    padding: 0 12px;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #718096;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.2s;
}
#bo_gall .gallery-search-btn:hover { background: #f7fafc; border-color: #cbd5e0; color: #4a5568; }

#bo_gall .gallery-total { font-size: 14px; color: #4a5568; }
#bo_gall .gallery-total strong { color: var(--primary); font-weight: 600; }

/* 갤러리 그리드 */
#bo_gall #gall_ul.gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(1, 1fr) !important;
    gap: 24px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    overflow: hidden;
}
#bo_gall #gall_ul.gallery-grid:after { display: none !important; }
@media (min-width: 640px) {
    #bo_gall #gall_ul.gallery-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 1024px) {
    #bo_gall #gall_ul.gallery-grid { grid-template-columns: repeat(4, 1fr) !important; }
}

#bo_gall .gallery-item {
    position: relative;
    float: none !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
    border: 1px solid #dbe7e7;
    border-radius: 12px;
}
#bo_gall .gallery-item .gall_chk { position: absolute; top: 8px; left: 8px; z-index: 10; }

#bo_gall .gallery-card {
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 20px rgba(0,0,0,0.07);
    transition: box-shadow 0.3s, transform 0.3s;
    cursor: pointer;
    border: none;
    position: relative;
}
#bo_gall .gallery-card:hover {
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.16);
    transform: translateY(-2px);
}

#bo_gall .gallery-img-wrap {
    display: block;
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #f1f5f9;
    text-decoration: none;
}
#bo_gall .gallery-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
#bo_gall .gallery-card:hover .gallery-thumb { transform: scale(1.05); }

#bo_gall .gallery-no-image {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #adb5bd;
    font-size: 13px;
    text-align: center;
    background: #f8f9fa;
}
#bo_gall .gallery-no-image .fa-image { font-size: 2.5em; margin-bottom: 6px; }

#bo_gall .gallery-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s;
}
#bo_gall .gallery-card:hover .gallery-overlay { background: rgba(0, 0, 0, 0.2); }
#bo_gall .gallery-camera-icon { color: #fff; opacity: 0; transition: opacity 0.3s; }
#bo_gall .gallery-card:hover .gallery-camera-icon { opacity: 1; }

#bo_gall .gallery-category-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--primary);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 12px;
    border-radius: 9999px;
    line-height: 1.6;
    z-index: 2;
}
#bo_gall .gallery-notice-label {
    position: absolute;
    top: 12px;
    left: 12px;
    background: #e53e3e;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 3px 12px;
    border-radius: 9999px;
    z-index: 2;
}

#bo_gall .gallery-info { padding: 16px; }
#bo_gall .gallery-title {
    margin: 0 0 10px;
    font-size: 1.5125rem;
    font-weight: 500;
    line-height: 1.4;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}
#bo_gall .gallery-title a { color: #1a202c; text-decoration: none; transition: color 0.2s; }
#bo_gall .gallery-title a span{color: var(--primary); font-size:1.2358rem;}
#bo_gall .gallery-title a:hover { color: var(--primary); }

#bo_gall .var(--primary)ry-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 80px 0;
    color: #718096;
    font-size: 15px;
}
#bo_gall .gallery-item.gall_now .gallery-title a { color: #e53e3e; }


/* =============================================
   게시물 읽기 (view.skin.php) 스타일
   ============================================= */

#bo_v.bov-wrap,
article#bo_v {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 2px 20px rgba(0,0,0,0.07);
    overflow: hidden;
    margin: 2rem 0 5rem;
}

.bov-header { padding: 32px 32px 24px; border-bottom: 1px solid #f1f5f9; }
.bov-category {
    display: inline-block;
    background: var(--primary);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 12px;
    border-radius: 9999px;
    margin-bottom: 12px;
}
.bov-title { font-size: 2.5rem; font-weight: 700; color: #1a202c; line-height: 1.5; margin: 0 0 20px; word-break: break-all; }

.bov-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 7px 14px;
    border-radius: 8px;
    font-size: 1.0025rem;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.2s;
    border: none;
    white-space: nowrap;
}
.bov-btn-outline { background: #fff; color: #4a5568; border: 1px solid #e2e8f0; }
.bov-btn-outline:hover { background: #f7fafc; border-color: var(--primary); color: var(--primary); text-decoration: none; }
.bov-delete-link:hover { color: #e53e3e !important; }

.bov-nav { margin: 0; border-top: 1px solid #f1f5f9; }
.bov-nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px 32px;
    border-bottom: 1px solid #f1f5f9;
    text-decoration: none;
    transition: background 0.2s;
}
.bov-nav-item:hover { background: #f8fafc; text-decoration: none; }
.bov-nav-label { display: flex; align-items: center; gap: 4px; font-size: 0.9365rem; color: #a0aec0; font-weight: 600; white-space: nowrap; min-width: 48px; }
.bov-nav-subject { flex: 1; font-size: 1.0625rem; color: #2d3748; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.more_opt.is_view_btn { top: 45px; }
.bov-more-wrap { position: relative; }
.bov-more-menu { min-width: 110px; }
.bov-more-menu li a { display: flex; align-items: center; gap: 6px; padding: 9px 14px; font-size: 13px; color: #4a5568; text-decoration: none; }
.bov-more-menu li a:hover { color: var(--primary); background: #f7fafc; }


/* =============================================
   게시물 쓰기 (write.skin.php) 스타일
   ============================================= */

.bow-wrap {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 2px 20px rgba(0,0,0,0.07);
    padding: 32px;
    margin-bottom: 32px;
}
.bow-page-title { font-size: 20px; font-weight: 700; color: #1a202c; margin: 0 0 28px; padding-bottom: 16px; border-bottom: 2px solid #f1f5f9; }
.bow-form-body { display: flex; flex-direction: column; gap: 20px; }

.bow-field { display: flex; flex-direction: column; gap: 7px; }
.bow-field-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.bow-field-col { display: flex; flex-direction: column; gap: 7px; }
.bow-label { font-size: 13px; font-weight: 600; color: #4a5568; display: flex; align-items: center; gap: 5px; }
.bow-required { color: #e53e3e; }

.bow-input {
    width: 100%;
    height: 42px;
    padding: 0 14px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 14px;
    color: #2d3748;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
}
.bow-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(79, 110, 247, 0.1); }
.bow-select {
    width: 100%;
    height: 42px;
    padding: 0 14px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 14px;
    color: #2d3748;
    background: #fff;
    cursor: pointer;
    box-sizing: border-box;
}
.bow-select:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(79, 110, 247, 0.1); }

.bow-option-list { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; margin: 0; padding: 0; }
.bow-option-item label { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: #4a5568; cursor: pointer; }

.bow-autosave-wrap { position: relative; }
.bow-autosave-btn {
    position: absolute; top: 6px; right: 8px;
    background: #f7fafc; border: 1px solid #e2e8f0; border-radius: 6px;
    font-size: 12px; color: #718096; padding: 4px 10px; cursor: pointer; white-space: nowrap;
}
.bow-autosave-btn:hover { color: var(--primary); border-color: var(--primary); }

.bow-textarea-wrap textarea, .wr_content textarea {
    width: 100%; min-height: 280px; padding: 14px;
    border: 1px solid #e2e8f0; border-radius: 8px;
    font-size: 14px; color: #2d3748; line-height: 1.7; resize: vertical; box-sizing: border-box;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.bow-textarea-wrap textarea:focus, .wr_content textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(79, 110, 247, 0.1); }
.bow-char-desc { font-size: 12px; color: #a0aec0; margin: 0; }
.bow-char-count { text-align: right; font-size: 12px; color: #a0aec0; margin-top: 4px; }

.bow-file-wrap { display: flex; flex-direction: column; gap: 8px; }
.bow-file-input { padding: 8px; border: 1px dashed #e2e8f0; border-radius: 8px; font-size: 13px; color: #4a5568; background: #f8fafc; cursor: pointer; width: 100%; box-sizing: border-box; }
.bow-file-desc { height: 36px; }
.bow-file-limit { font-size: 11px; color: #a0aec0; font-weight: 400; }
.bow-file-del { display: flex; align-items: center; gap: 6px; }
.bow-file-del-label { display: flex; align-items: center; gap: 5px; font-size: 13px; color: #e53e3e; cursor: pointer; }

.bow-submit-area { display: flex; justify-content: flex-end; gap: 10px; margin-top: 8px; padding-top: 20px; border-top: 1px solid #f1f5f9; }
.bow-btn-cancel {
    display: inline-flex; align-items: center; padding: 10px 24px;
    border-radius: 8px; font-size: 14px; font-weight: 500;
    background: #fff; color: #718096; border: 1px solid #e2e8f0; text-decoration: none; transition: all 0.2s;
}
.bow-btn-cancel:hover { background: #f7fafc; color: #4a5568; text-decoration: none; }
.bow-btn-submit {
    display: inline-flex; align-items: center; gap: 6px; padding: 10px 28px;
    border-radius: 8px; font-size: 14px; font-weight: 600;
    background: var(--primary); color: #fff; border: none; cursor: pointer; transition: all 0.2s;
}
.bow-btn-submit:hover { background: #3b5de7; }
.bow-btn-submit:disabled { opacity: 0.6; cursor: not-allowed; }

@media (max-width: 640px) {
    .bow-wrap { padding: 20px 16px; }
    .bow-field-row { grid-template-columns: 1fr; }
    .bow-submit-area { justify-content: stretch; }
    .bow-btn-cancel, .bow-btn-submit { flex: 1; justify-content: center; }
}


/* =============================================
   교수 상세 팝업 (gall- 프리픽스) - NEW DESIGN
   ============================================= */

body.gall-body-lock { overflow: hidden; }

.gall-popup {
    display: flex; align-items: center; justify-content: center;
    position: fixed; inset: 0; z-index: 10000;
    opacity: 0; pointer-events: none; transition: opacity 0.25s ease;
}
.gall-popup.gall-open { opacity: 1; pointer-events: auto; }
.gall-popup-bg {
    position: absolute; inset: 0;
    background: rgba(10, 15, 30, 0.55);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
/* 스크롤바 표시 */
.gall-popup-wrap {
    position: relative; z-index: 1;
    background: #fff; border-radius: 20px;
    width: min(680px, calc(100vw - 32px));
    max-height: calc(100vh - 48px); overflow-y: auto;
    box-shadow: 0 32px 80px rgba(0,0,0,0.22), 0 8px 24px rgba(0,0,0,0.1);
    transform: translateY(20px) scale(0.96);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
}
.gall-popup-wrap::-webkit-scrollbar { width: 6px; display: block; }
.gall-popup-wrap::-webkit-scrollbar-track { background: transparent; }
.gall-popup-wrap::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }
.gall-popup-wrap::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.gall-popup.gall-open .gall-popup-wrap { transform: translateY(0) scale(1); }

.gall-popup-close {
    position: absolute; top: 16px; right: 16px; z-index: 10;
    display: flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; border-radius: 50%;
    border: 1px solid #e2e8f0; background: #fff; color: #64748b;
    cursor: pointer; transition: all 0.2s;
}
.gall-popup-close:hover { background: #f8fafc; color: #1a202c; border-color: #94a3b8; transform: rotate(90deg); }

.gall-popup-loading {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 80px 40px; gap: 16px; color: #64748b; font-size: 14px;
}
.gall-spinner {
    width: 36px; height: 36px;
    border: 3px solid #e2e8f0; border-top-color: #2563eb;
    border-radius: 50%; animation: gall-spin 0.7s linear infinite;
}
@keyframes gall-spin { to { transform: rotate(360deg); } }

.gall-popup-inner { padding: 36px 36px 32px; }

/* 상단: 사진 + 기본정보 */
.gall-popup-top {
    display: flex; gap: 28px; align-items: stretch;
    margin-bottom: 28px; padding-bottom: 24px;
    border-bottom: 2px solid #f1f5f9;
}
.gall-popup-photo {
    flex-shrink: 0;
    width: 140px; height: 175px; border-radius: 12px;
    overflow: hidden; background: #f1f5f9;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.gall-popup-img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }

.gall-popup-meta {
    flex: 1; min-width: 0;
    display: flex; flex-direction: column;
    justify-content: space-between;
    padding: 4px 0;
}
.gall-popup-name {
    font-size: 26px; font-weight: 800; color: #0f172a; margin: 0;
    line-height: 1.2; letter-spacing: -0.02em;
}
/* 직책+소속+연락처 하단 묶음 */
.gall-popup-meta-bottom {
    display: flex; flex-direction: column; gap: 8px;
}

/* 직책 */
.gall-popup-position:empty { display: none; }
.gpop-position {
    display: inline-block;
    font-size: 1.0625rem; font-weight: 700; color: var(--primary); line-height: 1.4;
}

/* 소속 배지 */
.gall-popup-belong:empty { display: none; }
.gpop-belong {
    display: inline-block;
    background: #eff6ff; color: #1d4ed8;
    border: 1px solid #bfdbfe;
    font-size: 12px; font-weight: 600;
    padding: 3px 12px; border-radius: 9999px; line-height: 1.6;
}

/* 연락처 */
.gall-popup-contacts { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.gpop-contact-item { display: flex; align-items: center; gap: 8px; }
.gpop-contact-item svg { flex-shrink: 0; color: #94a3b8; }
.gpop-contact-label {
    font-size: 0.9358rem; font-weight: 700; color: #64748b;
    background: #f8fafc; border: 1px solid #e2e8f0;
    padding: 1px 8px; border-radius: 4px;
    min-width: 38px; text-align: center; flex-shrink: 0;
}
.gpop-contact-val { color: #374151; font-size: 0.9358rem; }

/* 하단 섹션 */
.gall-popup-sections { display: flex; flex-direction: column; }
.gpop-section { padding: 18px 0; border-bottom: 1px solid #f8fafc; }
.gpop-section:last-child { border-bottom: none; padding-bottom: 0; }
.gpop-section-title {
    display: flex; align-items: center; gap: 7px;
    font-size: 1.0625rem; font-weight: 700; color: var(--primary); margin: 0 0 10px;
}
.gpop-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.gpop-list li { position: relative; padding-left: 15px; font-size: 0.9358rem; color: #475569; line-height: 1.7; }
.gpop-list li::before { content: '◆'; position: absolute; left: 0; color: #93c5fd; font-size: 6px; top: 7px; }

@media (max-width: 600px) {
    .gall-popup-top { flex-direction: column; align-items: center; gap: 16px; }
    .gall-popup-contacts { align-items: flex-start; width: 100%; }
    .gall-popup-inner { padding: 24px 20px; }
    .gall-popup-name { font-size: 20px; }
    .gall-popup-photo { width: 100px; height: 125px; }
}


/* =============================================
   상단 정보 / 로그인
   ============================================= */

.board-top-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #f1f5f9;
}
.board-login-area { display: flex; align-items: center; }
.btn-login {
    display: inline-flex; align-items: center; gap: 0.5rem;
    padding: 0.5rem 1rem; background: var(--primary); color: #fff;
    border-radius: 0.5rem; text-decoration: none; font-size: 0.9375rem; font-weight: 500; transition: var(--transition);
}
.btn-login:hover { background: var(--primary-hover); transform: translateY(-2px); }
.btn-login svg { width: 1.125rem; height: 1.125rem; }
.login-user-info { display: flex; align-items: center; gap: 0.75rem; }
.user-icon { width: 1.5rem; height: 1.5rem; color: var(--primary); }
.user-name { font-weight: 600; color: var(--foreground); font-size: 1.0625rem; }
.btn-logout {
    display: inline-flex; align-items: center; gap: 0.375rem;
    padding: 0.375rem 0.75rem; background: #fff; color: var(--muted-foreground);
    border: 1px solid var(--border); border-radius: 0.375rem; text-decoration: none; font-size: 0.9375rem; transition: var(--transition);
}
.btn-logout:hover { background: #fef2f2; border-color: #ef4444; color: #ef4444; }
.btn-logout svg { width: 1rem; height: 1rem; }

#bo_gall .bo_fx { display: none !important; }
#bo_gall ~ .bo_fx, .bo_fx { position: static !important; float: none !important; }


/* =============================================
   view.skin.php - 교수 프로필 카드
   ============================================= */

.pf-card {
    display: flex;
    gap: 32px;
    align-items: flex-start;
    padding: 32px 36px;
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
}
.pf-photo-wrap {
    flex-shrink: 0;
    width: 140px;
    height: 175px;
    border-radius: 12px;
    overflow: hidden;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
}
.pf-photo { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.pf-photo-empty { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #cbd5e1; }

.pf-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; padding-top: 4px; }
.pf-name-wrap { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.pf-name { font-size: 28px; font-weight: 700; color: #1a202c; margin: 0; letter-spacing: -0.02em; line-height: 1.2; }
.pf-position { font-size: 1.0625rem; font-weight: 600; color: #2563eb; }

.pf-category-badge {
    display: inline-block;
    background: #eff6ff; color: #2563eb; border: 1px solid #bfdbfe;
    font-size: 12px; font-weight: 600; padding: 3px 12px; border-radius: 9999px; line-height: 1.6;
}

.pf-contact-list { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pf-contact-item { display: flex; align-items: center; gap: 8px; font-size: 0.9358rem; color: #64748b; }
.pf-contact-item svg { flex-shrink: 0; color: #94a3b8; }
.pf-contact-label { font-weight: 600; color: #475569; min-width: 42px; }

.pf-admin-btns { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }

.pf-sections { padding: 0 36px 36px; display: flex; flex-direction: column; gap: 0; }
.pf-section { padding: 24px 0; border-bottom: 1px solid #f1f5f9; }
.pf-section:last-child { border-bottom: none; }

.pf-section-title { display: flex; align-items: center; gap: 8px; font-size: 1.0625rem; font-weight: 700; color: #2563eb; margin: 0 0 14px; }
.pf-section-title svg { flex-shrink: 0; }

.pf-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.pf-list li { position: relative; padding-left: 16px; font-size: 0.9358rem; color: #475569; line-height: 1.7; }
.pf-list li::before { content: '◆'; position: absolute; left: 0; color: #2563eb; font-size: 7px; top: 7px; }

.pf-extra-content { font-size: 14px; line-height: 1.8; color: #2d3748; }
.pf-extra-content img { max-width: 100%; border-radius: 8px; }

@media (max-width: 600px) {
    .pf-card { flex-direction: column; align-items: center; text-align: center; padding: 24px 20px; gap: 20px; }
    .pf-photo-wrap { width: 110px; height: 138px; }
    .pf-name-wrap { justify-content: center; }
    .pf-admin-btns { justify-content: center; }
    .pf-sections { padding: 0 20px 28px; }
}


/* =============================================
   write.skin.php - 교수 정보 입력 폼
   ============================================= */

.bow-prof-section {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 20px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.bow-prof-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #2563eb;
    margin: 0 0 4px;
    padding-bottom: 12px;
    border-bottom: 1px solid #dbeafe;
}
.bow-prof-section-title svg { color: #2563eb; flex-shrink: 0; }

.bow-field-hint { font-size: 12px; color: #94a3b8; margin-top: -8px; }

.bow-textarea-field {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 14px;
    color: #2d3748;
    line-height: 1.7;
    resize: vertical;
    box-sizing: border-box;
    transition: border-color 0.2s, box-shadow 0.2s;
    font-family: inherit;
    background: #fff;
}
.bow-textarea-field:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); }