/* =====================================================================
   cell 타이포그래피 하한 — 모든 글자 최소 14px
   2026-08-27 신설 (사용자 지시: 14px 이하 폰트를 전부 14px 이상으로)

   왜 별도 파일인가
     · 뷰(.php)의 하드코딩 값은 일괄 치환으로 올렸지만, **프레임워크가 만드는 글자**
       (부트스트랩 .small/.badge/.btn-sm, Inspinia 테마의 body 13px, 사이드바·토스트 등)는
       테마 CSS 안에 있어 뷰 수정으로는 닿지 않는다. 그 하한을 여기서 한 번에 세운다.
     · cell 전용: `partials/cell/head-css.php` 에서만 로드한다(다른 테넌트 무영향).
     · 로드 순서상 cell-app.min.css · cell-custom.css **뒤**라, 같은 특이도면 이 파일이 이긴다.

   규칙
     · 하한만 세운다. 이미 14px 이상인 것은 건드리지 않는다(제목·KPI 숫자 등 위계 유지).
     · em 배수로 접히는 값(.small=.75em, .badge=.75em)은 **절대 px 로 못 박아야** 한다 —
       중첩되면 곱이 겹쳐 7px 까지 내려간다(실측: 표 안 뱃지 7.31px).
     · 인쇄(@media print)와 라벨 출력물은 물리 크기라 이 파일이 관여하지 않는다.
   ===================================================================== */

/* ── 1. 본문 기준 13px → 14px ───────────────────────────────────────── */
html,
html[data-skin="modern"],
html[data-skin="saas"],
html[data-skin="default"] {
    --ins-body-font-size: 14px;
    --bs-body-font-size: 14px;
    --ins-font-size-xs: 14px;
    --ins-font-size-sm: 14px;
    --ins-font-size-base: 14px;
}

body { font-size: 14px; }

/* ── 2. 부트스트랩 축소 유틸리티 — em 곱셈이 접히는 지점 ─────────────── */
small,
.small,
.form-text,
.text-muted.small,
figcaption { font-size: 14px; }

.badge { --ins-badge-font-size: 14px; --bs-badge-font-size: 14px; font-size: 14px; }

/* 유틸리티 클래스 — 테마가 rem 으로 정의한 축소 계열 */
.fs-xs, .fs-sm, .fs-13, .fs-12, .fs-11, .fs-10, .font-sm, .font-xs { font-size: 14px !important; }
.fs-14 { font-size: 14px !important; }

/* ── 3. 폼·버튼의 sm 변형 ──────────────────────────────────────────── */
.btn { --ins-btn-font-size: 14px; --bs-btn-font-size: 14px; }
.btn-sm, .btn-group-sm > .btn { --ins-btn-font-size: 14px; --bs-btn-font-size: 14px; }
.form-control, .form-select, .input-group-text { font-size: 14px; }
.form-control-sm, .form-select-sm, .input-group-sm > .form-control,
.input-group-sm > .form-select, .input-group-sm > .input-group-text { font-size: 14px; }
/* 🔴 `.input-group-sm > .btn` 은 별도 규칙(.788rem)이라 위 목록에 안 걸린다 — 실측으로 잡았다 */
.input-group-sm > .btn { font-size: 14px; }
.form-label, .form-check-label, .col-form-label { font-size: 14px; }
.form-check-label.small, .form-check-label small { font-size: 14px; }

/* ── 4. 표 ───────────────────────────────────────────────────────── */
.table { font-size: 14px; }
.table-sm { font-size: 14px; }
.table thead th, .table th, .table td { font-size: inherit; }
/* 표 안의 축소 요소들 — .small·.badge 가 td 폰트에 다시 곱해지는 경로 차단 */
.table small, .table .small, .table .badge, .table code, .table .form-check-label { font-size: 14px; }

/* ── 5. 내비게이션·레이아웃 크롬 ───────────────────────────────────── */
.side-nav .menu-text, .side-nav-title, .side-nav-link,
.topbar .nav-link, .topbar-item, .dropdown-item, .dropdown-header,
.breadcrumb, .breadcrumb-item, .page-title, .page-link,
.nav-link, .nav-tabs .nav-link, .nav-pills .nav-link { font-size: 14px; }

.card-title, .modal-title { font-size: 15px; }

/* ── 6. 알림·오버레이 ─────────────────────────────────────────────── */
.toast, .toast-body, .alert, .tooltip, .tooltip-inner,
.popover, .popover-body, .popover-header, .offcanvas-body { font-size: 14px; }

