/* =============================================================
   Verdi CRM — theme-unified.css  (v5.0 · Direction A: Clean Light)
   목적: 라이트 위 다크 모달 충돌(!important 667개) 제거 → 단일 라이트·고대비·브랜드그린 통일
   원칙: 레이아웃(패딩/구조)은 기존 유지, 색/대비만 통일. 반드시 맨 마지막 로드.
   대체 대상: modal-readability-v4.21.css, report-readability-fix.css (index.html에서 링크 주석)
   ============================================================= */

:root {
  --u-green:        #16794f;
  --u-green-dark:   #0f5c3c;
  --u-green-soft:   #e6f4ec;
  --u-green-tint:   #e9f5ee;
  --u-card:         #ffffff;
  --u-border:       #e7ebf0;
  --u-border-soft:  #eef1f5;
  --u-text:         #0f172a;
  --u-text-2:       #48505c;
  --u-text-3:       #5a6675;
  --u-muted:        #9aa5b1;
  --u-input-bg:     #ffffff;
  --u-input-border: #dfe4ea;
  --u-focus:        0 0 0 3px rgba(22,121,79,0.18);
}

/* ── 오버레이 / 모달 컨테이너 ───────────────────────────── */
.modal-overlay { background: rgba(15,23,42,0.45) !important; }
.modal-overlay > .modal,
.modal-overlay > .modal.modal-detail-wide,
.modal-overlay > .modal.modal-convert-wide {
  background: var(--u-card) !important;
  border: 1px solid var(--u-border) !important;
  box-shadow: 0 24px 70px rgba(8,15,30,0.30) !important;
}

