/* 전역 폰트 설정 - Pretendard */
body {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: #2F2A25; /* Text Primary */
  background-color: #FFF2E9; /* Soft Ivory Paper - Background Base */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 제목 스타일 - Pretendard 사용 */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
  font-weight: 600;
  line-height: 1.4;
  color: #4B3A2E; /* Classic Warm Brown - Text Identity */
}

h1 { font-size: 20px; }
h2 { font-size: 18px; }
h3 { font-size: 16px; }
h4 { font-size: 14px; }
h5 { font-size: 14px; }
h6 { font-size: 14px; }

/* 본문 텍스트 */
p, span, div, label {
  font-size: 14px;
  line-height: 1.6;
}

/* 작은 텍스트 */
small, .text-xs {
  font-size: 14px;
  line-height: 1.5;
}

/* 입력 필드 */
input, textarea, select {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
  font-size: 14px;
  border-radius: 0 !important;
}

/* 버튼 */
button {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
  font-size: 14px;
  font-weight: 500;
  border-radius: 0 !important;
}

/* 이미지 콘테이너 */
.image-container {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 70px;
}

table, th, td {
  text-align: center;
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
  font-size: 14px;
}

/* 테이블 헤더 브랜드 컬러 */
th,
thead th,
.ant-table-th,
.table.table-bordered thead th {
  color: #E86F3A !important; /* 브랜드 Primary 컬러 */
}

hr {
  height: 5px;
  background-color: #D6CBC0; /* Divider color */
  border: 1;
}

p.lead {
  border-radius: 0 !important;
  border: 1.5px solid #7FA78C; /* Olive Sage Green - Secondary */
  padding: 10px; 
}

/* 텍스트 에어리어 속성 */
.form-control.no-gray {
  background-color: #FFFFFF; /* White - Card background */
  box-shadow: none !important;
  border-color: #E3D9D0; /* Border color */
  -webkit-box-shadow: none;
  border-radius: 0 !important;
}

/* 모든 form-control 입력 필드를 각지게 */
.form-control,
.form-control:focus,
.form-control:hover {
  border-radius: 0 !important;
}

/* 전역 버튼, 텍스트 필드, 셀렉트 박스 hover 시 브랜드 컬러 테두리 */
button:hover:not(:disabled),
.btn:hover:not(:disabled),
.btn-default:hover:not(:disabled),
.btn-primary:hover:not(:disabled),
.btn-success:hover:not(:disabled),
.btn-info:hover:not(:disabled),
.btn-warning:hover:not(:disabled),
.btn-danger:hover:not(:disabled),
input[type="text"]:hover:not(:disabled),
input[type="email"]:hover:not(:disabled),
input[type="password"]:hover:not(:disabled),
input[type="number"]:hover:not(:disabled),
input[type="date"]:hover:not(:disabled),
input[type="time"]:hover:not(:disabled),
input[type="datetime-local"]:hover:not(:disabled),
input[type="search"]:hover:not(:disabled),
input[type="tel"]:hover:not(:disabled),
input[type="url"]:hover:not(:disabled),
input[type="file"]:hover:not(:disabled),
textarea:hover:not(:disabled),
select:hover:not(:disabled),
.form-control:hover:not(:disabled),
.input-group input:hover:not(:disabled),
.input-group select:hover:not(:disabled),
.input-group textarea:hover:not(:disabled),
.modal-content input:hover:not(:disabled),
.modal-content textarea:hover:not(:disabled),
.modal-content select:hover:not(:disabled),
[class*="ant-input"]:hover:not(:disabled),
[class*="ant-btn"]:hover:not(:disabled) {
  border-color: #E86F3A !important; /* 브랜드 Primary 컬러 */
}

