/* =====================================================================
   CRM 전역 시각 폴리시 — Sneat(Bootstrap5) 위에 얹는 최소 개선
   ---------------------------------------------------------------------
   - head.php 의 core/theme/demo 뒤에 로드 → 동일 우선순위에서 이 규칙이 이김.
   - 한글 가독성: Public Sans → Pretendard. (boxicons 아이콘 폰트는 건드리지 않음)
   - 레이아웃/색은 그대로, 폰트·라운딩만 부드럽게.
   ===================================================================== */

@font-face { font-family:'Pretendard'; src:url('/font/Pretendard-Light.woff2') format('woff2'); font-weight:300; font-display:swap; }
@font-face { font-family:'Pretendard'; src:url('/font/Pretendard-Regular.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Pretendard'; src:url('/font/Pretendard-Medium.woff2') format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Pretendard'; src:url('/font/Pretendard-SemiBold.woff2') format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Pretendard'; src:url('/font/Pretendard-Bold.woff2') format('woff2'); font-weight:700; font-display:swap; }

:root { --bs-body-font-family: 'Pretendard', 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }

/* 텍스트 요소만 Pretendard 로 (아이콘 폰트 .bx 는 제외 — font-family 명시 안 함) */
body,
.menu, .menu-link, .menu-item,
.card, .card-title, .card-header,
.btn, .form-label, .form-control, .form-select, .input-group-text,
.table, .dropdown-menu, .dropdown-item, .modal, .modal-title,
.nav, .nav-link, .badge, .alert, .breadcrumb, .pagination,
input, select, textarea, button,
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Pretendard', 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* 한글 자간 살짝 조임 */
body { letter-spacing: -0.01em; }

/* 카드/배지/버튼 라운딩 미세 조정 (BYB 톤) */
.card { border-radius: 12px; }
.badge { border-radius: 6px; }
.btn { border-radius: 8px; }
.form-control, .form-select { border-radius: 8px; }
.modal-content { border-radius: 14px; }

/* =====================================================================
   BYB 톤 CRM 리디자인 (2026-07-07) — 아파트링크 파란 #2A66D8 브랜드 톤
   밝은 여백 · 정제된 카드/테이블/사이드바 · 타이포 계층 · 부드러운 그림자
   ===================================================================== */
:root{
  --bs-primary:#2A66D8; --bs-primary-rgb:42,102,216;
  --byb-ink:#18243C; --byb-sub:#6B7686; --byb-line:#EAEDF1;
  --byb-bg:#F4F6F9; --byb-soft:#F8FAFC; --byb-hover:#F3F7FF;
  --byb-pri:#2A66D8; --byb-pri-press:#1E57C2; --byb-pri-soft:#EAF1FE;
}

/* ── 베이스 ── */
body{ background:var(--byb-bg); color:var(--byb-ink); }
.text-muted,.text-secondary{ color:var(--byb-sub)!important; }
small,.small{ color:var(--byb-sub); }

/* ── 카드 ── */
.card{
  border:1px solid var(--byb-line); border-radius:14px;
  box-shadow:0 1px 2px rgba(24,36,60,.04),0 6px 18px rgba(24,36,60,.035);
}
.card-header{ background:transparent; border-bottom:1px solid var(--byb-line); font-weight:700; color:var(--byb-ink); padding:1.05rem 1.25rem; }
.card-body{ padding:1.25rem; }

/* ── 버튼 ── */
.btn{ font-weight:600; transition:background .15s,box-shadow .15s,border-color .15s,color .15s; }
.btn-primary{ background:var(--byb-pri); border-color:var(--byb-pri); box-shadow:0 2px 6px rgba(42,102,216,.22); }
.btn-primary:hover,.btn-primary:focus,.btn-primary:active{ background:var(--byb-pri-press)!important; border-color:var(--byb-pri-press)!important; box-shadow:0 4px 11px rgba(42,102,216,.3); }
.btn-label-primary{ background:var(--byb-pri-soft); color:var(--byb-pri); border-color:transparent; }
.btn-label-primary:hover{ background:var(--byb-pri); color:#fff; }
.btn-outline-primary{ color:var(--byb-pri); border-color:rgba(42,102,216,.45); }
.btn-outline-primary:hover{ background:var(--byb-pri); border-color:var(--byb-pri); color:#fff; }
.btn-sm{ border-radius:7px; padding:.28rem .62rem; font-size:.8rem; }

/* ── 사이드바 메뉴 ── */
.menu-link{ border-radius:9px; transition:background .12s,color .12s; }
.menu-inner>.menu-item .menu-link:hover{ background:rgba(24,36,60,.045); }
.menu-item.active>.menu-link{ background:var(--byb-pri-soft); color:var(--byb-pri); font-weight:600; box-shadow:none; }
.menu-item.active>.menu-link .menu-icon{ color:var(--byb-pri); }
.menu-item.active:not(.open)>.menu-link:before{ background:var(--byb-pri); }
.menu-sub .menu-item.active>.menu-link{ color:var(--byb-pri); background:transparent; font-weight:600; }
.menu-header,.menu-header-text{ color:#9AA3AF; font-size:.7rem; letter-spacing:.045em; }

/* ── 링크/색상 ── */
a{ color:var(--byb-pri); }
.text-primary{ color:var(--byb-pri)!important; }
.bg-primary{ background-color:var(--byb-pri)!important; }

/* ── 테이블 ── */
.table{ color:var(--byb-ink); }
.table thead th{
  background:var(--byb-soft); color:var(--byb-sub); font-weight:600; font-size:.78rem;
  text-transform:none; letter-spacing:0; border-bottom:1px solid var(--byb-line); padding:.82rem 1rem; white-space:nowrap;
}
.table tbody td{ padding:.82rem 1rem; border-color:var(--byb-line); vertical-align:middle; font-size:.86rem; }
.table tbody tr{ transition:background .1s; }
.table-hover tbody tr:hover td,.table.table-hover tbody tr:hover{ background:var(--byb-hover); }
.table>:not(caption)>*>*{ box-shadow:none; }

/* ── 폼 ── */
.form-control,.form-select{ border-color:#DCE1E8; color:var(--byb-ink); }
.form-control:focus,.form-select:focus{ border-color:var(--byb-pri); box-shadow:0 0 0 .18rem rgba(42,102,216,.12); }
.form-control::placeholder{ color:#AEB6C1; }
.form-label{ font-weight:600; color:var(--byb-ink); font-size:.82rem; margin-bottom:.4rem; }
.input-group-text{ background:var(--byb-soft); border-color:#DCE1E8; color:var(--byb-sub); }

/* ── 탭 ── */
.nav-pills .nav-link{ color:var(--byb-sub); font-weight:600; border-radius:9px; }
.nav-pills .nav-link.active{ background:var(--byb-pri); color:#fff; box-shadow:0 2px 6px rgba(42,102,216,.22); }
.nav-tabs .nav-link{ color:var(--byb-sub); font-weight:600; border:none; }
.nav-tabs .nav-link.active{ color:var(--byb-pri); border-bottom:2.5px solid var(--byb-pri); background:transparent; }

/* ── 배지 ── */
.badge{ font-weight:600; padding:.36em .62em; letter-spacing:0; }
.bg-label-success{ background:#E7F7EE!important; color:#12A85B!important; }
.bg-label-primary{ background:var(--byb-pri-soft)!important; color:var(--byb-pri)!important; }
.bg-label-warning{ background:#FFF4E5!important; color:#E5941B!important; }
.bg-label-danger{ background:#FFEAEA!important; color:#F0484A!important; }
.bg-label-secondary{ background:#EEF0F4!important; color:#6B7686!important; }
.bg-label-info{ background:#E5F3FB!important; color:#1F9BD8!important; }

/* ── 네비바(상단) ── */
.layout-navbar .navbar{ box-shadow:0 1px 0 var(--byb-line); }

/* ── 페이지네이션/드롭다운 ── */
.pagination .page-item.active .page-link{ background:var(--byb-pri); border-color:var(--byb-pri); }
.page-link{ color:var(--byb-pri); }
.dropdown-item.active,.dropdown-item:active{ background:var(--byb-pri); }

/* ── 통계 카드(대시보드) 아이콘 톤 정제 ── */
.avatar .avatar-initial{ border-radius:11px; }

/* ── 스크롤·구분선 미세 ── */
hr,.dropdown-divider{ border-color:var(--byb-line); }

/* =====================================================================
   시안2 전역 컴포넌트 레이어 (2026-07-10)
   ---------------------------------------------------------------------
   "회원관리 시안2" 디자인을 전 CRM 메뉴로 확장하기 위한 공통 유틸.
   각 페이지 뷰는 아래 클래스를 채택해 동일한 시각 언어를 갖는다.
   기존 톤 규칙 뒤에 로드되어 우선함. 새 상태색/토큰 추가.
   ===================================================================== */
:root{ --byb-line2:#DCE1E8; }

/* ── 상단 검색바: 소프트 알약 ── */
.layout-navbar .navbar-nav .nav-item.d-flex.align-items-center{
  background:var(--byb-soft); border:1px solid var(--byb-line);
  border-radius:9px; padding:.12rem .75rem; margin-right:.25rem;
}
.layout-navbar .navbar-nav .nav-item.d-flex.align-items-center .form-control{
  background:transparent!important; font-size:.85rem; min-width:180px;
}
.layout-navbar .navbar-nav .nav-item.d-flex.align-items-center .bx-search{ color:var(--byb-sub); }

/* ── 페이지 헤더 (h1 + breadcrumb + actions) ── */
.crm-page-head{ display:flex; justify-content:space-between; align-items:flex-start;
  gap:1rem; flex-wrap:wrap; margin-bottom:1.15rem; }
.crm-page-head h1,.crm-page-head .crm-page-title{ font-size:1.35rem; font-weight:700;
  color:var(--byb-ink); margin:0; letter-spacing:-.01em; line-height:1.2; }
.crm-page-head .crm-crumb{ font-size:.78rem; color:var(--byb-sub); margin-top:.25rem; }
.crm-page-head .crm-crumb i{ font-size:.85rem; vertical-align:-1px; }
.crm-page-head .crm-head-actions{ display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }

/* ── KPI 요약 스트립 ── */
.crm-kpi-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:.85rem; margin-bottom:1.1rem; }
@media (max-width:992px){ .crm-kpi-strip{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:576px){ .crm-kpi-strip{ grid-template-columns:1fr;} }
.crm-kpi{ background:#fff; border:1px solid var(--byb-line); border-radius:13px;
  padding:.9rem 1.1rem; box-shadow:0 1px 2px rgba(24,36,60,.04); }
.crm-kpi-lb{ font-size:.78rem; color:var(--byb-sub); display:flex; align-items:center; gap:.45rem; }
.crm-kpi-ic{ width:26px; height:26px; border-radius:8px; display:grid; place-items:center;
  font-size:1rem; background:var(--byb-pri-soft); color:var(--byb-pri); flex-shrink:0; }
.crm-kpi-vl{ font-size:1.5rem; font-weight:700; margin-top:.35rem; color:var(--byb-ink); line-height:1.1; }
.crm-kpi-dl{ font-size:.72rem; margin-top:.15rem; color:var(--byb-sub); }
.crm-kpi-ic.is-green{ background:#E7F7EE; color:#12A85B; } .crm-kpi-ic.is-amber{ background:#FFF4E5; color:#E5941B; }
.crm-kpi-ic.is-red{ background:#FFEAEA; color:#F0484A; } .crm-kpi-ic.is-info{ background:#E5F3FB; color:#1F9BD8; }
.crm-kpi-vl.is-green{ color:#12A85B; } .crm-kpi-vl.is-amber{ color:#E5941B; } .crm-kpi-vl.is-red{ color:#F0484A; }

/* ── 세그먼트(알약) 필터 ── */
.crm-seg{ display:inline-flex; background:#fff; border:1px solid var(--byb-line2);
  border-radius:9px; padding:.2rem; gap:.15rem; flex-wrap:wrap; }
.crm-seg .crm-seg-btn{ border:0; background:transparent; padding:.32rem .8rem; border-radius:7px;
  font-size:.8rem; font-weight:600; color:var(--byb-sub); cursor:pointer; font-family:inherit;
  display:inline-flex; align-items:center; gap:.3rem; }
.crm-seg .crm-seg-btn:hover{ color:var(--byb-ink); }
.crm-seg .crm-seg-btn.active{ background:var(--byb-pri); color:#fff; box-shadow:0 2px 6px rgba(42,102,216,.22); }
.crm-seg .crm-seg-n{ font-size:.72rem; opacity:.7; }

/* ── 아바타 이니셜 + 이름 셀 ── */
.crm-avatar{ width:34px; height:34px; border-radius:9px; display:inline-grid; place-items:center;
  font-weight:600; font-size:.82rem; flex-shrink:0; background:var(--byb-pri-soft); color:var(--byb-pri); }
.crm-avatar-sm{ width:28px; height:28px; font-size:.72rem; border-radius:8px; }
.crm-user-cell{ display:flex; align-items:center; gap:.6rem; }
.crm-user-cell .crm-user-name{ font-weight:600; color:var(--byb-ink); }
.crm-user-cell .crm-user-sub{ font-size:.75rem; color:var(--byb-sub); }

/* ── 상태 닷 배지 (opt-in: .badge 에 badge-dot 추가) ── */
.badge.badge-dot{ display:inline-flex; align-items:center; gap:.4em; }
.badge.badge-dot::before{ content:""; width:6px; height:6px; border-radius:50%;
  background:currentColor; flex-shrink:0; }

/* ── 카드 툴바 간격 정돈 ── */
.crm-toolbar{ display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }

/* ── 툴팁 폭 확대 + 가독성 (SSOT) ──
   Bootstrap 기본 .tooltip-inner 는 max-width:200px 라 도움말이 과하게 줄바꿈된다.
   CRM 은 주로 PC 에서 보므로 폭을 넓히고 왼쪽 정렬 + 줄간격을 키워 읽기 쉽게.
   좁은 화면(모바일)에서는 뷰포트를 넘지 않도록 min() 으로 상한. */
.tooltip .tooltip-inner{
  max-width: min(420px, calc(100vw - 28px));
  text-align: left;
  line-height: 1.55;
  padding: .5rem .7rem;
  font-size: .8rem;
}