/* ── 헤더 : 다크 그라디언트·글로우 제거 → 라이트 ───────── */
.modal-overlay > .modal > .modal-header,
.modal .modal-header {
  background: var(--u-card) !important;
  border-bottom: 1px solid var(--u-border-soft) !important;
  color: var(--u-text) !important;
}
.modal-overlay > .modal > .modal-header::before,
.modal .modal-header::before { display: none !important; content: none !important; }
.modal-header, .modal-header h1, .modal-header h2, .modal-header h3,
.modal-title, .modal-header .modal-title { color: var(--u-text) !important; }
.modal-header .modal-subtitle, .modal-header small { color: var(--u-text-3) !important; }
.modal-close { color: var(--u-text-3) !important; background: none !important; }
.modal-close:hover { background: #f2f5f8 !important; color: var(--u-text) !important; }

/* ── 본문 / 섹션 ────────────────────────────────────────── */
.modal-overlay > .modal > .modal-body,
.modal .modal-body { background: var(--u-card) !important; color: var(--u-text) !important; }
.modal-body, .modal-body p, .modal-body span, .modal-body div, .modal-body li { color: var(--u-text); }
.form-section { background: var(--u-card) !important; border-bottom: 1px solid var(--u-border-soft) !important; }
.form-section-title, .form-section h3, .form-section h4 { color: var(--u-text) !important; }

/* 본문 스크롤바 : 인디고 → 그린 */
.modal-overlay > .modal > .modal-body { scrollbar-color: rgba(22,121,79,0.32) transparent !important; }
.modal-overlay > .modal > .modal-body::-webkit-scrollbar-thumb { background: rgba(22,121,79,0.30) !important; }
.modal-overlay > .modal > .modal-body::-webkit-scrollbar-thumb:hover { background: rgba(22,121,79,0.55) !important; }

/* ── 폼 라벨 / 입력 ────────────────────────────────────── */
.form-label { color: var(--u-text-2) !important; }
.form-label .required, .required { color: #dc2626 !important; }
/* 일일보고서 폼 전용 라벨 — 다크 테마 잔색이 흰 배경에서 안 보이던 문제 보강 */
.rpt-date-field-label,
.wi-num-label, .wi-attach-label, .wi-sched-toggle,
.rpt-att-label, .rpt-kpi-label,
.modal .wi-card label, .modal .form-group > label {
  color: var(--u-text-2) !important;
}
.form-control,
.modal input[type="text"], .modal input[type="email"], .modal input[type="number"],
.modal input[type="date"], .modal input[type="tel"], .modal input[type="search"],
.modal select, .modal textarea {
  background: var(--u-input-bg) !important;
  color: var(--u-text) !important;
  border: 1px solid var(--u-input-border) !important;
}
.form-control::placeholder, .modal input::placeholder, .modal textarea::placeholder { color: var(--u-muted) !important; }
.form-control:focus,
.modal input:focus, .modal select:focus, .modal textarea:focus {
  border-color: var(--u-green) !important;
  box-shadow: var(--u-focus) !important;
  outline: none !important;
}

/* ── 버튼 : 단일 브랜드그린 ────────────────────────────── */
.btn-primary, .form-actions .btn-primary, .modal-actions .btn-primary {
  background: linear-gradient(150deg,#16794f,#0f5c3c) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(22,121,79,0.28) !important;
}
.btn-secondary, .form-actions .btn-secondary, .modal-actions .btn-secondary {
  background: #f2f5f8 !important; color: var(--u-text-3) !important; border: 1px solid #e3e8ee !important;
}
.form-actions, .modal-actions,
.modal-overlay > .modal > .modal-body .form-actions,
.modal-overlay > .modal > .modal-body > .modal-actions {
  background: var(--u-card) !important; border-top: 1px solid var(--u-border-soft) !important;
}

/* ── 상세보기(detail) 라벨/값 ──────────────────────────── */
.detail-label { color: var(--u-text-2) !important; }
.detail-value { color: var(--u-text) !important; }
.detail-row { border-color: var(--u-border-soft) !important; }

/* =============================================================
   일일보고서 (rpt-*) : 다크 도색 제거 → 라이트·고대비
   (report-readability-fix.css 전체 대체)
   ============================================================= */
.rpt-dt-card { background: var(--u-card) !important; color: var(--u-text) !important; border: 1px solid var(--u-border) !important; }
.rpt-dt-card .rpt-dt-author-name { color: var(--u-text) !important; }
.rpt-dt-card .rpt-dt-date { color: var(--u-text-3) !important; }
.rpt-dt-card .rpt-work-title { color: var(--u-text) !important; }
.rpt-dt-card .rpt-work-detail { color: var(--u-text-2) !important; }
.rpt-dt-card .rpt-dt-item,
.rpt-dt-card .rpt-dt-item-main { background: #fcfdfe !important; color: var(--u-text) !important; border: 1px solid var(--u-border) !important; }
.rpt-dt-card .rpt-tag-row { color: var(--u-text-3) !important; }
.rpt-dt-card .rpt-customer-tag { color: var(--u-green-dark) !important; background: var(--u-green-soft) !important; }
.rpt-dt-card .rpt-customer-tag.tag-internal { color: var(--u-text-3) !important; background: #eef1f5 !important; }
.rpt-dt-card .rpt-product-tag { color: #6d28d9 !important; background: #f1ecfd !important; }
.rpt-dt-card .rpt-duration-badge { color: var(--u-text-3) !important; background: #eef1f5 !important; }
.rpt-dt-card .rpt-section-label { color: var(--u-text-3) !important; }
.rpt-dt-card .rpt-section-label i { color: var(--u-green) !important; }
.rpt-dt-card .rpt-tomorrow { color: #25543f !important; background: #eefaf3 !important; border-color: #cfe9db !important; }
.rpt-dt-card .rpt-tomorrow-text { color: #25543f !important; }
.rpt-dt-card .rpt-wi-cmt-section { background: #f7f9fb !important; color: var(--u-text) !important; border: 1px solid var(--u-border-soft) !important; }
.rpt-dt-card .rpt-wi-cmt-label { color: var(--u-text-3) !important; }
.rpt-dt-card .rpt-wi-cmt-label i { color: var(--u-green) !important; }
.rpt-dt-card .rpt-comments-section { background: #f7f9fb !important; }
.rpt-dt-card .rpt-comment { background: var(--u-card) !important; color: var(--u-text) !important; border: 1px solid var(--u-border-soft) !important; }
.rpt-dt-card .rpt-comment-author { color: var(--u-text) !important; }
.rpt-dt-card .rpt-comment-time { color: var(--u-muted) !important; }
.rpt-dt-card .rpt-comment-text { color: var(--u-text-2) !important; }
.rpt-dt-card .rpt-comment-empty,
.rpt-dt-card .rpt-comment-empty-sm { color: var(--u-muted) !important; }
.rpt-dt-card .rpt-comment-input,
.rpt-dt-card .rpt-reply-input,
.rpt-dt-card .rpt-wi-cmt-form textarea {
  background: var(--u-input-bg) !important; color: var(--u-text) !important; border: 1px solid var(--u-input-border) !important;
}
.rpt-dt-card .rpt-comment-input::placeholder,
.rpt-dt-card .rpt-reply-input::placeholder,
.rpt-dt-card .rpt-wi-cmt-form textarea::placeholder { color: var(--u-muted) !important; }
.rpt-dt-card .rpt-comment-input:focus,
.rpt-dt-card .rpt-reply-input:focus,
.rpt-dt-card .rpt-wi-cmt-form textarea:focus { border-color: var(--u-green) !important; box-shadow: var(--u-focus) !important; }

/* =============================================================
   PHASE 2 — 메인 화면 라이트 통일 (대시보드 + 크롬 + 고객테이블)
   방식: v18/v19 토큰을 라이트로 재정의(하드코딩 !important도 토큰을 읽음)
        + 사이드바는 다크 유지·글자/액센트만 재조정 + 고객테이블 라이트
   ============================================================= */

:root {
  /* ── v4.18 (전역 크롬) 토큰 → 라이트 ── */
  --v18-bg-0: #eef1f5; --v18-bg-1: #f2f5f8; --v18-bg-2: #f6f8fa; --v18-bg-3: #eef1f5;
  --v18-bg-gradient: radial-gradient(ellipse at top left, #ffffff 0%, #f6f8fa 45%, #eef1f5 100%);
  --v18-card-bg: #ffffff; --v18-card-bg-strong: #ffffff; --v18-card-border: #e7ebf0;
  --v18-card-blur: none;
  --v18-card-shadow: 0 1px 2px rgba(16,24,40,0.06); --v18-card-shadow-hv: 0 6px 20px rgba(16,24,40,0.10);
  --v18-text-primary: #0f172a; --v18-text-secondary: #5a6675; --v18-text-tertiary: #8a97a8; --v18-text-muted: #9aa5b1;

  /* ── v4.19 (대시보드 그리드) 토큰 → 라이트 ── */
  --v19-bg-start: #f6f8fa; --v19-bg-end: #eef1f5;
  --v19-card-bg: #ffffff; --v19-card-border: #e7ebf0; --v19-card-blur: none;
  --v19-text-main: #0f172a; --v19-text-sub: #5a6675; --v19-text-muted: #8a97a8; --v19-text-white: #0f172a;
}

/* ── 본문/토픽바 그림자·블러 정리 ── */
body { background-attachment: fixed !important; }
.topbar {
  background: #ffffff !important;
  border-bottom: 1px solid #e7ebf0 !important;
  box-shadow: 0 1px 2px rgba(16,24,40,0.04) !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
.topbar-title, .topbar h1, .page-title, #page-title { color: #0f172a !important; }
.topbar-date { color: #8a97a8 !important; }

/* ── 사이드바 : 다크 유지, 글자·액센트만 그린으로 통일 ── */
.sidebar { background: linear-gradient(180deg, #0f1830 0%, #0b1220 100%) !important; border-right: 1px solid #1c2740 !important; }
.sidebar-logo, .sidebar-brand, .logo, .logo-main { color: #eef2f7 !important; }
.logo-sub { color: #8c9ab5 !important; }
.nav-section-title { color: #7d8aa3 !important; }
.nav-item { color: #c3ccd8 !important; }
.nav-item:hover { background: rgba(255,255,255,0.06) !important; color: #ffffff !important; }
.nav-item.active { background: rgba(22,121,79,0.22) !important; color: #ffffff !important; border-left-color: #34d399 !important; }
.nav-item i, .nav-item.active i { color: #6ee7b7 !important; }
.user-info, .user-name { color: #eef2f7 !important; }
.sidebar-footer { background: rgba(0,0,0,0.20) !important; border-top: 1px solid #1c2740 !important; }
.sidebar-version { background: rgba(255,255,255,0.05) !important; color: #9db3a6 !important; border-top: 1px solid #1c2740 !important; }

/* ── 대시보드(v19) 카드 그림자·타이틀·KPI 색 통일 ── */
.v19-card { box-shadow: 0 1px 2px rgba(16,24,40,0.05) !important; }
.v19-card:hover { box-shadow: 0 6px 20px rgba(16,24,40,0.10) !important; border-color: #dfe4ea !important; transform: none !important; }
.v19-card-title { color: #0f172a !important; }
.v19-card-sub, .link-all { color: #16794f !important; }
.v19-kpi .v19-kpi-value { color: #0f172a !important; }
.v19-kpi[data-kpi="profit"] .v19-kpi-value { color: #16794f !important; }
.v19-heat-region .name { color: #5a6675 !important; }
.v19-heat-region .val { color: #0f172a !important; }

/* ── 고객 테이블(v420) → 라이트 ── */
.v420-kpi-card, .v420-toolbar, .v420-table-wrap { background: #ffffff !important; border: 1px solid #e7ebf0 !important; }
.v420-kpi-label { color: #8a97a8 !important; }
.v420-kpi-value { color: #0f172a !important; }
.v420-search-wrap, .v420-sort-select { background: #ffffff !important; border: 1px solid #dfe4ea !important; color: #0f172a !important; }
.v420-search-wrap input, .v420-search-input, .v420-search-wrap { color: #0f172a !important; }
.v420-search-wrap input::placeholder { color: #9aa5b1 !important; }
.v420-chip { background: #f2f5f8 !important; border: 1px solid #e7ebf0 !important; color: #5a6675 !important; }
.v420-chip.active, .v420-chip[aria-pressed="true"] { background: #e6f4ec !important; border-color: #bfe3d0 !important; color: #0f5c3c !important; }
.v420-table { background: #ffffff !important; color: #0f172a !important; }
.v420-table thead { background: #f7f9fb !important; color: #5a6675 !important; border-bottom: 1px solid #e7ebf0 !important; }
.v420-table th { color: #5a6675 !important; }
.v420-table td { color: #0f172a !important; border-bottom: 1px solid #eef1f5 !important; }
.v420-table tbody tr:hover { background: #f7faf8 !important; }
.v420-results-text, .v420-loading-text, .v420-selected-count { color: #8a97a8 !important; }
.v420-btn-export { background: #16794f !important; color: #ffffff !important; border: none !important; }
.v420-btn-reset { background: #f2f5f8 !important; color: #5a6675 !important; border: 1px solid #e3e8ee !important; }

/* ── Phase 2.1 — 고객 테이블 잔여 다크·흐린 글자 보강 ── */
.v420-table thead th {
  background: #f7f9fb !important;
  color: #5a6675 !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  border-bottom: 1px solid #e7ebf0 !important;
}
.v420-company-name { color: #0f172a !important; }   /* #f1f5f9(거의 흰색) → 진하게 */
.v420-contact-name { color: #5a6675 !important; }
.v420-contact-time { color: #8a97a8 !important; }
.v420-contact-time.is-stale { color: #b91c1c !important; background: #fdeaea !important; border-color: #f5c2c2 !important; }
.v420-contact-time.never { color: #9aa5b1 !important; }

/* ── Phase 2.2 — 대시보드 그리드 잘림/과대 늘어남 수정 ──
   기존: 모든 카드를 한 화면 높이에 강제(height:100vh + auto-rows:1fr) → 카드 과대·하단 잘림
   변경: 자연 높이 + 스크롤. 각 행 최소 높이만 확보(차트 여백), 내용따라 늘어남 */
#page-dashboard { min-height: auto !important; }
.v19-grid {
  height: auto !important;
  min-height: 0 !important;
  grid-auto-rows: minmax(158px, auto) !important;
}

/* ── Phase 2.3(수정) — 대시보드 레이아웃 정돈, 잘림 없이 ── */
.v19-grid { height:auto !important; min-height:0 !important; grid-auto-rows:min-content !important; align-items:stretch !important; }
/* KPI 숫자: 긴 NT$ 값도 안 잘리는 안전 크기(자름/nowrap 금지) */
.v19-kpi-value { font-size:24px !important; line-height:1.18 !important; white-space:normal !important; }
.v19-kpi-value.lg { font-size:24px !important; white-space:normal !important; }
.v19-kpi[data-kpi="profit"] { justify-content:center !important; }
.v19-spark { margin-top:10px !important; height:40px !important; }
/* 차트/도넛/지도/퍼널 최소높이 확보 */
.v19-chart-wrap { min-height:190px !important; }
.v19-donut-canvas { min-height:148px !important; }
.v19-country-map, .v19-country-map svg { min-height:140px !important; }
.v19-funnel { min-height:130px !important; }
/* 제목은 자연 줄바꿈(자르지 않음), 배지만 nowrap */
.v19-card-title { white-space:normal !important; overflow:visible !important; text-overflow:clip !important; line-height:1.25 !important; }
.v19-trend-badge, .v19-card-badge { white-space:nowrap !important; }
.v19-card { padding:16px 18px !important; }

/* ── Phase 2.4 — 도넛 과대 렌더 수정 + KPI 값 안전크기(줄바꿈 방지) ── */
.v19-donut-wrap { display:flex !important; flex-direction:row !important; align-items:center !important; gap:14px !important; flex:1 1 auto !important; min-height:0 !important; }
.v19-donut-canvas { flex:0 0 132px !important; width:132px !important; height:132px !important; max-width:132px !important; max-height:132px !important; min-height:0 !important; }
.v19-donut-legend { flex:1 1 auto !important; }
.v19-kpi-value { font-size:20px !important; }
.v19-kpi-value.lg { font-size:20px !important; }

/* ── Phase 2.5 — 한국어 라벨이 4칸 박스에 맞게 폰트 정리 ── */
:root { --v19-fs-section:13px !important; --v19-fs-kpi-label:12px !important; --v19-fs-body:12px !important; }
.v19-card-title { font-size:13px !important; line-height:1.3 !important; }
.v19-kpi-label { font-size:12px !important; }
.v19-trend-legend { flex-wrap:nowrap !important; }
.v19-trend-legend span, .v19-trend-legend { white-space:nowrap !important; }
.v19-heat-region .name { white-space:nowrap !important; font-size:12px !important; }
.v19-stats-grid .label, .v19-stat-tile .label, .v19-stat-label { white-space:nowrap !important; }
/* 활동통계 타일 라이트 정의(기존 다크글래스는 흰 배경에서 안 보임) */
.v19-stat-tile { background:#f7f9fb !important; border:1px solid #eef1f5 !important; }

/* ── Phase 2.6 — 카드 글자 가운데 정렬(줄바꿈 자연스럽게) ── */
.v19-card-head { justify-content:center !important; text-align:center !important; }
.v19-card-title { text-align:center !important; }
.v19-kpi-label, .v19-kpi-value { text-align:center !important; }
.v19-kpi { align-items:center !important; text-align:center !important; }

/* ── Phase 2.7 — 제목 줄바꿈 완전 금지(한 줄 고정) ── */
.v19-card-title { white-space:nowrap !important; font-size:12px !important; overflow:visible !important; }
.v19-trend-legend { font-size:10px !important; }
.page-title, #page-title, .topbar-title { white-space:nowrap !important; }

/* ── Phase 2.8 — 내용 많은 카드/차트는 2칸 폭(잘림 방지). 상단 KPI 4개만 1칸 유지 ── */
.v19-card { grid-column: span 2 !important; }
.v19-kpi[data-kpi="customer"], .v19-kpi[data-kpi="active"],
.v19-kpi[data-kpi="revenue"], .v19-kpi[data-kpi="expense"] { grid-column: span 1 !important; }
.v19-span-4 { grid-column: span 4 !important; }

/* ── Phase 2.9 — 카드 3개 제거(어제최고보고서/히트맵/매입미연동매출) ── */
#v19-best-report-card { display:none !important; }
.v19-card:has(#v19-heatmap-body) { display:none !important; }
.v19-card:has(#v19-missing-purchases-body) { display:none !important; }


/* ═══════════════════════════════════════════════════════════════════════
   PHASE 5 — PRODUCT-GRADE DASHBOARD  (Linear / Stripe / Vercel 수준)
   ① 카드 높이는 내용에 밀착 ② KPI = 아이콘칩+라벨 / 값+델타 / 풀블리드 스파크
   ③ 8px 리듬 ④ 단일 그린 액센트 ⑤ 유동 타이포(화면 자동 적응)
   ══════════════════════════════════════════════════════════════════════ */
:root{
  --d-bg:#f6f8fa; --d-card:#fff; --d-line:#e8ecf1; --d-line2:#dde3ea;
  --d-ink:#0b1220; --d-ink2:#3d4a5c; --d-mut:#8b95a5;
  --d-brand:#0f7a52; --d-brand2:#16a06b; --d-brand-bg:#e8f5ef;
  --d-up:#0f7a52; --d-up-bg:#e6f4ee; --d-dn:#c0392f; --d-dn-bg:#fdeceb;
  --d-sh:0 1px 2px rgba(11,18,32,.04), 0 1px 3px rgba(11,18,32,.03);
  --d-sh-h:0 10px 30px rgba(11,18,32,.10), 0 3px 8px rgba(11,18,32,.05);
}
body,#page-dashboard{ background:var(--d-bg)!important; }
#page-dashboard{ padding:20px 24px!important; }
.v19-grid{ gap:14px!important; grid-auto-rows:min-content!important; align-items:start!important; }
.v19-card{
  background:var(--d-card)!important; border:1px solid var(--d-line)!important;
  border-radius:14px!important; box-shadow:var(--d-sh)!important;
  padding:16px 18px!important; overflow:hidden!important; position:relative!important;
  transition:box-shadow .2s cubic-bezier(.4,0,.2,1), border-color .2s, transform .2s!important;
}
.v19-card:hover{ box-shadow:var(--d-sh-h)!important; border-color:var(--d-line2)!important; transform:translateY(-2px)!important; }
.v19-card-head{ margin-bottom:12px!important; }
.v19-card-title{ font-size:clamp(11.5px,.9vw,13px)!important; font-weight:640!important; color:var(--d-ink2)!important; letter-spacing:.1px!important; }
.v19-card.v19-kpi{ padding:15px 16px 0!important; min-height:132px!important; display:flex!important; flex-direction:column!important; align-items:stretch!important; }
.v19-kpi .v19-kpi-label{
  display:flex!important; align-items:center!important; gap:7px!important;
  font-size:clamp(10.5px,.78vw,11.5px)!important; font-weight:600!important;
  color:var(--d-mut)!important; letter-spacing:.2px!important; text-align:left!important;
  margin:0 0 10px!important; padding-right:52px!important;
}
.v19-kpi .v19-kpi-label::before{ content:''; flex:0 0 22px; width:22px; height:22px; border-radius:7px; background:var(--d-brand-bg); position:relative; }
.v19-kpi[data-kpi="customer"] .v19-kpi-label::before{ background:#eaf1fe url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3C/svg%3E") center/13px no-repeat; }
.v19-kpi[data-kpi="active"] .v19-kpi-label::before{ background:#e7f6ef url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%2310a06b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpath d='m9 11 3 3L22 4'/%3E%3C/svg%3E") center/13px no-repeat; }
.v19-kpi[data-kpi="revenue"] .v19-kpi-label::before{ background:#fef4e6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%23e08c1a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='1' x2='12' y2='23'/%3E%3Cpath d='M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6'/%3E%3C/svg%3E") center/13px no-repeat; }
.v19-kpi[data-kpi="expense"] .v19-kpi-label::before{ background:#fdecea url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%23d0483c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='m19 9-5 5-4-4-3 3'/%3E%3C/svg%3E") center/13px no-repeat; }
.v19-kpi .v19-kpi-value{
  text-align:left!important; margin:0!important;
  font-size:clamp(20px,1.85vw,30px)!important; font-weight:750!important;
  color:var(--d-ink)!important; letter-spacing:-.8px!important; line-height:1.08!important;
  font-variant-numeric:tabular-nums!important; white-space:nowrap!important;
}
.v19-kpi .v19-trend-badge{ top:15px!important; right:16px!important; font-size:10.5px!important; font-weight:680!important; padding:3px 8px!important; border-radius:7px!important; border:none!important; }
.v19-trend-badge.up{ background:var(--d-up-bg)!important; color:var(--d-up)!important; }
.v19-trend-badge.down{ background:var(--d-dn-bg)!important; color:var(--d-dn)!important; }
.v19-trend-badge i{ font-size:8px!important; margin-right:1px!important; }
.v19-kpi .v19-spark{ margin:12px -18px 0!important; height:52px!important; flex:0 0 52px!important; opacity:1!important; pointer-events:none!important; }
.v19-kpi .v19-spark canvas{ width:100%!important; height:100%!important; }
.v19-card.v19-kpi[data-kpi="profit"]{
  background:linear-gradient(140deg,#0d3b2c 0%,#0f5c3f 55%,#12764f 100%)!important;
  border-color:transparent!important; min-height:150px!important;
  box-shadow:0 8px 26px rgba(13,59,44,.24)!important; justify-content:center!important; padding:20px 22px!important;
}
.v19-card.v19-kpi[data-kpi="profit"]:hover{ box-shadow:0 14px 36px rgba(13,59,44,.32)!important; }
.v19-kpi[data-kpi="profit"] .v19-kpi-label{ color:#a9d8c3!important; font-size:12px!important; margin-bottom:12px!important; }
.v19-kpi[data-kpi="profit"] .v19-kpi-label::before{ background:rgba(255,255,255,.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%23bfe8d5' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6'/%3E%3C/svg%3E") center/13px no-repeat!important; }
.v19-kpi[data-kpi="profit"] .v19-kpi-value{ color:#fff!important; font-size:clamp(26px,2.6vw,42px)!important; letter-spacing:-1.4px!important; }
.v19-kpi[data-kpi="profit"] .v19-trend-badge{ background:rgba(255,255,255,.16)!important; color:#c8f3dd!important; }
.v19-stat-tile{ background:#f8fafc!important; border:1px solid #edf1f6!important; border-radius:10px!important; padding:12px 10px!important; }
.v19-stat-tile .value{ font-size:clamp(15px,1.2vw,19px)!important; font-weight:730!important; color:var(--d-ink)!important; letter-spacing:-.4px!important; }
.v19-stat-tile .label{ font-size:10.5px!important; color:var(--d-mut)!important; font-weight:560!important; }
.link-all,.v19-card-sub{ color:var(--d-brand)!important; font-weight:620!important; font-size:11.5px!important; }
.v19-funnel-stage .label{ color:var(--d-mut)!important; font-weight:560!important; }
.v19-funnel-stage .count{ color:var(--d-ink)!important; font-weight:720!important; }
.v19-funnel-stage .bar-wrap{ background:#eef2f6!important; height:9px!important; border-radius:5px!important; }
.v19-donut-legend .item{ font-size:11.5px!important; color:var(--d-ink2)!important; }
.v19-donut-legend .pct{ font-weight:700!important; color:var(--d-ink)!important; margin-left:auto!important; }

/* ── Phase 5.1 — 정렬 통일(좌측) + 비대칭 편집 리듬 ── */
.v19-card-head{ justify-content:flex-start!important; text-align:left!important; gap:10px!important; }
.v19-card-title{ text-align:left!important; }
.v19-card-head .link-all,.v19-card-head .v19-card-sub{ margin-left:auto!important; }
.v19-chart-wrap{ min-height:210px!important; }

/* ── Phase 5.2 — 영업이익 히어로: 2칸 + 행 높이 채움 ── */
.v19-card.v19-kpi[data-kpi="profit"]{ grid-column:span 2!important; align-self:stretch!important; }
#v19-grid-root > .v19-card:has(#v19-revenue-chart){ grid-column:span 2!important; }

/* ── Phase 5.3 — 반응형 그리드 ── */
@media (max-width:1180px){
  .v19-grid{ grid-template-columns:1fr 1fr !important; }
  .v19-card{ grid-column:span 2 !important; }
  .v19-kpi[data-kpi="customer"],.v19-kpi[data-kpi="active"],
  .v19-kpi[data-kpi="revenue"],.v19-kpi[data-kpi="expense"]{ grid-column:span 1 !important; }
  .v19-card.v19-kpi[data-kpi="profit"]{ grid-column:span 2 !important; }
  #v19-grid-root > .v19-card:has(#v19-revenue-chart){ grid-column:span 2 !important; }
  .v19-span-4{ grid-column:span 2 !important; }
}
@media (max-width:720px){
  .v19-grid{ grid-template-columns:1fr !important; }
  .v19-card, .v19-kpi[data-kpi], .v19-span-4,
  .v19-card.v19-kpi[data-kpi="profit"],
  #v19-grid-root > .v19-card:has(#v19-revenue-chart){ grid-column:span 1 !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   PHASE 6 — 고객관리(CUSTOMERS) PRODUCT-GRADE
   ══════════════════════════════════════════════════════════════════════ */
.v420-customers{ padding:20px 24px!important; background:var(--d-bg)!important; }
.v420-kpi-bar{ display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr))!important; gap:14px!important; margin-bottom:14px!important; }
.v420-kpi-card{
  background:var(--d-card)!important; border:1px solid var(--d-line)!important; border-radius:14px!important;
  box-shadow:var(--d-sh)!important; padding:15px 16px!important; display:flex!important; align-items:center!important; gap:13px!important;
  transition:box-shadow .2s, border-color .2s, transform .2s!important;
}
.v420-kpi-card:hover{ box-shadow:var(--d-sh-h)!important; border-color:var(--d-line2)!important; transform:translateY(-2px)!important; }
.v420-kpi-icon{ flex:0 0 38px!important; width:38px!important; height:38px!important; border-radius:11px!important; display:flex!important; align-items:center!important; justify-content:center!important; font-size:15px!important; background:#eef2f7!important; color:#5b6b80!important; box-shadow:none!important; }
.v420-kpi-card[data-kpi="total"]  .v420-kpi-icon{ background:#eaf1fe!important; color:#2563eb!important; }
.v420-kpi-card[data-kpi="amount"] .v420-kpi-icon{ background:var(--d-brand-bg)!important; color:var(--d-brand)!important; }
.v420-kpi-card[data-kpi="avg"]    .v420-kpi-icon{ background:#fef4e6!important; color:#e08c1a!important; }
.v420-kpi-card[data-kpi="risk"]   .v420-kpi-icon{ background:#fdecea!important; color:#d0483c!important; }
.v420-kpi-label{ font-size:11px!important; font-weight:600!important; color:var(--d-mut)!important; letter-spacing:.2px!important; margin-bottom:3px!important; }
.v420-kpi-value{ font-size:clamp(17px,1.45vw,23px)!important; font-weight:750!important; color:var(--d-ink)!important; letter-spacing:-.6px!important; font-variant-numeric:tabular-nums!important; white-space:nowrap!important; line-height:1.1!important; }
.v420-kpi-sub{ font-size:10.5px!important; color:var(--d-mut)!important; margin-top:2px!important; }
.v420-kpi-card[data-kpi="risk"] .v420-kpi-value{ color:#c0392f!important; }
.v420-kpi-card[data-kpi="risk"][data-zero="true"] .v420-kpi-value{ color:var(--d-brand)!important; }
.v420-toolbar{ background:var(--d-card)!important; border:1px solid var(--d-line)!important; border-radius:14px!important; box-shadow:var(--d-sh)!important; padding:14px 16px!important; margin-bottom:14px!important; }
.v420-search-wrap{ background:#fff!important; border:1px solid #dfe5ec!important; border-radius:10px!important; color:var(--d-ink)!important; height:38px!important; padding:0 12px!important; display:flex!important; align-items:center!important; gap:8px!important; transition:border-color .15s, box-shadow .15s!important; }
.v420-search-wrap:focus-within{ border-color:var(--d-brand)!important; box-shadow:0 0 0 3px rgba(15,122,82,.13)!important; }
.v420-search-wrap input,.v420-search-input{ background:transparent!important; border:none!important; outline:none!important; color:var(--d-ink)!important; font-size:13px!important; width:100%!important; font-family:inherit!important; }
.v420-search-wrap input::placeholder,.v420-search-input::placeholder{ color:#9aa5b4!important; }
.v420-sort-select{ background:#fff!important; border:1px solid #dfe5ec!important; border-radius:10px!important; color:var(--d-ink2)!important; height:38px!important; font-size:12.5px!important; font-weight:560!important; }
.v420-btn-reset{ background:#f4f7fa!important; border:1px solid #e5eaf0!important; border-radius:10px!important; color:var(--d-ink2)!important; height:38px!important; font-size:12.5px!important; font-weight:600!important; }
.v420-btn-reset:hover{ background:#eef2f7!important; }
.v420-filter-label{ font-size:11px!important; font-weight:680!important; color:var(--d-mut)!important; letter-spacing:.3px!important; }
.v420-chip{ background:#f4f7fa!important; border:1px solid #e5eaf0!important; color:var(--d-ink2)!important; border-radius:8px!important; font-size:12px!important; font-weight:580!important; padding:5px 11px!important; transition:all .15s!important; }
.v420-chip:hover{ background:#eaeff5!important; border-color:#d8e0e9!important; }
.v420-chip.active,.v420-chip[aria-pressed="true"]{ background:var(--d-brand)!important; border-color:var(--d-brand)!important; color:#fff!important; font-weight:640!important; }
.v420-results-text{ font-size:12px!important; color:var(--d-mut)!important; }
.v420-results-text b{ color:var(--d-ink)!important; font-weight:720!important; }
.v420-selected-count{ font-size:12px!important; color:var(--d-mut)!important; }
.v420-btn-export{ background:var(--d-brand)!important; border:none!important; border-radius:10px!important; color:#fff!important; font-size:12.5px!important; font-weight:650!important; padding:9px 16px!important; box-shadow:0 2px 8px rgba(15,122,82,.22)!important; }
.v420-btn-export:hover{ background:#0c6544!important; }
.v420-table-wrap{ background:var(--d-card)!important; border:1px solid var(--d-line)!important; border-radius:14px!important; box-shadow:var(--d-sh)!important; overflow:hidden!important; }
.v420-table{ background:transparent!important; color:var(--d-ink)!important; width:100%!important; }
.v420-table thead th{ background:#fafbfd!important; color:var(--d-mut)!important; backdrop-filter:none!important; font-size:10.5px!important; font-weight:700!important; letter-spacing:.7px!important; text-transform:uppercase!important; padding:11px 14px!important; border-bottom:1px solid var(--d-line)!important; white-space:nowrap!important; }
.v420-table td{ padding:12px 14px!important; border-bottom:1px solid #f0f3f7!important; color:var(--d-ink)!important; vertical-align:middle!important; }
.v420-table tbody tr{ transition:background .12s!important; }
.v420-table tbody tr:hover{ background:#f8fbf9!important; }
.v420-table tbody tr.is-selected{ background:var(--d-brand-bg)!important; }
.v420-table tbody tr:last-child td{ border-bottom:none!important; }
.v420-checkbox{ accent-color:var(--d-brand)!important; width:15px!important; height:15px!important; background:#fff!important; border:1px solid #cfd8e3!important; border-radius:4px!important; cursor:pointer!important; }
.v420-avatar{ width:32px!important; height:32px!important; border-radius:9px!important; font-size:12.5px!important; font-weight:700!important; display:flex!important; align-items:center!important; justify-content:center!important; letter-spacing:-.2px!important; box-shadow:none!important; }
.v420-avatar.av-0{background:#eaf1fe!important;color:#2563eb!important}
.v420-avatar.av-1{background:#e8f5ef!important;color:#0f7a52!important}
.v420-avatar.av-2{background:#fef4e6!important;color:#c47d16!important}
.v420-avatar.av-3{background:#f3edfd!important;color:#7c3aed!important}
.v420-avatar.av-4{background:#fdecea!important;color:#c0392f!important}
.v420-avatar.av-5{background:#e9f6fb!important;color:#0e7490!important}
.v420-company-name{ font-size:13px!important; font-weight:660!important; color:var(--d-ink)!important; letter-spacing:-.1px!important; }
.v420-contact-name{ font-size:11.5px!important; color:var(--d-mut)!important; margin-top:2px!important; }
.v420-channel,.v420-status{ display:inline-block!important; font-size:11px!important; font-weight:620!important; padding:3px 9px!important; border-radius:7px!important; border:none!important; letter-spacing:-.1px!important; white-space:nowrap!important; }
.v420-channel{ background:#eef2f7!important; color:#5b6b80!important; }
.v420-channel[data-ch="리셀러"],.v420-channel[data-ch="經銷商"]{ background:#eaf1fe!important; color:#2563eb!important; }
.v420-channel[data-ch="최종고객"],.v420-channel[data-ch="終端客戶"]{ background:#e8f5ef!important; color:#0f7a52!important; }
.v420-channel[data-ch="대리상"],.v420-channel[data-ch="代理商"]{ background:#f3edfd!important; color:#7c3aed!important; }
.v420-status{ background:#eef2f7!important; color:#5b6b80!important; }
.v420-status[data-st="활성"],.v420-status[data-st="活躍"]{ background:#e6f4ee!important; color:#0f7a52!important; }
.v420-status[data-st="잠재"],.v420-status[data-st="潛在"]{ background:#eaf1fe!important; color:#2563eb!important; }
.v420-status[data-st="휴면"],.v420-status[data-st="休眠"]{ background:#fdf3e3!important; color:#b4791a!important; }
.v420-status[data-st="이탈"],.v420-status[data-st="流失"]{ background:#fdecea!important; color:#c0392f!important; }
.v420-country{ font-size:12px!important; color:var(--d-ink2)!important; white-space:nowrap!important; }
.v420-rating{ color:#e0a92a!important; font-size:12px!important; letter-spacing:.5px!important; }
.v420-rating .star-off{ color:#e3e8ef!important; }
.v420-amount-cell{ text-align:right!important; font-weight:700!important; font-size:12.5px!important; color:var(--d-ink)!important; font-variant-numeric:tabular-nums!important; white-space:nowrap!important; }
.v420-contact-time{ font-size:11.5px!important; color:var(--d-mut)!important; white-space:nowrap!important; }
.v420-contact-time.is-stale{ background:#fdecea!important; color:#c0392f!important; border:none!important; font-weight:620!important; padding:3px 8px!important; border-radius:7px!important; }
.v420-contact-time.never{ color:#b3bcc9!important; }
.v420-btn-icon{ width:28px!important; height:28px!important; border-radius:8px!important; background:transparent!important; border:1px solid transparent!important; color:#94a1b2!important; font-size:12px!important; transition:all .15s!important; cursor:pointer!important; }
.v420-btn-icon:hover{ background:#eef4f1!important; color:var(--d-brand)!important; border-color:#dbe8e2!important; }
.v420-action-cell{ text-align:right!important; white-space:nowrap!important; }
@media (max-width:1180px){ .v420-kpi-bar{ grid-template-columns:1fr 1fr!important; } }
@media (max-width:720px){ .v420-kpi-bar{ grid-template-columns:1fr!important; } }

/* ═══════════════════════════════════════════════════════════════
   PHASE 7 — 영업자료·공지/알림·명함 라이트 통일
   (모듈 CSS의 다크 팔레트 하드코딩을 선택자 단위로 자동 변환)
   ══════════════════════════════════════════════════════════════ */
.mat-loading, .mat-error{ color:var(--d-mut)!important }
.mat-search-icon{ color:var(--d-mut)!important }
.mat-search-input{ color:var(--d-ink)!important }
.mat-search-clear{ color:var(--d-mut)!important }
.mat-search-clear:hover{ color:var(--d-ink)!important }
.mat-empty{ color:var(--d-mut)!important }
.mat-group-chevron{ color:var(--d-mut)!important }
.mat-group-name{ color:var(--d-ink)!important }
.mat-row-type{ color:var(--d-mut)!important }
.mat-row-owner{ color:var(--d-mut)!important }
.mat-btn-open{ color:var(--d-mut)!important }
.mat-form-header h3{ color:var(--d-ink)!important }
.mat-form-row label{ color:var(--d-mut)!important }
.mat-form-row input[type="text"], .mat-form-row input[type="url"], .mat-form-row select{ color:var(--d-ink)!important }
.mat-form-row select option{ background:#fff!important; color:var(--d-ink)!important }
.mat-owner-hint{ color:var(--d-mut)!important }
.mat-tag-input-row input{ color:var(--d-ink)!important }
.mat-btn-tag-add{ color:var(--d-mut)!important }
.mat-btn-cancel{ color:var(--d-mut)!important }
.mat-btn-cancel:hover{ color:var(--d-ink)!important }
.mat-detail-back{ color:var(--d-mut)!important }
.mat-detail-title{ color:var(--d-ink)!important }
.mat-detail-edit-btn{ color:var(--d-mut)!important }
.mat-detail-label{ color:var(--d-mut)!important }
.ntc-popup{ background:#fff!important }
.ntc-popup-title{ color:var(--d-ink)!important }
.ntc-popup-close{ color:var(--d-mut)!important }
.ntc-popup-close:hover{ color:var(--d-ink)!important }
.ntc-popup-item-title{ color:var(--d-ink)!important }
.ntc-popup-item-preview{ color:var(--d-ink2)!important }
.ntc-popup-item-meta{ color:var(--d-mut)!important }
.ntc-btn-close-all{ color:var(--d-mut)!important }
.ntc-btn-close-all:hover{ color:var(--d-ink)!important }
.ntc-btn-confirm{ color:var(--d-mut)!important }
.ntc-item-title{ color:var(--d-ink)!important }
.ntc-item-meta{ color:var(--d-mut)!important }
.ntc-empty{ color:var(--d-mut)!important }
.ntc-detail-back{ color:var(--d-mut)!important }
.ntc-detail-title{ color:var(--d-ink)!important }
.ntc-detail-content{ color:var(--d-ink)!important }
.ntc-detail-label{ color:var(--d-mut)!important }
.ntc-detail-value{ color:var(--d-ink)!important }
.ntc-btn-edit{ color:var(--d-mut)!important }
.ntc-form-header h3{ color:var(--d-ink)!important }
.ntc-form-row label{ color:var(--d-mut)!important }
.ntc-form-row input[type="text"], .ntc-form-row select, .ntc-form-row textarea{ color:var(--d-ink)!important }
.ntc-form-row select option{ background:#fff!important; color:var(--d-ink)!important }
.ntc-target-radio label{ color:var(--d-mut)!important }
.ntc-user-check-item{ color:var(--d-ink)!important }
.ntc-btn-cancel{ color:var(--d-mut)!important }
.ntc-btn-cancel:hover{ color:var(--d-ink)!important }
.ntc-loading{ color:var(--d-mut)!important }
.bc-loading, .bc-error{ color:var(--d-mut)!important }
.bc-search-icon{ color:var(--d-mut)!important }
.bc-search-input{ color:var(--d-ink)!important }
.bc-filter-sel{ color:var(--d-ink)!important }
.bc-btn-secondary{ color:var(--d-ink)!important }
.bc-btn-ghost{ border-color:var(--d-line)!important; color:var(--d-mut)!important }
.bc-btn-ghost:hover{ border-color:var(--d-line)!important; color:var(--d-ink)!important }
.bc-card-item__date{ color:var(--d-mut)!important }
.bc-card-item__name{ color:var(--d-ink)!important }
.bc-card-item__company{ color:var(--d-ink2)!important }
.bc-card-item__title{ color:var(--d-mut)!important }
.bc-card-item__meta{ color:var(--d-mut)!important }
.bc-card-item__author{ color:var(--d-mut)!important }
.bc-form-title{ color:var(--d-ink)!important }
.bc-ocr-status{ color:var(--d-mut)!important }
.bc-label{ color:var(--d-mut)!important }
.bc-input{ color:var(--d-ink)!important }
.bc-textarea{ color:var(--d-ink)!important }
.bc-detail-meta{ color:var(--d-mut)!important }
.bc-promote-msg{ color:var(--d-ink2)!important }
.bc-promoted-notice{ color:var(--d-ink2)!important }
/* 마감 — 검색/툴바/카드 표면 통일 */
.mat-toolbar,.ntc-toolbar,.bc-toolbar{ background:var(--d-card)!important; border:1px solid var(--d-line)!important; border-radius:14px!important; box-shadow:var(--d-sh)!important; }
.mat-search-wrap,.ntc-search-wrap,.bc-search-wrap{
  background:#fff!important; border:1px solid #dfe5ec!important; border-radius:10px!important;
  transition:border-color .15s, box-shadow .15s!important;
}
.mat-search-wrap:focus-within,.ntc-search-wrap:focus-within,.bc-search-wrap:focus-within{
  border-color:var(--d-brand)!important; box-shadow:0 0 0 3px rgba(15,122,82,.13)!important;
}
.mat-search-input,.ntc-search-input,.bc-search-input{ background:transparent!important; border:none!important; outline:none!important; }
.mat-search-input::placeholder,.ntc-search-input::placeholder,.bc-search-input::placeholder{ color:#9aa5b4!important; }
.mat-group,.ntc-card,.bc-card{ background:var(--d-card)!important; border:1px solid var(--d-line)!important; border-radius:14px!important; box-shadow:var(--d-sh)!important; }
.mat-group-header{ background:#fafbfd!important; border-bottom:1px solid var(--d-line)!important; }
.mat-group-header:hover{ background:#f4f7fa!important; }
.mat-group-name{ font-size:13px!important; font-weight:660!important; }
.mat-group-count{ background:var(--d-brand-bg)!important; color:var(--d-brand)!important; font-weight:680!important; border-radius:7px!important; }
.mat-row{ border-bottom:1px solid #f0f3f7!important; }
.mat-row:hover{ background:#f8fbf9!important; }
.mat-row-title{ color:var(--d-ink)!important; font-weight:600!important; }
.mat-row-title:hover{ color:var(--d-brand)!important; }
.mat-btn-new,.ntc-btn-new,.bc-btn-new{ background:var(--d-brand)!important; border:none!important; color:#fff!important; border-radius:10px!important; font-weight:650!important; box-shadow:0 2px 8px rgba(15,122,82,.22)!important; }
.mat-btn-new:hover,.ntc-btn-new:hover,.bc-btn-new:hover{ background:#0c6544!important; }

/* ═══════════════════════════════════════════════════════════════
   PHASE 8 — 잔여 페이지 라이트 통일
   팀보고서 / 고객모달 / 파이프라인·직원활동·활동내역·프로젝트·보고서
   (사이드바·로그인은 다크 유지 — 선택자 제외)
   ══════════════════════════════════════════════════════════════ */
.rpt-person-card{ background:#f8fafc!important; border-color:var(--d-line)!important }
.rpt-pc-name{ color:var(--d-ink2)!important }
.rpt-pc-kpi{ background:#f8fafc!important }
.rpt-pc-kpi-val{ color:var(--d-ink2)!important }
.rpt-pc-kpi-sep{ background:#f8fafc!important }
.rpt-pc-progress-bar{ background:#f8fafc!important }
.rpt-pt-header{ background:#f8fafc!important; border-color:var(--d-line)!important }
.rpt-pt-back-btn{ background:#f8fafc!important; border-color:var(--d-line)!important }
.rpt-pt-name{ color:var(--d-ink2)!important }
.rpt-pt-kpi-item{ background:#f8fafc!important; border-color:var(--d-line)!important }
.rpt-pt-kpi-val{ color:var(--d-ink2)!important }
.rpt-pt-card{ background:#f8fafc!important; border-color:var(--d-line)!important }
.rpt-pt-card-head{ background:#f8fafc!important }
.rpt-pt-card-date{ color:var(--d-ink2)!important }
.rpt-tl-item{ background:#f8fafc!important; border-color:var(--d-line)!important }
.rpt-tl-item:hover{ background:#f8fafc!important }
.rpt-tl-item-title{ color:var(--d-ink2)!important }
.rpt-tl-cmt-panel .rpt-wi-cmt-form textarea{ background:#f8fafc!important; border-color:var(--d-line)!important; color:var(--d-ink2)!important }
.rpt-tl-cmt-panel .rpt-wi-cmt-form textarea:focus{ background:#f8fafc!important }
.rpt-tl-cmt-panel .rpt-comment{ background:#f8fafc!important; border-color:var(--d-line)!important }
.rpt-tl-cmt-panel .rpt-comment-body{ color:var(--d-ink2)!important }
.rpt-tl-cmt-panel .rpt-reply{ background:#f8fafc!important }
.rpt-tl-cmt-panel .rpt-reply-body{ color:var(--d-ink2)!important }
.rpt-tl-cmt-panel .rpt-reply-form{ background:#f8fafc!important; border-color:var(--d-line)!important }
.rpt-tl-cmt-panel .rpt-reply-input{ background:#f8fafc!important; border-color:var(--d-line)!important; color:var(--d-ink2)!important }
.rpt-tl-cmt-panel .rpt-reply-input:focus{ background:#f8fafc!important }
.rpt-search-input{ background:#f8fafc!important; border-color:var(--d-line)!important; color:var(--d-ink2)!important }
.rpt-search-clear:hover{ color:var(--d-ink2)!important }
.rpt-srch-card{ background:#f8fafc!important; border-color:var(--d-line)!important }
.rpt-srch-title{ color:var(--d-ink2)!important }
#customer-modal .modal-close{ background:#f8fafc!important }
#customer-modal .modal-body{ background:#fff!important }
#customer-modal .form-section{ background:#fff!important }
#customer-modal .form-section-title{ color:var(--d-ink)!important }
#customer-modal .form-section-desc{ color:var(--d-mut)!important }
#customer-modal .form-control, #customer-modal .form-section input[type="text"], #customer-modal .form-section input[type="email"], #customer-modal .form-section input[type="number"], #customer-modal .form-section input[type="date"], #customer-modal .form-section select, #customer-modal .form-section textarea{ background:#fff!important; color:var(--d-ink)!important }
#customer-modal .form-control:hover, #customer-modal .form-section input:hover, #customer-modal .form-section select:hover, #customer-modal .form-section textarea:hover{ background:#fff!important }
#customer-modal .form-control:focus, #customer-modal .form-section input:focus, #customer-modal .form-section select:focus, #customer-modal .form-section textarea:focus{ background:#fff!important }
#customer-modal .form-actions .btn-secondary{ background:#fff!important; color:var(--d-ink2)!important }
#customer-modal .form-actions .btn-secondary:hover{ background:#fff!important; color:var(--d-ink)!important }
#customer-modal #deals-section .deals-table-wrap{ background:#fff!important }
#customer-modal #deals-section .deals-table thead{ background:#fff!important }
#customer-modal #deals-section .deals-table th{ color:var(--d-mut)!important }
#customer-modal #deals-section .deals-table td{ color:var(--d-ink2)!important }
#customer-modal #deals-section .deals-table input, #customer-modal #deals-section .deals-table select{ background:#fff!important; color:var(--d-ink)!important }
#customer-modal #deals-section .deal-total{ background:#fff!important }
#customer-modal .product-checkboxes label{ background:#fff!important; color:var(--d-ink2)!important }
.bk-log-box{ background:#fff!important }
.bk-restore-btn:hover{ background:#fff!important }
.kpi-src-modal{ background:#fff!important }
.kpi-src-header h2{ color:var(--d-ink)!important }
.kpi-src-body{ background:#fff!important; color:var(--d-ink2)!important }
.kpi-src-calc{ background:#fff!important; color:var(--d-mut)!important }
.kpi-src-btn-edit{ background:#fff!important }
.kpi-src-btn-edit:hover{ background:#fff!important }
.kpi-src-empty{ color:var(--d-mut)!important }
.kpi-src-readonly-tip{ color:var(--d-mut)!important }
.pipeline-col{ background:#fff!important; color:var(--d-ink2)!important }
.pipeline-col-header h3{ color:var(--d-ink)!important }
.pipeline-card{ background:#fff!important; color:var(--d-ink2)!important }
.pipeline-card:hover{ background:#fff!important }
.pipeline-card-company{ color:var(--d-ink)!important }
.pipeline-card-contact{ color:var(--d-mut)!important }
.pipe-summary-card{ background:#fff!important }
.pipe-summary-label{ color:var(--d-mut)!important }
.pipe-summary-count{ color:var(--d-ink)!important }
.pipe-table-wrap{ background:#fff!important }
.pipeline-table{ color:var(--d-ink2)!important }
.pipeline-table thead tr{ background:#fff!important }
.pipe-table-row:hover{ background:#fff!important }
.pipe-company-name{ color:var(--d-ink)!important }
.pipe-action-text{ color:var(--d-mut)!important }
.pipe-td-assigned{ color:var(--d-mut)!important }
.pipe-grid-col{ background:#fff!important }
.sa-toolbar{ background:#fff!important }
.sa-toolbar-title{ color:var(--d-ink)!important }
.sa-sort-select{ background:#fff!important; color:var(--d-ink2)!important }
.sa-card{ background:#fff!important }
.sa-card-header:hover{ background:#fff!important }
.sa-card-name{ color:var(--d-ink)!important }
.sa-stat{ color:var(--d-mut)!important }
.sa-card-body{ background:#fff!important }
.sa-tab:hover{ color:var(--d-mut)!important }
.sa-group-name{ color:var(--d-ink2)!important }
.sa-item-title{ color:var(--d-mut)!important }
.sa-modal-loading, .sa-modal-err, .sa-modal-empty{ color:var(--d-mut)!important }
.sa-modal-item{ background:#fff!important }
.sa-modal-item-title{ color:var(--d-ink)!important }
.sa-modal-edit-note{ color:var(--d-mut)!important }
.sa-edit-select{ background:#fff!important; color:var(--d-ink2)!important }
.sa-edit-select option{ background:#fff!important; color:var(--d-ink2)!important }
.activities-container{ background:#fff!important; color:var(--d-ink2)!important }
.activity-content{ background:#fff!important; color:var(--d-ink2)!important }
.activity-content:hover{ background:#fff!important }
.activity-company{ color:var(--d-ink)!important }
.activity-action{ color:var(--d-mut)!important }
.modal{ background:#fff!important }
.modal-header{ background:#fff!important }
/* 토스트: 배경만 흰색으로 바꾸고 글자색(style.css #fff)을 안 바꿔 흰 글자/흰 배경 → 전 토스트가 안 보이던 버그 수정 */
.toast{ background:#fff!important; color:#0b1220!important; border:1px solid #d7dde6; border-left:4px solid #475569; font-weight:600 }
.toast.success{ background:#f0fdf4!important; color:#166534!important; border-color:#bbf7d0; border-left-color:#16a34a }
.toast.error{ background:#fef2f2!important; color:#b91c1c!important; border-color:#fecaca; border-left-color:#dc2626 }
.toast.warning{ background:#fffbeb!important; color:#92400e!important; border-color:#fde68a; border-left-color:#d97706 }
.toast.info{ background:#eff6ff!important; color:#1d4ed8!important; border-color:#bfdbfe; border-left-color:#2563eb }
.entity-is-sub{ color:var(--d-mut)!important }
.kpi-stage-cancelled .kpi-stage-head > i{ color:var(--d-mut)!important }
.kpi-stage-cancelled .kpi-stage-big-amount.kpi-stage-cancelled-amt{ color:var(--d-mut)!important }
.btn-deal-del{ color:var(--d-mut)!important }
.prj-report-meta i{ color:var(--d-mut)!important }
.rpt-date-field .rpt-date-input{ color:var(--d-ink)!important }
.rpt-range-preset-btn{ color:var(--d-ink)!important }
.rpt-team-date-header{ color:var(--d-ink)!important }
.rpt-att-type-report .rpt-att-type-badge{ background:#fff!important }
.job-checkbox-label:has(input:checked){ background:#fff!important }
.job-checkbox-label.job-checked{ background:#fff!important }
.pw-strength-wrap.strength-strong .pw-strength-fill{ background:#fff!important }
.pw-strength-wrap.strength-very-strong .pw-strength-fill{ background:#fff!important }
.ri-wi-meta i{ color:var(--d-mut)!important }
.ri-cmt-input::placeholder{ color:var(--d-mut)!important }
.fi-context-cust i{ color:var(--d-mut)!important }
.cal-event.cal-cat-cat-other{ color:var(--d-mut)!important }
.cal-day-list-item.cal-cat-cat-other{ color:var(--d-mut)!important }
.cal-day-list-empty i{ color:var(--d-ink2)!important }
.pending-card.cal-cat-cat-other{ color:var(--d-mut)!important }
.prj-search i{ color:var(--d-mut)!important }
.prj-date-sep{ color:var(--d-ink2)!important }
.prj-empty i{ color:var(--d-ink2)!important }
.prj-detail-tab.disabled{ color:var(--d-ink2)!important }
.prj-tab-phase-tag{ color:var(--d-mut)!important }
.prj-ms-meta i{ color:var(--d-mut)!important }
.prj-tab-lock{ color:var(--d-mut)!important }
.prj-cost-summary-cur{ background:#fff!important }
.dash-widget-sub{ color:var(--d-mut)!important }
.dash-widget-loading{ color:var(--d-mut)!important }
.rs-loading{ color:var(--d-mut)!important }
.rs-empty{ color:var(--d-mut)!important }
.rs-section-link:hover{ background:#fff!important }
.rs-month-unit{ color:var(--d-mut)!important }
.rs-delta-neutral{ color:var(--d-mut)!important }
.rs-back-link:hover{ background:#fff!important }
.rs-csv-btn:hover{ background:#fff!important }
.rs-hm-l3{ background:#fff!important }
.rs-hm-l4{ background:#fff!important }
.rs-hm-weekend .rs-hm-day{ color:var(--d-mut)!important }
.rs-mc-sum-num small{ color:var(--d-mut)!important }
.rs-mc-num-mini small{ color:var(--d-mut)!important }
.rs-mc-empty{ color:var(--d-mut)!important }