@page {
  size: 210mm 297mm;
  margin: 12mm 12mm 14mm;

  /*
   * Chrome 131+ / 최신 Edge의 브라우저 기본 인쇄 헤더·푸터
   * (날짜, 문서 제목, URL, 페이지 번호)를 빈 페이지 여백 상자로 대체합니다.
   */
  @top-left {
    content: "";
  }

  @top-center {
    content: "";
  }

  @top-right {
    content: "";
  }

  @bottom-left {
    content: "";
  }

  @bottom-center {
    content: "";
  }

  @bottom-right {
    content: "";
  }
}

@media print {
  :root {
    --print-text: #172033;
    --print-muted: #5d687b;
    --print-line: #cfd6e1;
    --print-line-strong: #27364f;
    --print-accent: #174a9c;
    --print-accent-soft: #eef4ff;
  }

  html,
  body {
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    overflow: visible !important;
    background: #fff !important;
  }

  body {
    margin: 0 !important;
    color: var(--print-text) !important;
    font-family: Pretendard, "Noto Sans KR", Arial, sans-serif !important;
    font-size: 9.5pt !important;
    line-height: 1.55 !important;
    word-break: keep-all;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body > :not(.print-resume) {
    display: none !important;
  }

  .print-resume {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--print-text);
  }

  .print-resume *,
  .print-resume *::before,
  .print-resume *::after {
    box-sizing: border-box;
  }

  .print-resume h1,
  .print-resume h2,
  .print-resume h3,
  .print-resume p,
  .print-resume ul {
    margin-top: 0;
  }

  .print-resume__header {
    display: block;
    margin-bottom: 7mm;
    padding-bottom: 4.5mm;
    border-bottom: 2px solid var(--print-line-strong);
    break-inside: avoid;
  }

  .print-resume__title-area {
    display: block;
  }

  .print-resume__header h1 {
    margin: 0;
    font-size: 24pt;
    line-height: 1.1;
    letter-spacing: -.04em;
  }

  .print-section {
    margin-top: 7mm;
  }

  .print-section__heading {
    display: flex;
    align-items: flex-start;
    gap: 3mm;
    margin-bottom: 3.5mm;
    padding-bottom: 2mm;
    border-bottom: 1.5px solid var(--print-line-strong);
    break-inside: avoid;
  }

  .print-section__number {
    color: var(--print-accent);
    font-size: 7pt;
    font-weight: 800;
    letter-spacing: .08em;
  }

  .print-section__heading h2 {
    margin: 0;
    font-size: 13pt;
    line-height: 1.2;
    letter-spacing: -.025em;
  }

  .print-section__heading p {
    margin: 1mm 0 0;
    color: var(--print-muted);
    font-size: 7.5pt;
  }

  .print-profile-table,
  .print-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
  }

  .print-profile-table {
    margin-bottom: 4mm;
    border-top: 1.5px solid var(--print-line-strong);
  }

  .print-profile-table th,
  .print-profile-table td {
    padding: 1.6mm 2.4mm;
    border-right: 1px solid var(--print-line);
    border-bottom: 1px solid var(--print-line);
    vertical-align: middle;
    line-height: 1.45;
  }

  .print-profile-table th {
    width: 18mm;
    background: #f5f7fa;
    color: #39475e;
    font-size: 8.2pt;
    font-weight: 750;
    text-align: left;
    white-space: nowrap;
  }

  .print-profile-table td {
    font-size: 8.7pt;
    font-weight: 600;
  }

  .print-profile-table__education {
    font-size: 8.1pt !important;
    line-height: 1.45 !important;
  }

  .print-profile-table tr > *:last-child {
    border-right: 0;
  }

  .print-pre-line {
    white-space: pre-line;
  }

  .print-two-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5mm;
    align-items: start;
  }

  .print-compact-block {
    break-inside: avoid;
  }

  .print-compact-block h3,
  .print-block-title,
  .print-company__subsection > h3,
  .print-company__subheading h3 {
    margin: 0 0 2mm;
    color: #25334a;
    font-size: 9.5pt;
    line-height: 1.35;
  }

  .print-table {
    border-top: 1.5px solid var(--print-line-strong);
  }

  .print-table thead {
    display: table-header-group;
  }

  .print-table th,
  .print-table td {
    padding: 2.1mm 2.2mm;
    border-right: 1px solid var(--print-line);
    border-bottom: 1px solid var(--print-line);
    vertical-align: top;
    text-align: left;
  }

  .print-table th:last-child,
  .print-table td:last-child {
    border-right: 0;
  }

  .print-table th {
    background: #f2f5f9;
    color: #39475e;
    font-size: 8.2pt;
    font-weight: 750;
  }

  .print-table td {
    color: var(--print-text);
    font-size: 8.7pt;
    line-height: 1.5;
  }

  .print-table tr,
  .print-table td,
  .print-table th {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .print-table strong {
    display: block;
    font-size: 9pt;
    line-height: 1.45;
  }

  .print-table p {
    margin: .8mm 0 0;
    color: var(--print-muted);
    font-size: 7.8pt;
    line-height: 1.45;
  }

  .print-table small {
    display: block;
    margin-top: .7mm;
    color: var(--print-muted);
    font-size: 7.8pt;
  }

  .print-table--career-summary td:first-child,
  .print-table--career-summary td:nth-child(2),
  .print-table--positions td:first-child,
  .print-table--details td:first-child,
  .print-table--contributions td:first-child,
  .print-table--activities td:first-child {
    font-weight: 650;
  }

  .print-inline-list {
    display: grid;
    gap: .8mm;
    margin: 1.2mm 0 0;
    padding-left: 4mm;
  }

  .print-inline-list li::marker,
  .print-company__duties li::marker {
    color: var(--print-accent);
  }

  .print-company-list {
    margin-top: 0;
  }

  .print-company {
    break-before: page;
    page-break-before: always;
  }

  .print-company__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10mm;
    margin-bottom: 5mm;
    padding: 4mm 4.5mm;
    border-top: 2px solid var(--print-line-strong);
    border-bottom: 1px solid var(--print-line);
    background: #f6f8fb;
    break-inside: avoid;
  }

  .print-company__heading > div {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 2.5mm;
    align-items: baseline;
  }

  .print-company__number {
    grid-row: 1 / 3;
    color: var(--print-accent);
    font-size: 7pt;
    font-weight: 800;
  }

  .print-company__heading h2 {
    margin: 0;
    font-size: 16pt;
    line-height: 1.15;
    letter-spacing: -.03em;
  }

  .print-company__heading p {
    grid-column: 2;
    margin: 1.2mm 0 0;
    color: var(--print-muted);
    font-size: 8pt;
  }

  .print-company__period {
    flex: 0 0 auto;
    padding-top: .8mm;
    color: var(--print-accent);
    font-size: 9pt;
    white-space: nowrap;
  }

  .print-company__subsection {
    margin-top: 5mm;
  }

  .print-company__subsection:first-of-type {
    margin-top: 0;
  }

  .print-company__duties {
    padding: 3mm 3.5mm;
    border: 1px solid var(--print-line);
    background: #fbfcfe;
    break-inside: avoid;
  }

  .print-company__duties ul {
    display: grid;
    gap: 1mm;
    margin: 0;
    padding-left: 4.5mm;
  }

  .print-company__subheading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6mm;
    margin-bottom: 2mm;
    break-after: avoid;
  }

  .print-company__subheading h3 {
    margin: 0;
  }

  .print-detail-title {
    display: block;
    color: #182230;
    font-size: 8.7pt;
    font-weight: 400;
    line-height: 1.5;
  }

  .print-section--appendix {
    break-before: page;
    page-break-before: always;
  }

  .print-section--appendix + .print-section--appendix {
    break-before: auto;
    page-break-before: auto;
  }

  .print-table--activities td,
  .print-table--activities th {
    padding-top: 1.7mm;
    padding-bottom: 1.7mm;
  }

  a,
  a:visited {
    color: inherit !important;
    text-decoration: none !important;
  }
}

