/* =========================================================================
   index.css - 상담일지 목록(index.php) 전용 스타일
   (테이블 / 하트 / 선택 모드 / 하단 액션 배너 / 알림 패널)
   ========================================================================= */

/* 대형 화이트 라운드 통합 컨테이너 (모바일 가로 스크롤 원천 차단) */
.white-scroll-container {
  height: calc(100vh - 130px);
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  scroll-behavior: smooth;
}
@media (min-width: 768px) {
  .white-scroll-container {
    overflow-x: auto;
  }
}
/* 모바일: 하단 플로팅(+) 버튼/브라우저 하단바에 페이지네이션이 짤리지 않도록 스크롤 여백 확보 */
@media (max-width: 767px) {
  #listScrollBox {
    padding-bottom: calc(110px + env(safe-area-inset-bottom, 0px));
  }
}
.toss-table {
  border-collapse: separate;
  border-spacing: 0;
}
.toss-table thead th {
  position: sticky;
  top: 0;
  z-index: 30;
  background-color: #FFFFFF !important;
  border-top: 1px solid #E5E8EB;
  border-bottom: 1px solid #E5E8EB;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
}

/* 하트(상단 고정) 버튼 스타일 및 팝 애니메이션 */
.pin-heart-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: none;
  background: transparent;
  color: #D1D6DB;
  cursor: pointer;
  transition: transform 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}
.pin-heart-btn:hover {
  background-color: #FFF0F1;
  color: #F04452;
}
.pin-heart-btn.is-pinned {
  color: #F04452;
  animation: heartPop 0.28s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes heartPop {
  0% { transform: scale(0.8); }
  50% { transform: scale(1.28); }
  100% { transform: scale(1); }
}

/* 선택 모드용 커스텀 체크박스 */
.row-check {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 6px;
  border: 2px solid #D1D6DB;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: all 0.15s ease;
  flex-shrink: 0;
  margin: 0;
}
.row-check:checked {
  background: #3182F6;
  border-color: #3182F6;
}
.row-check:checked::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 1px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
}

/* 하단 고정 선택 액션 배너 슬라이드업 */
#selectActionBar.is-open {
  display: flex !important;
  animation: selectBarUp 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes selectBarUp {
  from { opacity: 0; margin-bottom: -24px; }
  to { opacity: 1; margin-bottom: 0; }
}

/* 알림 종 흔들림 애니메이션 */
@keyframes bellRing {
  0%, 100% { transform: rotate(0); }
  20%, 60% { transform: rotate(14deg); }
  40%, 80% { transform: rotate(-14deg); }
}
.is-ringing svg {
  animation: bellRing 0.6s ease-in-out;
  color: #3182F6;
}

/* 알림 드롭다운 패널 애니메이션 */
.noti-dropdown-panel {
  display: none;
}
.noti-dropdown-panel.is-open {
  display: flex;
  animation: notiFadeIn 0.18s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes notiFadeIn {
  from { opacity: 0; transform: translateY(-6px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}