/* ==========================================================================
   TidligSprogstart.dk - Professional A4 Print Stylesheet
   Lærevejen ApS • Copydan Tekst & Node gældende vilkår
   ========================================================================== */

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

  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    box-sizing: border-box !important;
  }

  html, body {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background-color: #ffffff !important;
    color: #000000 !important;
    font-size: 9.5pt;
    line-height: 1.25;
    overflow: visible !important;
  }

  /* Hide navigation, footers, controls, sidebars and Google ads in print */
  header,
  footer,
  .no-print,
  .generator-controls,
  .search-modal-backdrop,
  #app-nav,
  #app-footer,
  .site-header,
  #cookie-banner,
  #btn-floating-cookie,
  ins.adsbygoogle,
  .adsbygoogle,
  .google-auto-placed,
  .ad-container,
  #search-modal {
    display: none !important;
  }

  /* Complete reset of outer layout wrappers to prevent blank page 2 */
  #app,
  #app-main,
  main,
  #generator-mount-point,
  .generator-container,
  #embedded-generator-container,
  .student-plates,
  .space-y-16,
  .space-y-8,
  .space-y-6,
  .space-y-5,
  .space-y-4,
  .pb-16,
  .pb-12,
  .pb-8,
  .pb-6,
  .pb-4,
  .pt-8,
  .pt-6,
  .pt-4,
  .mb-16,
  .mb-12,
  .mb-8,
  .mb-6,
  .mb-4,
  .my-6,
  .my-4 {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    max-width: 100% !important;
    width: 100% !important;
    overflow: visible !important;
  }

  .print-only {
    display: block !important;
  }

  /* Page break rules - Bulletproof multi-page and single-page handling */
  .print-page {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    break-after: auto !important;
    page-break-after: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Only page-break between multiple pages (never on the last or only page) */
  .print-page + .print-page {
    break-before: page !important;
    page-break-before: always !important;
  }

  /* Specific page break guarantees for caller sheet and student plates */
  .print-caller-sheet {
    break-after: page !important;
    page-break-after: always !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    margin-bottom: 0 !important;
  }

  .print-plate-page,
  .bingo-plate {
    break-before: page !important;
    page-break-before: always !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    margin-top: 0 !important;
  }

  /* Sheet Header */
  .print-sheet-header {
    border-bottom: 2px solid #0f172a !important;
    padding-bottom: 4px !important;
    margin-bottom: 6px !important;
  }

  .print-logo-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 3px !important;
  }

  .print-brand {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
  }

  .print-logo-icon-wrap {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .print-logo-svg {
    width: 32px !important;
    height: 32px !important;
    max-width: 32px !important;
    max-height: 32px !important;
    display: block !important;
    flex-shrink: 0 !important;
  }

  .print-brand-text {
    display: flex !important;
    flex-direction: column !important;
    line-height: 1.1 !important;
  }

  .print-brand-title {
    font-size: 12pt !important;
    font-weight: 900 !important;
    color: #0f172a !important;
    letter-spacing: -0.02em !important;
    display: flex !important;
    align-items: center !important;
    gap: 2px !important;
  }

  .print-brand-title .text-emerald-600 {
    color: #059669 !important;
  }

  .print-dot-dk {
    font-size: 7pt !important;
    font-weight: 800 !important;
    color: #e11d48 !important;
    background-color: #ffe4e6 !important;
    border: 1px solid #fecdd3 !important;
    padding: 1px 4px !important;
    border-radius: 9999px !important;
    margin-left: 2px !important;
    line-height: 1 !important;
    display: inline-block !important;
  }

  .print-brand-subline {
    font-size: 7pt !important;
    color: #64748b !important;
    font-weight: 600 !important;
    margin-top: 1px !important;
    display: flex !important;
    align-items: center !important;
    gap: 3px !important;
  }

  .print-meta-badges {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
  }

  .print-lang-badge {
    font-size: 7.5pt !important;
    font-weight: 800 !important;
    color: #047857 !important;
    background-color: #ecfdf5 !important;
    padding: 1.5px 7px !important;
    border: 1.5px solid #a7f3d0 !important;
    border-radius: 9999px !important;
  }

  .print-publisher-badge {
    font-size: 7pt !important;
    font-weight: 700 !important;
    color: #475569 !important;
    padding: 1.5px 5px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 5px !important;
    background-color: #f8fafc !important;
  }

  .print-title-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-end !important;
    gap: 8px !important;
    margin-top: 2px !important;
  }

  .print-title-group {
    flex: 1 !important;
    min-width: 0 !important;
  }

  .print-sheet-title {
    font-size: 12pt !important;
    font-weight: 900 !important;
    margin: 0 !important;
    color: #0f172a !important;
    line-height: 1.2 !important;
  }

  .print-sheet-subtitle {
    font-size: 7.5pt !important;
    color: #475569 !important;
    margin-top: 1px !important;
    line-height: 1.2 !important;
  }

  .print-student-info {
    display: flex !important;
    gap: 6px !important;
    font-size: 7.5pt !important;
    font-weight: bold !important;
    flex-shrink: 0 !important;
    align-items: flex-end !important;
  }

  .print-line-item {
    display: flex !important;
    align-items: flex-end !important;
    gap: 2px !important;
  }

  .print-label {
    color: #334155 !important;
    font-size: 7pt !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
  }

  .print-underline {
    width: 85px !important;
    border-bottom: 1.5px solid #0f172a !important;
    height: 10px !important;
  }

  .print-underline-short {
    width: 38px !important;
    border-bottom: 1.5px solid #0f172a !important;
    height: 10px !important;
  }

  /* Sheet Footer */
  .print-sheet-footer {
    border-top: 1px solid #cbd5e1 !important;
    margin-top: 5px !important;
    padding-top: 3px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    font-size: 6.5pt !important;
    color: #64748b !important;
    line-height: 1.15 !important;
  }

  .print-footer-left,
  .print-footer-right {
    display: flex !important;
    align-items: center !important;
    gap: 3px !important;
  }

  /* Activity Plan Print Styling */
  .activity-card,
  .activity-header-box,
  .theory-curriculum-grid,
  .instructions-box,
  .differentiation-box,
  .step-item {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    box-shadow: none !important;
  }

  /* Borders & contrasts in print */
  .border-slate-800, .border-slate-900 {
    border-color: #0f172a !important;
  }
  .border-slate-300, .border-slate-200 {
    border-color: #94a3b8 !important;
  }
  .bg-slate-50, .bg-slate-50\/50, .bg-slate-50\/70 {
    background-color: #f8fafc !important;
  }

  /* Multi-column grid rules in print with compact heights */
  .print-grid-2 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .print-grid-3 {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }
  .print-grid-4 {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 5px !important;
  }
  .print-grid-5 {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 5px !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
  }
  .print-grid-5 > div {
    padding: 3px 2px !important;
    font-size: 7.5pt !important;
    border-radius: 10px !important;
  }
  .print-grid-5 > div span.text-2xl {
    font-size: 15pt !important;
    line-height: 1 !important;
    margin: 1px 0 !important;
  }
  .print-grid-5 > div span.text-xl {
    font-size: 13pt !important;
    line-height: 1 !important;
    margin: 1px 0 !important;
  }
  .print-grid-6 {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 4px !important;
  }
  .print-grid-9,
  .banko-grid-9 {
    display: grid !important;
    grid-template-columns: repeat(9, minmax(0, 1fr)) !important;
    gap: 3px !important;
  }
  .banko-single-plate {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* Cards and items */
  .find-someone-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px 10px !important;
    margin: 6px 0 !important;
  }
  .find-someone-cell {
    padding: 5px 8px !important;
    min-height: 44px !important;
    border-radius: 8px !important;
    background-color: #f8fafc !important;
    border: 1.5px solid #94a3b8 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  .memory-card-print,
  .flashcard-item,
  .domino-tile-print,
  .caller-item,
  .sentence-puzzle-card {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}