/* 기본정보 표: 총 경력·학력 제거 후 2개 항목씩 균형 배치 */
@media print {
  .print-profile-table th {
    width: 18mm;
  }

  .print-profile-table td {
    width: calc(50% - 18mm);
  }
}

/* 본문용 A4 세로 페이지를 명시적으로 이름 붙여 혼합 방향 출력을 안정화합니다. */
@page resume-page {
  size: 210mm 297mm;
  page-orientation: upright;
  margin: 12mm 12mm 14mm;

  @top-left { content: ""; }
  @top-center { content: ""; }
  @top-right { content: ""; }
  @bottom-left { content: ""; }
  @bottom-center { content: ""; }
  @bottom-right { content: ""; }
}

/* 경력 타임라인: 한 장짜리 A4 가로 전용 페이지 */
@page timeline-page {
  size: 297mm 210mm;
  page-orientation: upright;
  margin: 9mm 10mm 10mm;

  @top-left { content: ""; }
  @top-center { content: ""; }
  @top-right { content: ""; }
  @bottom-left { content: ""; }
  @bottom-center { content: ""; }
  @bottom-right { content: ""; }
}

@media print {
  /* 본문은 세로 페이지, 마지막 타임라인만 가로 페이지를 사용합니다. */
  .print-resume > :not(.print-section--timeline) {
    page: resume-page;
  }

  .print-section--timeline {
    display: block !important;
    page: timeline-page !important;
    break-before: page;
    page-break-before: always;
    break-after: page;
    page-break-after: always;
    break-inside: avoid;
    page-break-inside: avoid;
    width: 277mm;
    min-height: 190mm;
    margin: 0;
  }

  .print-section--timeline .print-section__heading {
    margin-bottom: 3mm;
    padding-bottom: 1.8mm;
  }

  .print-section--timeline .print-section__heading h2 {
    font-size: 15pt;
  }

  .print-timeline {
    width: 100%;
    height: auto;
    overflow: visible;
    border: 1px solid var(--print-line);
    border-radius: 2mm;
    background: #fff;
  }

  .print-timeline svg {
    display: block;
    width: 100%;
    height: auto;
    max-width: 277mm;
    max-height: 168mm;
  }
}

