/* 직보 — 지문별 한 쪽 정리지(public/jikbo.js). 관리자 전용.
   판면은 .jb-page 안에서 모두 정한다 — 미리보기·측정·인쇄(#wbPrintArea)가 같은 규칙을 쓰므로 쪽 맞춤이 어긋나지 않는다.
   .jb-d0~3 은 한 쪽에 맞추는 글자 크기 단계(jikbo.js LEVELS.cls). */
.jb-page{ --jb-ac:#1B4079; --jb-line:#A5BAD9; --jb-band:#ECF1F9; --jb-fs:9pt; --jb-en:9.7pt; --jb-lh:1.5; --jb-gap:2.3mm;
  width:210mm; box-sizing:border-box; padding:12mm 12mm 11mm; background:#fff; color:#000; text-align:left;
  font-family:'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',sans-serif;
  font-size:var(--jb-fs); line-height:var(--jb-lh); font-weight:500; word-break:keep-all; overflow-wrap:break-word; }
.jb-page.jb-d1{ --jb-fs:8.6pt; --jb-en:9.3pt; --jb-lh:1.46; --jb-gap:2mm; }
.jb-page.jb-d2{ --jb-fs:8.2pt; --jb-en:8.9pt; --jb-lh:1.42; --jb-gap:1.7mm; }
.jb-page.jb-d3{ --jb-fs:7.8pt; --jb-en:8.5pt; --jb-lh:1.38; --jb-gap:1.4mm; }
/* 인쇄 영역의 공통 쪽 규칙(상하 18mm·flex)보다 우선한다 — 직보는 한 쪽에 많이 싣기 위해 여백을 좁힌다. */
#wbPrintArea .wb-page.jb-page{ display:block; padding:12mm 12mm 11mm; margin:0; }
.jb-page p{ margin:0; }
.jb-page .jb-en{ font-size:var(--jb-en); }
.jb-page .jb-ko{ font-size:.92em; color:#2b2f36; }
.jb-page .jb-k{ font-size:.84em; font-weight:800; color:var(--jb-ac); white-space:nowrap; }
.jb-page .jb-n{ font-weight:800; color:var(--jb-ac); }

.jb-head{ display:flex; align-items:baseline; gap:2.6mm; padding:1.7mm 0 1.6mm; margin-bottom:var(--jb-gap); border-top:1.8pt solid var(--jb-ac); border-bottom:.6pt solid var(--jb-ac); }
.jb-badge{ flex:none; padding:.5mm 2.4mm; background:var(--jb-ac); color:#fff; font-size:8.6pt; font-weight:800; letter-spacing:.3pt; border-radius:2px; }
.jb-label{ font-size:11.5pt; font-weight:800; color:var(--jb-ac); letter-spacing:-.1pt; }
.jb-title{ margin-left:auto; font-size:8.6pt; font-weight:600; color:#333; text-align:right; }

.jb-sec{ margin-bottom:var(--jb-gap); }
.jb-h{ display:flex; align-items:baseline; gap:2mm; margin-bottom:.8mm; }
.jb-h b{ position:relative; padding-left:2.6mm; font-size:1.04em; font-weight:800; color:var(--jb-ac); }
.jb-h b::before{ content:""; position:absolute; left:0; top:.22em; bottom:.22em; width:2.6pt; background:var(--jb-ac); border-radius:1px; }
.jb-h i{ font-style:normal; font-size:.8em; font-weight:600; color:#5b6b83; }

/* 핵심 */
.jb-core{ padding:1.6mm 3mm 1.8mm; background:var(--jb-band); border-radius:2px; }
.jb-gist{ margin-bottom:.8mm !important; font-size:1.1em; font-weight:700; }
.jb-pair{ display:grid; grid-template-columns:8.5mm 1fr; column-gap:1.2mm; align-items:baseline; margin-top:.5mm; }
.jb-pair .jb-ko{ margin-left:1.6mm; }

/* 글의 흐름 */
.jb-flow-row{ display:flex; align-items:stretch; }
.jb-fbox{ flex:1 1 0; min-width:0; padding:1.1mm 2mm 1.2mm; border:.7pt solid var(--jb-line); border-radius:2px; }
.jb-fl{ display:flex; justify-content:space-between; align-items:baseline; gap:1.5mm; font-size:.86em; font-weight:800; color:var(--jb-ac); }
.jb-fn{ flex:none; font-weight:600; font-size:.9em; color:#5b6b83; }
.jb-fp{ font-size:.94em; line-height:1.34; }
.jb-arrow{ flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 1.1mm; font-size:.74em; color:var(--jb-ac); line-height:1.15; }
.jb-arrow i{ font-style:normal; font-size:.9em; font-weight:700; color:#5b6b83; max-width:13mm; text-align:center; }

/* 표시된 원문 */
.jb-legend{ margin-left:auto; display:flex; align-items:baseline; gap:2.2mm; font-size:.8em; font-weight:600; }
.jb-text{ font-size:var(--jb-en); line-height:calc(var(--jb-lh) + .24); text-align:justify; }
.jb-sn{ margin-right:.7pt; font-size:.62em; font-weight:800; color:var(--jb-ac); vertical-align:super; line-height:0; }
.jb-topic{ font-weight:700; }
.jb-tag{ margin-right:1pt; padding:0 1.1mm; border:.6pt solid var(--jb-ac); border-radius:2px; font-size:.68em; font-weight:800; color:var(--jb-ac); vertical-align:.12em; white-space:nowrap; }
.jb-g{ background:#FFF1A8; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.jb-w{ background:#FFD9E8; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.jb-b{ font-weight:700; text-decoration:underline; text-decoration-thickness:1.1pt; text-underline-offset:2.2pt; }
.jb-e{ text-decoration:underline dotted; text-decoration-thickness:1pt; text-underline-offset:2.2pt; }
.jb-b.jb-e{ text-decoration-style:solid; }
.jb-no{ margin-left:.3pt; font-size:.7em; font-weight:800; color:var(--jb-ac); vertical-align:super; line-height:0; }
.jb-ant{ margin:0 .5pt 0 .8pt; font-size:.74em; font-weight:700; color:#A8275F; white-space:nowrap; }

/* 아래 두 단 */
.jb-cols{ column-count:2; column-gap:6mm; column-rule:.5pt solid var(--jb-line); margin-top:var(--jb-gap); }
/* 칸은 두 단에 걸쳐 흐를 수 있다(통째로 묶으면 두 단 높이가 크게 어긋나 한 쪽을 넘긴다). 항목 하나는 쪼개지 않고, 제목은 단 끝에 혼자 남지 않는다. */
.jb-cols .jb-h{ break-after:avoid; }
.jb-gi, .jb-vt, .jb-rel, .jb-pr, .jb-er, .jb-tf li, .jb-key{ break-inside:avoid; page-break-inside:avoid; }
.jb-gi{ display:grid; grid-template-columns:4.2mm 1fr; column-gap:.6mm; align-items:baseline; margin-top:.3mm; }
.jb-fix{ display:inline-block; margin-left:1.4mm; font-size:.9em; font-weight:700; color:#A8275F; }
.jb-fix s{ text-decoration-thickness:.8pt; }
.jb-vt{ display:grid; grid-template-columns:max-content minmax(0, max-content) minmax(0, 1fr) max-content; column-gap:2.2mm; row-gap:.2mm; align-items:baseline; }
.jb-vw{ font-weight:700; }
.jb-vp{ display:grid; grid-template-columns:1fr 1fr; column-gap:3mm; row-gap:.2mm; }
.jb-vp b{ font-weight:700; }
.jb-vp i{ font-style:normal; font-size:.9em; font-weight:700; color:#A8275F; }
.jb-vk{ font-size:.92em; }
.jb-vs{ font-size:.9em; color:#1D6B3F; }
.jb-va{ font-size:.9em; font-weight:700; color:#A8275F; white-space:nowrap; }
.jb-rel{ margin-top:.9mm; line-height:1.5; }
.jb-rel .jb-k{ margin-right:1.6mm; }
.jb-chip{ display:inline-block; margin-right:2mm; font-size:.9em; white-space:nowrap; }
.jb-chip b{ font-weight:700; font-size:1em; }
.jb-pr{ margin-top:.5mm; padding-left:2mm; border-left:1.4pt solid var(--jb-line); }
.jb-pr span{ display:block; }
.jb-from{ font-weight:700; }
.jb-to{ color:var(--jb-ac); font-weight:600; }
.jb-er{ display:grid; grid-template-columns:9.5mm 1fr; column-gap:1mm; align-items:baseline; margin-top:.7mm; }
.jb-er u{ text-decoration-thickness:.8pt; text-underline-offset:2pt; }
.jb-ans{ font-weight:700; color:var(--jb-ac); }
.jb-cond{ font-size:.86em; color:#5b6b83; }
.jb-fill{ font-weight:800; color:var(--jb-ac); text-decoration-thickness:.8pt; text-underline-offset:2pt; }
.jb-q{ font-weight:700; }
.jb-tf{ list-style:none; margin:0; padding:0; }
.jb-tf li{ display:grid; grid-template-columns:4.2mm 1fr auto; column-gap:.6mm; align-items:baseline; margin-top:.3mm; }
.jb-tfc{ padding-left:2mm; font-size:.9em; font-weight:700; white-space:nowrap; }
.jb-key{ margin-top:.8mm; font-size:.78em; font-weight:700; color:#5b6b83; text-align:right; }

/* 화면: 지문 목록의 자료 표시 · 안내 · 미리보기 */
.jb-src{ margin-left:auto; flex:none; padding:1px 7px; border:1px solid var(--bd, #d8dee8); border-radius:999px; font-size:10.5px; font-weight:600; color:#8a93a1; white-space:nowrap; }
.jb-src-none{ border-color:#E3B9B7; color:#B4443F; }
.jb-guide{ margin:8px 0 0; font-size:12.5px; line-height:1.6; color:var(--ink2, #4a5361); }
.jb-prev-frame{ overflow:auto; background:#eef1f5; padding:14px; border-radius:10px; }
.jb-prev-frame .jb-page{ zoom:.7; min-height:297mm; margin:0 auto 12px; box-shadow:0 2px 14px rgba(0,0,0,.16); }
.jb-prev-frame .jb-page.jb-over{ box-shadow:0 0 0 2px #D9534F, 0 2px 14px rgba(0,0,0,.16); }
