/* Print-friendly A4 layout */
@page {
  size: A4;
  margin: 15mm;
}

@media print {
  /* Hide everything except the paper content */
  body * {
    visibility: hidden;
  }
  
  .print-paper,
  .print-paper * {
    visibility: visible;
  }
  
  .print-paper {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
  }

  body {
    background: #fff !important;
    font-size: 12pt;
    line-height: 1.4;
    margin: 0;
    padding: 0;
  }

  /* Hide all wizard elements */
  .pm-wizard-header,
  .pm-progress-tracker,
  .pm-step-content > .d-flex:first-child,
  .no-print,
  .btn,
  #pmEditorToolbar,
  .pm-step-content > h2 {
    display: none !important;
    visibility: hidden !important;
  }

  .print-paper {
    box-shadow: none !important;
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .print-paper.card {
    border: none !important;
    box-shadow: none !important;
  }

  .print-paper .card-body {
    border: none !important;
    padding: 0 !important;
  }

  .card-body {
    padding: 0 !important;
  }

  a[href]:after {
    content: "";
  }

  /* Paper header: match on-screen Step 6 rules (same CSS variables, no extra table-layout/font overrides). */
  #pmPaperContent .pm-header-wrap {
    overflow-x: visible !important;
    max-width: none !important;
  }

  #pmPaperContent .pm-header-wrap .pm-paper-header,
  #pmPaperContent .pm-header-wrap .pm-paper-header td,
  #pmPaperContent .pm-header-wrap .pm-paper-header th {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Stacked label + rule line (layout 1): ensure rule prints */
  #pmPaperContent .pm-header-wrap .pm-paper-header .pm-hd-stack-line {
    border-bottom-color: #000 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Tables inside question HTML only (nested tables inside the header are not .pm-paper-header) */
  #pmPaperContent .paper-questions table:not(.pm-paper-header) {
    border-collapse: collapse !important;
    width: 100% !important;
  }

  #pmPaperContent .paper-questions table:not(.pm-paper-header) td {
    border: 1px solid #000 !important;
    padding: 8px !important;
  }

  /* Question formatting */
  .q-row {
    page-break-inside: avoid;
    margin-bottom: 15px !important;
  }

  #pmPaperContent .paper-questions .q-text,
  #pmPaperContent .paper-questions .q-num,
  #pmPaperContent .paper-questions .q-marks {
    font-size: var(--pm-question-font-size, 14px) !important;
  }

  #pmPaperContent .paper-questions .q-text .pm-q-image-wrap {
    display: block !important;
    width: 100% !important;
    clear: both !important;
    margin-top: 0.35em !important;
  }

  #pmPaperContent .paper-questions .q-text .pm-q-image-wrap img {
    display: block !important;
    max-width: 100% !important;
    max-height: 160px !important;
    object-fit: contain !important;
  }

  /* Instruction headings — same variable as screen Step 6 */
  #pmPaperContent .pm-instruction-heading {
    font-size: var(--pm-heading-font-size, 16px) !important;
    font-weight: bold !important;
  }

  #pmPaperContent .pm-section-part-heading {
    text-align: center !important;
    font-size: var(--pm-heading-font-size, 16px) !important;
  }

  /* School logo: one layer per Objective / Subjective section (inline opacity on img for reliable print) */
  #pmPaperContent .pm-paper-questions-section {
    position: relative !important;
    isolation: auto !important;
  }

  #pmPaperContent .pm-paper-questions-section > .pm-paper-watermark {
    visibility: visible !important;
    display: flex !important;
    overflow: visible !important;
    z-index: 0 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  #pmPaperContent .pm-paper-questions-section > .pm-paper-watermark img,
  #pmPaperContent .pm-paper-wm-logo {
    visibility: visible !important;
    display: block !important;
    max-height: 200mm !important;
    min-height: 40px !important;
    width: auto !important;
    height: auto !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .paper-footer {
    page-break-inside: avoid;
    margin-top: 30px !important;
  }
}

.paper-header {
  display: grid;
  grid-template-columns: 120px 1fr 200px;
  gap: 12px;
  align-items: center;
  border-bottom: 2px solid #111;
  padding-bottom: 10px;
  margin-bottom: 14px;
}

.paper-header .school-name {
  text-align: center;
  font-weight: 800;
  font-size: 20px;
  line-height: 1.1;
}

.paper-header .school-address {
  text-align: center;
  font-size: 12px;
  color: #444;
}

.paper-header .paper-meta {
  font-size: 12px;
  text-align: right;
}

.q-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 15px;
  page-break-inside: avoid;
}

.q-num {
  width: 30px;
  font-weight: 700;
  flex-shrink: 0;
}

.q-text {
  flex: 1;
  min-width: 0;
  font-size: 14px;
}

.q-marks {
  width: 60px;
  text-align: right;
  font-weight: 700;
  flex-shrink: 0;
}

/* Tables inside question body only — never target .pm-paper-header or the whole card can clip / mis-layout on screen */
.print-paper .paper-questions table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}

.print-paper .paper-questions table td {
  border: 1px solid #000;
  padding: 8px;
  vertical-align: top;
}

.print-paper .paper-questions table td strong {
  font-weight: 600;
}

/* Instructions styling */
.print-paper .mb-3[style*="font-weight: bold"] {
  font-weight: bold !important;
  margin-bottom: 15px !important;
  margin-top: 20px !important;
}

/* Footer styling */
.paper-footer {
  border-top: 1px solid #ddd;
  margin-top: 40px;
  padding-top: 20px;
  font-size: 11pt;
}