/* ── 7. 서드파티 위젯 ─────────────────────────────────────────────── */
/* Choices.js (검색 셀렉트) */
.choices, .choices__inner, .choices__list, .choices__item,
.choices__input, .choices__placeholder { font-size: 14px; }
/* FullCalendar (일정·근태 캘린더) */
.fc, .fc .fc-toolbar-title, .fc .fc-daygrid-day-number,
.fc .fc-col-header-cell-cushion, .fc .fc-event-title,
.fc .fc-event-time, .fc .fc-list-event { font-size: 14px; }
.fc .fc-toolbar-title { font-size: 16px; }
/* Quill (페이지 가이드 편집기) */
.ql-editor, .ql-toolbar { font-size: 14px; }

/* ── 8. 코드·모노 ─────────────────────────────────────────────────── */
code, kbd, samp, pre { font-size: 14px; }

/* ── 8-B. 제목 계열 — 테마가 em 배수로 정의해 본문보다 작아진 것들 ──── */
/* 실측(2026-08-27): h6 11.06px · h5 13.53px. 제목이 본문보다 작으면 위계가 뒤집힌다. */
h1, .h1 { font-size: 24px; }
h2, .h2 { font-size: 21px; }
h3, .h3 { font-size: 19px; }
h4, .h4 { font-size: 17px; }
h5, .h5 { font-size: 16px; }
h6, .h6 { font-size: 15px; }
.fs-1 { font-size: 24px !important; }
.fs-2 { font-size: 21px !important; }
.fs-3 { font-size: 19px !important; }
.fs-4 { font-size: 17px !important; }
.fs-5 { font-size: 16px !important; }
.fs-6 { font-size: 15px !important; }

/* ── 8-C. 테마 특이도가 높은 크롬 요소 — 하한을 못 박는다 ───────────── */
/* 사이드바 구분 제목(9.1px)·토스트 뱃지(9.75px)처럼 테마 셀렉터가 더 강한 곳만 !important. */
.side-nav .side-nav-title,
li.side-nav-title,
.side-nav-title { font-size: 14px !important; }

.badge.topbar-badge,
.badge.badge-label,
.badge.badge-circle,
.badge.badge-square,
.badge[class*="badge-soft-"],
.badge[class*="text-bg-"] { font-size: 14px !important; }

/* 테마 축소 유틸 — `!important` 로 선언돼 있어 같은 무기를 쓴다.
   `--ins-font-size-xxs`(11px) 는 변수 자체를 올려 파생 규칙까지 한 번에 잡는다. */
html { --ins-font-size-xxs: 14px; }
.fs-xxs, .fs-xxl-xxs { font-size: 14px !important; }

/* 셀렉트 — 네이티브 option 과 Choices.js 드롭다운은 별도 계열이라 따로 못 박는다.
   🔴 `html` 접두사는 장식이 아니다 — choices-override.css 가 이 파일보다 **뒤에** 로드되면서
      `.choices__list--dropdown .choices__item{font-size:.813rem!important}` 를 걸어 둔다.
      같은 특이도·같은 !important 면 나중 파일이 이긴다. 한 단계 올려서 확실히 덮는다. */
select, select option, optgroup { font-size: 14px; }
html .choices, html .choices *,
html .choices__list--dropdown .choices__item,
html .choices__list--single .choices__item,
html .choices__list--multiple .choices__item,
html .choices__list[aria-expanded] .choices__item,
html .choices__input, html .choices__placeholder, html .choices__notice { font-size: 14px !important; }

/* ApexCharts — 축·범례·데이터 라벨은 JS 옵션으로 11~13px 이 박혀 나온다(SVG text).
   차트 옵션을 페이지마다 고치는 대신 SVG 텍스트 하한을 CSS 로 한 번에 세운다. */
html .apexcharts-canvas text,
html .apexcharts-canvas tspan,
html .apexcharts-legend-text,
html .apexcharts-title-text,
html .apexcharts-datalabel,
html .apexcharts-datalabel-label,
html .apexcharts-datalabel-value,
html .apexcharts-tooltip { font-size: 14px !important; }

/* jstree(카테고리·권한 트리) — 라이브러리 기본이 .75em 배수라 접힌다 */
.jstree, .jstree-anchor, .jstree-node, .jstree li, .jstree-default .jstree-anchor { font-size: 14px !important; }

/* ── 9. cell-custom.css 잔여 하한(로드 순서로 덮는다) ───────────────── */
.table-custom thead th { font-size: 15px; }   /* 0.75rem(12px) → 헤더는 15px */
.font-sm { font-size: 14px !important; }      /* 0.8125rem(13px) */
