/* A4 인쇄 공통 규격
 *
 * 화면은 넓고 종이는 좁다. 화면 그대로 뽑으면 오른쪽이 잘리거나
 * 글씨가 깨알같이 줄어든다. 가로를 A4 에 맞춰 고정하고,
 * 넘칠 때는 표나 항목 중간이 아니라 항목 사이에서 넘어가게 한다.
 *
 * 모든 화면에서 이 파일 하나를 불러 쓴다. */

@media print {
  @page {
    size: A4 portrait;
    margin: 12mm 10mm;
  }

  /* 브라우저가 배경색을 빼버리면 표 머리와 강조가 사라진다 */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  html, body {
    background: #fff !important;
    font-size: 10.5pt !important;
    line-height: 1.55 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 종이에 쓸모없는 것 — 메뉴·탭바·버튼·배너 */
  header, nav, .tabbar, .actionbar, .btn, button, select, input[type=month],
  .noprint, #nav-admin, #nav-dl, .grip, .banner, .lead,
  a[href="/api/logout"] {
    display: none !important;
  }

  /* 인쇄용으로 남겨둔 것은 예외 */
  .print-only { display: block !important; }
  .print-keep, .print-keep * { display: revert !important; }

  /* 화면용 그리드를 한 줄로 편다. 종이는 좁다. */
  main, .wrap, .grid, .row, .cards, .kpis {
    display: block !important;
    max-width: 100% !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
  }

  /* 카드는 그림자·둥근 모서리를 빼고 얇은 선만 */
  .card, .box, .page, .sheet, .panel {
    box-shadow: none !important;
    border: 1px solid #ccc !important;
    border-radius: 0 !important;
    margin: 0 0 6mm 0 !important;
    padding: 4mm 5mm !important;
    max-width: 100% !important;
    overflow: visible !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* 화면에서 가로 스크롤 하던 것도 종이에서는 다 보여야 한다 */
  .scroll, .card, .box, table, .table-wrap {
    overflow: visible !important;
  }

  table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    font-size: 9.5pt !important;
  }
  th, td {
    white-space: normal !important;      /* 종이에서는 줄바꿈해서라도 다 보인다 */
    word-break: break-all;
    padding: 1.6mm 2mm !important;
    border: 1px solid #ddd !important;
  }
  th {
    background: #f2f4f7 !important;
    position: static !important;          /* sticky 는 인쇄에서 겹친다 */
  }
  td:first-child, th:first-child { position: static !important; }

  /* 표는 쪼개지더라도 머리글이 따라간다 */
  thead { display: table-header-group; }
  tfoot { display: table-footer-group; }
  tr, img { break-inside: avoid; page-break-inside: avoid; }

  /* 제목이 페이지 맨 아래 혼자 남지 않게 */
  h1, h2, h3 { break-after: avoid; page-break-after: avoid; }
  h1 { font-size: 15pt !important; }
  h2 { font-size: 12pt !important; margin: 4mm 0 2mm !important; }
  h3 { font-size: 11pt !important; }

  /* 문단이 한 줄만 남겨두고 넘어가지 않게 */
  p, li, .one, .flag, .note { orphans: 3; widows: 3; }

  /* 링크 뒤에 URL 이 붙는 브라우저가 있다 */
  a { color: inherit !important; text-decoration: none !important; }
  a[href]::after { content: none !important; }

  /* 여러 장짜리 문서 — 장 사이를 명확히 */
  .page + .page { break-before: page; page-break-before: always; }
}