/* 전역 버튼, 텍스트 필드, 셀렉트 박스 focus 시 브랜드 컬러 테두리 */
button:focus:not(:disabled),
.btn:focus:not(:disabled),
.btn-default:focus:not(:disabled),
.btn-primary:focus:not(:disabled),
.btn-success:focus:not(:disabled),
.btn-info:focus:not(:disabled),
.btn-warning:focus:not(:disabled),
.btn-danger:focus:not(:disabled),
input[type="text"]:focus:not(:disabled),
input[type="email"]:focus:not(:disabled),
input[type="password"]:focus:not(:disabled),
input[type="number"]:focus:not(:disabled),
input[type="date"]:focus:not(:disabled),
input[type="time"]:focus:not(:disabled),
input[type="datetime-local"]:focus:not(:disabled),
input[type="search"]:focus:not(:disabled),
input[type="tel"]:focus:not(:disabled),
input[type="url"]:focus:not(:disabled),
input[type="file"]:focus:not(:disabled),
textarea:focus:not(:disabled),
select:focus:not(:disabled),
.form-control:focus:not(:disabled),
.input-group input:focus:not(:disabled),
.input-group select:focus:not(:disabled),
.input-group textarea:focus:not(:disabled),
.modal-content input:focus:not(:disabled),
.modal-content textarea:focus:not(:disabled),
.modal-content select:focus:not(:disabled),
[class*="ant-input"]:focus:not(:disabled),
[class*="ant-btn"]:focus:not(:disabled) {
  border-color: #E86F3A !important; /* 브랜드 Primary 컬러 */
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(232, 111, 58, 0.2) !important; /* 브랜드 컬러 그림자 효과 */
}

/* 전역적으로 모든 버튼과 입력 필드를 각지게 처리 */
button,
.btn,
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger,
.btn-link,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="file"],
textarea,
select,
.input-group input,
.input-group select,
.input-group textarea,
.input-group-addon,
.input-group-btn button,
.modal-content input,
.modal-content textarea,
.modal-content select,
.modal-content button,
.modal-footer button,
.modal-header button,
.modal-header .close,
.datepicker input,
.datepicker table,
.datepicker .datepicker-days table,
[class*="ant-btn"],
[class*="ant-input"],
[class*="btn-"],
[id*="Btn"],
[class*="input"]:not([class*="input-group"]):not([class*="input-group-addon"]) {
  border-radius: 0 !important;
}

/* datepicker 관련 요소도 각지게 */
.datepicker table td,
.datepicker table th,
.datepicker .datepicker-days table td,
.datepicker .datepicker-days table th {
  border-radius: 0 !important;
}

/* 전역적으로 모든 div 박스, 테이블, 모달 등 컴포넌트 테두리를 각지게 처리 */
.ant-card,
.ant-card-head,
.ant-card-body,
.ant-table,
.ant-table-thead,
.ant-table-tbody,
table,
.table,
.table-bordered,
.table-condensed,
.modal-content,
.modal-dialog,
.modal-header,
.modal-body,
.modal-footer,
.ant-modal,
.ant-modal-content,
.ant-modal-header,
.ant-modal-body,
.ant-modal-footer,
.ant-form-item,
.ant-descriptions,
.ant-descriptions-table,
.ant-descriptions-row,
.ant-tag,
.ant-divider,
div[class*="card"],
div[class*="box"],
div[class*="container"]:not(.container):not([class*="mx-auto"]),
[class*="ant-card"],
[class*="ant-table"],
[class*="modal-"],
[class*="card"],
[class*="box"],
[id*="Modal"],
[id*="modal"] {
  border-radius: 0 !important;
}

/* 인라인 스타일로 border-radius가 설정된 경우도 덮어쓰기 */
.modal-content[style*="border-radius"],
.modal-header[style*="border-radius"],
.modal-footer[style*="border-radius"],
.ant-card[style*="border-radius"],
table[style*="border-radius"],
div[style*="border-radius"] {
  border-radius: 0 !important;
}

/* Tailwind rounded 클래스 오버라이드 - 모든 rounded 클래스를 각지게 처리 */
.rounded,
.rounded-sm,
.rounded-md,
.rounded-lg,
.rounded-xl,
.rounded-2xl,
.rounded-full {
  border-radius: 0 !important;
}

/* feature-box 등 특정 클래스도 각지게 */
.feature-box,
.feature-box > div {
  border-radius: 0 !important;
}

/* 이미지의 rounded는 제외 (장식적 요소) */
img.rounded,
img.rounded-xl,
img.rounded-2xl {
  border-radius: 0 !important;
}

/* 읽기전용했을때 회색표시 되는거 방지 */
.form-control[readonly].no-gray {
  background-color: #FFFFFF; /* White - Card background */
}

/* 게시글 보기에서 텍스트 에리아 아웃라인 제거 */
.textarea-no-outline:hover, 
.textarea-no-outline:active, 
.textarea-no-outline:focus {   
  outline:0px !important;
  box-shadow: none !important;
  border-color: #FFFFFF; /* White */
  -webkit-box-shadow: none;
}

.textarea-no-outline {
  outline:0px !important;
  box-shadow: none !important;
  border-color: #FFFFFF; /* White */
  -webkit-box-shadow: none;
}

