/* ============================================================
   Bygpas — Print stylesheet for /rapport.html
   ------------------------------------------------------------
   Brugsscenarie:
   - Kunden har lige modtaget sin 49 kr. "Fuld rapport".
   - Hun klikker "Print / Gem som PDF" (bruger iframe.print())
     eller Cmd+P på selve rapport-siden.
   - Resultatet skal ligne et professionelt juridisk dokument,
     der kan sendes til advokat / familie uden at se "web-agtigt" ud.
   ------------------------------------------------------------
   VIGTIG ARKITEKTUR-NOTE:
   Rapporten renderes i en <iframe srcdoc="...">. Print-knappen
   kalder iframe.contentWindow.print(), hvilket KUN anvender
   iframen's egne inline-styles (se supabase/functions/
   generate-report/index.ts). Denne stylesheet anvendes når:
     1. Brugeren Cmd+P'er selve rapport.html (wrapper-siden)
     2. Brugeren "Åbner i ny fane" og printer blob-URL'en —
        dog bruger dén også iframens egne styles, ikke denne.
   Denne fil skjuler derfor wrapper-chrome (nav, toolbar,
   loading, footer, cookie-banner) og lader iframen fylde
   siden. Selve rapportens print-styling ligger inline i
   Claude-genereret HTML fra edge-funktionen.
   ============================================================ */

