@charset "utf-8";

/* ============================
   공통 기본 스타일
   ============================ */

* {
    box-sizing: border-box;
}

body {
    font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1.6;
    color: #333;
    background: #f8f9fa;
}

.bbs_wrpas {
    background: transparent;
    padding: 0;
    margin: 0;
}

/* ============================
   리스트 페이지 스타일 (심플 디자인)
   ============================ */

/* 전체 컨테이너 */
#bo_list {
    width: 100%;
    background: transparent;
    padding: 0;
    margin: 0;
}

/* 지도 영역 - 심플 디자인 */
.map_container_full {
    width: 100%;
    margin: 0;
    padding: 0;
    border-radius: 0;
    overflow: hidden;
    background: #ffffff;
    border: none;
    border-bottom: 1px solid #ddd;
}

.map_header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px;
    background: #ffffff;
    color: #333;
    border-bottom: 1px solid #ddd;
}

.map_title {
    text-align: left !important;
    align-self: flex-start;
    flex: 1;
}

.map_title h2 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 600;
    color: #333;
}

.map_subtitle {
    margin: 0;
    font-size: 14px;
    color: #666;
    font-weight: 400;
}

.map_stats {
    text-align: right !important;
    align-self: flex-end;
    margin-left: auto;
}

.total_count {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 14px;
    color: #333;
}

.count_label {
    color: #666;
}

.count_number {
    font-weight: 600;
    color: #333;
}

.count_unit {
    color: #666;
}

.map_wrapper {
    width: 100%;
    position: relative;
    margin: 0;
    padding: 0;
}

#map {
    width: 100% !important;
    height: 400px !important;
    border: none;
}

/* 지도 위 버튼들 */
.main_geo_btn, .main_geo_btn_bbs, .main_geo_btn_bbs2 {
    background: #ffffff !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    padding: 8px !important;
    color: #333 !important;
}

.main_geo_btn:hover, .main_geo_btn_bbs:hover, .main_geo_btn_bbs2:hover {
    background: #f8f9fa !important;
}

/* 검색 영역 - 완전 한줄 레이아웃 */
.search_container {
    background: #ffffff;
    border: 1px solid #ddd;
    border-radius: 0;
    padding: 20px;
    margin: 0;
    border-top: none;
}

.search_form {
    width: 100%;
}

.search_row {
    display: flex;
    gap: 10px;
    align-items: center;
    width: 100%;
}

.search_select {
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #ffffff;
    font-size: 14px;
    color: #333;
    min-width: 140px;
    cursor: pointer;
    flex-shrink: 0;
}

.search_select:focus {
    outline: none;
    border-color: #007bff;
}

.search_input {
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    color: #333;
    background: #ffffff;
    flex: 1;
    min-width: 200px;
}

.search_input:focus {
    outline: none;
    border-color: #007bff;
}

.search_input::placeholder {
    color: #999;
}

.search_btn {
    padding: 10px 20px;
    background: #007bff;
    color: #ffffff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    flex-shrink: 0;
}

.search_btn:hover {
    background: #0056b3;
}

.search_btn svg {
    width: 16px;
    height: 16px;
}

/* 모바일에서는 검색 영역 세로 배치 */
@media (max-width: 767px) {
    .search_row {
        flex-direction: column;
        gap: 15px;
    }
    
    .search_select, .search_input, .search_btn {
        width: 100%;
    }
    
    .search_btn {
        justify-content: center;
    }
}

/* 모든 링크 밑줄 제거 */
.tabl_div a,
.tabl_div a:hover,
.tabl_div a:visited,
.tabl_div a:active,
.empty_list a,
.empty_list a:hover,
.empty_list a:visited,
.empty_list a:active {
    text-decoration: none !important;
}

/* 리스트 테이블 */
.tabl_div {
    width: 100%;
    background: #ffffff;
    border-radius: 0;
    overflow: hidden;
    border: 1px solid #e8ebf0;
    margin: 0;
}

.tabl_th {
    background: #f7f8fc;
    border-bottom: 1px solid #e8ebf0;
    color: #4a5568;
}

.tabl_header_row {
    display: flex;
    width: 100%;
    align-items: center;
    padding: 16px 20px;
    font-weight: 600;
    font-size: 13px;
    color: #4a5568;
    letter-spacing: 0.3px;
}

.tabl_td {
    border-bottom: 1px solid #f1f5f9;
    transition: background-color 0.2s ease;
}

.tabl_td:last-child {
    border-bottom: none;
}

