/* PRINTLAGET — sag #348, 18. sep 2026.
   ==================================================================
   Hægtet på i base.html med media="print". Den gælder derfor BÅDE når
   en bruger trykker Ctrl+P og når /virksomhed/<cvr>/rapport.pdf tegner
   siden med headless Chromium. Forskellen mellem de to er, hvad der
   står i DOM'en, ikke hvordan det ser ud: PDF-ruten henter siden med
   ?dele=1 og folder de sammenklappede kort ud, før den printer. Ctrl+P
   får derfor en god, men kortere udskrift — det er med vilje, og det er
   bedre end den ubrugelige, man fik indtil i dag.

   Filen er den eneste med @media print i projektet. Bliver der flere,
   så saml dem her: to steder med hver sin regel om det samme sideskift
   er en fejl, der først viser sig som en halvtom side hos en kunde.

   ALT står under :root af samme grund som i ny.css — Bootstraps egne
   regler har høj specificitet, og en bar .card vinder ikke over dem.
   Hvor :root ikke slår til (Bootstrap-hjælpere med !important), står
   der !important, og kun der. */

@media print {

  /* ── 1. SIDEDELINGEN ───────────────────────────────────────────────
     Her gik forprøven galt, og årsagen er kontraintuitiv nok til at
     stå skrevet:

       Den tomme side under «02 Ejerskab og struktur» kom IKKE af for
       få regler, men af to for hårde. Et break-before: page på hver
       .sektion skubbede overskriften til en frisk side; et
       break-inside: avoid på det første kort — som er HØJERE END EN
       SIDE — skubbede så kortet videre til den næste. Tilbage stod en
       side med kun en overskrift på.

     Rettelsen er derfor ikke flere sideskift, men FÆRRE: en overskrift
     binder sig til det, der følger efter den, og intet tvinges. */

  /* Ingen overskrift må stå som sidste linje på en side. Dét er
     rettelsen mod «01 Økonomi» alene nederst — ikke et sideskift. */
  :root .sektion-titel,
  :root .card-header,
  :root h1, :root h2, :root h3, :root h4, :root h5, :root h6 {
    break-after: avoid-page;
  }

  /* … og heller ikke et brud FORAN korttitlen. Uden denne linje river
     avoid-page ovenfor overskriften med over på næste side og efterlader
     kortets øverste kant alene nederst: en tom, indrammet kasse på 3 cm,
     som ligner en fejl i dataene. Med begge regler flytter hele kortets
     begyndelse med. Målt på Custimoo side 6, 18. sep 2026. */
  :root .card > .card-header:first-child { break-before: avoid-page; }

  /* Sektionerne begynder hvor de nu falder. En sektion pr. side lyder
     ordentligt og giver i praksis fire halvtomme sider. */
  :root .sektion { break-before: auto; }

  /* break-inside: avoid KUN på det, der kan være på én side. Et element
     med avoid, som er højere end papiret, kan ikke overholde reglen —
     browseren rykker det til næste side og lader det flyde over
     alligevel, så man betaler en tom halvside for ingenting. */
  :root .kpi,
  :root .graf-mini-lav, :root .graf-lav, :root .graf-std, :root .graf-stor,
  :root .kpi-stribe,
  :root .stam-par,
  :root tr {
    break-inside: avoid;
  }

  /* Kortene må gerne brækkes: registreringshistorikken er meterhøj.
     .underkort og .rel-gruppe stod i listen ovenfor i første forsøg, og de
     er nøjagtig den fælde, afsnittet advarer imod: relationslisten på
     Custimoo er ét .underkort med tretten roller i, og med avoid efterlod
     den 40 % af siden under «03 Relationer» tom. Målt 18. sep 2026. */
  :root .card, :root .underkort, :root .rel-gruppe { break-inside: auto; }

  /* En tabel, der løber over et sideskift, skal tage sit hoved med. */
  :root thead { display: table-header-group; }
  :root tfoot { display: table-footer-group; }

  /* Én eller to linjer alene er værre end en lidt kortere side. */
  :root p, :root li, :root td { orphans: 3; widows: 3; }


  /* ── 2. GITTERET ───────────────────────────────────────────────────
     Bootstrap definerer col-md-* inde i @media (min-width: 768px), og
     den er aldrig sand på papir: A4 er 794 px ved 96 dpi, og med 12 mm
     margen i hver side er der ~700 px tilbage. Derfor stod de to grafer
     i «Ansatte og løn» under hinanden i forprøven — ikke fordi de var
     lagt sådan op, men fordi gitteret ikke trådte i kraft. Kortet
     lægger dem allerede side om side med col-md-6 på skærmen
     (virksomhed_ny.html: _gkol), så reglerne skal bare gentages her.

     col-lg-* røres BEVIDST ikke. Hovedspalten fylder da siden, og højre
     skinne — Genveje, Ledelse, Stamdata, Revisor, Binavne,
     Arbejdssteder — falder ned under den som sit eget afsnit til sidst.
     Kaspers valg 18. sep 2026: det giver den største tekst, og på papir
     er der ingen, der scroller ved siden af noget. */
  :root .row { display: flex; flex-wrap: wrap; }
  :root [class*="col-md-6"] { flex: 0 0 50%;      max-width: 50%; }
  :root [class*="col-md-4"] { flex: 0 0 33.3333%; max-width: 33.3333%; }
  :root [class*="col-md-3"] { flex: 0 0 25%;      max-width: 25%; }
  :root [class*="col-md-8"] { flex: 0 0 66.6667%; max-width: 66.6667%; }


  /* ── 2b. DE VANDRET RULLENDE TABELLER ──────────────────────────────
     Årstabellerne er tolv år gange elleve linjer og ruller vandret i
     .table-responsive / .aars-rulle. På en skærm er det en rulning; på
     papir er det en SAKS. Første forsøg klippede årene fra 2025 og frem
     af Custimoos ejerandelstabel, og man kunne ikke se, at der manglede
     noget — det er den værste slags fejl i et dokument, nogen skal
     træffe beslutninger ud fra.

     To ting skal derfor ske. Rulningen slås fra, så hele tabellen
     tegnes, og den fryses kolonne slås fra med den: position: sticky
     uden en rullende forælder lægger den frosne kolonne OVEN PÅ
     nabokolonnen (målt: «2025»-hovedet blev til «20:18. sep 2026»).
     Og tabellen skal kunne være der — mono-skriften et trin ned og
     cellernes vandrette luft halveret rækker til tretten kolonner
     inden for de ~700 px, A4 har at gøre godt med. */
  :root .table-responsive,
  :root .aars-rulle { overflow: visible !important; }

  :root .aars-pivot .aars-fast,
  :root .aars-rulle thead th,
  :root .aars-rulle thead .aars-fast,
  :root .aars-rulle thead .aars-nu { position: static; }

  :root .aars-pivot,
  :root .aars-rulle table {
    font-size: var(--skrift-1);
    width: 100%;
    table-layout: auto;
  }
  :root .aars-pivot th, :root .aars-pivot td,
  :root .aars-rulle th, :root .aars-rulle td {
    padding-left: 3px;
    padding-right: 3px;
  }


  /* ── 3. SKÆRMBETJENINGEN UD ────────────────────────────────────────
     Knapper, der ikke kan trykkes på, er ikke bare overflødige på
     papir — de er vildledende. Topbaren og feedback-widgetten udelades
     allerede serverside af ?pdf=1 (base.html); de står her, fordi
     Ctrl+P ikke har den parameter. */
  :root nav.top,
  :root .sektionsnav,
  :root .feedback-flyder,
  :root #feedback-modal,
  :root .feedback-ikon,
  :root .feedback-intro,
  :root .toggle-visning,
  :root .graf-png,
  :root .aars-vend,
  :root .favorit-knap,
  :root form[action="/favorit/toggle"],
  :root a[href^="/vej?fra="],
  :root a[href^="javascript:history.back"],
  :root [id^="netgraf-"],
  :root #cy-chips, :root #cy-back, :root #cy-fwd, :root #cy-reset,
  :root #cy-fit, :root #cy-fuld, :root #cy-png,
  :root .graf-legend-valg,
  :root .pdf-hent {
    display: none !important;
  }

  /* Grafernes AFKRYDSNINGS-legender ryger ovenfor (.graf-legend-valg):
     et afkrydsningsfelt på papir er en knap, der ikke virker. De rene
     tekstlegender — ejerskab, kapital, karriereforløb — bliver stående,
     for de forklarer noget, man faktisk kan se i dokumentet. */

  /* Vandmærket «DEV». Reglen i ny.css:1553 har :root-specificitet på et
     pseudoelement, så den skal mødes med sin egen vægt. Det er kun DEV
     der har data-miljoe, men en udskrift taget derfra bliver delt lige
     så let som en fra BETA. */
  :root body[data-miljoe]::before { display: none !important; }

  /* Understregede ord, man ikke kan klikke på, er støj. Farven bliver dog
     stående på de links, der ER indhold (selskabsnavne i relationslisten),
     så de stadig kan skelnes fra brødtekst.
     ny.css understreger to steder med højere specificitet end en bar a —
     footer.fod a (:619) og .underkort-fod a (:823) — så de skal nævnes. */
  :root a,
  :root footer.fod a,
  :root .underkort-fod a { text-decoration: none; }

  /* Bootstrap lægger en skygge på fokuserede felter og en baggrund på
     .card-header; begge koster toner, uden at sige noget. */
  :root .card { box-shadow: none; }

  /* Sidens ramme skal ikke tegne en kasse rundt om hver eneste side. */
  :root body { background: #fff; }
  :root .side { max-width: none; padding-left: 0; padding-right: 0; }


  /* ── 4. FODEN ──────────────────────────────────────────────────────
     Kaspers krav: ingen henvisninger til fremmede websider, og til
     sidst vores egne fem. Kildelinjen (Erhvervsstyrelsen, virk.dk;
     Skattestyrelsen, sktst.dk) er pakket i .fod-kilder i base.html og
     ryger her. De fem bliver stående — og får deres fulde adresse
     skrevet ud efter sig, for et link uden adresse er ubrugeligt på
     papir. data-url sættes serverside af base.html ud fra APP_BASE_URL,
     så BETA skriver sin egen vært og ikke infobook.dk. */
  :root .fod-kilder { display: none; }

  /* INTET tvungent sideskift foran foden. Første forsøg havde det, og så
     fik Custimoo en side 17, hvor der stod fem links og ellers ingenting —
     altså præcis den tomme side, hele øvelsen skulle af med. Foden falder
     nu, hvor den falder, og bliver kun samlet. */
  :root footer.fod {
    break-inside: avoid;
    border-top: 1px solid var(--hair);
    /* Luften omkring foden skæres ned fra 40+20 px: blokken skal kunne være
       på den sidste indholdsside, når der er plads. Kan den ikke, får den
       sin egen — fem linjer, der er brækket over et sideskift, er værre. */
    margin-top: 18px;
    padding: 12px 0 0;
    text-align: left;
  }
  :root footer.fod a::after {
    content: "  " attr(data-url);
    color: var(--muted);
    font-family: var(--mono);
    font-size: var(--skrift-1);
  }
  /* Ét punkt pr. linje: fem adresser efter hinanden på én linje bliver
     til en ordsuppe, når adressen står bagefter hver enkelt. */
  :root footer.fod a { display: block; margin-top: 3px; }
  :root footer.fod .fod-adskil { display: none; }


  /* ── 5. FARVER ─────────────────────────────────────────────────────
     Uden dette printer Chromium baggrunde væk som standard, og så
     mister fordelingsbåndene, de negative tal og tag-mærkaterne præcis
     dét, der gør dem læsbare. printBackground i page.pdf() dækker
     PDF-ruten; denne linje dækker Ctrl+P. */
  :root, :root body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
