/* ==========================================================================
   Teachers Pet - CSS Print Stylesheet
   ========================================================================== */

@media print {
  /* Reset document for clean printing */
  html, body {
    background: #ffffff !important;
    color: #000000 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    font-size: 12pt;
  }

  /* Hide all app interface panels, sidebar, header, footers, buttons */
  .no-print, 
  header, 
  footer, 
  .editor-controls, 
  .preview-header, 
  .app-footer,
  button, 
  input, 
  select, 
  textarea {
    display: none !important;
  }

  /* Force background graphics, colors, and gradients to print */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* Expand preview structures to take up full page dimensions */
  #app-root, 
  #main-content, 
  #view-editor, 
  .editor-container, 
  .editor-preview-pane {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    overflow: visible !important;
    position: static !important;
  }

  /* Format paper sheet simulation to fill physical page boundaries */
  #print-sheet {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    overflow: visible !important;
  }

  /* --------------------------------------------------------------------------
     LAYOUT SIZES & RATIOS
     -------------------------------------------------------------------------- */
  
  /* Mode 1: 1 Certificate per landscape A4 sheet */
  .layout-full .cert-wrapper {
    width: 100vw !important;
    height: 100vh !important;
    padding: 30pt !important;
    page-break-inside: avoid;
    page-break-after: avoid;
  }

  /* Mode 2: 2 Certificates per portrait A4 sheet (stacked landscape cards) */
  .layout-half .cert-wrapper {
    width: 100vw !important;
    height: calc(50vh - 1px) !important; /* Half of page height */
    padding: 20pt !important;
    page-break-inside: avoid;
  }

  /* Render a simple cutting dashed line for print layout half */
  .layout-half .print-cut-line {
    display: block !important;
    height: 2px !important;
    width: 100% !important;
    border-top: 1.5pt dashed #94a3b8 !important;
    border-bottom: none !important;
    background: none !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  .layout-half .print-cut-line span {
    display: none !important; /* Hide scissor text during actual print */
  }

  /* Compensate padding / border scaling inside print engine */
  .cert-border-inner {
    padding: 20pt !important;
  }
  
  .cert-student-name {
    font-size: 32pt !important;
  }
  
  .cert-award-title {
    font-size: 26pt !important;
  }
}

/* --------------------------------------------------------------------------
   PAGE ORIENTATION CONTROLS (Controlled dynamically via Javascript)
   -------------------------------------------------------------------------- */
/* Dynamic CSS page layout classes targeting the root body element */

/* Named page setups for orientation control in print dialog */
@page landscape-layout {
  size: A4 landscape;
  margin: 0;
}

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

.print-landscape {
  aspect-ratio: 297/210;
}
@media print {
  body.print-landscape {
    page: landscape-layout !important;
    width: 100vw !important;
    height: 100vh !important;
  }
}