/* 마지막 페이지의 경력 타임라인을 본문과 구분된 참고자료로 표시 */
@media print {
  .print-section__heading--reference {
    align-items: center;
  }

  .print-section__reference-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18mm;
    padding: 1mm 2.4mm;
    border: 1px solid #b9c8e3;
    border-radius: 10mm;
    background: var(--print-accent-soft);
    color: var(--print-accent);
    font-size: 7pt;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .04em;
    white-space: nowrap;
  }

  .print-section--timeline {
    /* 마지막 참고자료이므로 뒤쪽 강제 페이지 분리는 만들지 않습니다. */
    break-after: auto;
    page-break-after: auto;
  }
}

@media print {
  .print-inline-list--military {
    margin-top: 1.1mm;
    margin-bottom: 1.1mm;
    padding-bottom: 1.1mm;
    border-bottom: 1px dotted var(--print-line);
  }
}

/* 기본정보·경력 섹션 번호 제목 제거 후 소제목 체계로 통일 */
@media print {
  .print-section--overview {
    margin-top: 0;
  }

  .print-section--summary {
    margin-top: 4.5mm;
  }

  .print-block-title {
    margin-bottom: 2mm;
  }
}

/* 첫 페이지 재배치: 학력 → 경력사항 → 자격사항을 각각 전체 너비로 표시 */
@media print {
  .print-full-width-block {
    display: block;
    width: 100%;
    max-width: none;
  }

  .print-education-block {
    margin-top: 3.5mm;
  }

  .print-certification-block {
    margin-top: 4.5mm;
  }

  .print-table--education,
  .print-table--certifications {
    width: 100%;
    table-layout: fixed;
  }

  .print-section--overview,
  .print-section--summary {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

/* 학력사항은 학교명·전공·학점을 줄바꿈 없이 한 줄로 표시 */
@media print {
  .print-education-inline {
    display: flex;
    align-items: baseline;
    min-width: 0;
    white-space: nowrap;
  }

  .print-education-inline__school {
    display: inline !important;
    flex: 0 0 auto;
    margin: 0;
    font-size: 8.7pt !important;
    line-height: 1.45 !important;
  }

  .print-education-inline__meta {
    display: inline;
    min-width: 0;
    color: var(--print-muted);
    font-size: 7.8pt;
    line-height: 1.45;
  }
}



/* 자격사항의 자격명과 발급기관을 한 줄로 표시 */
@media print {
  .print-certification-inline {
    display: flex;
    align-items: baseline;
    min-width: 0;
    white-space: nowrap;
  }

  .print-certification-inline__name {
    display: inline !important;
    flex: 0 0 auto;
    margin: 0;
    font-size: 8.7pt !important;
    font-weight: 650;
    line-height: 1.45 !important;
  }

  .print-certification-inline__issuer {
    display: inline;
    min-width: 0;
    color: var(--print-muted);
    font-size: 7.8pt;
    line-height: 1.45;
  }
}

/* 기타사항: 페이지 전체 너비를 사용하는 단일 표 */
@media print {
  .print-contribution-block {
    width: 100%;
    margin-top: 4.5mm;
    break-inside: auto;
    page-break-inside: auto;
  }

  .print-table--contribution-compact {
    width: 100%;
    table-layout: fixed;
  }

  .print-table--contribution-compact thead {
    display: table-header-group;
  }

  .print-table--contribution-compact th {
    padding: 1.6mm 1.8mm;
    font-size: 8.2pt;
    line-height: 1.4;
    white-space: nowrap;
  }

  .print-table--contribution-compact td {
    padding: 1.55mm 1.8mm;
    font-size: 8.2pt;
    font-weight: 400;
    line-height: 1.45;
    vertical-align: top;
    overflow-wrap: anywhere;
  }

  .print-table--contribution-compact td:first-child {
    font-weight: 400 !important;
    white-space: nowrap;
  }

  .print-table--contribution-compact td:nth-child(2) {
    color: #39475e;
    white-space: nowrap;
  }

  .print-table--contribution-compact tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .print-section--summary {
    margin-top: 3.5mm;
  }

  .print-certification-block {
    margin-top: 3.5mm;
  }
}


/* 경력사항 및 자격사항 본문 강조 제거 */
@media print {
  .print-table--career-summary td,
  .print-table--career-summary td strong,
  .print-certification-inline__name {
    font-weight: 400 !important;
  }
}


/* 학력·경력·자격·기타사항의 첫 번째 칼럼 너비(20%)와 정렬 통일 */
@media print {
  .print-table--education th:first-child,
  .print-table--education td:first-child,
  .print-table--career-summary th:first-child,
  .print-table--career-summary td:first-child,
  .print-table--certifications th:first-child,
  .print-table--certifications td:first-child,
  .print-table--contribution-compact th:first-child,
  .print-table--contribution-compact td:first-child {
    width: 20% !important;
    text-align: center !important;
  }

  /* 회사명이 두 줄로 나뉘지 않도록 한 줄로 유지 */
  .print-table--career-summary th:first-child,
  .print-table--career-summary td:first-child {
    white-space: nowrap;
    word-break: keep-all;
  }
}

/* 경력사항 재직기간, 기타사항 구분 칼럼 가운데 정렬 */
@media print {
  .print-table--career-summary th:nth-child(2),
  .print-table--career-summary td:nth-child(2),
  .print-table--contribution-compact th:nth-child(2),
  .print-table--contribution-compact td:nth-child(2) {
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap;
  }
}

/* 첫 페이지 흐름: 학력사항 아래에 경력사항·자격사항·기타사항을 연속 배치 */
@media print {
  .print-section--overview {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  .print-education-block,
  .print-career-block,
  .print-certification-block {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .print-career-block {
    margin-top: 3.5mm;
  }

  .print-contribution-block {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  .print-contribution-block > h3 {
    break-after: avoid-page;
    page-break-after: avoid;
  }

  .print-table--contribution-compact thead {
    display: table-header-group;
  }
}


/* 학력사항 학교명 볼드 제거 */
@media print {
  .print-education-inline__school {
    font-weight: 400 !important;
  }
}

/* 수상내역 등 다음에 외부활동을 같은 페이지 흐름으로 연속 배치 */
@media print {
  .print-activity-block {
    width: 100%;
    margin-top: 4.5mm;
    break-inside: auto;
    page-break-inside: auto;
  }

  .print-activity-block > h3 {
    margin: 0 0 2mm;
    color: #25334a;
    font-size: 9.5pt;
    line-height: 1.35;
    break-after: avoid-page;
    page-break-after: avoid;
  }

  .print-activity-block .print-table--activities {
    width: 100%;
    table-layout: fixed;
  }

  .print-activity-block .print-table--activities thead {
    display: table-header-group;
  }
}

/* 외부활동 기간 칼럼: 다른 첫 번째 칼럼과 동일한 너비 및 가운데 정렬 */
@media print {
  .print-table--activities th:first-child,
  .print-table--activities td:first-child {
    width: 20% !important;
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap;
  }

  .print-table--activities td:first-child {
    font-weight: 400 !important;
  }
}

/* 인쇄용 수행 프로젝트의 프로젝트명 강조 */
@media print {
  .print-table--projects .print-detail-title {
    font-weight: 700 !important;
  }
}

/* 학력사항 행 경계선 중첩 및 텍스트 밀착 현상 보정 */
@media print {
  .print-table--education tbody td {
    border-bottom: 0 !important;
    padding-top: 2.3mm !important;
    padding-bottom: 2.3mm !important;
    vertical-align: middle !important;
  }

  .print-table--education tbody tr:not(:last-child) td {
    border-bottom: 0.5px solid var(--print-line) !important;
  }

  .print-table--education tbody tr:last-child td {
    border-bottom: 1px solid var(--print-line) !important;
  }

  .print-table--education .print-education-inline,
  .print-table--education .print-education-inline__school,
  .print-table--education .print-education-inline__meta {
    line-height: 1.4 !important;
  }
}

/* 수행 프로젝트 기간: 연도만 표시되는 첫 번째 칼럼 */
@media print {
  .print-table--projects th:first-child,
  .print-table--projects td:first-child {
    width: 18% !important;
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap;
  }
}

/* 인쇄용 직급·직책 이력의 기간 열 가운데 정렬 */
@media print {
  .print-table--positions th:first-child,
  .print-table--positions td:first-child {
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap;
  }
}

/* 직급·직책 이력 기간 열 강제 가운데 정렬 - 브라우저/기존 규칙 우선순위 대응 */
@media print {
  table.print-table.print-table--positions > thead > tr > th:first-child,
  table.print-table.print-table--positions > tbody > tr > td:first-child {
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
  }
}

/* 직급·직책 이력 기간 열 너비를 수행 프로젝트 기간 열(18%)과 일치 */
@media print {
  table.print-table.print-table--positions > thead > tr > th:first-child,
  table.print-table.print-table--positions > tbody > tr > td:first-child {
    width: 18% !important;
  }
}

/* 직급·직책 이력: 전체 칼럼 가운데 정렬 */
@media print {
  table.print-table.print-table--positions > thead > tr > th,
  table.print-table.print-table--positions > tbody > tr > td {
    text-align: center !important;
    vertical-align: middle !important;
  }
}

/* 첫 페이지 인쇄 표의 항목명/헤더 가운데 정렬 */
@media print {
  /* 기본정보: 성명, 출생년월, 현 소속, 이메일 */
  .print-profile-table th {
    text-align: center !important;
    vertical-align: middle !important;
  }

  /* 학력/경력/자격/수상내역 표의 머리글 */
  .print-table--education thead th,
  .print-table--career-summary thead th,
  .print-table--certifications thead th,
  .print-table--contribution-compact thead th {
    text-align: center !important;
    vertical-align: middle !important;
  }
}


/* 인쇄용 대외활동 표: 요청된 헤더 및 역할 칼럼 가운데 정렬 */
@media print {
  /* "기관 및 활동" 헤더 가운데 정렬 */
  .print-table--activities thead th:nth-child(2) {
    text-align: center !important;
    vertical-align: middle !important;
  }

  /* "역할" 헤더 및 전체 값 가운데 정렬 */
  .print-table--activities thead th:nth-child(3),
  .print-table--activities tbody td:nth-child(3) {
    text-align: center !important;
    vertical-align: middle !important;
  }
}


/* 수행 프로젝트 표 헤더 가운데 정렬 */
@media print {
  .print-table--projects thead th:nth-child(2) {
    text-align: center !important;
    vertical-align: middle !important;
  }
}

/* 인쇄용 기간 표기: 직급·직책 이력 / 수행 프로젝트 기간의 볼드 제거 */
@media print {
  .print-table--positions tbody td:first-child,
  .print-table--projects tbody td:first-child {
    font-weight: 400 !important;
  }
}


/* 제도·가이드·규정 개선 주요 참여: 수행 프로젝트 위 인쇄 전용 표 */
@media print {
  .print-table--policy-improvements th:first-child,
  .print-table--policy-improvements td:first-child {
    width: 18% !important;
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
  }

  .print-table--policy-improvements tbody td:first-child {
    font-weight: 400 !important;
  }

  .print-table--policy-improvements thead th:nth-child(2) {
    text-align: center !important;
    vertical-align: middle !important;
  }
}


/* 제도·가이드·규정 개선 주요 참여: 프로젝트와 동일하게 제목 + 설명 구조 */
@media print {
  .print-table--policy-improvements .print-detail-title {
    font-weight: 700 !important;
  }

  .print-table--policy-improvements .print-policy-improvement-content p {
    margin-top: 0.8mm !important;
    font-weight: 400 !important;
  }
}
