/*
 * print-sheet：構造と印刷の決まりだけ
 * 受ける変数：--part-paper-bg / --part-paper-fg（紙の地と文字）/ --part-paper-pad（紙の内側の余白）
 *   --part-paper-shadow（画面での紙の影）/ --part-accent / --part-accent-fg（ボタン）/ --part-muted / --part-focus
 * JS が --part-paper-scale（画面で縮める率）を入れる
 * 注意：この部品だけは印刷のために @page と @media print を持つ（幅のメディアクエリは無い）
 */
.part-print-sheet {
  min-width: 0;
}

.part-print-sheet__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  margin: 0 0 16px;
}

.part-print-sheet__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 48px;
  padding: 10px 24px;
  border: 0;
  border-radius: 999px;
  background: var(--part-accent, #333);
  color: var(--part-accent-fg, #fff);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.part-print-sheet__button:focus-visible {
  outline: 2px solid var(--part-focus, #1a1a1a);
  outline-offset: 3px;
}

.part-print-sheet__note {
  margin: 0;
  color: var(--part-muted, #666);
  font-size: 0.85em;
}

/* 画面：A4 の紙をそのまま縮めて見せる */
.part-print-sheet__fit {
  position: relative;
  width: calc(210mm * var(--part-paper-scale, 1));
  max-width: 100%;
  height: calc(297mm * var(--part-paper-scale, 1));
  margin: 0 auto;
  overflow: hidden;
  background: var(--part-paper-bg, #fff);
  box-shadow: var(--part-paper-shadow, 0 1px 3px rgba(0, 0, 0, 0.08), 0 12px 32px rgba(0, 0, 0, 0.12));
}

.part-print-sheet__paper {
  box-sizing: border-box;
  width: 210mm;
  height: 297mm;
  padding: var(--part-paper-pad, 14mm);
  overflow: hidden;
  background: var(--part-paper-bg, #fff);
  color: var(--part-paper-fg, #222);
  transform: scale(var(--part-paper-scale, 1));
  transform-origin: 0 0;
}

@page {
  size: A4 portrait;
  margin: 0;
}

@media print {
  html.part-print-active,
  html.part-print-active body {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  [data-part-print-hide] {
    display: none !important;
  }

  [data-part-print-path] {
    position: static !important;
    display: block !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .part-print-sheet__toolbar {
    display: none !important;
  }

  .part-print-sheet {
    margin: 0 !important;
    padding: 0 !important;
  }

  .part-print-sheet__fit {
    width: 210mm !important;
    max-width: none !important;
    height: 297mm !important;
    margin: 0 !important;
    box-shadow: none !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .part-print-sheet__paper {
    transform: none !important;
  }

  .part-print-sheet,
  .part-print-sheet * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}