.print-portrait {
  aspect-ratio: 210/297;
}
@media print {
  /* Specific rules for lesson plans printing */
  body:not(.print-lesson) #lesson-print-sheet {
    display: none !important;
  }
  body.print-lesson #print-sheet,
  body.print-lesson #worksheet-print-sheet {
    display: none !important;
  }
  body.print-lesson #lesson-print-sheet {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 40px !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    overflow: visible !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
  }

  /* Specific rules for worksheets printing */
  body:not(.print-worksheet) #worksheet-print-sheet {
    display: none !important;
  }
  body.print-worksheet #print-sheet,
  body.print-worksheet #lesson-print-sheet {
    display: none !important;
  }
  body.print-worksheet #worksheet-print-sheet {
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    overflow: visible !important;
    display: block !important;
    transform: none !important;
  }

  body.print-worksheet .doc-pages-root {
    display: block !important;
    transform: none !important;
    width: 100% !important;
    height: auto !important;
  }

  body.print-worksheet .doc-page {
    width: 100% !important;
    min-height: 100vh !important;
    max-height: none !important;
    height: auto !important;
    margin: 0 0 0 0 !important;
    padding: 10mm !important;
    box-sizing: border-box !important;
    page-break-after: always !important;
    page-break-inside: avoid !important;
    overflow: visible !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    gap: 12px !important;
  }

  body.print-worksheet .doc-page:last-child {
    page-break-after: auto !important;
  }

  body.print-worksheet .ws-question-block,
  body.print-worksheet .ws-page-block {
    page-break-inside: avoid !important;
  }

  body.print-document .doc-page,
  body.print-assessment .doc-page {
    width: 100% !important;
    min-height: 100vh !important;
    max-height: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 10mm !important;
    box-sizing: border-box !important;
    page-break-after: always !important;
    page-break-inside: avoid !important;
    overflow: visible !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  body.print-document .doc-page:last-child,
  body.print-assessment .doc-page:last-child {
    page-break-after: auto !important;
  }

  /* NESA Compliance Booklet Multi-Page Print Rules */
  body.print-compliance #compliance-print-sheet {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    color: #000000 !important;
    display: block !important;
    overflow: visible !important;
    z-index: 10000 !important;
  }
  body.print-compliance #app-root,
  body.print-compliance header,
  body.print-compliance footer,
  body.print-compliance .no-print {
    display: none !important;
  }
  
  .compliance-page {
    page-break-after: always;
    page-break-inside: avoid;
    box-sizing: border-box;
    width: 100vw !important;
    height: 100vh !important;
    padding: 40px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Specific rules for NSW report card printing */
  
  
  
  

  /* Specific rules for NESA Quiz Results printing */
  body:not(.print-quiz-results) #quiz-results-print-sheet {
    display: none !important;
  }
  body.print-quiz-results #print-sheet,
  body.print-quiz-results #lesson-print-sheet,
  body.print-quiz-results #worksheet-print-sheet,
  body.print-quiz-results #compliance-print-sheet,
  
  body.print-quiz-results #quiz-results-print-sheet {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: auto !important;
    margin: 0 !important;
    padding: 40px !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    overflow: visible !important;
    display: block !important;
  }
  body.print-quiz-results #app-root,
  body.print-quiz-results header,
  body.print-quiz-results footer,
  body.print-quiz-results .no-print {
    display: none !important;
  }

  /* Dot-to-dot — header page + canvas page */
  body.print-dot-to-dot .dtd-print-hide-controls,
  body.print-dot-to-dot .classroom-tool-header,
  body.print-dot-to-dot .classroom-step,
  body.print-dot-to-dot .classroom-tool-intro,
  body.print-dot-to-dot .dtd-step-progress,
  body.print-dot-to-dot .dtd-preview-toolbar,
  body.print-dot-to-dot .dtd-empty-state,
  body.print-dot-to-dot .dtd-label-strip-wrap,
  body.print-dot-to-dot .dtd-magnifier {
    display: none !important;
  }
  body.print-dot-to-dot .dtd-print-header {
    display: block !important;
    page-break-after: always;
    break-after: page;
    padding: 0 0 12mm 0;
    font-family: Arial, Helvetica, sans-serif !important;
    color: #1f2937 !important;
  }
  body.print-dot-to-dot .dtd-print-header h1 {
    font-size: 18pt;
    margin: 0 0 8pt 0;
  }
  body.print-dot-to-dot .dtd-print-header p {
    font-size: 11pt;
    color: #64748b;
    margin: 0 0 16pt 0;
  }
  body.print-dot-to-dot .dtd-print-meta {
    width: 100%;
    font-size: 11pt;
    border-collapse: collapse;
  }
  body.print-dot-to-dot .dtd-print-meta td {
    border-bottom: 1px solid #94a3b8;
    padding: 6pt 0;
    width: 50%;
  }
  body.print-dot-to-dot #dtd-canvas-wrapper {
    page-break-before: always;
    break-before: page;
  }
  body.print-dot-to-dot #view-dot-to-dot,
  body.print-dot-to-dot .classroom-tool-layout,
  body.print-dot-to-dot .classroom-tool-stage {
    display: block !important;
    width: 100% !important;
    height: auto !important;
  }
  body.print-dot-to-dot #dtd-canvas-wrapper {
    max-width: 100% !important;
    margin: 0 auto !important;
    box-shadow: none !important;
    border: none !important;
  }

  /* Certificate batch print from roster */
  body.print-cert-batch #print-sheet {
    display: none !important;
  }
  body.print-cert-batch #cert-batch-print-root {
    display: block !important;
    position: static !important;
    width: 100% !important;
  }
  body.print-cert-batch .cert-batch-page {
    page-break-after: always;
    break-after: page;
  }
  body.print-cert-batch .cert-batch-page:last-child {
    page-break-after: auto;
    break-after: auto;
  }

  /* Assessment task print */
  body.print-assessment #assessment-preview,
  body.print-assessment .assessment-pages-root {
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    max-width: none !important;
    min-height: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    font-family: Arial, Helvetica, sans-serif !important;
    transform: none !important;
  }
}


