/* * A4 용지 기준 PDF 출력을 위한 스타일시트 (pdf_style.css) */ @page { size: A4; margin: 20mm 15mm 20mm 15mm; @top-left { content: none !important; } @top-right { content: none !important; } @bottom-left { content: none !important; } @bottom-right { content: none !important; } @bottom-center { content: counter(page) !important; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans KR", sans-serif; font-size: 8.5pt; color: #7f8c8d; } } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans KR", sans-serif; font-size: 10pt; line-height: 1.6; color: #333333; background-color: #ffffff; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; } /* 제목 스타일 */ h1, h2, h3, h4, h5, h6 { color: #111111; font-weight: bold; page-break-after: avoid; page-break-inside: avoid; } h1 { font-size: 18pt; border-bottom: 2px solid #007acc; padding-bottom: 4px; margin-top: 20px; margin-bottom: 12px; } h2 { font-size: 13pt; border-bottom: 1px solid #e1e4e8; padding-bottom: 3px; margin-top: 16px; margin-bottom: 10px; } h3 { font-size: 11pt; margin-top: 12px; margin-bottom: 6px; } h4 { font-size: 10pt; margin-top: 10px; margin-bottom: 6px; } /* 문단 및 리스트 */ p { margin-top: 0; margin-bottom: 8px; text-align: justify; } ul, ol { margin-top: 0; margin-bottom: 8px; padding-left: 20px; } li { margin-bottom: 3px; } /* 구분선 */ hr { height: 1px; padding: 0; margin: 15px 0; background-color: #e1e4e8; border: 0; } /* 테이블 스타일 */ table { width: 100%; border-collapse: collapse; margin-top: 0; margin-bottom: 10px; page-break-inside: avoid; } table th, table td { padding: 4px 8px; border: 1px solid #dfe2e5; font-size: 8.5pt; word-break: keep-all; } table th { font-weight: 600; background-color: #f6f8fa; text-align: left; } table tr:nth-child(even) { background-color: #f9fbfd; } table tr { page-break-inside: avoid; /* 표의 중간 행이 반으로 쪼개지는 것만 방지 */ } /* 인용구 스타일 */ blockquote { padding: 6px 12px; color: #6a737d; border-left: 0.25em solid #007acc; background-color: #f6f8fa; margin: 0 0 10px 0; page-break-inside: avoid; } blockquote p { margin: 0; } /* 코드 블록 (아스키 아트 등 포함) */ pre, code { font-family: "Consolas", "Monaco", "Andale Mono", "Ubuntu Mono", monospace; font-size: 8.5pt; background-color: #f6f8fa; border-radius: 3px; } code { padding: 0.2em 0.4em; margin: 0; border: 1px solid #eaecef; } pre { padding: 12px; overflow: auto; line-height: 1.45; border: 1px solid #e1e4e8; word-wrap: normal; white-space: pre; /* 아스키 아트 정렬 유지를 위해 강제 줄바꿈 해제 */ page-break-inside: avoid; } pre code { padding: 0; margin: 0; background-color: transparent; border: none; font-size: inherit; white-space: inherit; } /* 이미지 스타일 */ img { max-width: 100%; max-height: 100mm; /* A4 높이의 약 절반 이하로 제한 */ display: block; margin: 15px auto; object-fit: contain; page-break-inside: avoid; border: 1px solid #e1e4e8; box-shadow: 0 1px 3px rgba(0,0,0,0.1); } /* 페이지 나누기 요소 */ .page-break { page-break-before: always !important; } /* 내비게이션 숨김 (인쇄 시) */ .nav-link, .nav-links, .back-to-toc, .manual-nav, a[href$=".md"]:not(.toc-title a) { display: none !important; } /* 링크 스타일 */ a { color: #007acc; text-decoration: none; } a:hover { text-decoration: underline; } /* 특별 배지 스타일 */ .badge { display: inline-block; padding: 2px 6px; font-size: 8pt; font-weight: 600; line-height: 1; border-radius: 2px; background-color: #e1e4e8; color: #24292e; margin-right: 4px; } /* ========================================== 표지 (Cover Page) 스타일 (Minimal & Clean) ========================================== */ .cover-page { text-align: center; padding: 70mm 0 30mm 0; page-break-after: always !important; box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-between; min-height: 220mm; } .cover-header { margin-top: 20px; } .cover-title { font-size: 28pt !important; font-weight: 700 !important; color: #1a1a1a !important; margin: 0 0 16px 0 !important; padding: 0 !important; border: none !important; letter-spacing: -0.5px; line-height: 1.2; } .cover-subtitle { font-size: 16pt; font-weight: 500; color: #007acc; margin: 0; letter-spacing: 2px; text-transform: uppercase; } .cover-meta { margin-top: 100px; font-size: 9.5pt; color: #666666; letter-spacing: 0.5px; border-top: 1px solid #eaeaea; padding-top: 20px; width: 60%; margin-left: auto; margin-right: auto; } /* ========================================== 점선 리더 목차 (Dot Leader TOC) 스타일 ========================================== */ .toc-container { padding: 10px 0; } .toc-heading { font-size: 22pt !important; font-weight: 800 !important; color: #0f2942 !important; border-bottom: none !important; padding-bottom: 0 !important; margin-top: 10px !important; margin-bottom: 24px !important; } .toc-list { display: flex; flex-direction: column; gap: 13px; } .toc-item { display: flex; align-items: baseline; font-size: 11pt; line-height: 1.5; } .toc-title { font-weight: 700 !important; color: #111827; white-space: nowrap; padding-right: 6px; } .toc-title a { color: #111827 !important; font-weight: 700 !important; text-decoration: none !important; display: inline !important; } .toc-title a:hover { color: #007acc !important; } .toc-leader { flex-grow: 1; border-bottom: 1.2px dotted #4b5563; margin: 0 4px; position: relative; top: -4px; } .toc-page { font-weight: 700 !important; color: #111827; padding-left: 6px; white-space: nowrap; }