/* 메뉴 배경 컬러 */ 
.navbar {
  background-color: #FFFFFF; /* White - Card background */
  color: #2F2A25; /* Text Primary */
  margin-bottom: 0;
  border-radius: 0;
}

/* 메뉴 글자 컬러 */ 
#myNavbar > ul:nth-child(1) li a {
  color: #2F2A25; /* Text Primary */
}

/* 헴버거 작대기 색깔*/
body > div.container > nav > div > div.navbar-header > button > .icon-bar {
  background-color: #2F2A25; /* Text Primary */
}

/* 메뉴 글자 마우스 오버 컬러 */
#myNavbar > ul:nth-child(1) li a:hover {
  color: #E86F3A; /* Heritage Orange */
  text-decoration: none; /* 밑줄 제거 */
}

/* 상단 메뉴와 사이드바 메뉴 hover 시 밑줄 제거 */
nav a:hover,
.menu-item:hover,
#centerMenu a:hover,
#mobileMenu a:hover,
#sidebar-user-info:hover,
#sidebar-user-info-mobile:hover,
#menu-logout:hover,
#menu-logout-mobile:hover {
  text-decoration: none !important;
}

nav a,
.menu-item,
#centerMenu a,
#mobileMenu a,
#sidebar-user-info,
#sidebar-user-info-mobile,
#menu-logout,
#menu-logout-mobile {
  text-decoration: none;
}

/* 메뉴 아이템 active 상태에서 깜빡임 방지 - transition 제거 */
.menu-item.active {
  transition: none !important;
}

/* 메뉴 아이템이 active가 아닐 때만 transition 적용 */
.menu-item:not(.active) {
  transition: background-color 150ms ease-in-out, color 150ms ease-in-out;
}

/* active 클래스 변경 시 깜빡임 방지를 위한 추가 스타일 */
.menu-item {
  will-change: auto;
}

/* 사이드바 초기 로드 시 깜빡임 방지 */
#desktopSidebar {
  opacity: 1;
  visibility: visible;
}

/* lg 이상에서 사이드바가 즉시 표시되도록 보장 */
@media (min-width: 1024px) {
  #desktopSidebar {
    display: flex !important;
  }
}

/* lg 미만에서 사이드바 숨김 */
@media (max-width: 1023px) {
  #desktopSidebar {
    display: none !important;
  }
}

/* Set height of the grid so .sidenav can be 100% (adjust as needed) */
.row.content {
  height: 450px;
}

/* Set gray background color and 100% height */
.sidenav {
  padding-top: 10px;
  background-color: #FFFFFF; /* White - Card background */
}

/* Set black background color, white text and some padding */
footer {
  background-color: #4B3A2E; /* Classic Warm Brown */
  color: #FFF2E9; /* Soft Ivory Paper - inverse text */
  padding: 15px;
}

/* On small screens, set height to 'auto' for sidenav and grid */
@media screen and (max-width: 767px) {  
  .sidenav {
    height: auto;
    padding: 15px;
  }
  .row.content {
    height: auto;
  }
}

/* 이미지 뷰어 */
#big_image img {
  border-radius: 0 !important;
  width: 100%;
  height: 300px;
  object-fit: cover;
}

/* MyCalendar.css */
/* 일요일 날짜: 빨간색 */
.fc-day-sun a {
  color: red;
}

/* 토요일 날짜: 파란색 */
.fc-day-sat a {
  color: blue;
}

/* Action Buttons Toolbar - 상단 헤더와 같은 높이로 정렬 */
.action-buttons-toolbar {
  position: fixed;
  z-index: 45;
  top: 64px; /* 헤더 높이 (h-16 = 4rem = 64px) - JavaScript 로드 전 초기 위치 */
  left: 0;
  right: 0;
  background-color: #FFFFFF;
  border-bottom: 1px solid #E3D9D0;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  transition: none !important; /* 애니메이션 제거 */
}

/* 사이드바가 있을 때 버튼 영역 위치 조정 */
@media (min-width: 1024px) {
  .action-buttons-toolbar {
    left: 224px; /* lg:ml-56 = 14rem = 224px */
  }
}

/* 버튼 영역 다음 콘텐츠가 가려지지 않도록 여백 추가 */
.action-buttons-info {
  margin-top: 0 !important; /* 주보 만들기 화면의 main 위치를 교회소식 화면과 동일하게 맞춤 */
}

/* 버튼 영역 다음 콘텐츠 스페이서 */
.action-buttons-content-spacer {
  margin-top: 20px;
}
