/* 모든 화면 공통 글꼴·크기 (매출·미수, 월별 청구서, 자금관리, 거래처·계정, 로그인). 각 화면 스타일 뒤에 읽어 덮어씁니다. */
:root { --app-font: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", "Noto Sans KR", "NanumGothic", "Segoe UI", sans-serif; }
body { font-family: var(--app-font); font-size: 14px; line-height: 1.5; }
button, input, select, textarea, .pnav, .pnav-out { font-family: var(--app-font); }
textarea.mono, pre, code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
h1, .toolbar h1 { font-size: 20px; font-weight: 700; }
h2, .card h2, .chart-card h2 { font-size: 16px; }
table { font-size: 13px; }

/* 매출·미수: 이지샵 가져오기 */
#esPull { margin-right: 6px; }
#esPull:disabled { opacity: .6; cursor: default; }
.es-msg { display: block; width: 100%; text-align: right; margin-top: 4px; }
.es-err { color: #c62828; }
.es-log { font: inherit; font-size: 12px; background: none; border: 0; color: #2a78d6; text-decoration: underline; cursor: pointer; padding: 0 0 0 6px; }
.es-dlg { width: min(860px, calc(100% - 32px)); border: 1px solid #ccd; border-radius: 10px; padding: 16px; }
.es-dlg h3 { margin: 0 0 8px; font-size: 16px; }
.es-dlg textarea { width: 100%; box-sizing: border-box; font: 12px/1.5 ui-monospace, Menlo, Consolas, monospace; }
.es-dlg-act { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.es-dlg-act button { font: inherit; padding: 5px 14px; border-radius: 6px; border: 1px solid #aab; background: #f4f5f7; cursor: pointer; }
/* 매출·미수: 북마크 붙여넣기 방식의 [데이터 업데이트]와 안내 창은 쓰지 않음 (이지샵 자동 수집으로 대체) */
#updBtn, #updCard { display: none !important; }

/* 매출·미수 > 미수 관리: 업체별 월별 입금현황 (월마다 발행·입금·잔액) */
#payMon .pm-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
#payMon .pm-head h2 { margin: 0; }
#payMon .pm-count { font-size: 13px; font-weight: 400; color: var(--muted, #888); }
#payMon .pm-ctl { margin-left: auto; display: flex; gap: 12px; align-items: center; font-size: 13px; }
#payMon .pm-ctl .tabs button.on { background: var(--ink, #111); color: var(--surface, #fff); border-color: var(--ink, #111); }
#payMon .pm-sum { display: flex; gap: 18px; flex-wrap: wrap; font-size: 13px; margin: 4px 0 10px; }
#payMon .pm-wrap { overflow: auto; max-height: 600px; }
#payMon table { min-width: 100%; border-collapse: separate; border-spacing: 0; }
#payMon th, #payMon td { white-space: nowrap; padding: 6px 8px; }
#payMon thead th { position: sticky; background: var(--surface, #fff); z-index: 2; text-align: right; font-weight: 600; }
#payMon thead tr:first-child th { top: 0; }
#payMon thead tr:nth-child(2) th { top: 31px; font-weight: 400; color: var(--ink2, #666); font-size: 12px; }
#payMon th.pm-mh { text-align: center; border-left: 2px solid var(--border, #ddd); }
#payMon .pm-name { position: sticky; left: 0; background: var(--surface, #fff); z-index: 1; text-align: left; max-width: 200px; overflow: hidden; text-overflow: ellipsis; }
#payMon thead .pm-name { z-index: 3; }
#payMon td.pm-s, #payMon td.pm-p, #payMon td.pm-b { text-align: right; font-variant-numeric: tabular-nums; }
#payMon .pm-s { border-left: 2px solid var(--border, #ddd); }
#payMon td.pm-p { color: var(--goodtx, #006300); }
#payMon td.pm-over, #payMon .pm-over-ex { background: var(--critical-bg, rgba(208,59,59,.1)); color: var(--critical, #d03b3b); }
#payMon .pm-over-ex { padding: 0 4px; border-radius: 4px; }
#payMon td.pm-minus { color: var(--s1, #2a78d6); }
#payMon .pm-none { color: var(--muted, #aaa); text-align: center; }
#payMon .pm-bad { color: var(--critical, #d03b3b); }
#payMon .pm-bal { color: var(--ink2, #555); }
#payMon td.pm-s small { display: block; font-size: 11px; }
#payMon td.pm-late, #payMon .pm-late-ex { background: var(--warning-bg, rgba(250,178,25,.14)); color: #8a5a00; }
#payMon .pm-late-ex { padding: 0 4px; border-radius: 4px; }
#payMon .pm-end, #payMon .pm-endh { border-left: 2px solid var(--border, #ddd); font-weight: 600; }
#payMon .pm-ctl select { font: inherit; font-size: 13px; padding: 3px 6px; border: 1px solid var(--border, #ccc); border-radius: 6px; background: var(--surface, #fff); color: inherit; }
#payMon td.pm-name small { display: block; font-size: 11px; color: var(--muted, #888); }
#payMon tr.pm-group td { position: sticky; left: 0; background: var(--surface-2, #f1f2f4); font-weight: 600; font-size: 13px; padding: 8px; border-top: 2px solid var(--border, #ddd); }
#payMon tbody.pm-settled tr.pm-group td { color: var(--ink2, #666); }
#payMon tbody.pm-settled td.pm-name button { color: var(--ink2, #666); }