@media print {

  /* ==========================================================
     @page — sidemarginer, størrelse, running headers/footers
     Chrome understøtter @page margins + size. @page-boxes
     (@top-left, @bottom-center osv.) er IKKE bredt understøttet
     i Chrome i april 2026 — kun i Prince/Weasy. Vi sætter dem
     alligevel så Safari/Firefox kan vise dem hvis de kommer.
     Dato-indsættelse sker via content:"..." da print-engines
     ikke kan tilgå JS-variabler.
     ========================================================== */
  @page {
    size: A4;
    margin: 2cm;
  }

  @page :first {
    /* Første side: ingen running header (logo vises i selve rapporten) */
    margin-top: 2cm;
  }

  /* Progressive enhancement: running headers/footers hvor understøttet */
  @page {
    @top-left {
      content: "Bygpas Rapport";
      font-family: 'Instrument Serif', Georgia, 'Times New Roman', serif;
      font-size: 9pt;
      color: #1a1a1a;
    }
    @top-right {
      content: "Side " counter(page) " af " counter(pages);
      font-family: 'Inter', Arial, sans-serif;
      font-size: 9pt;
      color: #5f5b53;
    }
    @bottom-left {
      content: "bygpas.io";
      font-family: 'Inter', Arial, sans-serif;
      font-size: 8pt;
      color: #5f5b53;
    }
    @bottom-right {
      content: "Baseret på offentligt tilgængelige data. Udgør ikke juridisk rådgivning.";
      font-family: 'Inter', Arial, sans-serif;
      font-size: 7pt;
      font-style: italic;
      color: #5f5b53;
    }
  }

  /* ==========================================================
     Basis — sort-på-hvid, ingen baggrund, ingen gradienter
     ========================================================== */
  html, body {
    background: #fff !important;
    color: #000 !important;
    font-family: 'Inter', Arial, 'Helvetica Neue', sans-serif;
    font-size: 11pt;
    line-height: 1.5;
    margin: 0 !important;
    padding: 0 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Flex-layoutet på .rapport-body bryder print-flow på nogle
     browsere (Safari især). Nulstil til normal flow. */
  .rapport-body {
    display: block !important;
    min-height: 0 !important;
  }

  /* ==========================================================
     Skjul al wrapper-chrome — brugeren skal kun se rapporten
     ========================================================== */
  .nav,
  nav,
  .skip-link,
  .footer,
  .cookie-banner,
  .rapport-done-toolbar,
  #rapport-loading,
  #rapport-error,
  /* Fremtidigt: chat-widget, dele-knapper, "Vil du dele?"-CTA'er */
  .chat-widget,
  .chat-button,
  .share-buttons,
  .share-cta,
  .social-buttons,
  [data-share],
  [data-print-hide],
  .no-print {
    display: none !important;
  }

  /* Alle sticky/fixed elementer skal tilbage i normal flow.
     Vigtigt fordi .rapport-done bruger position:fixed som
     ødelægger print-layout. */
  .rapport-done,
  .rapport-done.show {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    display: block !important;
    z-index: auto !important;
    background: #fff !important;
  }

  /* ==========================================================
     Iframe — lad rapport-indholdet fylde siden uden ramme.
     Browsere håndterer iframe-print forskelligt:
     - Chrome: inliner iframe-indhold i forældrens print-flow
     - Safari: printer kun det synlige viewport (begrænsning)
     - Firefox: inliner iframe-indhold
     Vi sætter min-height: 100vh så Chrome giver nok plads.
     ========================================================== */
  #rapport-iframe {
    width: 100% !important;
    min-height: 100vh !important;
    height: auto !important;
    border: 0 !important;
    background: #fff !important;
    display: block !important;
    page-break-inside: auto;
  }

  /* ==========================================================
     Typografi — alle overskrifter i pt, sort, med serif-fallback
     ========================================================== */
  h1, h2, h3, h4, h5, h6 {
    font-family: 'Instrument Serif', Georgia, 'Times New Roman', serif;
    color: #000 !important;
    page-break-after: avoid;
    break-after: avoid;
  }
  h1 { font-size: 24pt; font-weight: 700; line-height: 1.2; margin: 0 0 12pt; }
  h2 { font-size: 18pt; font-weight: 600; line-height: 1.25; margin: 18pt 0 10pt; }
  h3 { font-size: 14pt; font-weight: 600; line-height: 1.3; margin: 14pt 0 8pt; }
  h4 { font-size: 12pt; font-weight: 600; line-height: 1.35; margin: 12pt 0 6pt; }

  p, li, td, th {
    font-family: 'Inter', Arial, 'Helvetica Neue', sans-serif;
    font-size: 11pt;
    color: #000 !important;
    line-height: 1.55;
  }

  /* Fjern animationer, skygger og transitions — de kan give
     artefakter i PDF-eksport */
  *, *::before, *::after {
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
    filter: none !important;
    backdrop-filter: none !important;
  }

  /* ==========================================================
     Sidebrud — før hver hovedsektion i rapporten.
     Rapporten bruger class="card" + <h2> via sectionHeader-helper.
     Vi sætter page-break-before på hver <h2> undtagen den første.
     Disse regler når kun gennem hvis rapport-HTML'en nogensinde
     bliver inlined i wrapper-DOM'en — ellers håndteres det af
     rapportens egen inline-CSS (se generate-report/index.ts).
     ========================================================== */
  h2 {
    page-break-before: always;
    break-before: page;
  }
  /* Første h2 (SAMMENFATNING) skal IKKE tvinge sidebrud,
     da HEADER-blokken ligger direkte ovenover. */
  section > h2:first-child,
  .container > h2:first-of-type {
    page-break-before: auto;
    break-before: auto;
  }

  /* Hold kort samlet så flag/datarækker ikke splittes midt igennem */
  .card,
  table,
  figure,
  blockquote,
  .flag,
  .datacard {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* Enkle widows/orphans-regler så tekst ikke efterlader
     én enkelt linje alene */
  p, li {
    orphans: 3;
    widows: 3;
  }

  /* ==========================================================
     Flags — mørkere print-sikre farver, ingen transparens.
     Web-versionen bruger lyse baggrunde (e6eed4 osv.) som
     forsvinder i s/h-print. Vi skifter til solide mørkere
     rammer med hvid fyld så farverne bliver læselige.
     ========================================================== */
  .flag,
  .flag-green,
  .flag-yellow,
  .flag-red,
  [data-flag="green"],
  [data-flag="yellow"],
  [data-flag="red"] {
    background: #fff !important;
    border: 1pt solid #000 !important;
    padding: 8pt 12pt !important;
    margin: 6pt 0 !important;
    page-break-inside: avoid;
  }
  .flag-green,
  [data-flag="green"] {
    border-left: 4pt solid #2a3d1c !important;
    color: #2a3d1c !important;
  }
  .flag-yellow,
  [data-flag="yellow"] {
    border-left: 4pt solid #854F0B !important;
    color: #854F0B !important;
  }
  .flag-red,
  [data-flag="red"] {
    border-left: 4pt solid #991B1B !important;
    color: #991B1B !important;
  }

  /* ==========================================================
     Score-ring — hvis den nogensinde rendres i wrapper-DOM'en.
     SVG printer som de er, men vi tvinger mørkere farver og
     fjerner transparens som kan give artefakter.
     ========================================================== */
  .score-ring circle,
  svg circle {
    stroke-opacity: 1 !important;
  }
  .score-ring text,
  svg text {
    fill: #000 !important;
  }

  /* Progress bars — solid sort på lysegrå i stedet for grøn */
  .progress-bar,
  .progress-track {
    background: #e5e7eb !important;
    border: 0.5pt solid #000 !important;
  }
  .progress-fill {
    background: #000 !important;
  }

  /* ==========================================================
     Tabeller — synlige rammer, ingen zebra, print-venlige
     ========================================================== */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 10pt 0 !important;
    font-size: 10pt !important;
    page-break-inside: auto;
  }
  thead { display: table-header-group; }
  tfoot { display: table-footer-group; }
  tr { page-break-inside: avoid; }
  th, td {
    border: 0.5pt solid #000 !important;
    padding: 6pt 8pt !important;
    text-align: left !important;
    background: #fff !important;
    color: #000 !important;
  }
  th {
    font-weight: 600 !important;
    background: #f5f5f5 !important;
  }
  /* Fjern zebra-striber */
  tr:nth-child(even) td,
  tr:nth-child(odd) td {
    background: #fff !important;
  }

  /* ==========================================================
     Links — vis URL'en i parentes så læseren kan bruge den
     offline. Undtag interne/tomme links.
     ========================================================== */
  a {
    color: #000 !important;
    text-decoration: underline;
  }
  a[href^="http"]:not([href*="bygpas.io"]):not([href*="bygpas.dk"])::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #5f5b53;
    word-break: break-all;
  }
  /* Skjul URL-udvidelse for e-mails, interne links og anchors */
  a[href^="mailto:"]::after,
  a[href^="#"]::after,
  a[href^="tel:"]::after {
    content: "";
  }

  /* ==========================================================
     Lister — tjekliste-bokse skal være synlige i print
     ========================================================== */
  ul, ol {
    margin: 8pt 0 8pt 18pt !important;
    padding: 0 !important;
  }
  li {
    margin: 4pt 0 !important;
    page-break-inside: avoid;
  }
  /* Tjekliste-checkboxes (rapporten bruger ☐ Unicode-tegn,
     som printer fint, men hvis checkbox-inputs bruges: */
  input[type="checkbox"] {
    -webkit-appearance: checkbox !important;
    appearance: checkbox !important;
    width: 10pt;
    height: 10pt;
    border: 1pt solid #000 !important;
    margin-right: 6pt;
  }

  /* ==========================================================
     Billeder — skaler til siden, ingen afbrudt
     ========================================================== */
  img {
    max-width: 100% !important;
    height: auto !important;
    page-break-inside: avoid;
  }

  /* ==========================================================
     Sidste-resort — skjul alt der åbenlyst ikke hører hjemme
     i en print-version
     ========================================================== */
  button,
  .btn,
  .rapport-btn,
  video,
  audio,
  iframe[src*="youtube"],
  iframe[src*="vimeo"],
  [role="banner"]:not(.rapport-main),
  [role="navigation"],
  [role="complementary"] {
    display: none !important;
  }
  /* Undtagelse: rapport-iframen SKAL printes */
  iframe#rapport-iframe {
    display: block !important;
  }
}
