/* 계산서 미리보기 (2026-09-16) — `report-preview.js` 가 여는 창.

   **화면과 인쇄가 같은 판을 쓴다.** 창 안의 흰 종이(`.rpv-sheet`)가 A4 폭 그대로
   그려지고, 인쇄할 때는 창 틀(도구줄 · 어두운 바탕)과 페이지 나머지를 감추고
   종이만 남긴다 — "PDF 저장" 은 브라우저 인쇄의 "PDF 로 저장" 이다.

   글자 크기 · 색 · 표 폭은 계산서 문서 모형(pt · cm · 'RRGGBB')의 값이라
   `el.style.x` 로 준다(CSP `style-src 'self'` 는 CSSOM 을 안 막는다). */

.rpv{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:rgba(11,26,33,.88)}
.rpv[hidden]{display:none}
html.rpv-open, html.rpv-open body{overflow:hidden}

.rpv-bar{flex:0 0 auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:10px 16px;background:var(--bg,#fff);border-bottom:1px solid var(--line)}
.rpv-title{flex:1 1 240px;min-width:0;font:600 14px var(--sans);color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rpv-title small{display:block;font:400 11.5px var(--mono);color:var(--ink-3);margin-top:2px}
.rpv-btn{appearance:none;background:#fff;border:1px solid var(--line);color:var(--ink);
  border-radius:3px;padding:6px 12px;font:500 13px var(--sans);cursor:pointer;white-space:nowrap}
.rpv-btn:hover{border-color:var(--brand);color:var(--brand)}
.rpv-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.rpv-btn.primary:hover{filter:brightness(1.08);color:#fff}
.rpv-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.rpv-btn:disabled{opacity:.6;cursor:progress}
.rpv-close{margin-left:4px}
.rpv-hint{flex-basis:100%;font:400 12px var(--sans);color:var(--ink-3)}
.rpv-hint[hidden]{display:none}

.rpv-scroll{flex:1 1 auto;overflow:auto;padding:24px 16px 48px}
.rpv-pages{margin:0 auto;width:21cm}

/* ── 종이 ─────────────────────────────────────────────────────────── */
.rpv-sheet{position:relative;width:21cm;min-height:29.7cm;margin:0 auto 20px;background:#fff;color:#0B1A21;
  padding:1.2cm 1.8cm 1.4cm;box-shadow:0 2px 14px rgba(0,0,0,.35);
  font-family:"Malgun Gothic","맑은 고딕","IBM Plex Sans KR",sans-serif;font-size:9.5pt;line-height:1.35;
  display:flex;flex-direction:column}
.rpv-sheet *{box-sizing:border-box}
.rpv-body{flex:1 1 auto}
.rpv-head,.rpv-foot{flex:0 0 auto;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.rpv-head{border-bottom:.5pt solid #DBE4E7;padding-bottom:4pt;margin-bottom:.8cm}
.rpv-foot{border-top:.5pt solid #DBE4E7;padding-top:4pt;margin-top:.8cm}

.rpv-p{margin:0;white-space:normal;overflow-wrap:anywhere}
.rpv-p.tabbed{position:relative;white-space:nowrap}
.rpv-tab{position:absolute;top:0}
.rpv-tab.right{transform:translateX(-100%)}
.rpv-hang{display:inline-block}
.rpv-mono{font-family:Consolas,"D2Coding",ui-monospace,monospace}
.rpv-pill{padding:0 .25em;border-radius:1.5pt}
.rpv-box{padding:0 .2em;border:.5pt solid currentColor}

.rpv-tbl{border-collapse:collapse;table-layout:fixed;margin:0 auto;page-break-inside:auto}
.rpv-tbl td{vertical-align:top;padding:0}
.rpv-tbl tr.keep{break-inside:avoid;page-break-inside:avoid}
.rpv-img{display:block;margin:4pt auto 0;height:auto}
.rpv-break{height:0}

/* ── 인쇄 — 종이만 남긴다 ─────────────────────────────────────────── */
@media print{
  html.rpv-printing body > *:not(.rpv){display:none !important}
  html.rpv-printing, html.rpv-printing body{background:#fff !important;margin:0 !important;padding:0 !important}
  html.rpv-printing .rpv{position:static;display:block;background:none}
  html.rpv-printing .rpv-bar{display:none}
  html.rpv-printing .rpv-scroll{overflow:visible;padding:0}
  html.rpv-printing .rpv-pages{width:auto;zoom:1 !important}
  html.rpv-printing .rpv-sheet{width:auto;min-height:0;margin:0;padding:0;box-shadow:none;display:block;
    break-after:page;page-break-after:always}
  html.rpv-printing .rpv-sheet:last-child{break-after:auto;page-break-after:auto}
  /* 머리 · 꼬리는 @page 여백 칸이 쪽마다 찍는다(`report-preview.js`). 못 찍는 브라우저에서는 빠진다. */
  html.rpv-printing .rpv-head, html.rpv-printing .rpv-foot{display:none}
  .rpv-sheet{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
