:root {
  /* ── Brand — BI v1.1 (2026-08-13) ─────────────────────────────────────
     제품 주색 = 심볼 «플랫폼선»의 Platform Blue. 구 브랜드 레드(#C5252F)에서 전환했다.
     ★레드는 이제 «의미색»으로만 남는다 — 오류·경고·위험(--kpi-alert 등). 브랜드로 쓰지 말 것.
     ★변수명 --explan-red* 는 1,198곳이 참조하므로 이름을 유지한 채 별칭으로 남긴다.
       새로 쓰는 코드는 --explan-brand* 를 쓸 것.

     ★★둘의 차이 = «화이트라벨이 덮느냐» 다. 이름만 다른 같은 값이 아니다.
       --explan-red*   … applyTenantTheme() 이 런타임에 덮어쓴다. 테넌트가 고른 색을 따라간다.
                          (실측: co:SA 는 청록 #0891B2 → 이 계열을 쓰는 화면은 전부 청록으로 뜬다)
       --explan-brand* … 제품 기본색. 테넌트가 덮지 않는다.
       그래서 «테넌트 색을 따라가야 하는 것»은 --explan-red(또는 --brand-primary)를,
       «회사와 무관하게 EXPLAN 색이어야 하는 것»은 --explan-brand 를 쓴다.
       아래 --border-focus·--color-domain-approval 이 후자다(전환 전에도 상수였다 — 동작 유지). */
  --explan-brand:       #2563EB;   /* Platform Blue — 흰 글자 대비 5.2:1 (AA) */
  --explan-brand-dark:  #1D4ED8;
  --explan-brand-light: #EFF6FF;
  --explan-brand-sky:   #38BDF8;   /* 성장선 Sky — 포인트로만 아껴 쓴다 */

  --explan-red:        var(--explan-brand);        /* deprecated 별칭 — 값은 더 이상 빨강이 아니다 */
  --explan-red-dark:   var(--explan-brand-dark);   /* deprecated 별칭 */
  --explan-red-light:  var(--explan-brand-light);  /* deprecated 별칭 */

  /* 채팅 말풍선(내 메시지) — 원색 배경은 장시간 응시에 피로 → 도메인색 룰 그대로: 도메인(브랜드) pastel bg 틴트 + 어두운 글자 (2026-08-04).
     화이트라벨 테넌트가 brand-primary 를 덮어쓰면 말풍선도 그 도메인색 틴트를 따라간다. */
  --chat-bubble-mine:     var(--brand-primary-bg);
  --chat-bubble-mine-fg:  var(--text-primary);

  /* 화이트라벨 — 테넌트가 덮어쓰는 브랜드 primary (기본 = BI Platform Blue). applyTenantTheme()이 런타임 주입 */
  --brand-primary:      var(--explan-red);
  --brand-primary-dark: var(--explan-red-dark);
  --brand-primary-bg:   var(--explan-red-light);
  --brand-on:           #FFFFFF;

  /* ── 역할 액센트 (공용 UI 커널, 2026-08-06) ─────────────────────
     기본 = 브랜드 primary(=화이트라벨). ★2026-08-13 이후 «역할별 고정색은 두지 않는다» —
     SV 는 브랜드사와 연결되는 역할 구분 화면이라 회사 색을 그대로 따라간다(구 딥블루 고정색 폐기).
     ★surface·text·border·글자 크기는 역할로 갈리지 않는다 — 이 3개 밖의 토큰을 덮어쓰지 말 것. */
  --app-accent:         var(--brand-primary);
  --app-accent-dark:    var(--brand-primary-dark);
  --app-accent-bg:      var(--brand-primary-bg);

  /* ── Domain Tokens (보완 #7 정비) ──────────────────────────── */
  /* 영업·계약 — teal (보완 #9 신설) */
  --color-domain-sales-contract:        #0D9488;
  --color-domain-sales-contract-dark:   #0F766E;
  --color-domain-sales-contract-bg:     #F0FDFA;
  --color-domain-sales-contract-border: #99F6E4;

  /* 자문 / 보고 — violet 계열 */
  --color-domain-advisory:        #7C3AED;
  --color-domain-advisory-dark:   #6D28D9;
  --color-domain-advisory-bg:     #F5F3FF;
  --color-domain-advisory-border: #DDD6FE;

  --color-domain-report:          #7C3AED;
  --color-domain-report-bg:       #F5F3FF;

  /* 결재함 — 브랜드색과 동일(전환 전에도 브랜드 레드였다. 그 «같음»을 그대로 유지한다) */
  --color-domain-approval:        var(--explan-brand);
  --color-domain-approval-bg:     var(--explan-brand-light);

  /* 인사·급여 — 청록 (운영자 결정 — 사무·관리 계열은 violet, HR은 별도 청록) */
  --color-domain-hr:              #0891B2;
  --color-domain-hr-dark:         #0E7490;
  --color-domain-hr-bg:           #ECFEFF;

  /* 퍼포먼스 (가맹·물류) — green */
  --color-domain-performance:     #059669;
  --color-domain-performance-bg:  #F0FDF4;

  /* 성과관리 (모듈⑤ 5-A) — indigo */
  --color-domain-perf-mgmt:       #4F46E5;
  --color-domain-perf-mgmt-dark:  #3730A3;
  --color-domain-perf-mgmt-bg:    #EEF2FF;

  /* 밸류체인 — 다크 청록 (인사·급여와 분리) */
  --color-domain-valuechain:      #0E7490;
  --color-domain-valuechain-bg:   #E6F7F8;  /* v3.1: 다른 도메인 pastel과 명도 통일, HR cyan과 미세 구분 */

  /* AI 인사이트 — orange */
  --color-domain-ai:              #EA580C;
  --color-domain-ai-bg:           #FFF7ED;

  /* 운영 관리·System 관리 — slate */
  --color-domain-ops:             #475569;
  --color-domain-ops-bg:          #F8FAFC;
  --color-domain-system:          #64748B;
  --color-domain-system-bg:       #F8FAFC;

  /* Surface — v3.1 통일된 따뜻한 뉴트럴 (모든 페이지 톤 정렬) */
  --surface-base:      #FFFFFF;   /* 페이지 캔버스 / 카드 본문 */
  --surface-sub:       #F6F6F4;   /* 사이드 레일, 테이블 헤더, nav 영역 */
  --surface-sunken:    #EDEDEA;   /* 더 깊은 fill (모달 백드롭 안, divider 영역) */
  --surface-card:      #FFFFFF;
  --surface-hover:     #F0F0EE;   /* 신규: row/nav hover 전용 */

  /* Text — v3.1 대비 강화 (WCAG AA on white) */
  --text-primary:      #18181B;   /* 본문/제목 */
  --text-secondary:    #3F3F46;   /* 보조 본문 (was #555 → 더 진하게) */
  --text-tertiary:     #6B7280;   /* 메타/캡션 (was #888 → AA 충족) */
  --text-disabled:     #A1A1AA;   /* 비활성 (was #BBB → 약간 진하게) */
  --text-on-red:       #FFFFFF;   /* 이름만 red — 브랜드색 위 글자다(값은 그대로 흰색) */

  /* Border — v3.1 카드 경계 정의력 ↑ */
  --border-default:    #E4E4E7;
  --border-strong:     #C8C8CD;
  --border-focus:      var(--explan-brand);

  /* Status */
  --s-reg-bg:          #FEF3C7;
  --s-reg-fg:          #92400E;
  --s-proc-bg:         #DBEAFE;
  --s-proc-fg:         #1E40AF;
  --s-done-bg:         #D1FAE5;
  --s-done-fg:         #065F46;
  --s-none-bg:         #F3F4F6;
  --s-none-fg:         #6B7280;

  /* Importance */
  --i-high-bg:         #FEE2E2;
  --i-high-fg:         #991B1B;
  --i-mid-bg:          #FEF3C7;
  --i-mid-fg:          #92400E;
  --i-low-bg:          #F3F4F6;
  --i-low-fg:          #6B7280;

  /* KPI */
  /* 상태색 — BI v1.1 계열(에메랄드·앰버·로즈)로 정렬(2026-08-13).
     ★두 단계로 나눈다: «마크»(배경·바·아이콘)는 BI 값 그대로, «텍스트»는 같은 계열의 진한 단계.
       BI 값을 글자에 그대로 쓰면 흰 배경 대비가 무너진다 — 실측: #F43F5E 3.7:1(미달) vs #BE123C 5.9:1.
     ★--kpi-good/warn/alert 는 «글자»로 쓰이는 곳이 압도적이라(실측 텍스트 1,207 : 마크 294)
       진한 단계를 값으로 둔다. 마크에는 아래 --status-*-mark 를 쓸 것. */
  --status-success-mark: #10B981;
  --status-warning-mark: #F59E0B;
  --status-error-mark:   #F43F5E;

  --kpi-good:          #047857;
  --kpi-warn:          #B45309;
  --kpi-alert:         #BE123C;
  --kpi-info:          #2563EB;

  /* Radius — v3.2 라운드 강화 (더 둥글게) */
  --r-sm:   8px;
  --r-md:   12px;
  --r-lg:   16px;
  --r-full: 9999px;

  /* Shadows — v3.1 카드 경계 명확화 */
  --sh-card:    0 1px 2px rgba(24,24,27,0.04), 0 0 0 1px rgba(24,24,27,0.05);
  --sh-card-hover: 0 4px 12px rgba(24,24,27,0.06), 0 0 0 1px rgba(24,24,27,0.08);
  --sh-modal:   0 12px 40px rgba(24,24,27,0.16), 0 0 0 1px rgba(24,24,27,0.06);
  --sh-panel:   -4px 0 28px rgba(24,24,27,0.10);
  --sh-drop:    0 4px 16px rgba(24,24,27,0.12);

  /* Type scale — v3.1 한글 가독성 1px 보강 → 2026-08-01 전 화면 글자 15% 상향(지시 — 8%→10%→15% 재조정).
     zoom 방식은 레이아웃까지 키워 세로 스크롤을 만들어 철회 — 글자 토큰만 올린다(박스·여백 불변).
     값 = 구 토큰 × 1.15 (소수 px 은 브라우저가 정상 렌더).
     하드코딩 px 텍스트는 이 상향을 받지 않는다 — 발견되는 대로 토큰으로 바꾸는 것이 원칙. */
  --fs-display: 27.6px;   /* was 24 */
  --fs-h1:      21.9px;   /* was 19 */
  --fs-h2:      18.4px;   /* was 16 */
  --fs-h3:      16.1px;   /* was 14 */
  --fs-body:    15px;     /* was 13 */
  --fs-meta:    13.8px;   /* was 12 */
  --fs-caption: 13.8px;   /* was 12 */
  --fs-tiny:    12.7px;   /* was 11 → 라벨/배지 최소치 */

  /* Timing */
  --ease-out:   cubic-bezier(0.16, 1, 0.3, 1);
  --ease-std:   cubic-bezier(0.4, 0, 0.2, 1);
  --dur-fast:   120ms;
  --dur-std:    200ms;
  --dur-slow:   300ms;
  /* ── Responsive breakpoints (v8) ── */
  --bp-mobile:  768px;
  --bp-tablet:  992px;
  --bp-desktop: 1200px;
  --bp-wide:    1440px;
  --due-soon-bg:      #FEF3C7;
  --due-soon-fg:      #92400E;
  --due-today-bg:     #FEE2E2;
  --due-today-fg:     #991B1B;
  --due-overdue-bg:   #F43F5E;   /* 배경 = 마크 단계(BI 로즈) */
  --due-overdue-fg:   #FFFFFF;

  /* ── KPI Option B-2 (Ink + Tomato) — v3.1.4 ────────────── */
  --kpi-ink:           #1A1817;   /* 따뜻한 잉크 = 다크 hero 배경 */
  --kpi-ink-soft:      #2A2622;   /* 라이트 카드의 본문 텍스트 */
  --kpi-cream:         #FFFCF8;   /* 라이트 카드 배경 */
  --kpi-cream-fg:      #F8F2E8;   /* 다크 hero 위 텍스트 */
  --kpi-canvas:        #F5F2EE;   /* 대시보드 본문 캔버스 */
  --kpi-divider:       #ECE6DC;
  --kpi-tomato:        #E0533B;   /* alert 강조 */
  --kpi-tomato-bg:     rgba(224,83,59,0.18);
  --kpi-tack:          #8B7355;   /* 따뜻한 회갈색 — warn / sub */
  --kpi-tack-bg:       #ECE4D3;
  --kpi-moss:          #5E7553;   /* good */
  --kpi-moss-bg:       #E2E8DA;
  --kpi-num-font:      'Manrope', 'Pretendard', sans-serif;
}
