/* ==========================================================================
   funERP 공통 화면 스타일 (erp/css/erp-ui.css)
   모든 ERP 화면이 같은 색·간격·버튼·표·입력칸을 쓰도록 맞춘 규칙입니다.
   - 색은 아래 :root 값만 바꾸면 전체가 함께 바뀝니다.
   - 예전 화면(상품·거래처·구매/판매)의 개별 스타일은 "2. 예전 화면 통일"에서 덮어씁니다.
   - 핸드폰 화면 규칙은 맨 아래 "6. 핸드폰"에 모았습니다.
   ========================================================================== */
:root {
  --erp-ink: #1b2430;          /* 글자 */
  --erp-muted: #677383;        /* 보조 글자 */
  --erp-line: #e3e8ee;         /* 테두리 */
  --erp-bg: #f3f5f8;           /* 바탕 */
  --erp-card: #ffffff;
  --erp-head: #f7f9fb;         /* 표 머리, 머리띠 바탕 */
  --erp-primary: #2f5bd8;      /* 주 색 (버튼, 선택 표시) */
  --erp-primary-dark: #2449b3;
  --erp-primary-soft: #eaf0ff;
  --erp-dark: #1b2430;
  --erp-danger: #d43c33;
  --erp-danger-soft: #fdecea;
  --erp-ok: #1f8f4e;
  --erp-ok-soft: #e6f6ec;
  --erp-warn: #b45309;
  --erp-warn-soft: #fff4e2;
  --erp-radius: 10px;
  --erp-shadow: 0 1px 2px rgba(16, 24, 40, .05);
}

/* ---------- 1. 바탕과 뼈대 ---------- */
body.erp-app {
  background: var(--erp-bg) !important;
  color: var(--erp-ink);
  font-family: 'Pretendard', 'Noto Sans KR', -apple-system, 'Malgun Gothic', sans-serif !important;
  padding-top: 64px !important;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}
.erp-app .erp-main { padding: 16px 20px 28px; min-height: calc(100vh - 150px); }
.erp-app .erp-main > .container-fluid,
.erp-app .erp-main > .container { padding-left: 0 !important; padding-right: 0 !important; margin-top: 0 !important; }
.erp-app .erp-main > .container { max-width: 1320px; }
.erp-app .erp-main > .row { margin-left: 0; margin-right: 0; }