.tabl_row {
    display: flex;
    width: 100%;
    align-items: center;
    padding: 20px 25px;
    position: relative;
}

.tabl_td:hover {
    background: #f7f8fc;
}

/* 컬럼 너비 조정 */
.tabl_th_li0 {
    width: 40px;
    text-align: center;
    flex-shrink: 0;
}

.tabl_th_li_num {
    width: 50px;
    text-align: center;
    padding-right: 5px;
    flex-shrink: 0;
}

.tabl_th_li1, .tabl_th_li1_mo {
    flex: 0 0 18%;
    min-width: 100px;
}

.tabl_th_li2 {
    flex: 0 0 26%;
    min-width: 160px;
    text-align: left;
}

.tabl_th_li3, .tabl_th_li3_mo {
    flex: 0 0 20%;
    min-width: 130px;
    text-align: center;
}

.tabl_th_li4 {
    flex: 0 0 16%;
    min-width: 90px;
    text-align: center;
}

.tabl_th_li5 {
    flex: 0 0 15%;
    min-width: 90px;
    text-align: center;
}

/* 체크박스 스타일 */
.th_checkbox_wrapper, .td_checkbox_wrapper {
    display: flex;
    justify-content: center;
}

.magic-checkbox {
    display: none;
}

.magic-checkbox + label {
    position: relative;
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid #ddd;
    border-radius: 3px;
    cursor: pointer;
    background: #ffffff;
}

.magic-checkbox:checked + label {
    background: #007bff;
    border-color: #007bff;
}

.magic-checkbox:checked + label:after {
    content: '';
    position: absolute;
    top: 2px;
    left: 5px;
    width: 4px;
    height: 8px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* 번호 스타일 */
.store_number {
    text-align: center;
}

.number_badge {
    display: inline-block;
    padding: 4px 10px;
    background: #4a5568;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    color: #ffffff;
}

/* 시공점명 스타일 */
.store_name a {
    color: #2d3748;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.2s ease;
}

.store_name a:hover {
    color: #4a5568;
    text-decoration: none !important;
}

.store_addr {
    font-size: 12px;
    color: #666;
    margin-top: 5px;
}

/* 주소 스타일 */
.address_wrapper {
    text-align: left;
    padding: 0 10px;
}

.address_text {
    color: #718096;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 400;
}

/* 연락처 스타일 */
.phone_wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 8px 12px;
    background: #f7f8fc;
    border-radius: 6px;
    border: 1px solid #e8ebf0;
    transition: all 0.2s ease;
}

.phone_wrapper:hover {
    background: #f0f3f7;
    border-color: #d1d9e0;
}

.phone_wrapper i {
    display: none;
}

.phone_wrapper a {
    color: #4a5568;
    text-decoration: none !important;
    font-weight: 500;
    font-size: 13px;
}

.phone_wrapper a:hover {
    color: #2d3748;
    text-decoration: none !important;
}

/* 모바일에서 연락처는 왼쪽 정렬 */
@media (max-width: 767px) {
    .phone_wrapper.mobile {
        display: none;
    }
}

/* 카테고리 스타일 */
.category_wrapper {
    text-align: center;
}

.bo_cate_link {
    color: #4a5568;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 500;
    padding: 8px 12px;
    background: #f7f8fc;
    border-radius: 6px;
    border: 1px solid #e8ebf0;
    transition: all 0.2s ease;
    display: inline-block;
}

.bo_cate_link:hover {
    color: #2d3748;
    background: #f0f3f7;
    border-color: #d1d9e0;
    text-decoration: none;
}

/* 위치보기 버튼 */
.location_wrapper {
    text-align: center;
}

.location_btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    background: #4a5568;
    color: #ffffff;
    text-decoration: none !important;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    transition: all 0.2s ease;
}

.location_btn:hover {
    background: #2d3748;
    color: #ffffff;
    text-decoration: none;
}

.location_btn i {
    font-size: 12px;
}

/* 빈 목록 스타일 */
.empty_list {
    text-align: center;
    padding: 60px 20px;
    color: #666;
}

.empty_icon {
    font-size: 48px;
    color: #ccc;
    margin-bottom: 20px;
}

.empty_text {
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 10px;
    color: #333;
}

.empty_subtext {
    font-size: 14px;
    color: #666;
    margin-bottom: 20px;
}

.empty_contact {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.contact_btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 10px 20px;
    text-decoration: none !important;
    border-radius: 4px;
    font-size: 14px;
}

