




html { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body { font-family: 'Noto Sans KR','Malgun Gothic','맑은 고딕',sans-serif; font-size: 9.8pt; line-height: 1.6; color: #111; margin: 0; word-break: keep-all;
       overflow-wrap: anywhere; text-align: justify; }
p { margin: 1.2mm 0 2mm; }
strong { font-weight: 700; color: #0f2547; }
code { font-family: Consolas, 'Noto Sans KR','Malgun Gothic','맑은 고딕',sans-serif; font-size: 8.3pt; background: #eef2f7; padding: 0 1px; border-radius: 2px;
       word-break: break-all; color: #1f3e74; }
a { color: #1f459b; }

/* 장 제목: 로마 숫자 + 연파랑 상자 */
.ch { break-before: page; display: flex; align-items: center; gap: 6mm; margin: 2mm 0 9mm; break-after: avoid; }
.ch .num { font-family: 'Times New Roman', Georgia, serif; font-size: 44pt; line-height: 1; color: #0f2547;
           min-width: 14mm; text-align: center; font-weight: 400; }
.ch .num.sm { font-size: 30pt; }
.ch .box { flex: 1; background: #e9f2fb; padding: 4.2mm 6mm; min-height: 12mm; display: flex; align-items: center;
           justify-content: space-between; gap: 4mm; }
.ch h2 { font-size: 19pt; line-height: 1.3; margin: 0; font-weight: 700; color: #000; letter-spacing: -0.2pt; }
.ch .lab { font-size: 7.6pt; color: #245dab; white-space: nowrap; letter-spacing: 0.6pt; }

/* 소제목: 번호 배지 + 제목 + 파란 밑줄 */
h3 { font-size: 13.4pt; font-weight: 700; color: #000; margin: 6.5mm 0 3mm; padding-bottom: 1.6mm;
     border-bottom: 1.6pt solid #235daa; break-after: avoid; break-inside: avoid; display: block;
     line-height: 1.35; text-align: left; }
h3 .no { display: inline-block; min-width: 7.4mm; height: 7.4mm; line-height: 7.4mm; text-align: center;
         padding: 0 1.6mm; box-sizing: border-box; border-radius: 3.7mm; background: #1f3e74; color: #fff;
         font-size: 10.5pt; font-weight: 700; letter-spacing: -0.2pt; margin-right: 2.6mm; vertical-align: 0.5mm; }
td.cite { min-width: 15mm; }
h4 { font-size: 11.2pt; color: #1f459b; margin: 5mm 0 2mm; break-after: avoid; text-align: left; }
.topic { display: flex; align-items: center; gap: 2.2mm; font-weight: 700; font-size: 10.8pt; color: #000;
         margin: 4.5mm 0 2mm; break-after: avoid; text-align: left; }
.topic svg { width: 5.2mm; height: 3.6mm; flex: none; }

/* 글머리 */
ul, ol { margin: 1.2mm 0 2.6mm; padding-left: 0; }
ul > li { list-style: none; position: relative; padding-left: 5.2mm; margin: 1.1mm 0; }
ul > li::before { content: ""; position: absolute; left: 0.8mm; top: 0.62em; border-left: 4.6pt solid #235daa;
                  border-top: 2.8pt solid transparent; border-bottom: 2.8pt solid transparent; }
ul ul > li::before { border: none; width: 1.6mm; height: 0.5mm; background: #7f9cc4; top: 0.8em; }
ol { counter-reset: ol; }
ol > li { list-style: none; position: relative; padding-left: 6.4mm; margin: 1.1mm 0; counter-increment: ol; }
ol > li::before { content: counter(ol); position: absolute; left: 0; top: 0.28em; width: 4.4mm; height: 4.4mm;
                  border-radius: 50%; background: #245dab; color: #fff; font-size: 7.4pt; font-weight: 700;
                  line-height: 4.4mm; text-align: center; }

/* 표 */
table { border-collapse: collapse; width: 100%; margin: 2.2mm 0 1.2mm; font-size: 8.4pt; line-height: 1.42;
        border-top: 0.9pt solid #1f3d74; border-bottom: 0.9pt solid #1f3d74; text-align: left; }
th, td { padding: 1.1mm 1.6mm; vertical-align: middle; border-bottom: 0.4pt solid #c3cfdf; }
th { background: #235daa; color: #fff; font-weight: 700; text-align: center; border-left: 0.4pt solid #4d7fc2;
     border-bottom: none; }
th:first-child { border-left: none; }
th strong, th a { color: #fff; }
td { border-left: 0.4pt solid #dde5ef; }
td:first-child { border-left: none; }
tbody tr:nth-child(even) td { background: #e9f2fb; }
thead { display: table-header-group; }
th.nw, td.nw { white-space: nowrap; }
td.nw { text-align: center; }
table.kv td.nw:first-child { text-align: left; }
tr { break-inside: avoid; }
table.kv td:first-child { background: #f2f2f2 !important; font-weight: 700; color: #1f3e74; }
table.small { font-size: 7.2pt; line-height: 1.34; }
table.small th, table.small td { padding: 0.7mm 1.1mm; }
table.matrix td { text-align: center; }
table.matrix td:first-child { text-align: left; }
p.srcnote { font-size: 8pt; color: #555; margin: 0.6mm 0 3.6mm; text-align: left; }
p.srcnote::before { content: "※ "; color: #245dab; }

/* 인용 상자 */
blockquote { margin: 3mm 0; padding: 2.8mm 4.2mm; background: #e9f2fb; break-inside: avoid; }
blockquote.warn { background: #f2f2f2; border-left: 3pt solid #ff843a; }
blockquote.orig { border-left: 3pt solid #9aa5b4; font-size: 8.8pt; color: #333; }
blockquote p { margin: 1mm 0; }
/* v1.3 문체 개정: 분석 목적 상자·해석 상자(■ 글머리)·출처 줄 */
blockquote.purpose { background: #e9f2fb; border-left: 3pt solid #235daa; padding: 2.2mm 4.2mm; font-size: 9.4pt; }
blockquote.purpose strong:first-child { color: #1f459b; margin-right: 2mm; }
blockquote.interp { background: #e9f2fb; padding: 2.4mm 4.6mm; text-align: left; }
blockquote.purpose { text-align: left; }
/* v1.4(G1): 첫 장, 장 첫머리 결론 상자 — 기존 색 체계 안에서 테두리만 굵게 */
blockquote.concl { background: #ffffff; border: 1.2pt solid #235daa; border-left: 4pt solid #235daa; padding: 2.8mm 4.6mm; text-align: left; }
blockquote.concl p strong { color: #1f459b; font-size: 10.4pt; }
blockquote.concl ul > li { font-weight: 700; color: #0f2547; margin: 1.2mm 0; }
th .tag-ai, th .tag-hyp { color: #fff; }
blockquote.interp ul > li { padding-left: 4.4mm; }
blockquote.interp ul > li::before { border: none; width: 1.7mm; height: 1.7mm; background: #111; top: 0.55em; left: 0.4mm; }
blockquote.interp p { font-weight: 700; color: #6b3fa0; font-size: 8.6pt; margin: 0 0 0.6mm; }
p.srcnote.src { text-align: right; color: #666; font-size: 7.6pt; margin: 0.4mm 0 3.2mm; }
p.srcnote.src::before { content: none; }
.headline { display: flex; align-items: flex-start; gap: 2.2mm; font-weight: 700; font-size: 10.8pt; color: #0f2547;
            margin: 4.2mm 0 1.4mm; break-after: avoid; text-align: left; }
.headline::before { content: ""; flex: none; width: 2.6mm; height: 2.6mm; border-radius: 50%; background: #2bb3d9;
                    margin-top: 1.5mm; box-shadow: 0 0 0 1.1mm #d5eef8; }

/* 그림 */
figure { margin: 4mm 0 4.5mm; break-inside: avoid; text-align: center; }
figure .cap { font-size: 9pt; color: #1f459b; font-weight: 700; margin-bottom: 2mm; }
figure img { max-width: 100%; max-height: 112mm; }
figure .src { display: block; font-size: 7.6pt; color: #666; margin-top: 1.4mm; }
figure svg { max-height: 120mm; }
figure .pair { display: flex; gap: 6mm; align-items: flex-start; }
figure .pair > div { flex: 1 1 0; min-width: 0; }
figure svg { max-width: 100%; }
figure .sub-cap { font-size: 8pt; color: #333; margin-bottom: 1mm; }
sup.ev { font-size: 6.4pt; line-height: 0; color: #1f459b; white-space: nowrap; }
sup.ev a, a.ev { color: #1f459b; text-decoration: none; }
a.ev { font-size: 8pt; }
.tag-ai { color: #6b3fa0; font-weight: 700; }
.tag-hyp { color: #a05a00; font-weight: 700; }
.tag-c2 { color: #fff; background: #b0451a; font-weight: 700; padding: 0 1.2mm; border-radius: 1mm; font-size: 8pt; }

/* 전면 쪽(표지·대시보드·뒤표지) */
.full { page: full; position: relative; width: 210mm; height: 296.6mm; overflow: hidden; break-after: page;
        color: #fff; text-align: left; }
.cover-art { position: absolute; inset: 0; width: 210mm; height: 296.6mm; }
.cv-in { position: absolute; left: 20mm; right: 20mm; top: 20mm; }
.pill { display: inline-block; border: 0.8pt solid #8fd3f4; color: #bfe6ff; border-radius: 5mm; padding: 1.1mm 4.2mm;
        font-size: 9.4pt; letter-spacing: 0.2pt; background: rgba(10,31,71,.35); }
.cv-title { font-size: 25pt; line-height: 1.32; font-weight: 700; margin: 9mm 0 6mm; letter-spacing: -0.4pt; }
.cv-line { height: 0.6pt; background: rgba(255,255,255,.7); margin: 0 0 5mm; }
.cv-sub { font-size: 15pt; font-weight: 700; }
.cv-sub2 { font-size: 9.6pt; color: #d6e6fa; margin-top: 3mm; line-height: 1.55; }
.cv-ver { display: inline-block; margin-top: 5mm; font-size: 9pt; color: #0a1f47; background: #ff843a; font-weight: 700;
          padding: 0.6mm 3mm; border-radius: 1mm; }
.cv-band { position: absolute; left: 0; right: 0; bottom: 0; height: 15mm; background: #0b1c3d; display: flex;
           align-items: center; justify-content: space-between; padding: 0 20mm; box-sizing: border-box; }
.cv-band .org { font-size: 11pt; font-weight: 700; letter-spacing: 0.4pt; }
.cv-band .conf { font-size: 8.4pt; font-weight: 700; color: #ffb48a; }
.back .cv-in { top: 196mm; text-align: center; }
.back .cv-title { font-size: 19pt; margin: 6mm 0 4mm; }
.back .cv-line { width: 60mm; margin: 0 auto 4mm; }
.back .cv-sub { font-size: 12pt; }

.dash { background: linear-gradient(170deg, #1f3e74 0%, #23508f 55%, #2a5ea8 100%); padding: 12mm 13mm 0;
        box-sizing: border-box; }
.dash .decor { position: absolute; inset: 0; width: 210mm; height: 296.6mm; }
.dash-top { display: flex; justify-content: space-between; font-size: 7.6pt; position: relative; }
.dash-top .conf { color: #ffb48a; font-weight: 700; }
.dash-top .ver { color: #cfe0f5; }
.dash-title { font-size: 21pt; font-weight: 700; margin: 3mm 0 1.4mm; padding-bottom: 2mm; letter-spacing: 0.3pt;
              border-bottom: 0.8pt solid rgba(255,255,255,.6); position: relative; }
.dash-sub { font-size: 8.2pt; color: #d6e6fa; margin-bottom: 3mm; position: relative; }
.dg { display: flex; flex-wrap: wrap; gap: 3.2mm 4mm; position: relative; }
.dp { box-sizing: border-box; }
.dp.w60 { width: calc(60% - 2mm); } .dp.w40 { width: calc(40% - 2mm); } .dp.w50 { width: calc(50% - 2mm); }
.dp h4 { color: #fff; font-size: 9.6pt; margin: 0 0 1.4mm; display: flex; align-items: center; gap: 1.6mm; }
.dp h4 .ic { width: 4.6mm; height: 3.7mm; }
.kns { display: grid; grid-template-columns: 1fr 1fr; gap: 2mm; }
.kn { background: rgba(255,255,255,.09); border: 0.5pt solid rgba(255,255,255,.28); padding: 1.6mm 2.2mm; }
.kn .v { font-size: 15pt; font-weight: 700; color: #ff9b5e; line-height: 1.15; }
.kn .l { font-size: 7.6pt; font-weight: 700; line-height: 1.3; }
.kn .s { font-size: 6.6pt; color: #d6e6fa; line-height: 1.3; }
.dash-note { position: absolute; left: 13mm; right: 13mm; bottom: 8mm; font-size: 6.6pt; color: #cfe0f5;
             line-height: 1.5; }
.dash-note code { background: none; color: #fff; font-size: 6.6pt; padding: 0; }
.dash-note sup.ev, .dash-note sup.ev a { color: #fff; }

/* 개요·목차 */
.front-title { font-size: 19pt; font-weight: 700; margin: 2mm 0 6mm; padding: 3.6mm 6mm; background: #e9f2fb; }
.toc { break-after: page; }
.tcb { display: flex; gap: 5mm; padding: 2.4mm 0 2.6mm; border-bottom: 0.5pt solid #b9cbe4; break-inside: avoid; }
.tc-rn { flex: none; width: 14mm; font-family: 'Times New Roman', serif; font-size: 20pt; color: #245dab; text-align: center;
         line-height: 1.1; }
.tc-main { flex: 1; min-width: 0; }
.tc-h, .tc-i { display: flex; align-items: baseline; gap: 1.5mm; }
.tc-h { font-weight: 700; font-size: 11pt; color: #0f2547; margin: 0.6mm 0 1.2mm; }
.tc-i { font-size: 9pt; color: #333; line-height: 1.6; padding-left: 1mm; }
.tc-h a, .tc-i a { color: inherit; text-decoration: none; }
.tc-dots { flex: 1; border-bottom: 0.8pt dotted #8aa1c1; transform: translateY(-0.8mm); }
.tc-pg { flex: none; min-width: 7mm; text-align: right; font-variant-numeric: tabular-nums; }
.toc ol { counter-reset: none; margin: 0; }
.toc li { list-style: none; padding: 0; margin: 0; }
.toc li::before { content: none !important; }
.toc li.l2 { display: flex; align-items: center; gap: 3mm; margin: 3.2mm 0 1.2mm; padding-bottom: 1.2mm;
             border-bottom: 0.6pt solid #b9cbe4; font-weight: 700; font-size: 10.6pt; }
.toc li.l2 .rn { min-width: 10mm; font-family: 'Times New Roman', serif; font-size: 13pt; color: #245dab; text-align: center; }
.toc li.l3 { padding-left: 13mm; font-size: 8.8pt; color: #333; line-height: 1.55; }
.toc a { text-decoration: none; color: inherit; }
