/* ===== PDF / Print Stylesheet ===== */

/* --- 화면(웹) 전용: 뒷표지 페이지는 PDF에만 노출, 사이드바·콘텐츠 숨김 --- */
@media screen {
  .md-nav__link[href*="back-cover"],
  .md-nav__item:has(> .md-nav__link[href*="back-cover"]) {
    display: none !important;
  }
  #print-site-back-cover-page {
    display: none !important;
  }
}

@media print {

  /* --- 기본 레이아웃: 웹 UI 요소 숨기기 --- */
  header, nav, .md-sidebar, .md-search, .md-footer,
  .md-header, .md-tabs, .md-top, .headerlink,
  .print-page-banner, .md-content__button,
  .md-source, .md-dialog {
    display: none !important;
  }

  body, .md-content {
    font-family: "Pretendard", "Noto Sans KR", "Malgun Gothic", sans-serif;
    font-size: 9.5pt;
    line-height: 1.45;
    color: #1a1a1a;
  }

  .md-main__inner,
  .md-content,
  .md-content__inner,
  .md-content__inner.md-typeset,
  #print-site-page {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .md-content__inner.md-typeset::before,
  .md-content__inner.md-typeset::after {
    display: none !important;
    content: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
  }

  /* --- 커버 페이지: 검색엔진 관리 콘솔 ---
     배경은 별도 absolute 레이어(.cover-bg)가 부모를 음수 위치로 확장해
     PDF 페이지 가장자리까지 닿게 한다. 콘텐츠는 정상 padding 안에서 흐름. */
  #print-site-cover-page {
    position: relative;
    display: block;
    width: 100%;
    height: 258mm;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    color: #f8fafc;
    page-break-before: avoid;
    page-break-after: auto;
    page-break-inside: avoid;
    break-before: avoid;
    break-after: auto;
    break-inside: avoid;
    text-align: left;
  }

  /* 배경 레이어 — PDF 마진(T15 R18 B18 L18mm)에 안전 마진 +1mm를 더해 음수 위치 */
  #print-site-cover-page .cover-bg {
    position: absolute;
    top: -16mm;
    left: -19mm;
    right: -19mm;
    bottom: -19mm;
    z-index: 0;
    background:
      radial-gradient(70% 55% at 20% 15%, rgba(34, 211, 238, 0.22) 0%, rgba(34, 211, 238, 0) 60%),
      radial-gradient(65% 50% at 85% 85%, rgba(167, 139, 250, 0.28) 0%, rgba(167, 139, 250, 0) 60%),
      linear-gradient(135deg, #050813 0%, #0b1226 45%, #121737 100%);
    display: block;
  }

  /* 좌측 세로 액센트 바 */
  #print-site-cover-page .cover-accent-bar {
    position: absolute;
    top: 0;
    left: 0;
    width: 4mm;
    height: 100%;
    z-index: 1;
    background: linear-gradient(180deg, #22d3ee 0%, #818cf8 55%, #a78bfa 100%);
    display: block;
  }

  /* 우측 상단 인덱스 그리드 패턴 — "검색 인덱스" 시각화 */
  #print-site-cover-page .cover-index-grid {
    position: absolute;
    top: 0;
    right: 0;
    width: 95mm;
    height: 130mm;
    z-index: 1;
    background-image:
      linear-gradient(rgba(34, 211, 238, 0.10) 1px, transparent 1px),
      linear-gradient(90deg, rgba(167, 139, 250, 0.10) 1px, transparent 1px);
    background-size: 12mm 12mm, 12mm 12mm;
    mask-image: linear-gradient(225deg, #000 0%, transparent 80%);
    -webkit-mask-image: linear-gradient(225deg, #000 0%, transparent 80%);
    display: block;
  }

  /* 검색 글리프 SVG — 돋보기 + 격자 (검색엔진 의미) */
  #print-site-cover-page .cover-search-glyph {
    position: absolute;
    top: 18mm;
    right: 22mm;
    width: 62mm;
    height: 62mm;
    z-index: 2;
    opacity: 0.85;
    display: block;
  }

  /* 라디얼 글로우 — 깊이감 */
  #print-site-cover-page .cover-glow {
    position: absolute;
    border-radius: 50%;
    z-index: 1;
    opacity: 0.45;
    display: block;
  }
  #print-site-cover-page .cover-glow--cyan {
    top: 35%;
    left: -8%;
    width: 55mm;
    height: 55mm;
    background: radial-gradient(closest-side, rgba(34, 211, 238, 0.6), transparent 70%);
  }
  #print-site-cover-page .cover-glow--violet {
    bottom: 5%;
    right: -10%;
    width: 75mm;
    height: 75mm;
    background: radial-gradient(closest-side, rgba(167, 139, 250, 0.6), transparent 70%);
  }

  /* 콘텐츠 그리드 */
  #print-site-cover-page .cover-grid {
    position: relative;
    z-index: 3;
    width: 100%;
    height: 100%;
    padding: 24mm 24mm 22mm 28mm;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    box-sizing: border-box;
  }

  /* 상단 라벨 */
  #print-site-cover-page .cover-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 8.5pt;
    letter-spacing: 0.28em;
    font-weight: 600;
    color: #67e8f9;
    text-transform: uppercase;
    margin: 0 0 22mm 0;
    font-family: "JetBrains Mono", "D2Coding", "Consolas", monospace;
  }
  #print-site-cover-page .cover-eyebrow-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: linear-gradient(135deg, #22d3ee 0%, #a78bfa 100%);
    box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.18);
  }

  /* 워드마크 — 제품명 + ADMIN/TOOLS 스택 가로 배치 */
  #print-site-cover-page .cover-brand {
    display: flex;
    align-items: flex-end;
    gap: 6mm;
    margin: 0 0 14mm 0;
  }
  #print-site-cover-page .cover-brand-mark {
    font-size: 38pt;
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: 0;
    background: linear-gradient(135deg, #22d3ee 0%, #818cf8 55%, #a78bfa 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
  #print-site-cover-page .cover-brand-stack {
    display: flex;
    flex-direction: column;
    line-height: 1.0;
    padding-bottom: 3mm;
  }
  #print-site-cover-page .cover-brand-sub {
    font-size: 16pt;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #f8fafc;
    text-transform: uppercase;
  }
  #print-site-cover-page .cover-brand-sub--accent {
    color: rgba(226, 232, 240, 0.55);
  }

  /* 한글 부제 */
  #print-site-cover-page .cover-title {
    font-size: 22pt;
    font-weight: 700;
    color: #f8fafc;
    letter-spacing: -0.01em;
    margin: 0 0 5mm 0;
    border: none;
    padding: 0;
    line-height: 1.2;
  }

  /* 리드 카피 */
  #print-site-cover-page .cover-lede {
    font-size: 10.5pt;
    line-height: 1.55;
    color: rgba(226, 232, 240, 0.72);
    max-width: 120mm;
    margin: 0 0 auto 0;
    font-weight: 300;
  }

  /* 메타 정보 */
  #print-site-cover-page .cover-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8mm;
    margin: 14mm 0 8mm 0;
    padding: 6mm 0 0 0;
    border-top: 1px solid rgba(167, 139, 250, 0.28);
    width: 100%;
    max-width: 150mm;
  }
  #print-site-cover-page .cover-meta-row {
    display: flex;
    flex-direction: column;
    gap: 3px;
  }
  #print-site-cover-page .cover-meta-row dt {
    font-family: "JetBrains Mono", "D2Coding", "Consolas", monospace;
    font-size: 6.5pt;
    letter-spacing: 0.22em;
    color: #67e8f9;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0;
  }
  #print-site-cover-page .cover-meta-row dd {
    font-size: 9pt;
    color: #f1f5f9;
    font-weight: 500;
    margin: 0;
  }

  /* 하단 헤어라인 풋터 */
  #print-site-cover-page .cover-footer {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 6mm;
    padding-top: 4mm;
    width: 100%;
    font-family: "JetBrains Mono", "D2Coding", "Consolas", monospace;
    font-size: 7pt;
    letter-spacing: 0.18em;
    color: rgba(226, 232, 240, 0.55);
    text-transform: uppercase;
  }
  #print-site-cover-page .cover-footer-brand {
    color: rgba(226, 232, 240, 0.85);
    font-weight: 600;
  }
  #print-site-cover-page .cover-footer-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, rgba(34, 211, 238, 0.6) 0%, rgba(167, 139, 250, 0.4) 50%, transparent 100%);
    display: block;
  }
  #print-site-cover-page .cover-footer-tag {
    color: rgba(226, 232, 240, 0.55);
  }

  /* ============================================================
     뒷표지 (Back Cover) — 매뉴얼 마지막 페이지, 제본 시 뒷면
     ============================================================ */
  #print-site-back-cover-page {
    position: relative;
    display: block;
    width: 100%;
    height: 258mm;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    color: #f8fafc;
    page-break-before: always;
    page-break-after: avoid;
    page-break-inside: avoid;
    break-before: page;
    break-after: avoid;
    break-inside: avoid;
    text-align: left;
  }

  /* 뒷표지 페이지에서는 mkdocs material의 h1(페이지 제목)·기본 마진 모두 제거 */
  .print-page#back-cover,
  .print-page#back-cover h1,
  .print-page#back-cover > h1:first-child {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
  }
  .print-page#back-cover h1 {
    display: none !important;
  }

  /* 배경 — 앞표지와 거울처럼 좌우/상하 대칭 */
  #print-site-back-cover-page .cover-bg {
    position: absolute;
    top: -16mm;
    left: -19mm;
    right: -19mm;
    bottom: -19mm;
    z-index: 0;
    background:
      radial-gradient(70% 55% at 85% 12%, rgba(167, 139, 250, 0.26) 0%, rgba(167, 139, 250, 0) 60%),
      radial-gradient(65% 50% at 15% 88%, rgba(34, 211, 238, 0.22) 0%, rgba(34, 211, 238, 0) 60%),
      linear-gradient(225deg, #050813 0%, #0b1226 45%, #121737 100%);
    display: block;
  }

  /* 우측 액센트 바 — 앞표지가 좌측이므로 미러 */
  #print-site-back-cover-page .cover-accent-bar {
    position: absolute;
    top: 0;
    right: 0;
    left: auto;
    width: 4mm;
    height: 100%;
    z-index: 1;
    background: linear-gradient(180deg, #a78bfa 0%, #818cf8 55%, #22d3ee 100%);
    display: block;
  }

  /* 글로우 — 위치를 앞표지와 반전 */
  #print-site-back-cover-page .cover-glow {
    position: absolute;
    border-radius: 50%;
    z-index: 1;
    opacity: 0.4;
    display: block;
  }
  #print-site-back-cover-page .cover-glow--cyan {
    bottom: 12%;
    left: -8%;
    width: 60mm;
    height: 60mm;
    background: radial-gradient(closest-side, rgba(34, 211, 238, 0.55), transparent 70%);
  }
  #print-site-back-cover-page .cover-glow--violet {
    top: 8%;
    right: -10%;
    width: 80mm;
    height: 80mm;
    background: radial-gradient(closest-side, rgba(167, 139, 250, 0.55), transparent 70%);
  }

  /* 중앙 동심원 글리프 — 검색 / 인덱스의 추상적 표현 */
  #print-site-back-cover-page .back-cover-glyph {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -55%);
    width: 130mm;
    height: 130mm;
    z-index: 1;
    opacity: 0.45;
    display: block;
  }

  /* 콘텐츠 그리드 */
  #print-site-back-cover-page .back-cover-grid {
    position: relative;
    z-index: 3;
    width: 100%;
    height: 100%;
    padding: 24mm 28mm 22mm 24mm;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    box-sizing: border-box;
  }

  /* 상단 라벨 */
  #print-site-back-cover-page .back-cover-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 8pt;
    letter-spacing: 0.3em;
    font-weight: 600;
    color: #a78bfa;
    text-transform: uppercase;
    margin: 0 0 20mm 0;
    font-family: "JetBrains Mono", "D2Coding", "Consolas", monospace;
  }
  #print-site-back-cover-page .back-cover-eyebrow-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: linear-gradient(135deg, #a78bfa 0%, #22d3ee 100%);
    box-shadow: 0 0 0 3px rgba(167, 139, 250, 0.18);
  }

  /* 헤드라인 — 2줄, 두 번째 줄 강조 */
  #print-site-back-cover-page .back-cover-headline {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    margin: 0 0 10mm 0;
  }
  #print-site-back-cover-page .back-cover-headline-line {
    font-size: 26pt;
    font-weight: 700;
    color: #f8fafc;
    letter-spacing: -0.01em;
  }
  #print-site-back-cover-page .back-cover-headline-line--accent {
    background: linear-gradient(135deg, #22d3ee 0%, #818cf8 50%, #a78bfa 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    font-weight: 800;
  }

  /* 메시지 */
  #print-site-back-cover-page .back-cover-message {
    font-size: 10pt;
    line-height: 1.7;
    color: rgba(226, 232, 240, 0.72);
    max-width: 120mm;
    margin: 0 0 auto 0;
    font-weight: 300;
  }

  /* 메타 */
  #print-site-back-cover-page .back-cover-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8mm;
    margin: 12mm 0 8mm 0;
    padding: 6mm 0 0 0;
    border-top: 1px solid rgba(34, 211, 238, 0.28);
    width: 100%;
    max-width: 150mm;
  }
  #print-site-back-cover-page .back-cover-meta-row {
    display: flex;
    flex-direction: column;
    gap: 3px;
  }
  #print-site-back-cover-page .back-cover-meta-row dt {
    font-family: "JetBrains Mono", "D2Coding", "Consolas", monospace;
    font-size: 6.5pt;
    letter-spacing: 0.22em;
    color: #a78bfa;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0;
  }
  #print-site-back-cover-page .back-cover-meta-row dd {
    font-size: 9pt;
    color: #f1f5f9;
    font-weight: 500;
    margin: 0;
  }

  /* 워드마크 (앞표지보다 절제된 크기) */
  #print-site-back-cover-page .back-cover-wordmark {
    display: flex;
    align-items: baseline;
    gap: 4mm;
    margin: 4mm 0 0 0;
  }
  #print-site-back-cover-page .back-cover-wordmark-mark {
    font-size: 22pt;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.03em;
    background: linear-gradient(135deg, #22d3ee 0%, #818cf8 55%, #a78bfa 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
  #print-site-back-cover-page .back-cover-wordmark-sub {
    font-size: 9pt;
    font-weight: 600;
    letter-spacing: 0.2em;
    color: rgba(226, 232, 240, 0.7);
    text-transform: uppercase;
    font-family: "JetBrains Mono", "D2Coding", "Consolas", monospace;
  }

  /* 풋터 */
  #print-site-back-cover-page .back-cover-footer {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 8mm;
    padding-top: 4mm;
    width: 100%;
    font-family: "JetBrains Mono", "D2Coding", "Consolas", monospace;
    font-size: 7pt;
    letter-spacing: 0.18em;
    color: rgba(226, 232, 240, 0.5);
    text-transform: uppercase;
  }
  #print-site-back-cover-page .back-cover-footer-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(167, 139, 250, 0.4) 50%, rgba(34, 211, 238, 0.6) 100%);
    display: block;
  }
  #print-site-back-cover-page .back-cover-footer-text {
    color: rgba(226, 232, 240, 0.55);
  }

  /* --- 목차 페이지 --- */
  #print-page-toc {
    page-break-after: always;
    padding-top: 40px;
  }

  #print-page-toc .print-page-toc-title {
    font-size: 24pt;
    color: #1a237e;
    border-bottom: 3px solid #1a237e;
    padding-bottom: 12px;
    margin-bottom: 30px;
    page-break-before: avoid;
  }

  #print-page-toc .print-page-toc-nav ul {
    list-style: none;
    padding-left: 0;
  }

  #print-page-toc .print-page-toc-nav > ul > li {
    margin-bottom: 8px;
  }

  #print-page-toc .print-page-toc-nav > ul > li > a {
    font-size: 12pt;
    font-weight: 700;
    color: #1a237e;
    text-decoration: none;
  }

  #print-page-toc .print-page-toc-nav ul ul li a {
    font-size: 10.5pt;
    font-weight: 400;
    color: #333;
    text-decoration: none;
    padding-left: 20px;
  }

  #print-page-toc a:hover {
    text-decoration: underline;
  }

  /* --- nav 섹션 래퍼 제목 숨기기 (중복 방지) ---
     플러그인이 "시작하기", "사용자 가이드" 같은 nav 그룹명을
     별도 h1으로 삽입하는데, 하위 페이지에 이미 h1이 있으므로 숨김.
     빈 페이지가 생기지 않도록 page-break도 제거 */
  .print-page.md-section > h1:first-child {
    display: none !important;
    page-break-before: avoid !important;
    page-break-after: avoid !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
  }

  /* --- 챕터/섹션 구분 --- */
  .print-page h1 {
    page-break-before: always;
    font-size: 18pt;
    color: #1a237e;
    border-bottom: 2px solid #c5cae9;
    padding-bottom: 6px;
    padding-top: 8px;
    margin-top: 0;
    margin-bottom: 10px;
  }

  .print-page h1:first-of-type {
    page-break-before: avoid;
  }

  .print-page h2 {
    font-size: 13pt;
    color: #283593;
    margin-top: 16px;
    margin-bottom: 6px;
    padding-bottom: 4px;
    border-bottom: 1px solid #e8eaf6;
  }

  .print-page h3 {
    font-size: 11pt;
    color: #3949ab;
    margin-top: 12px;
    margin-bottom: 4px;
  }

  h4, h5, h6 {
    font-size: 10pt;
    color: #444;
    margin-top: 8px;
    margin-bottom: 3px;
  }

  pre, figure, .admonition {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* --- 표: 페이지를 넘어갈 수 있되, 헤더 반복 + 행 단위 분할 --- */
  table {
    page-break-inside: auto;
    break-inside: auto;
    border: 1px solid #c5cae9;
  }
  thead {
    display: table-header-group;
  }
  thead th {
    border-bottom: 2px solid #7986cb;
    background: #e8eaf6 !important;
    font-size: 8pt;
  }
  tr, th, td {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  /* 마지막 행 하단에 시각적 마감선 */
  tbody tr:last-child td {
    border-bottom: 2px solid #c5cae9;
  }

  /* --- Mermaid 다이어그램 ---
     테두리·연한 배경으로 다이어그램 영역을 시각적으로 구분.
     SVG stroke 가 viewBox 외부로 약간 그려지는 경우가 있어
     padding 넉넉히 + overflow hidden 으로 박스 안에 가둠. */
  .mermaid,
  div.mermaid,
  pre.mermaid {
    page-break-inside: avoid;
    break-inside: avoid;
    page-break-before: avoid;
    break-before: avoid;
    margin: 22px auto 40px auto !important;
    text-align: center;
    max-width: 16cm;
    max-height: 16cm;
    overflow: hidden !important;
    background: #fafbfc !important;
    border: 1px solid #d0d7e2 !important;
    border-radius: 6px !important;
    padding: 32px 20px !important;
    box-sizing: border-box;
  }

  /* mermaid SVG: 박스 안에 fit + vertical-align 명시로 위쪽 튀어나옴 방지 */
  html body .mermaid svg,
  html body div.mermaid svg,
  html body pre.mermaid svg {
    max-width: 100% !important;
    max-height: 12cm !important;
    height: auto !important;
    width: auto !important;
    display: inline-block !important;
    vertical-align: middle !important;
    overflow: visible !important;
  }

  /* --- 이미지(스크린샷): 페이지에 더 잘 들어가도록 높이 축소 ---
     12cm 였을 때 4.1 단계 안내 뒤 이미지가 다음 페이지로 밀려 빈 공간 발생.
     9cm로 줄여 직전 텍스트와 같은 페이지에 들어갈 확률을 높임. */
  img {
    max-width: 100% !important;
    max-height: 9cm !important;
    height: auto !important;
    page-break-inside: avoid;
    break-inside: avoid;
    /* 이미지 직전 페이지 끝에서 통째 밀리지 않도록 break-before 강제 X */
    page-break-before: auto;
    break-before: auto;
    display: block;
    margin: 6px auto 10px auto;
    border: 1px solid #d0d7e2;
    border-radius: 4px;
    padding: 3px;
    background: #ffffff;
    box-sizing: border-box;
  }

  /* --- 표가 앞 페이지에 끼어들 수 있도록 break-before 풀기 ---
     "제목 + 본문 + 표" 묶음에서 표가 다음 페이지로 통째 밀려
     앞 페이지에 빈 공간이 생기는 경우를 줄임 */
  table {
    break-before: auto;
    page-break-before: auto;
  }

  /* --- 제목 page-break 규칙 ---
     h2 page-break-after: avoid 가 강하면 h2+다이어그램이 통째로 다음
     페이지로 밀려 직전 페이지가 텅 비는 문제 발생.
     h2/h3 는 약한 권고만 두고 break-inside 만 보호. h1 은 강하게 유지. */
  h1 {
    page-break-after: avoid;
    break-after: avoid;
  }

  h2, h3, h4 {
    /* h2/h3 + 직후 콘텐츠를 같은 페이지에 묶음 (이전엔 avoid 강제로 빈 공간 발생).
       avoid 대신 widows/orphans + break-inside 만 보호해서 자연스러운 흐름 허용. */
    page-break-after: avoid;
    break-after: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
    orphans: 3;
    widows: 3;
  }
  /* h3/h4 의 break-after 는 더 약하게 — 다음 단락이 이미지면 페이지 break 자유 허용 */
  h3 + img, h4 + img, h3 + p + img, h4 + p + img {
    page-break-before: auto;
    break-before: auto;
  }

  /* --- 코드 블록 --- */
  pre, code {
    font-family: "JetBrains Mono", "D2Coding", "Consolas", monospace;
    font-size: 8pt;
  }

  pre {
    background: #f5f5f5 !important;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 8px 12px;
    line-height: 1.4;
    overflow-x: visible;
    white-space: pre-wrap;
    word-wrap: break-word;
  }

  code {
    background: #f0f0f0;
    padding: 1px 4px;
    border-radius: 3px;
    font-size: 8.5pt;
  }

  pre code {
    background: none;
    padding: 0;
    border-radius: 0;
  }

  /* --- 표 --- */
  table {
    width: 100%;
    border-collapse: collapse;
    margin: 8px 0;
    font-size: 8.5pt;
  }

  thead {
    background: #e8eaf6;
  }

  th {
    font-weight: 700;
    text-align: left;
    padding: 5px 8px;
    border: 1px solid #c5cae9;
    color: #1a237e;
  }

  td {
    padding: 4px 8px;
    border: 1px solid #e0e0e0;
    vertical-align: top;
    line-height: 1.4;
  }

  tbody tr:nth-child(even) {
    background: #fafafa;
  }

  /* --- Admonition (경고/정보 박스) --- */
  .admonition {
    border-radius: 6px;
    padding: 8px 12px;
    margin: 8px 0;
    border-left: 4px solid;
    font-size: 9pt;
    line-height: 1.4;
  }

  .admonition.note, .admonition.info {
    background: #e3f2fd;
    border-color: #1976d2;
  }

  .admonition.tip {
    background: #e8f5e9;
    border-color: #388e3c;
  }

  .admonition.warning {
    background: #fff8e1;
    border-color: #f9a825;
  }

  .admonition.danger {
    background: #fce4ec;
    border-color: #d32f2f;
  }

  .admonition.question {
    background: #e8f5e9;
    border-color: #2e7d32;
  }

  .admonition-title {
    font-weight: 700;
    margin-bottom: 3px;
    font-size: 9.5pt;
  }

  /* --- 링크 --- */
  a {
    color: #1565c0;
    text-decoration: none;
  }

  /* --- 탭 콘텐츠: 인쇄 시 모두 표시 --- */
  .tabbed-set > input:not(:checked) + label + .tabbed-content {
    display: block !important;
    opacity: 1 !important;
    height: auto !important;
  }

  .tabbed-set > label {
    font-weight: 700;
    color: #1a237e;
    border-bottom: 2px solid #c5cae9;
    display: inline-block;
    margin-right: 12px;
    padding: 4px 0;
    font-size: 10pt;
  }

  /* --- 이미지 --- */
  img {
    max-width: 100%;
    height: auto;
  }

  /* --- 단락 간격 --- */
  p {
    margin: 4px 0;
    orphans: 2;
    widows: 2;
  }
  /* ol/ul 마지막 항목 + 이미지/표 묶기 — 단계 안내 뒤 이미지가 다음 페이지로 밀려도
     단계 안내 마지막 줄이 같이 묶여 가도록. orphans/widows로 보호. */
  ol, ul {
    orphans: 3;
    widows: 3;
  }

  /* --- 리스트 --- */
  ul, ol {
    margin: 4px 0;
    padding-left: 18px;
  }

  li {
    margin-bottom: 2px;
  }

  /* --- 구분선 --- */
  hr {
    border: none;
    border-top: 1px solid #e0e0e0;
    margin: 12px 0;
  }
}