.phone_btn {
    background: #28a745;
    color: #ffffff;
    text-decoration: none !important;
}

.phone_btn:hover {
    background: #1e7e34;
    color: #ffffff;
    text-decoration: none !important;
}

.list_btn {
    background: #6c757d;
    color: #ffffff;
    text-decoration: none !important;
}

.list_btn:hover {
    background: #545b62;
    color: #ffffff;
    text-decoration: none !important;
}

/* 리스트 하단 정보 */
.list_footer {
    padding: 16px 20px;
    background: #f7f8fc;
    border-top: 1px solid #e8ebf0;
    border-left: 1px solid #e8ebf0;
    border-right: 1px solid #e8ebf0;
    border-bottom: 1px solid #e8ebf0;
}

.list_info {
    text-align: center;
}

.list_count {
    font-size: 13px;
    color: #718096;
    font-weight: 500;
}

.list_count strong {
    color: #4a5568;
    font-weight: 600;
}

/* 버튼 영역 */
.bo_fx {
    margin: 0;
    padding: 20px;
    background: #f7f8fc;
    border: 1px solid #e8ebf0;
}

.btn_bo_user_btm {
    display: flex;
    justify-content: center;
    gap: 10px;
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
}

.bbs_btns1, .bbs_btns2, .bbs_btns3 {
    padding: 10px 20px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #ffffff;
    color: #333;
    cursor: pointer;
    font-size: 14px;
    text-decoration: none;
}

.bbs_btns1:hover {
    background: #dc3545;
    color: #ffffff;
    border-color: #dc3545;
}

.bbs_btns2:hover {
    background: #007bff;
    color: #ffffff;
    border-color: #007bff;
}

.bbs_btns3:hover {
    background: #6c757d;
    color: #ffffff;
    border-color: #6c757d;
}

/* 모바일 대응 */
@media (max-width: 767px) {
    .map_header {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 10px;
    }
    
    .map_subtitle {
        display: none;
    }
    
    .map_stats {
        text-align: right;
    }
    
    .search_container {
        padding: 15px;
    }
    
    .tabl_header_row, .tabl_row {
        padding: 10px 5px;
        font-size: 13px;
    }
    
    .store_name a {
        font-size: 13px;
        word-break: break-word;
    }
    
    .location_btn {
        padding: 4px 8px;
        font-size: 11px;
    }
    
    .phone_wrapper {
        font-size: 12px;
        padding: 6px 8px;
    }
    
    .bo_cate_link {
        padding: 6px 8px;
        font-size: 12px;
    }
    
    .location_btn {
        padding: 4px 6px;
        font-size: 10px;
        min-width: 50px;
        white-space: nowrap;
    }
    
    .tabl_th_li_num {
        width: 40px;
    }
    
    .pc {
        display: none;
    }
    
    .mobile {
        display: none;
    }
    
    /* 체크박스가 없을 때 */
    .tabl_th_li1, .tabl_th_li1_mo {
        flex: 0 0 25%;
        min-width: 70px;
    }
    
    .tabl_th_li3, .tabl_th_li3_mo {
        flex: 0 0 40%;
        min-width: 120px;
    }
    
    .tabl_th_li5 {
        flex: 0 0 35%;
        min-width: 90px;
    }
    
    /* 체크박스가 있을 때 모바일 레이아웃 */
    .tabl_header_row .tabl_th_li0 + .tabl_th_li_num + .tabl_th_li1,
    .tabl_row .tabl_th_li0 + .tabl_th_li_num + .tabl_th_li1,
    .tabl_header_row .tabl_th_li0 + .tabl_th_li_num + .tabl_th_li1_mo,
    .tabl_row .tabl_th_li0 + .tabl_th_li_num + .tabl_th_li1_mo {
        flex: 0 0 18%;
        min-width: 60px;
    }
    
    .tabl_header_row .tabl_th_li0 ~ .tabl_th_li3,
    .tabl_row .tabl_th_li0 ~ .tabl_th_li3,
    .tabl_header_row .tabl_th_li0 ~ .tabl_th_li3_mo,
    .tabl_row .tabl_th_li0 ~ .tabl_th_li3_mo {
        flex: 0 0 36%;
        min-width: 100px;
    }
    
    .tabl_header_row .tabl_th_li0 ~ .tabl_th_li5,
    .tabl_row .tabl_th_li0 ~ .tabl_th_li5 {
        flex: 0 0 29%;
        min-width: 80px;
    }
    
    .tabl_th_li0 {
        width: 30px;
    }
    
    .tabl_th_li1_mo, .tabl_th_li3_mo {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .btn_bo_user_btm {
        flex-direction: column;
    }
    
    .bbs_btns1, .bbs_btns2, .bbs_btns3 {
        width: 100%;
        text-align: center;
    }
}

@media (min-width: 768px) {
    .mobile {
        display: none;
    }
    
    .tabl_th_li2 {
        width: 200px;
    }
    
    .tabl_th_li3, .tabl_th_li3_mo {
        width: 150px;
    }
}

/* ============================
   뷰 페이지 스타일 (심플 디자인)
   ============================ */

#bo_v {
    width: 100%;
    background: transparent;
}

