@charset "utf-8"; /* notice :: style.css */ /* --- Global Variables --- */ :root { --primary-color: #0056b3; /* 파란색 (메인) */ --primary-hover: #004494; --secondary-color: #6c757d; /* 회색 (보조) */ --secondary-hover: #5a6268; --danger-color: #dc3545; /* 붉은색 (삭제/경고) */ --danger-hover: #c82333; --light-gray: #f8f9fa; --border-color: #dee2e6; --text-color: #333; --bg-color: #fff; } /* 전체 배경 흰색 설정 */ #notice-board { background-color: var(--bg-color); color: var(--text-color); } /* --- 레이아웃 (3단 컬럼) --- */ #notice-board .three-column-layout { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; } /*#notice-board .layout-sidebar-left,*/ /*#notice-board .layout-sidebar-right {*/ /* flex: 0 0 200px;*/ /* max-width: 200px;*/ /*}*/ #notice-board .layout-main-content, #notice-board .layout-main-content1 { flex: 1; min-width: 0; background: #fff; /* 메인 컨텐츠 배경 흰색 */ padding: 20px; border: 1px solid var(--border-color); /* 테두리 추가로 영역 구분 */ border-radius: 8px; } /* 사이드바 내부 */ /*#notice-board .sidebar-inner {*/ /* background: #f8f9fa;*/ /* padding: 15px;*/ /* border-radius: 5px;*/ /* min-height: 300px;*/ /* border: 1px solid var(--border-color);*/ /*}*/ #notice-board .three-column-layout { display: flex; gap: 30px; } #notice-board .layout-sidebar-left, #notice-board .layout-sidebar-right { flex: 0 0 240px; position: sticky; top: 100px; align-self: flex-start; } #notice-board .layout-main-content { flex: 1; min-width: 0; } /* 반응형 */ /* PC 전용 - 모바일 반응형 제거 */ /* --- 버튼 스타일 (공통) --- */ .btn { display: inline-flex; align-items: center; justify-content: center; padding: 8px 16px; border-radius: 4px; font-size: 14px; font-weight: 500; text-decoration: none; cursor: pointer; transition: all 0.2s; border: 1px solid transparent; line-height: 1.5; } /* 파란색 버튼 (글쓰기, 저장, 수정 등) */ .btn-primary { background-color: var(--primary-color); color: #fff; border-color: var(--primary-color); } .btn-primary:hover { background-color: var(--primary-hover); } /* 회색 버튼 (목록, 취소 등) */ .btn-secondary { background-color: #fff; color: var(--secondary-color); border-color: var(--border-color); } .btn-secondary:hover { background-color: var(--light-gray); color: #333; } /* 붉은색 버튼 (삭제) */ .btn-danger { background-color: #fff; color: var(--danger-color); border-color: var(--danger-color); } .btn-danger:hover { background-color: var(--danger-color); color: #fff; } /* --- 게시판 목록 (List) --- */ .bo-list-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding-bottom: 15px; border-bottom: 2px solid var(--primary-color); } .bo-list-total { font-weight: bold; color: #555; } .bo-list-buttons { display: flex; gap: 5px; } .btn-view-toggle { background: #fff; border: 1px solid var(--border-color); color: #555; width: 36px; height: 36px; border-radius: 4px; cursor: pointer; } .btn-view-toggle:hover { background: var(--light-gray); } /* 리스트 뷰 / 카드 뷰 전환 */ #bo_list_body[data-view-mode="card"] .bo-list-item { display: none; } #bo_list_body[data-view-mode="card"] .bo-card-item { display: flex; } #bo_list_body[data-view-mode="list"] .bo-card-item { display: none; } #bo_list_body[data-view-mode="list"] .bo-list-item { display: flex; } /* 1. 리스트형 스타일 */ .bo-list-item { display: flex; align-items: center; padding: 15px 10px; border-bottom: 1px solid var(--border-color); } .bo-list-item:hover { background-color: #f9fbff; } .item-chk { margin-right: 15px; } .item-subject { flex-grow: 1; font-size: 15px; font-weight: 500; } .item-subject a { color: #333; text-decoration: none; } .item-subject a:hover { text-decoration: underline; color: var(--primary-color); } .item-info { font-size: 13px; color: #888; margin-left: 20px; white-space: nowrap; } .item-info span { margin-left: 10px; } /* 2. 카드형 스타일 */ #bo_list_body[data-view-mode="card"] { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; margin-top: 20px; } .bo-card-item { flex-direction: column; border: 1px solid var(--border-color); border-radius: 8px; overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; background: #fff; position: relative; } .bo-card-item:hover { transform: translateY(-5px); box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .card-chk { position: absolute; top: 10px; left: 10px; z-index: 10; } .card-thumb { width: 100%; padding-top: 60%; /* 썸네일 비율 */ position: relative; background: #eee; overflow: hidden; } .card-thumb img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; } .card-body { padding: 15px; } .card-title { font-size: 16px; font-weight: bold; margin-bottom: 8px; line-height: 1.4; height: 44px; overflow: hidden; } .card-info { font-size: 13px; color: #888; display: flex; justify-content: space-between; } /* 상태 뱃지 */ .status-badge { display: inline-block; padding: 2px 6px; font-size: 11px; border-radius: 3px; color: #fff; margin-left: 5px; vertical-align: middle; } .status-active { background-color: #28a745; } /* 녹색 */ .status-scheduled { background-color: #ffc107; color: #000; } /* 노랑 */ .status-expired { background-color: #6c757d; } /* 회색 */ .status-hidden { background-color: #dc3545; } /* 빨강 */ /* --- 게시판 보기 (View) --- */ #bo_v { padding: 10px 0; } #bo_v_title { font-size: 24px; font-weight: bold; padding-bottom: 15px; border-bottom: 1px solid var(--border-color); margin-bottom: 20px; line-height: 1.4; } #bo_v_info { background: #f9f9f9; padding: 15px; border-radius: 5px; margin-bottom: 30px; font-size: 14px; color: #555; border: 1px solid #eee; } #bo_v_info dl { display: flex; margin-bottom: 5px; } #bo_v_info dt { font-weight: bold; width: 80px; color: #333; } #bo_v_info dd { flex: 1; } #bo_v_con { min-height: 200px; line-height: 1.8; font-size: 16px; margin-bottom: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--border-color); } #bo_v_con img { max-width: 100%; height: auto; } /* 첨부파일 갤러리 */ .gallery_grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 20px; } .gallery_grid img { width: 100%; height: 150px; object-fit: cover; border-radius: 4px; border: 1px solid #eee; } /* 하단 버튼 영역 */ #bo_v_bot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; } /* --- 게시판 쓰기 (Write) --- */ #bo_w .write_div { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid #f1f1f1; } #bo_w .write_div:last-child { border-bottom: none; } #bo_w .frm_label { display: block; font-weight: bold; margin-bottom: 8px; font-size: 15px; color: #333; } #bo_w .frm_input { width: 100%; height: 42px; padding: 0 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; box-sizing: border-box; } #bo_w .frm_input:focus { border-color: var(--primary-color); outline: none; } /* 노출 설정 라디오/체크박스 */ .option_group { display: flex; gap: 20px; align-items: center; } .option_group label { cursor: pointer; display: flex; align-items: center; gap: 5px; } /* 예약 날짜 입력 (달력) */ #reservation_fields { background: #f0f7ff; /* 연한 파랑 배경으로 강조 */ padding: 15px; border-radius: 5px; margin-top: -10px; margin-bottom: 20px; border: 1px solid #cce5ff; } .date_picker_group { display: flex; gap: 10px; align-items: center; } .date_item { flex: 1; } .date_divider { font-weight: bold; color: #888; } /* 파일 업로드 */ .file_upload_grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; } .file_preview { width: 100%; padding-top: 100%; background: #f8f8f8; border: 1px dashed #ccc; position: relative; cursor: pointer; border-radius: 4px; background-size: cover; background-position: center; } .file_preview:hover { border-color: var(--primary-color); } .preview_text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 12px; color: #999; text-align: center; width: 100%; } /* 버튼 그룹 */ .btn_confirm { text-align: center; margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--border-color); } .btn_confirm .btn { min-width: 100px; height: 45px; font-size: 16px; } /* Datepicker z-index 수정 (달력이 가려지지 않도록) */ .ui-datepicker { z-index: 9999 !important; }