/* =====================================================
   print.css — A4 Receipt Print Layout
   Expense Tracker v0.2.0
   ===================================================== */

/* ── Print preview page ── */
.print-controls {
  display: flex; align-items: center; gap: var(--sp-2);
  margin-bottom: var(--sp-3); flex-wrap: wrap;
}
.print-controls .btn { flex-shrink: 0; }
.print-info { font-size: 12px; color: var(--c-text2); flex: 1; }

.print-receipt-select {
  background: var(--c-surface); border: 1px solid var(--c-border);
  border-radius: var(--r-lg); padding: var(--sp-4);
  margin-bottom: var(--sp-3); box-shadow: var(--shadow-sm);
}
.print-receipt-item {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: 10px 0; border-bottom: 1px solid var(--c-border);
}
.print-receipt-item:last-child { border-bottom: none; }
.print-receipt-item input[type=checkbox] { width: 18px; height: 18px; cursor: pointer; accent-color: var(--c-primary); }
.print-receipt-item img { width: 50px; height: 50px; object-fit: cover; border-radius: var(--r-sm); border: 1px solid var(--c-border); flex-shrink: 0; }
.print-receipt-item .print-item-info { flex: 1; min-width: 0; }
.print-receipt-item .print-item-name { font-size: 14px; font-weight: 700; }
.print-receipt-item .print-item-meta { font-size: 11px; color: var(--c-text2); }
.print-thumb-zoom { cursor: zoom-in !important; transition: opacity var(--t-fast); }
.print-thumb-zoom:hover { opacity: .85; }
.print-del-btn { padding: 5px 8px !important; flex-shrink: 0; }

/* ── A4 Preview Panel ── */
#a4PreviewPanel {
  background: #777; padding: 20px; min-height: 400px;
  border-radius: var(--r-md); overflow: auto;
}

/* A4 미리보기 페이지: flexbox로 콘텐츠가 정확히 297mm에 맞게 */
.a4-page {
  width: 210mm;
  height: 297mm;           /* min-height → height: 넘치지 않도록 고정 */
  background: #fff;
  margin: 0 auto 20px;
  padding: 15mm;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.3);
}
.a4-page-header {
  display: flex; justify-content: space-between; align-items: flex-end;
  border-bottom: 2px solid #333; padding-bottom: 8px; margin-bottom: 8mm;
  flex-shrink: 0;
}
.a4-page-title { font-size: 16px; font-weight: 900; }
.a4-page-meta  { font-size: 11px; color: #555; }

/* 2×2 그리드: flex로 나머지 공간 채움 */
.a4-receipt-grid {
  flex: 1;
  min-height: 0;           /* flex 자식 overflow 방지 */
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 10mm;
}
.a4-receipt-slot {
  border: 1px solid #ddd; border-radius: 4px;
  overflow: hidden; position: relative;
  /* aspect-ratio 제거 — grid가 크기 결정 */
}
.a4-receipt-slot img { width: 100%; height: 100%; object-fit: contain; background: #f5f5f5; display: block; }
.a4-receipt-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: rgba(0,0,0,.68); color: #fff;
  font-size: 9px; padding: 4px 6px;
  display: flex; justify-content: space-between;
}

.a4-empty-slot {
  background: #f9f9f9; border: 1px dashed #ccc;
  border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  color: #ccc; font-size: 11px;
}

/* ── @media print (실제 인쇄는 print.js의 window.open() 사용) ── */
@media print {
  body * { visibility: hidden; }
  #a4PreviewPanel, #a4PreviewPanel * { visibility: visible; }
  #a4PreviewPanel {
    position: absolute; inset: 0;
    background: white; padding: 0;
    overflow: visible;
  }
  .a4-page {
    box-shadow: none; margin: 0;
    page-break-after: always; break-after: page;
  }
  .a4-page:last-child { page-break-after: auto; break-after: auto; }
}