/* 시공점 정보 카드 */
.store_info_card {
    background: #ffffff;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-bottom: 20px;
    overflow: hidden;
}

.store_header {
    padding: 20px;
    border-bottom: 1px solid #ddd;
    background: #f8f9fa;
}

.store_title_section {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}

.store_title {
    margin: 0;
    font-size: 24px;
    font-weight: 600;
    color: #333;
    display: flex;
    align-items: center;
    gap: 10px;
}

.store_title i {
    color: #007bff;
}

.store_category {
    padding: 4px 12px;
    background: #007bff;
    color: #ffffff;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.store_details {
    padding: 20px;
}

.store_info_layout {
    background: #ffffff;
    border: 1px solid #e8ebf0;
    border-radius: 8px;
    overflow: hidden;
}

.info_row {
    display: flex;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #f1f5f9;
    transition: background-color 0.2s ease;
}

.info_row:last-child {
    border-bottom: none;
}

.info_row:hover {
    background: #f8fafe;
}

.address_row {
    /* 주소 행 스타일 */
}

.contact_row {
    display: flex;
    flex-direction: row;
    padding: 16px 20px;
    border-bottom: 1px solid #f1f5f9;
    transition: background-color 0.2s ease;
    gap: 30px;
}

.contact_row:hover {
    background: #f8fafe;
}

.info_item {
    display: flex;
    align-items: center;
    padding: 0;
    border-bottom: none;
    flex: 1;
    transition: none;
}

.info_item:hover {
    background: transparent;
}

.info_label {
    font-weight: 600;
    color: #5a6c7d;
    font-size: 13px;
    min-width: 50px;
    margin-right: 12px;
    flex-shrink: 0;
    padding: 4px 8px;
    background: #f8fafe;
    border-radius: 4px;
    border: 1px solid #e8ebf0;
}

.info_value {
    font-size: 14px;
    color: #2d3748;
    font-weight: 500;
    flex: 1;
}

.phone_link {
    color: #4a5568;
    text-decoration: none !important;
    font-weight: 600;
    transition: color 0.2s ease;
}

.phone_link:hover {
    color: #2d3748;
    text-decoration: none !important;
}

/* 지도 섹션 */
.map_section {
    background: #ffffff;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-bottom: 20px;
    overflow: hidden;
}

.map_section .map_header {
    padding: 20px;
    border-bottom: 1px solid #ddd;
    background: #f8f9fa;
}

.map_section .map_title {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #333;
    display: flex;
    align-items: center;
    gap: 10px;
}

.map_section .map_title i {
    color: #007bff;
}

.map_section .map_subtitle {
    margin: 5px 0 0 0;
    font-size: 14px;
    color: #666;
}

.map_container {
    width: 100%;
}

.store_map {
    width: 100%;
    height: 400px;
    border: none;
}

/* 본문 내용 섹션 */
.content_section {
    background: #ffffff;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-bottom: 20px;
    overflow: hidden;
}

.content_header {
    padding: 20px;
    border-bottom: 1px solid #ddd;
    background: #f8f9fa;
}

.content_title {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #333;
    display: flex;
    align-items: center;
    gap: 10px;
}

.content_title i {
    color: #007bff;
}

.content_subtitle {
    margin: 5px 0 0 0;
    font-size: 14px;
    color: #666;
}

.content_images {
    padding: 20px;
    border-bottom: 1px solid #ddd;
}

.content_body {
    padding: 20px;
}

.content_text {
    line-height: 1.8;
    color: #333;
}

/* 액션 버튼 섹션 */
.action_buttons {
    background: #ffffff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
}

