/* NOVABLOC OFFICE — calculator print layouts.
 * Loaded after the screen and mobile styles so print rules always win.
 */

@media print {
  @page {
    size: A4 portrait;
    margin: 7mm;
  }

  html,
  body {
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  /* The application header must never become part of a calculator document.
     The extra selectors beat the late mobile header rules in print preview. */
  body .app-shell > .topbar,
  body .mobile-menu-toggle,
  body .mobile-nav-overlay,
  body .sidebar,
  body .auth-gate,
  body .top-actions {
    display: none !important;
  }

  body .app-shell,
  body .layout,
  body .main {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  /* PAVING PRINT 2 — one clean A4 sheet with a larger plan. */
  #page-paving.page.active {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    zoom: .88 !important;
    break-before: auto !important;
    page-break-before: auto !important;
  }

  #page-paving .page-heading,
  #page-paving .print-param-summary,
  #page-paving .result-card,
  #page-paving .premium-plan {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #page-paving .page-heading {
    margin: 0 0 2mm !important;
  }

  #page-paving .calc-meta-line {
    margin: 0 0 2mm !important;
  }

  #page-paving .print-param-summary {
    margin: 0 0 2mm !important;
  }

  #page-paving .paving-workspace,
  #page-paving .right-stack {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  #page-paving #pavingParamsCard {
    display: none !important;
  }

  #page-paving .result-card {
    width: 100% !important;
    margin: 0 0 2.2mm !important;
    padding: 2.3mm !important;
  }

  #page-paving .stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.2mm !important;
  }

  #page-paving .stat {
    min-height: 0 !important;
    padding: 1.7mm 2mm !important;
  }

  #page-paving .premium-plan {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 2.3mm !important;
    overflow: hidden !important;
  }

  #page-paving .plan-header {
    margin: 0 0 1.2mm !important;
  }

  #page-paving .plan-actions .btn {
    display: none !important;
  }

  /* The late screen rule uses min(90vh, 950px), which created the empty first
     page and pushed the canvas to page two. Use a physical print height. */
  #page-paving .paving-canvas-viewport {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 125mm !important;
    min-height: 0 !important;
    max-height: 125mm !important;
    margin: 0 !important;
    padding: 1.5mm !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #page-paving .paving-canvas-viewport #pavingCanvas {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    box-sizing: border-box !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }

  #page-paving .plan-footer {
    margin: 1mm 0 0 !important;
    padding: 0 !important;
  }

  /* PILES PRINT 2 — redraw the field on a square print canvas so tall and
     wide foundations use the sheet without distorting piles or dimensions. */
  #page-piles.page.active {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    zoom: .90 !important;
  }

  #page-piles .page-heading,
  #page-piles .print-param-summary,
  #page-piles .result-card,
  #page-piles .pile-plan-card {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #page-piles .page-heading {
    margin: 0 0 2mm !important;
  }

  #page-piles .calc-meta-line,
  #page-piles .print-param-summary {
    margin-bottom: 2mm !important;
  }

  #page-piles .workspace,
  #page-piles .right-stack {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  #page-piles .workspace > .form-card {
    display: none !important;
  }

  #page-piles .result-card {
    margin: 0 0 2.2mm !important;
    padding: 2.3mm !important;
  }

  #page-piles .stats-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 1.3mm !important;
  }

  #page-piles .stat {
    min-height: 0 !important;
    padding: 2mm !important;
  }

  #page-piles .pile-plan-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 2.5mm !important;
    overflow: hidden !important;
    text-align: center !important;
  }

  #page-piles .pile-print-header {
    display: flex !important;
    width: 100% !important;
    margin: 0 0 1.5mm !important;
    text-align: left !important;
  }

  #page-piles .pile-print-header h2 {
    margin: .6mm 0 .8mm !important;
    font-size: 12pt !important;
  }

  #page-piles .pile-print-header p {
    margin: 0 !important;
    font-size: 6.5pt !important;
    color: #666 !important;
  }

  #page-piles #pileCanvas {
    display: block !important;
    width: 160mm !important;
    height: 160mm !important;
    max-width: 100% !important;
    max-height: 160mm !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    box-sizing: border-box !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }

  /* FBS PRINT 1 / FBS LAYOUT 1 — both bonded row types stay proportional on one sheet. */
  #page-fbs.page.active {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    zoom: .88 !important;
  }

  #page-fbs .page-heading,
  #page-fbs .print-param-summary,
  #page-fbs .result-card,
  #page-fbs .fbs-plan-card {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #page-fbs .page-heading {
    margin: 0 0 2mm !important;
  }

  #page-fbs .calc-meta-line,
  #page-fbs .print-param-summary {
    margin-bottom: 2mm !important;
  }

  #page-fbs .workspace,
  #page-fbs .right-stack {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  #page-fbs .workspace > .form-card {
    display: none !important;
  }

  #page-fbs .result-card {
    margin: 0 0 2.2mm !important;
    padding: 2.5mm !important;
  }

  #page-fbs .result-table th,
  #page-fbs .result-table td {
    padding: 2.1mm !important;
  }

  #page-fbs .result-total {
    margin-top: 2mm !important;
  }

  #page-fbs .result-card .hint {
    margin-top: 2mm !important;
    padding: 2mm !important;
    font-size: 6.2pt !important;
  }

  #page-fbs .fbs-plan-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 2.5mm !important;
    overflow: hidden !important;
    text-align: center !important;
  }

  #page-fbs .fbs-print-header {
    display: flex !important;
    width: 100% !important;
    margin: 0 0 1.5mm !important;
    text-align: left !important;
  }

  #page-fbs .fbs-print-header h2 {
    margin: .6mm 0 .8mm !important;
    font-size: 12pt !important;
  }

  #page-fbs .fbs-print-header p {
    margin: 0 !important;
    font-size: 6.5pt !important;
    color: #666 !important;
  }

  #page-fbs #fbsCanvas {
    display: block !important;
    width: 170mm !important;
    height: 102mm !important;
    max-width: 100% !important;
    max-height: 102mm !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    box-sizing: border-box !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }

  /* SLABS PRINT 1 — a square print canvas preserves the real building aspect
     ratio instead of compressing the drawing under the old 96 mm cap. */
  #page-slabs.page.active {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    zoom: .86 !important;
  }

  #page-slabs .page-heading,
  #page-slabs .print-param-summary,
  #page-slabs .result-card,
  #page-slabs .plan-card {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #page-slabs .page-heading {
    margin: 0 0 2mm !important;
  }

  #page-slabs .calc-meta-line,
  #page-slabs .print-param-summary {
    margin-bottom: 2mm !important;
  }

  #page-slabs .workspace,
  #page-slabs .right-stack {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  #page-slabs .workspace > .form-card {
    display: none !important;
  }

  #page-slabs .result-card {
    margin: 0 0 2.2mm !important;
    padding: 2.5mm !important;
  }

  #page-slabs .slab-alert,
  #page-slabs .slab-ok {
    margin: 0 0 2mm !important;
    padding: 2mm !important;
    font-size: 6.5pt !important;
  }

  #page-slabs .slab-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 1.3mm !important;
  }

  #page-slabs .result-table th,
  #page-slabs .result-table td {
    padding: 2mm !important;
  }

  #page-slabs .result-total {
    margin-top: 2mm !important;
  }

  #page-slabs .result-card .hint {
    margin-top: 2mm !important;
    padding: 2mm !important;
    font-size: 6.2pt !important;
  }

  #page-slabs .plan-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 2.5mm !important;
    overflow: hidden !important;
    text-align: center !important;
  }

  #page-slabs .plan-header {
    margin: 0 0 1.5mm !important;
    text-align: left !important;
  }

  #page-slabs .plan-header h2 {
    margin: 0 0 .8mm !important;
    font-size: 12pt !important;
  }

  #page-slabs .plan-header p {
    margin: 0 !important;
    font-size: 6.5pt !important;
  }

  #page-slabs #slabCanvas {
    display: block !important;
    width: 135mm !important;
    height: 135mm !important;
    max-width: 100% !important;
    max-height: 135mm !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    box-sizing: border-box !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
}