/* 위쪽 메뉴 */
.erp-app .navbar { background: #fff !important; box-shadow: 0 1px 0 var(--erp-line) !important; min-height: 64px; backdrop-filter: none; }
.erp-app .navbar .navbar-brand { font-size: 1.25rem !important; color: var(--erp-ink) !important; }
.erp-app .navbar .nav-link { color: #4a5565 !important; font-weight: 600; font-size: .92rem; border-radius: 8px; padding: 8px 12px !important; white-space: nowrap; transition: background .15s, color .15s; }
.erp-app .navbar .nav-link i { margin-right: 4px; opacity: .85; }
.erp-app .navbar .nav-link:hover { color: var(--erp-ink) !important; background: #f1f4f8; }
.erp-app .navbar .nav-link.active { color: var(--erp-primary) !important; background: var(--erp-primary-soft); }
.erp-app .navbar-toggler { padding: 6px 8px; }
.erp-app .navbar-toggler:focus { box-shadow: 0 0 0 .15rem rgba(47, 91, 216, .2); }

.erp-app footer.footer { background: transparent !important; border-top: 1px solid var(--erp-line) !important; padding: 14px 0 !important; }

/* 화면 제목 줄 */
.erp-page { padding: 0 0 8px; }
.erp-page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.erp-title { font-weight: 700; font-size: 1.3rem; margin: 0; color: var(--erp-ink); letter-spacing: -.01em; }
.erp-title i { color: var(--erp-primary); margin-right: 6px; }
.erp-sub { color: var(--erp-muted); font-size: .85rem; margin-top: 3px; font-weight: 400; }
.erp-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

/* 카드 */
.erp-card,
.erp-app .card { background: var(--erp-card); border: 1px solid var(--erp-line) !important; border-radius: var(--erp-radius) !important; box-shadow: var(--erp-shadow) !important; }
.erp-card { padding: 16px; margin-bottom: 14px; }
.erp-card h6, .erp-card .erp-card-title, .erp-app .card-body > h6 { font-weight: 700; font-size: .98rem; margin-bottom: 12px; color: var(--erp-ink); }
.erp-app .card { overflow: hidden; }
.erp-app .card.shadow-hover:hover, .erp-app .solution-card:hover { transform: none; }

/* ---------- 2. 예전 화면 통일 ---------- */
/* 색 머리띠(검정·파랑·남색)를 모두 같은 밝은 머리띠로 */
.erp-app .card-header,
.erp-app .card-header.bg-dark,
.erp-app .card-header.bg-primary,
.erp-app .card-header.bg-partner-header,
.erp-app .erp-main .bg-dark.text-white,
.erp-app .modal-header,
.erp-app .modal-header.bg-dark,
.erp-app .modal-header.bg-primary {
  background: var(--erp-head) !important;
  color: var(--erp-ink) !important;
  border-bottom: 1px solid var(--erp-line) !important;
  font-weight: 700;
}
.erp-app .card-header { padding: 10px 14px !important; font-size: .95rem; }
.erp-app .card-header *, .erp-app .modal-header .modal-title, .erp-app .erp-main .bg-dark.text-white > span,
.erp-app .erp-main .bg-dark.text-white > div > span:not(.badge) { color: var(--erp-ink) !important; }
.erp-app .card-header .btn *, .erp-app .card-header .badge { color: inherit !important; }
.erp-app .modal-header *:not(.btn):not(.btn *):not(.badge), .erp-app .erp-main .bg-dark.text-white *:not(.btn):not(.btn *):not(.badge) { color: var(--erp-ink) !important; }
.erp-app .modal-header .btn-close { filter: none !important; opacity: .6; }
.erp-app .modal-header .btn-close-white { filter: none !important; }
.erp-app .modal-content { border: 0 !important; border-radius: 12px !important; overflow: hidden; }
.erp-app .card.border-primary, .erp-app .card.border-partner, .erp-app .border-partner { border-color: var(--erp-line) !important; }
.erp-app .text-partner { color: var(--erp-primary) !important; }

/* 버튼: 주 색 하나 + 밝은 버튼 + 위험(빨강) + 엑셀(초록) */
.erp-app .btn { border-radius: 7px; font-weight: 600; }
.erp-app .btn-sm { font-size: .82rem; padding: 5px 11px; }
.erp-app .btn-primary, .btn-erp-primary, .erp-app .btn-partner-save {
  background: var(--erp-primary) !important; border: 1px solid var(--erp-primary) !important; color: #fff !important; }
.erp-app .btn-primary:hover, .btn-erp-primary:hover, .erp-app .btn-partner-save:hover {
  background: var(--erp-primary-dark) !important; border-color: var(--erp-primary-dark) !important; color: #fff !important; }
.erp-app .btn-dark, .btn-erp-dark { background: var(--erp-dark) !important; border: 1px solid var(--erp-dark) !important; color: #fff !important; }
.erp-app .btn-dark:hover, .btn-erp-dark:hover { background: #0f1620 !important; color: #fff !important; }
.erp-app .btn-light, .btn-erp-light,
.erp-app .btn-outline-secondary, .erp-app .btn-outline-dark, .erp-app .btn-outline-light,
.erp-app .btn-warning, .erp-app .btn-outline-warning,
.erp-app .btn-info, .erp-app .btn-outline-info, .erp-app .btn-secondary {
  background: #fff !important; border: 1px solid #cdd5df !important; color: var(--erp-ink) !important; }
.erp-app .btn-light:hover, .btn-erp-light:hover,
.erp-app .btn-outline-secondary:hover, .erp-app .btn-outline-dark:hover, .erp-app .btn-outline-light:hover,
.erp-app .btn-warning:hover, .erp-app .btn-outline-warning:hover,
.erp-app .btn-info:hover, .erp-app .btn-outline-info:hover, .erp-app .btn-secondary:hover {
  background: #f1f4f8 !important; border-color: #b9c3d0 !important; color: var(--erp-ink) !important; }
.erp-app .btn-check:checked + .btn-outline-dark, .erp-app .btn-check:checked + .btn-outline-secondary,
.erp-app .btn-outline-dark.active, .erp-app .btn-outline-secondary.active {
  background: var(--erp-primary-soft) !important; border-color: var(--erp-primary) !important; color: var(--erp-primary) !important; }
.erp-app .btn-success { background: var(--erp-ok) !important; border: 1px solid var(--erp-ok) !important; color: #fff !important; }
.erp-app .btn-success:hover { background: #187a41 !important; }
.erp-app .btn-outline-success { background: #fff !important; border: 1px solid #a9d9bd !important; color: var(--erp-ok) !important; }
.erp-app .btn-outline-success:hover { background: var(--erp-ok-soft) !important; }
.erp-app .btn-danger { background: #fff !important; border: 1px solid #f0b4af !important; color: var(--erp-danger) !important; }
.erp-app .btn-danger:hover { background: var(--erp-danger) !important; border-color: var(--erp-danger) !important; color: #fff !important; }
.erp-app .btn-outline-danger { background: #fff !important; border: 1px solid #f0b4af !important; color: var(--erp-danger) !important; }
.erp-app .btn-outline-danger:hover { background: var(--erp-danger-soft) !important; color: var(--erp-danger) !important; }
.erp-app .btn-outline-primary { background: #fff !important; border: 1px solid #b8c8f3 !important; color: var(--erp-primary) !important; }
.erp-app .btn-outline-primary:hover { background: var(--erp-primary-soft) !important; }
.erp-app .btn.text-white:not(.btn-primary):not(.btn-success):not(.btn-dark):not(.btn-erp-primary):not(.btn-erp-dark) { color: var(--erp-ink) !important; }
.erp-app .btn.text-info { color: var(--erp-ink) !important; }
.erp-app .btn:disabled, .erp-app .btn.disabled { opacity: .5; }
.erp-app .btn:focus-visible { outline: 0; box-shadow: 0 0 0 .18rem rgba(47, 91, 216, .25) !important; }

/* 입력칸 */
.erp-app .form-label { font-size: .8rem; font-weight: 600; color: #4a5565; margin-bottom: 4px; }
.erp-app .form-control, .erp-app .form-select { border: 1px solid #cdd5df; border-radius: 7px; font-size: .9rem; color: var(--erp-ink); }
.erp-app .form-control-sm, .erp-app .form-select-sm { font-size: .85rem; border-radius: 6px; }
.erp-app .form-control:focus, .erp-app .form-select:focus { border-color: var(--erp-primary); box-shadow: 0 0 0 .15rem rgba(47, 91, 216, .15); }
.erp-app .form-control::placeholder { color: #9aa5b3; }
.erp-app .form-control[readonly], .erp-app .readonly-lock { background: #f3f5f8 !important; color: #4a5565; }
.erp-app .input-group-text { background: var(--erp-head); border-color: #cdd5df; color: var(--erp-muted); font-size: .85rem; }
.erp-app .form-check-input:checked { background-color: var(--erp-primary); border-color: var(--erp-primary); }
.erp-app .bg-light.border, .erp-app .bg-light.rounded { background: var(--erp-head) !important; border-color: var(--erp-line) !important; }

/* 표 */
.erp-table, .erp-app .table { font-size: .88rem; color: var(--erp-ink); margin-bottom: 0; }
.erp-table thead th, .erp-app .table thead th, .erp-app .table > thead.table-light th, .erp-app .table > thead.table-dark th,
.erp-app .sales-table thead th, .erp-app .partner-list-table th, .erp-app .detail-grid-header-clean {
  background: var(--erp-head) !important; color: var(--erp-muted) !important; font-weight: 600 !important; font-size: .8rem;
  border-bottom: 1px solid var(--erp-line) !important; white-space: nowrap; }
.erp-app .table td, .erp-table td { border-color: var(--erp-line); vertical-align: middle; }
.erp-app .table-hover > tbody > tr:hover > * { --bs-table-bg-state: #f6f8fc; }
.erp-app .table tfoot td, .erp-app .table tfoot th { background: var(--erp-head); font-weight: 700; }
.erp-app .table-warning, .erp-app tr.table-warning > * { --bs-table-bg: var(--erp-primary-soft); background: var(--erp-primary-soft) !important; }
.erp-app .table a { color: var(--erp-primary); text-decoration: none; }
.erp-app .table a:hover { text-decoration: underline; }
.erp-app .table a.btn { text-decoration: none; }
.erp-app .table-responsive { -webkit-overflow-scrolling: touch; }

/* 알림·배지·글자색 */
.erp-app .alert { border-radius: 8px; font-size: .9rem; border: 1px solid transparent; }
.erp-app .alert-success { background: var(--erp-ok-soft); border-color: #bfe5cd; color: #14653a; }
.erp-app .alert-danger { background: var(--erp-danger-soft); border-color: #f5c6c2; color: #a32820; }
.erp-app .alert-light, .erp-app .alert-secondary { background: #fff; border-color: var(--erp-line); color: var(--erp-ink); }
.erp-app .badge { font-weight: 600; border-radius: 999px; padding: .32em .7em; }
.erp-app .badge.bg-primary { background: var(--erp-primary-soft) !important; color: var(--erp-primary) !important; }
.erp-app .badge.bg-danger { background: var(--erp-danger-soft) !important; color: var(--erp-danger) !important; }
.erp-app .badge.bg-success { background: var(--erp-ok-soft) !important; color: var(--erp-ok) !important; }
.erp-app .badge.bg-warning { background: var(--erp-warn-soft) !important; color: var(--erp-warn) !important; }
.erp-app .badge.bg-info { background: #e3f4fb !important; color: #0b6b8a !important; }
.erp-app .badge.bg-secondary { background: #eef1f5 !important; color: var(--erp-muted) !important; }
.erp-app .badge.bg-dark { background: #e7eaf0 !important; color: var(--erp-ink) !important; }
.erp-app .text-primary { color: var(--erp-primary) !important; }
.erp-app .text-danger { color: var(--erp-danger) !important; }
.erp-app .text-success { color: var(--erp-ok) !important; }
.erp-app .text-muted { color: var(--erp-muted) !important; }
.erp-app .erp-main a:not(.btn):not(.nav-link):not(.dropdown-item) { color: var(--erp-primary); }

.erp-badge { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: .75rem; font-weight: 600; background: #eef1f5; color: var(--erp-muted); }
.erp-badge-draft { background: var(--erp-warn-soft); color: var(--erp-warn); }
.erp-badge-confirmed { background: var(--erp-primary-soft); color: var(--erp-primary); }
.erp-badge-done { background: var(--erp-ok-soft); color: var(--erp-ok); }

/* 탭·필터·빈 화면·합계 */
.erp-tabs { gap: 4px; border-bottom: 1px solid var(--erp-line); flex-wrap: nowrap; overflow-x: auto; }
.erp-tabs .nav-link { color: var(--erp-muted) !important; font-weight: 600; border: 0; border-bottom: 3px solid transparent; border-radius: 0; padding: 8px 14px; white-space: nowrap; background: transparent !important; }
.erp-tabs .nav-link.active { color: var(--erp-primary) !important; border-bottom-color: var(--erp-primary); }
.erp-count { display: inline-block; min-width: 22px; padding: 0 6px; margin-left: 4px; border-radius: 10px; background: #eef1f5; color: var(--erp-muted); font-size: .75rem; text-align: center; }
.erp-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.erp-filter .form-control, .erp-filter .form-select { height: 34px; }
.erp-empty { text-align: center; padding: 36px 10px; color: var(--erp-muted); }
.erp-empty i { font-size: 2rem; display: block; margin-bottom: 8px; opacity: .6; }
.erp-totals { display: flex; flex-wrap: wrap; gap: 16px; align-items: baseline; font-size: .95rem; }
.erp-totals strong { font-weight: 700; }
.erp-grand { font-size: 1.1rem; color: var(--erp-ink); }
.erp-grand strong { color: var(--erp-primary); }

/* ---------- 3. 요약 숫자 카드 ---------- */
.erp-stat { background: var(--erp-card); border: 1px solid var(--erp-line); border-radius: var(--erp-radius); box-shadow: var(--erp-shadow); padding: 14px 16px; height: 100%; }
.erp-stat-label, .erp-kpi-label { color: var(--erp-muted); font-size: .82rem; font-weight: 600; }
.erp-stat-value { font-size: 1.35rem; font-weight: 700; letter-spacing: -.01em; margin-top: 2px; }
.erp-stat-note { color: var(--erp-muted); font-size: .78rem; margin-top: 2px; }
.erp-kpi { background: var(--erp-card); border: 1px solid var(--erp-line) !important; color: var(--erp-ink); }
a.erp-kpi:hover, .erp-kpi:hover { border-color: var(--erp-primary) !important; }
.erp-kpi-value { color: var(--erp-ink); font-size: 1.4rem; }

a.erp-stat-link { display: block; text-decoration: none !important; color: var(--erp-ink) !important; transition: border-color .15s, box-shadow .15s; }
a.erp-stat-link:hover { border-color: var(--erp-primary); box-shadow: 0 4px 14px rgba(47, 91, 216, .12); }

/* 대시보드: 챙길 일, 바로가기 */
.erp-todo { list-style: none; margin: 0; padding: 0; }
.erp-todo li { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--erp-line); font-size: .92rem; }
.erp-todo li:first-child { border-top: 0; padding-top: 2px; }
.erp-todo li > i { color: var(--erp-primary); font-size: 1.1rem; }
.erp-todo li > span { flex: 1; }
.erp-todo li .btn { white-space: nowrap; }
.erp-shortcuts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.erp-shortcuts a { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 4px; border: 1px solid var(--erp-line); border-radius: 8px;
  color: var(--erp-ink) !important; text-decoration: none !important; font-size: .82rem; font-weight: 600; text-align: center; background: #fff; }
.erp-shortcuts a i { font-size: 1.25rem; color: var(--erp-primary); }
.erp-shortcuts a:hover { background: var(--erp-primary-soft); border-color: var(--erp-primary); }
@media (max-width: 575.98px) { .erp-shortcuts { grid-template-columns: repeat(2, 1fr); } }

/* 막대 그래프(장부 추이·분류) */
.erp-bar { height: 8px; border-radius: 4px; background: #eef1f5; overflow: hidden; min-width: 60px; }
.erp-bar > span { display: block; height: 100%; border-radius: 4px; background: var(--erp-primary); }
.erp-bar.in > span { background: var(--erp-primary); }
.erp-bar.out > span { background: #e58b84; }

/* 환경설정: 테마 고르기 */
.erp-theme-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.erp-theme-option { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 2px solid var(--erp-line); border-radius: 12px; cursor: pointer; background: #fff; transition: border-color .15s, box-shadow .15s; }
.erp-theme-option:hover { border-color: #b9c3d0; }
.erp-theme-option.is-current, .erp-theme-option:has(input:checked) { border-color: var(--erp-primary); box-shadow: 0 0 0 3px var(--erp-primary-soft); }
.erp-theme-option input { position: absolute; top: 12px; right: 12px; }
.erp-theme-name { font-weight: 700; font-size: .95rem; }
.erp-theme-desc { color: var(--erp-muted); font-size: .82rem; line-height: 1.45; }
.erp-theme-preview { display: flex; height: 120px; border-radius: 8px; overflow: hidden; border: 1px solid var(--erp-line); background: #f3f5f8; }
.erp-theme-preview .pv-menu { display: flex; gap: 5px; padding: 7px; background: #fff; }
.erp-theme-preview .pv-menu i { display: block; background: #dfe4ec; border-radius: 3px; }
.erp-theme-preview .pv-body { flex: 1; display: flex; flex-direction: column; gap: 6px; padding: 8px; }
.erp-theme-preview .pv-body b { display: block; width: 38%; height: 7px; border-radius: 3px; background: #b9c3d0; }
.erp-theme-preview .pv-cards { display: flex; gap: 5px; }
.erp-theme-preview .pv-cards em { flex: 1; height: 22px; border-radius: 4px; background: #fff; border: 1px solid #e3e8ee; }
.erp-theme-preview .pv-table { flex: 1; display: flex; flex-direction: column; gap: 3px; background: #fff; border: 1px solid #e3e8ee; border-radius: 4px; padding: 4px; }
.erp-theme-preview .pv-table s { display: block; height: 7px; border-radius: 2px; background: #eef1f5; }
.erp-theme-preview .pv-table u { display: block; height: 4px; border-radius: 2px; background: #eef1f5; }
/* 기본 테마 미리보기: 메뉴가 위 */
.erp-theme-preview-classic { flex-direction: column; }
.erp-theme-preview-classic .pv-menu { flex-direction: row; border-bottom: 1px solid #e3e8ee; }
.erp-theme-preview-classic .pv-menu i { width: 26px; height: 7px; }
.erp-theme-preview-classic .pv-menu i.on { background: #2f5bd8; }
/* 사이드 테마 미리보기: 어두운 메뉴가 왼쪽 */
.erp-theme-preview-side { background: #e9eaf4; padding: 5px; gap: 5px; border-color: #d9dbe8; }
.erp-theme-preview-side .pv-menu { flex-direction: column; width: 46px; background: #17171b; border-radius: 6px; }
.erp-theme-preview-side .pv-menu i { width: 100%; height: 7px; background: #3a3a44; }
.erp-theme-preview-side .pv-menu i.on { background: #ef8a00; }
.erp-theme-preview-side .pv-body { padding: 3px; }
.erp-theme-preview-side .pv-table s { background: #3d3d45; }
.erp-topbar { display: none; }

/* ---------- 4. 구매/판매 화면 ---------- */
.erp-app .sales-main-wrapper { height: calc(100vh - 96px) !important; padding: 0 !important; }
.erp-app .partner-info-container { height: 100% !important; border: 1px solid var(--erp-line) !important; border-radius: var(--erp-radius); box-shadow: var(--erp-shadow); }
.erp-app .sales-list-container { border: 1px solid var(--erp-line) !important; border-radius: var(--erp-radius) !important; background: #fff; box-shadow: var(--erp-shadow); }
.erp-app .sales-main-wrapper .col-xl-8 > div { border: 1px solid var(--erp-line) !important; border-radius: var(--erp-radius); background: #fff; box-shadow: var(--erp-shadow); }
.erp-app .sales-main-wrapper .col-xl-8 > div:first-child { border: 0 !important; box-shadow: none; background: transparent; }
.erp-app .sales-main-wrapper .btn-func { background: #fff !important; border: 1px solid #cdd5df !important; color: var(--erp-ink) !important; border-radius: 8px !important; font-weight: 700; box-shadow: var(--erp-shadow); width: 100%; }
.erp-app .sales-main-wrapper .btn-func:hover { background: var(--erp-primary-soft) !important; border-color: var(--erp-primary) !important; color: var(--erp-primary) !important; }
.erp-app .sales-main-wrapper .btn-func.btn-f1 { background: var(--erp-primary) !important; border-color: var(--erp-primary) !important; color: #fff !important; }
.erp-app .sales-main-wrapper .btn-func.btn-f1:hover { background: var(--erp-primary-dark) !important; color: #fff !important; }
.erp-app .partner-detail-card, .erp-app .partner-info-container [style*="linear-gradient"] { background: var(--erp-head) !important; color: var(--erp-ink) !important; }

.erp-app .partner-master-box { background: var(--erp-head) !important; color: var(--erp-ink) !important; border-top: 1px solid var(--erp-line) !important; box-shadow: none !important; }
.erp-app .partner-master-box * { color: var(--erp-ink) !important; border-color: var(--erp-line) !important; }
.erp-app .partner-master-box td:first-child, .erp-app .partner-master-box .info-label { color: var(--erp-muted) !important; }
.erp-app .partner-master-box .master-table td.balance-highlight-card, .erp-app .partner-master-box .master-table td.text-danger { color: var(--erp-danger) !important; font-weight: 700; }
.erp-app .sales-table .issue-badge { font-size: .72rem; padding: 1px 8px; }
.erp-app .partner-list-table tbody tr.partner-active td, .erp-app .partner-list-table tbody tr.partner-active .col-pt-idx { background: var(--erp-primary-soft) !important; color: var(--erp-primary) !important; }

/* 전표 입력 창(매출·매입) */
.erp-app .modal-sales-invoice { background: var(--erp-bg) !important; }
.erp-app .sales-reg-card { border: 0 !important; }
.erp-app .modal-sales-invoice > .d-flex.border, .erp-app .modal-sales-invoice .border-secondary { border-color: var(--erp-line) !important; border-radius: 8px !important; }
.erp-app .table-reg-items th { background: var(--erp-head) !important; color: var(--erp-muted) !important; border-color: var(--erp-line) !important; font-weight: 600; }
.erp-app .table-reg-items td { border-color: var(--erp-line) !important; }
.erp-app #invoiceItemsBody tr:nth-child(even) td, .erp-app .table-reg-items tbody tr:nth-child(even) td { background: #fafbfd !important; }
.erp-app .middle-info-bar { background: var(--erp-head) !important; color: var(--erp-ink) !important; border: 1px solid var(--erp-line); border-radius: 8px; }
.erp-app .middle-info-bar * { color: var(--erp-ink); }
.erp-app .middle-info-bar input { border: 1px solid #cdd5df !important; border-radius: 6px; }
.erp-app .ledger-summary-panel { background: #fff !important; border: 1px solid var(--erp-line) !important; border-radius: 8px !important; }
.erp-app .s-input { border: 1px solid #cdd5df !important; border-radius: 5px; }
.erp-app .s-input[readonly] { background: #f3f5f8 !important; border-color: var(--erp-line) !important; }
.erp-app .modal-header .d-flex { flex-wrap: wrap; }
.erp-app .modal-header .btn { white-space: nowrap; }

/* 화면 높이에 맞춘 화면(구매/판매·상품·거래처): 제목 줄만큼 높이를 줄인다 */
.erp-page-head-fixed { margin-bottom: 10px; }
@media (min-width: 992px) {
  .erp-app .sales-main-wrapper { height: calc(100vh - 162px) !important; }
  .erp-app .product-main-viewport { height: calc(100vh - 150px) !important; }
  .erp-app .main-layout-wrapper { height: calc(100vh - 166px) !important; min-height: 520px !important; }
}

/* ---------- 5. 확인창(상품·거래처) ---------- */
.erp-app .custom-confirm-box { background: #fff !important; color: var(--erp-ink) !important; border-radius: 12px !important; max-width: calc(100vw - 32px); box-shadow: 0 20px 50px rgba(16, 24, 40, .25) !important; }
.erp-app .btn-confirm-ok { background: var(--erp-primary) !important; color: #fff !important; border-radius: 7px !important; }
.erp-app .btn-confirm-cancel { background: #fff !important; color: var(--erp-ink) !important; border: 1px solid #cdd5df !important; border-radius: 7px !important; }

/* ---------- 6. 핸드폰·태블릿 (화면 폭 992px 미만) ---------- */
@media (max-width: 991.98px) {
  body.erp-app { padding-top: 58px !important; }
  .erp-app .erp-main { padding: 12px 12px 24px; }
  .erp-app .navbar { min-height: 58px; }
  .erp-app .navbar > .container-fluid { padding-left: 14px !important; padding-right: 10px !important; }
  .erp-app .navbar-collapse { max-height: calc(100vh - 70px); overflow-y: auto; padding: 6px 0 10px; border-top: 1px solid var(--erp-line); margin-top: 8px; }
  .erp-app .navbar .nav-link { padding: 11px 12px !important; font-size: 1rem; }
  .erp-app .navbar .navbar-nav.ms-auto { flex-direction: row; gap: 12px; padding: 8px 12px 0; }

  /* 화면 높이에 가둬 두던 틀을 풀어 아래쪽 내용이 모두 보이게 한다 */
  .erp-app .product-main-viewport, .erp-app .main-layout-wrapper, .erp-app .sales-main-wrapper,
  .erp-app .sales-main-wrapper .content-row, .erp-app .content-row {
    height: auto !important; min-height: 0 !important; overflow: visible !important; }
  .erp-app .product-main-viewport .h-100, .erp-app .main-layout-wrapper .h-100, .erp-app .sales-main-wrapper .h-100,
  .erp-app .card-full-height, .erp-app .product-main-viewport form.h-100 { height: auto !important; }
  .erp-app .product-main-viewport .card, .erp-app .main-layout-wrapper .card { height: auto !important; overflow: visible !important; }
  .erp-app .product-main-viewport .card-body, .erp-app .card-full-height .card-body, .erp-app .product-scroll-inner-body {
    overflow: visible !important; flex: none !important; height: auto !important; max-height: none !important; }
  .erp-app .product-main-viewport .pb-3 { padding-bottom: 0 !important; }
  .erp-app .product-main-viewport .row > [class*="col-"], .erp-app .main-layout-wrapper .row.content-row > [class*="col-"] { margin-bottom: 12px; }

  /* 구매/판매: 전표 버튼을 맨 위 가로 줄로, 거래처 목록은 적당한 높이로 */
  .erp-app .sales-main-wrapper .content-row { display: flex; flex-direction: column; gap: 10px; margin: 0; }
  .erp-app .sales-main-wrapper .content-row > [class*="col-"] { width: 100% !important; max-width: 100% !important; flex: none !important; padding: 0; }
  .erp-app .sales-main-wrapper .content-row > [class*="col-"]:last-child { order: -1; }
  .erp-app .sales-main-wrapper .func-btn-group { flex-direction: row !important; height: auto !important; gap: 6px !important; }
  .erp-app .sales-main-wrapper .btn-func { flex: 1 1 0; min-height: 44px; margin: 0 !important; }
  .erp-app .sales-main-wrapper .btn-func i { display: block; }
  .erp-app .partner-info-container { height: auto !important; max-height: none; }
  .erp-app .partner-scroll-area { max-height: 220px; flex: none !important; }
  .erp-app .sales-main-wrapper .col-xl-8 { overflow: visible !important; display: block !important; }
  .erp-app .sales-main-wrapper .col-xl-8 > div { height: auto !important; overflow: visible !important; margin-bottom: 10px; }
  .erp-app .sales-list-container { overflow: visible !important; }
  .erp-app .list-scroll-area, .erp-app #sub_items_viewer_wrap { overflow-x: auto !important; max-height: 420px; }
  .erp-app .sales-table, .erp-app .table-detail-items-clean { min-width: 640px; }

  .erp-app .product-main-viewport .card-body.product-scroll-inner-body, .erp-app .main-layout-wrapper .card-full-height .card-body.p-0,
  .erp-app .sales-main-wrapper .col-xl-8 > div { overflow-x: auto !important; }
  .erp-app .product-main-viewport table.table, .erp-app .main-layout-wrapper table.table { min-width: 580px; }
  .erp-app .external-search-box .row > [class*="col"] { flex: 1 1 45%; max-width: 100%; }

  .erp-app #itemTable { min-width: 680px; }
  .erp-app #budgetTable { min-width: 640px; }
  .erp-app #budgetTable td:first-child { white-space: nowrap; min-width: 110px; }
  .erp-app .table-responsive > .table { min-width: 520px; }
  /* 전표 입력 창: 좁은 화면에서는 줄을 바꾸고, 품목 표만 좌우로 민다 */
  .erp-app .modal-header { flex-wrap: wrap; gap: 8px; }
  .erp-app .modal-header .ms-auto { margin-left: 0 !important; width: 100%; gap: 6px !important; }
  .erp-app .modal-header .btn-close { position: absolute; top: 10px; right: 12px; }
  .erp-app .modal-sales-invoice > .d-flex { flex-wrap: wrap; }
  .erp-app .modal-sales-invoice > .d-flex .ms-auto { margin-left: 0 !important; flex-wrap: wrap; }
  .erp-app .modal-sales-invoice div:has(> .table-reg-items) { overflow-x: auto !important; }
  .erp-app .table-reg-items { min-width: 920px; }
  .erp-app .middle-info-bar { flex-wrap: wrap; gap: 8px !important; }
  .erp-app .summary-grid { grid-template-columns: 1fr !important; gap: 10px !important; }
  .erp-app .summary-row .s-input { flex: 1; max-width: 60%; }
  /* 넓은 표는 표 안에서만 좌우로 민다 (화면 전체가 밀리지 않게) */
  .erp-app .card-body { overflow-x: auto; }
  .erp-app .card-header { flex-wrap: wrap; gap: 6px; }
  .erp-app .card-header .btn { margin-bottom: 2px; }
  .erp-page-head { align-items: flex-start; }
  .erp-actions { width: 100%; }
  .erp-title { font-size: 1.15rem; }
  .erp-app .modal-dialog { margin: 8px; max-width: calc(100vw - 16px) !important; }
  .erp-app .modal-body { overflow-x: auto; }
  .erp-app .form-control, .erp-app .form-select { font-size: 16px; }   /* 아이폰에서 입력할 때 화면이 확대되지 않게 */
  .erp-app .form-control-sm, .erp-app .form-select-sm { font-size: 16px; padding-top: 6px; padding-bottom: 6px; }
  .erp-app .btn-sm { padding: 7px 12px; font-size: .88rem; }
}
@media (max-width: 575.98px) {
  .erp-stat-value, .erp-kpi-value { font-size: 1.15rem; }
  .erp-card { padding: 12px; }
  .erp-app .card-body { padding: 12px; }
}

/* 인쇄할 때는 메뉴와 버튼을 숨긴다 */
@media print {
  .erp-app .navbar, .erp-app footer.footer, .erp-actions, .erp-app .btn { display: none !important; }
  .erp-no-print, .erp-topbar { display: none !important; }
  body.erp-app { padding-left: 0 !important; }
  .erp-app .form-control { border: 0 !important; padding: 0 !important; background: transparent !important; }
  .erp-app a { color: inherit !important; text-decoration: none !important; }
  body.erp-app { padding-top: 0 !important; background: #fff !important; }
  .erp-app .erp-main { padding: 0; }
  .erp-card, .erp-app .card { box-shadow: none !important; }
}

/* 창(모달) 안에 끼워 넣은 화면(?embed=modal): 위쪽 메뉴 자리를 비운다 */
body.erp-app.erp-embed { padding-top: 0 !important; background: #fff !important; }
.erp-embed .erp-main { padding-top: 10px !important; }
.erp-embed .erp-page { max-width: none; }

.erp-subnav { display: none; }

/* 목록 행 상하 여백: 판매관리 목록 수준으로 통일 */
.erp-app .table:not(.sales-table):not(.partner-list-table):not(.table-reg-items):not(.master-table):not(.modal-matrix-table) > tbody > tr > td,
.erp-app .table:not(.sales-table):not(.partner-list-table):not(.table-reg-items):not(.master-table):not(.modal-matrix-table) > tfoot > tr > td,
.erp-app .table:not(.sales-table):not(.partner-list-table):not(.table-reg-items):not(.master-table):not(.modal-matrix-table) > tfoot > tr > th {
  padding-top: 5px !important; padding-bottom: 5px !important; line-height: 1.35; }
.erp-app .table:not(.sales-table):not(.partner-list-table):not(.table-reg-items):not(.master-table):not(.modal-matrix-table) > thead > tr > th {
  padding-top: 7px !important; padding-bottom: 7px !important; }

/* ---------- 긴 글자 전체 보기 안내 / 열 너비 조절 / 카드 배치 설정 ---------- */
.erp-tip { display: none; position: fixed; z-index: 3000; max-width: 420px; padding: 6px 10px; background: #26262c; color: #fff; font-size: .82rem; line-height: 1.4; border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.28); pointer-events: none; word-break: break-all; }
.erp-rs { position: absolute; top: 0; right: -3px; width: 7px; height: 100%; cursor: col-resize; z-index: 3; user-select: none; }
.erp-rs:hover, body.erp-resizing .erp-rs { background: rgba(233, 130, 0, .55); }
body.erp-resizing { cursor: col-resize; user-select: none; }
thead th { overflow: visible; }
.erp-gear { border: 0; background: transparent; color: #9a9aa8; padding: 0 6px; margin-left: 4px; font-size: .9rem; vertical-align: middle; cursor: pointer; border-radius: 6px; }
.erp-gear:hover { color: var(--erp-primary); background: rgba(0,0,0,.05); }
.erp-layout-bar { display: none; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; padding: 8px 12px; background: #fff7e8; border: 1px dashed #e98200; border-radius: 10px; font-size: .85rem; }
.erp-layout-edit [data-lk] { position: relative; outline: 2px dashed #e9a24a; outline-offset: -2px; cursor: move; resize: vertical; overflow: auto; }
.erp-layout-edit [data-lk].erp-dragging { opacity: .45; }
.erp-lt { position: absolute; top: 4px; right: 6px; z-index: 5; display: flex; gap: 3px; }
.erp-lt button { width: 24px; height: 24px; line-height: 1; border: 0; border-radius: 6px; background: #e98200; color: #fff; font-weight: 700; cursor: pointer; }
.erp-page.erp-flexed { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-start; }
.erp-page.erp-flexed > * { flex: 0 0 100%; max-width: 100%; }
.erp-page.erp-flexed > [data-wp] { }
.erp-store-frame { width: 100%; height: calc(100vh - 28px); border: 0; border-radius: 14px; background: #fff; display: block; }

/* ===== 버튼·입력칸 크기 통일 (전 화면 공통) =====
   버튼(작은 것) 32px · 입력칸(작은 것) 32px · 보통 입력칸/버튼 36px · 표 안의 버튼/입력칸은 촘촘하게 28px */
.erp-app .btn-sm { min-height: 32px; padding: 4px 12px; font-size: .85rem; line-height: 1.4; }
.erp-app .btn:not(.btn-sm):not(.btn-lg):not(.btn-close):not(.btn-func):not(.btn-xxs):not(.accordion-button):not(.navbar-toggler) { min-height: 36px; }
.erp-app .btn-xxs { min-height: 26px; padding: 2px 10px !important; font-size: .78rem !important; line-height: 1.3; }
.erp-app .form-control-sm, .erp-app .form-select-sm { min-height: 32px; padding-top: 4px; padding-bottom: 4px; font-size: .85rem; }
.erp-app .form-control:not(.form-control-sm):not([type=color]):not([type=range]), .erp-app .form-select:not(.form-select-sm) { min-height: 36px; }
.erp-app textarea.form-control { min-height: 60px; }
.erp-app table .btn-sm { min-height: 26px; padding: 2px 8px; font-size: .8rem; }
.erp-app table .form-control-sm, .erp-app table .form-select-sm { min-height: 28px; padding-top: 2px; padding-bottom: 2px; }
.erp-app .table-reg-items .btn, .erp-app .table-reg-items .form-control, .erp-app .table-reg-items .form-select { min-height: 0; }
.erp-app .input-group > .btn { min-height: 0; }
.erp-split-h { position: absolute; z-index: 30; background: rgba(233, 130, 0, .35); border-radius: 4px; }
.erp-split-h:hover { background: rgba(233, 130, 0, .75); }
.erp-split-row { cursor: col-resize; }
.erp-split-col { cursor: row-resize; }
.erp-app .btn:not(.btn-sm):not(.btn-lg):not(.btn-close):not(.btn-func):not(.btn-xxs):not(.accordion-button):not(.navbar-toggler) { font-size: .92rem; line-height: 1.4; padding: 6px 14px; }
.erp-app .erp-filter { align-items: center; }
.erp-app .btn-sm.py-2 { padding-top: 6px; padding-bottom: 6px; }

/* ===== 견적서·주문서·발주서 (거래처별 전표관리·매출전표와 같은 모양) ===== */
.doc-wrap { display: flex; gap: 4px; height: calc(100vh - 96px); min-height: 420px; padding: 2px 4px 4px; }
.doc-side { flex: 0 0 24%; max-width: 320px; display: flex; flex-direction: column; border: 1px solid #cbd5e1; background: #fff; overflow: hidden; }
.doc-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.doc-pane { display: flex; flex-direction: column; min-height: 0; overflow: hidden; background: #fff; border: 1px solid #cbd5e1; }
.doc-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; background: #212529; color: #fff; padding: 4px 12px; font-size: .8rem; font-weight: 700; flex: none; }
.doc-bar .badge { font-weight: 700; }
.doc-scroll { flex: 1 1 auto; overflow: auto; min-height: 0; scrollbar-width: thin; }
.doc-filter { display: flex; align-items: center; gap: 6px; padding: 6px 8px; background: #f8f9fa; border-bottom: 1px solid #dee2e6; flex: none; flex-wrap: wrap; }
.doc-filter .form-control, .doc-filter .form-select { width: auto; }
.doc-tabs { display: flex; gap: 2px; padding: 0 8px; background: #f1f3f5; border-bottom: 1px solid #dee2e6; flex: none; }
.doc-tabs a { padding: 6px 14px; font-size: .84rem; font-weight: 700; color: #495057; text-decoration: none; border-bottom: 3px solid transparent; }
.doc-tabs a.on { color: var(--erp-primary, #e98200); border-bottom-color: var(--erp-primary, #e98200); background: #fff; }
.doc-tabs a small { background: #dee2e6; border-radius: 9px; padding: 0 6px; margin-left: 3px; color: #495057; }
.doc-table { width: 100%; font-size: .82rem; border-collapse: separate; border-spacing: 0; }
.doc-table thead th { position: sticky; top: 0; z-index: 2; background: #f1f3f5; border-bottom: 2px solid #dee2e6; padding: 6px 8px; font-weight: 700; white-space: nowrap; text-align: center; }
.doc-table td { padding: 5px 8px; border-bottom: 1px solid #efefef; vertical-align: middle; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 260px; }
.doc-table tbody tr { cursor: pointer; }
.doc-table tbody tr:hover td { background: #fff3e0; }
.doc-table tbody tr.on td { background: #ffe8c2; font-weight: 600; }
.doc-pt { padding: 6px 10px; border-bottom: 1px solid #eef0f4; color: #26262c; text-decoration: none; font-size: .84rem; display: flex; justify-content: space-between; gap: 6px; }
.doc-pt:hover { background: #fff3e0; }
.doc-pt:hover { color: #26262c !important; }
.doc-pt.on, .doc-pt.on:hover { background: var(--erp-primary, #e98200); color: #fff !important; font-weight: 700; }
.doc-pt small { opacity: .75; }
.doc-empty { padding: 28px 12px; text-align: center; color: #868e96; font-size: .85rem; }
/* 작성·수정 창 (매출전표 창과 같은 모양) */
.erp-embed .doc-form { margin: -12px -14px -16px; padding: 0 10px 12px; background: #e8e9f3; min-height: 100vh; }
.doc-form { font-size: .86rem; }
.doc-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: nowrap; margin-bottom: 8px; }
.erp-embed .doc-head { background: #f4f5fa; margin: 0 -10px 10px; padding: 8px 14px; border-bottom: 1px solid #d9dbe8; }
.doc-title { font-weight: 700; font-size: 1rem; color: #1b2430; white-space: nowrap; }
.doc-title i { color: var(--erp-primary, #e98200); margin-right: 6px; }
.doc-title span { font-weight: 400; font-size: .8rem; color: #6b6b78; margin-left: 6px; }
.doc-btns { display: flex; gap: 6px; flex: none; align-items: center; }
.doc-btns .btn { font-weight: 700; height: 32px; padding: 0 12px; font-size: .86rem; white-space: nowrap; }
.doc-box { background: #fff; border: 1px solid #d5d8e4; border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; }
.doc-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.doc-lab { margin: 0; font-weight: 600; color: #3d3d45; white-space: nowrap; min-width: 64px; }
.doc-lab.key { color: #0d6efd; }
.doc-form .form-control, .doc-form .form-select { height: 32px; font-size: .86rem; padding: 3px 8px; }
.doc-form .doc-key { font-weight: 700; border-color: #0d6efd; width: 300px; max-width: 100%; }
.doc-form .doc-date { width: 150px; background: #fffbe6; }
.doc-gridwrap { max-height: calc(100vh - 330px); min-height: 200px; overflow: auto; border: 1px solid #d5d8e4; border-radius: 6px; }
.doc-grid { width: 100%; font-size: .84rem; border-collapse: separate; border-spacing: 0; }
.doc-grid thead th { position: sticky; top: 0; z-index: 2; background: #343a40; color: #fff; padding: 6px 8px; text-align: center; font-weight: 600; white-space: nowrap; }
.doc-grid td { padding: 4px 5px; border-bottom: 1px solid #eceef4; vertical-align: middle; }
.doc-grid td.num { text-align: right; white-space: nowrap; padding-right: 10px; }
.doc-grid .form-control { height: 28px; padding: 2px 6px; }
.doc-grid .btn-xxs { height: 26px; width: 26px; padding: 0; line-height: 1; }
.doc-total { display: flex; gap: 18px; justify-content: flex-end; align-items: baseline; font-size: .9rem; }
.doc-total strong { font-size: 1rem; }
.doc-total .grand { font-size: 1.05rem; color: #c1121f; font-weight: 800; }

/* 상품·거래처 등록/수정 폼: 입력칸 사이 상하 여백을 줄인다 (입력칸 높이는 그대로) */
.erp-tight { padding-top: 8px !important; padding-bottom: 8px !important; }
.erp-tight .row { --bs-gutter-y: .2rem; --bs-gutter-x: .5rem; }
.erp-tight .mb-3 { margin-bottom: .35rem !important; }
.erp-tight .mb-2 { margin-bottom: .25rem !important; }
.erp-tight .mt-1, .erp-tight .mt-2 { margin-top: .15rem !important; }
.erp-tight .pt-2 { padding-top: .25rem !important; }
.erp-tight .p-2 { padding: .3rem .5rem !important; }
.erp-tight .form-label { margin-bottom: 1px; line-height: 1.15; font-size: .76rem; }
.erp-tight .form-label.mb-1 { margin-bottom: 1px !important; }
.doc-sum { flex: none; display: flex; flex-wrap: wrap; gap: 4px 22px; padding: 5px 12px; background: #f1f3f5; border-top: 2px solid #dee2e6; font-size: .8rem; }
.doc-sum b { color: #26262c; margin-right: 4px; }
.erp-badge-canceled { background: #e9ecef; color: #6c757d; }

/* 목록설정 (모든 목록 공통) */
.erp-colset-bar { display: flex; justify-content: flex-end; padding: 2px 4px; flex: none; }
.erp-colset-btn { border: 1px solid #cdd5df; background: #fff; border-radius: 6px; font-size: .72rem; height: 24px; padding: 0 9px; color: #495057; cursor: pointer; }
.erp-colset-btn:hover, .erp-colset-btn.on { border-color: var(--erp-primary, #e98200); color: var(--erp-primary, #e98200); }
.erp-colset-ov { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.35); display: flex; align-items: center; justify-content: center; }
.erp-colset-box { width: 340px; max-width: 92vw; max-height: 80vh; display: flex; flex-direction: column; background: #fff; border-radius: 10px; box-shadow: 0 10px 40px rgba(0,0,0,.3); overflow: hidden; }
.erp-colset-hd { display: flex; justify-content: space-between; align-items: center; background: #212529; color: #fff; padding: 8px 14px; font-size: .9rem; }
.erp-colset-hd button { background: none; border: 0; color: #fff; font-size: 1.3rem; line-height: 1; cursor: pointer; }
.erp-colset-tip { padding: 8px 14px 4px; font-size: .78rem; color: #6b6b78; }
.erp-colset-list { overflow: auto; padding: 4px 14px 8px; display: grid; gap: 2px; }
.erp-colset-list label { display: flex; gap: 8px; align-items: center; padding: 3px 4px; font-size: .86rem; cursor: pointer; border-radius: 4px; }
.erp-colset-list label:hover { background: #fff3e0; }
.erp-colset-ft { display: flex; justify-content: space-between; padding: 8px 14px; border-top: 1px solid #e3e6ec; }

/* 제목 줄 오른쪽 버튼들 높이·모양 통일 (34px) */
.erp-app .erp-page-head .erp-actions > .btn,
.erp-app .erp-page-head .erp-actions > .btn-func,
.erp-app .erp-page-head .erp-actions > a.btn,
.erp-app .erp-page-head .erp-actions > form .btn,
.erp-app .erp-page-head .erp-actions > .btn-group > .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  height: 34px; min-height: 34px; padding: 0 14px; font-size: .85rem; line-height: 1; border-radius: 8px; box-sizing: border-box; white-space: nowrap;
}
.erp-app .erp-page-head .erp-actions .btn i, .erp-app .erp-page-head .erp-actions .btn-func i { margin: 0 !important; }

/* 업무형 테마 미리보기 (환경설정 > 테마) */
.erp-theme-preview-pro { flex-direction: column; background: #eef1f5; }
.erp-theme-preview-pro .pv-menu { flex-direction: row; background: #fff; border-bottom: 2px solid #1f4e9c; padding: 5px 7px; }
.erp-theme-preview-pro .pv-menu i { width: 22px; height: 6px; background: #cfd6e0; }
.erp-theme-preview-pro .pv-menu i.on { background: #1f4e9c; }
.erp-theme-preview-pro .pv-body { padding: 5px; gap: 4px; }
.erp-theme-preview-pro .pv-table { border-radius: 2px; gap: 2px; padding: 2px; }
.erp-theme-preview-pro .pv-table s { background: #cfdaea; height: 6px; border-radius: 0; }
.erp-theme-preview-pro .pv-table u { height: 3px; border-radius: 0; background: #e3e8ef; }

/* 전표 입력 품목 줄: 칸마다 테두리·그림자가 생기지 않게 한다 (경고 깜빡임 중일 때만 예외) */
#invoiceItemsBody .form-control:not(.animate-blink-input), #invoiceItemsBody .form-select:not(.animate-blink-input),
#purchaseItemsBody .form-control:not(.animate-blink-input), #purchaseItemsBody .form-select:not(.animate-blink-input) {
  border: 0 !important; box-shadow: none !important; outline: 0 !important; }
#invoiceItemsBody .form-control:focus:not(.animate-blink-input), #purchaseItemsBody .form-control:focus:not(.animate-blink-input) { background-color: rgba(233,130,0,.08) !important; }

/* 견적·주문·발주 작성창: 매출전표 입력창과 같은 모양 */
.doc-form.vz { display:flex; flex-direction:column; height:calc(100vh - 20px); min-height:520px; font-size:.86rem; }
.vz-top { display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:#fff; border:1px solid #e2e4ee; border-radius:10px; padding:8px 12px; margin-bottom:8px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.vz-lab { margin:0; font-weight:700; font-size:.8rem; color:#6b6b78; white-space:nowrap; }
.vz-lab.key { color:#c46a00; } .vz-lab.red { color:#c1121f; }
.vz-chip { height:34px; min-width:240px; border:0; border-radius:8px; padding:0 12px; font-weight:700; color:#fff; background:linear-gradient(90deg,#e98200,#f0a030); box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.vz-chip::placeholder { color:rgba(255,255,255,.8); font-weight:500; } .vz-chip:focus { outline:2px solid #b35f00; }
.vz-date { height:34px; border:0; border-radius:8px; padding:0 10px; font-weight:700; background:#fff0c4; width:150px; }
.vz-no { height:34px; border:0; border-radius:8px; padding:0 10px; background:#eceef4; color:#6b6b78; font-weight:700; width:150px; text-align:center; }
.vz-tools { display:flex; gap:6px; flex-wrap:wrap; }
.vz-btn { height:32px; padding:0 12px; border:1px solid #cfd3df; border-radius:8px; background:#fff; font-weight:600; font-size:.82rem; white-space:nowrap; }
.vz-btn:hover { background:#f4f5fa; } .vz-btn.green { color:#1b8a4b; border-color:#1b8a4b; } .vz-btn.red { color:#c1121f; border-color:#e6a9ae; }
.vz-gridwrap { flex:1; min-height:160px; overflow:auto; background:#fff; border:1px solid #e2e4ee; border-radius:10px; }
.vz-grid { width:100%; border-collapse:separate; border-spacing:0; }
.vz-grid thead th { position:sticky; top:0; z-index:2; background:#3a3d4a; color:#fff; padding:8px; text-align:center; font-weight:700; font-size:.82rem; white-space:nowrap; }
.vz-grid td { padding:2px 4px; border-bottom:1px solid #eef0f6; vertical-align:middle; }
.vz-grid tbody tr:nth-child(even) { background:#fafbfd; }
.vz-grid td.num { text-align:right; white-space:nowrap; padding-right:10px; }
.vz-grid td.cell-code { text-align:center; font-size:.78rem; }
.vz-grid td.vz-no-cell { text-align:center; color:#6b6b78; width:42px; }
.vz-grid .form-control { height:30px; border:0; background:transparent; box-shadow:none; padding:2px 6px; }
.vz-grid .form-control:focus { background:#fff7e6; outline:2px solid #e98200; outline-offset:-2px; }
.vz-grid .btn-xxs { height:24px; width:24px; padding:0; line-height:1; border:0; }
.vz-bar { display:flex; align-items:center; gap:10px; background:#fff; border:1px solid #e2e4ee; border-radius:10px; padding:6px 12px; margin-top:8px; }
.vz-barcode { height:32px; width:230px; border:1px solid #cfd3df; border-radius:8px; padding:0 10px; background:#e6fbff; border-color:#17a2b8; }
.vz-sel { height:32px; border:1px solid #cfd3df; border-radius:8px; padding:0 8px; background:#fff; }
.vz-foot { display:flex; gap:12px; margin-top:8px; align-items:stretch; flex-wrap:wrap; }
.vz-fields { flex:1; min-width:300px; display:flex; gap:8px; flex-wrap:wrap; background:#fff; border:1px solid #e2e4ee; border-radius:10px; padding:8px 12px; align-content:center; }
.vz-f { display:flex; align-items:center; gap:6px; flex:1 1 260px; } .vz-f.s { flex:0 0 190px; }
.vz-f label { margin:0; font-weight:700; font-size:.78rem; color:#6b6b78; white-space:nowrap; }
.vz-f .form-control { height:30px; }
.vz-sum { display:grid; grid-template-columns:repeat(4,auto); gap:4px 18px; align-items:center; background:#fff; border:1px solid #e2e4ee; border-radius:10px; padding:8px 16px; }
.vz-sum div { display:flex; flex-direction:column; align-items:flex-end; } .vz-sum span { font-size:.72rem; color:#6b6b78; } .vz-sum b { font-size:1.02rem; }
.vz-sum .grand b { color:#c1121f; font-size:1.5rem; }