.button_group {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.admin_buttons, .user_buttons {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.btn_action {
    padding: 10px 20px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #ffffff;
    color: #333;
    cursor: pointer;
    font-size: 14px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.btn_edit:hover {
    background: #007bff;
    color: #ffffff;
    border-color: #007bff;
}

.btn_delete:hover {
    background: #dc3545;
    color: #ffffff;
    border-color: #dc3545;
}

.btn_list:hover {
    background: #6c757d;
    color: #ffffff;
    border-color: #6c757d;
}

.btn_write:hover {
    background: #28a745;
    color: #ffffff;
    border-color: #28a745;
}

/* 모바일 뷰 페이지 대응 */
@media (max-width: 767px) {
    .store_title {
        font-size: 20px;
    }
    
    .store_title_section {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .info_row {
        padding: 12px 16px;
    }
    
    .info_label {
        min-width: 45px;
        margin-right: 8px;
        padding: 3px 6px;
        font-size: 12px;
    }
    
    .info_row {
        padding: 12px 16px;
    }
    
    /* 반복 제거됨 */
    
    .button_group {
        flex-direction: column;
    }
    
    .admin_buttons, .user_buttons {
        width: 100%;
        justify-content: center;
    }
    
    .btn_action {
        flex: 1;
        text-align: center;
    }
}

/* ============================
   글쓰기 페이지 스타일 (심플 디자인)
   ============================ */

#bo_w {
    width: 100% !important;
    max-width: none !important;
    background: transparent;
}

.write_container {
    width: 100%;
    max-width: none;
    background: transparent;
}

.write_header {
    background: #ffffff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 30px;
    margin-bottom: 20px;
    text-align: center;
}

.write_title {
    margin: 0 0 10px 0;
    font-size: 28px;
    font-weight: 600;
    color: #333;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.write_title i {
    color: #007bff;
}

.write_subtitle {
    margin: 0;
    font-size: 16px;
    color: #666;
}

.write_form {
    width: 100%;
}

/* 폼 섹션 */
.form_section {
    background: #ffffff;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-bottom: 20px;
    overflow: hidden;
}

.section_title {
    margin: 0;
    padding: 20px;
    background: #f8f9fa;
    border-bottom: 1px solid #ddd;
    font-size: 18px;
    font-weight: 600;
    color: #333;
    display: flex;
    align-items: center;
    gap: 10px;
}

.section_title i {
    color: #007bff;
}

.section_subtitle {
    margin: 0;
    padding: 0 20px 20px 20px;
    background: #f8f9fa;
    border-bottom: 1px solid #ddd;
    font-size: 14px;
    color: #666;
}

.form_grid {
    padding: 20px;
}

.form_row {
    margin-bottom: 20px;
    width: 100%;
}

.form_row_group {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    width: 100%;
}

.form_row.half {
    flex: 1;
    margin-bottom: 0;
}

.form_label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: #333;
    font-size: 14px;
}

.required {
    color: #dc3545;
}

.form_input, .form_select {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    color: #333;
    background: #ffffff;
}

.form_input:focus, .form_select:focus {
    outline: none;
    border-color: #007bff;
}

.form_input::placeholder {
    color: #999;
}

/* 주소 입력 그룹 */
.address_input_group {
    display: flex;
    gap: 10px;
    width: 100%;
}

.address_input_group .form_input {
    flex: 1;
}

.address_btn {
    padding: 12px 20px;
    background: #007bff;
    color: #ffffff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 5px;
}

.address_btn:hover {
    background: #0056b3;
}

/* 지도 영역 */
.map_wrapper {
    width: 100%;
    margin: 20px 0;
}

.write_map {
    width: 100%;
    height: 400px;
    border: 1px solid #ddd;
    border-radius: 4px;
}

/* 에디터 영역 */
.editor_wrapper {
    width: 100%;
    margin: 10px 0;
}

.char_info {
    margin-bottom: 10px;
    padding: 10px;
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 13px;
    color: #666;
}

.char_counter {
    margin-top: 5px;
    text-align: right;
    font-size: 12px;
    color: #666;
}

/* 파일 첨부 */
.file_upload_row {
    margin-bottom: 15px;
    padding: 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #f8f9fa;
}

.file_input_wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.file_input {
    display: none;
}

.file_label {
    padding: 10px 20px;
    background: #007bff;
    color: #ffffff;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.file_label:hover {
    background: #0056b3;
}

.file_name {
    flex: 1;
    font-size: 14px;
    color: #666;
}

.file_desc {
    margin-top: 10px;
}

.file_delete {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    font-size: 13px;
    color: #dc3545;
    cursor: pointer;
}

.file_info {
    margin-top: 15px;
    padding: 10px;
    background: #f8f9fa;
    border-radius: 4px;
}

.file_info p {
    margin: 5px 0;
    font-size: 13px;
    color: #666;
    display: flex;
    align-items: center;
    gap: 5px;
}

/* 옵션 */
.form_options {
    margin-bottom: 20px;
    padding: 15px;
    background: #f8f9fa;
    border-radius: 4px;
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.option_item {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 14px;
    color: #333;
}

.option_checkbox {
    width: 16px;
    height: 16px;
}

/* 캡차 영역 */
.captcha_wrapper {
    padding: 20px;
    text-align: center;
}

/* 제출 버튼 */
.form_actions {
    background: #ffffff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.btn_cancel, .btn_submit {
    padding: 12px 30px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
}

.btn_cancel {
    background: #ffffff;
    color: #333;
}

.btn_cancel:hover {
    background: #6c757d;
    color: #ffffff;
    border-color: #6c757d;
}

.btn_submit {
    background: #007bff;
    color: #ffffff;
    border-color: #007bff;
}

.btn_submit:hover {
    background: #0056b3;
    border-color: #0056b3;
}

/* 모바일 글쓰기 페이지 대응 */
@media (max-width: 767px) {
    .write_header {
        padding: 20px;
    }
    
    .write_title {
        font-size: 24px;
        flex-direction: column;
        gap: 5px;
    }
    
    .form_row_group {
        flex-direction: column;
        gap: 0;
    }
    
    .form_row.half {
        margin-bottom: 20px;
    }
    
    .address_input_group {
        flex-direction: column;
    }
    
    .address_btn {
        justify-content: center;
    }
    
    .form_options {
        flex-direction: column;
        gap: 10px;
    }
    
    .form_actions {
        flex-direction: column;
    }
    
    .btn_cancel, .btn_submit {
        width: 100%;
        justify-content: center;
    }
}

/* 지도 정보창 스타일 */
.map_info_window {
    padding: 10px;
    font-size: 12px;
    line-height: 1.4;
    color: #333;
    text-align: center;
}

/* 커스텀 오버레이 스타일 */
.wrap {
    position: absolute;
    left: 0;
    bottom: 40px;
    width: 288px;
    height: 132px;
    margin-left: -144px;
    text-align: left;
    overflow: hidden;
    font-size: 12px;
    font-family: 'Malgun Gothic', dotum, '돋움', sans-serif;
    line-height: 1.5;
}

.wrap * {
    padding: 0;
    margin: 0;
}

.wrap .info {
    width: 286px;
    height: 120px;
    border-radius: 5px;
    border-bottom: 2px solid #ccc;
    border-right: 1px solid #ccc;
    overflow: hidden;
    background: #fff;
}

.wrap .info:nth-child(1) {
    border: 0;
    box-shadow: 0px 1px 2px #888;
}

.info .body {
    width: 100%;
    position: relative;
}

.info .desc {
    position: relative;
    margin: 13px 0 0 90px;
    height: 75px;
}

.desc .titles {
    font-weight: bold;
    color: #333;
    margin-bottom: 5px;
}

.desc .sub1 {
    color: #666;
    font-size: 11px;
    margin-bottom: 3px;
}

.desc .sub3 {
    color: #666;
    font-size: 11px;
}

.info .img {
    position: absolute;
    top: 6px;
    left: 5px;
    width: 73px;
    height: 71px;
    border: 1px solid #ddd;
    color: #888;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.info:after {
    content: '';
    position: absolute;
    margin-left: -12px;
    left: 50%;
    bottom: -12px;
    width: 22px;
    height: 12px;
    background: url('https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/vertex_white.png');
}

.info .link {
    color: #5085BB;
}

.info .close {
    position: absolute;
    top: 10px;
    right: 10px;
    color: #888;
    width: 17px;
    height: 17px;
    background: url('https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/overlay_close.png');
}

.info .close:hover {
    cursor: pointer;
}

.info:after {
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="22" height="12" viewBox="0 0 22 12"><polygon points="11,12 0,0 22,0" fill="%23ffffff" stroke="%23cccccc" stroke-width="1"/></svg>');
}

/* 유틸리티 클래스 */
.cut80 {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 80%;
}

.cut90 {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 90%;
}

.font-b {
    font-weight: bold;
}

.font-r {
    font-weight: normal;
}

.cb {
    clear: both;
}

/* FontAwesome 아이콘을 사용하지 않는 경우 대체 스타일 */
.fa:before {
    display: inline-block;
    margin-right: 5px;
}