/* Firmaradar — Globalt print-stilark.
   Lastes på alle portal-sider med media="print" så reglene kun aktiveres
   ved utskrift / «Lagre som PDF» fra nettleseren. Gir A4-format, skjuler
   navigasjon og knapper, tvinger svart-på-hvitt-friendly fargesett, og
   legger på sidebrudd-anvisninger for kort, lister og tabeller.

   print_til_pdf-extensionen supplerer dette med en floating «Skriv ut»-
   knapp (print.js) — selve print-CSS-en er ikke lenger gated på
   extension-status, så vanlige browser-utskrifter (Ctrl+P) får også
   pent layout uten at brukeren trenger ekstra abonnement.

   AML-rapporten genereres serverside via reportlab og treffes ikke av
   denne CSS-en — den dekker kun nettleser-utskrift av HTML-templates.
*/

@page {
    size: A4;
    margin: 18mm 14mm 22mm 14mm;
    @top-left {
        content: "Firmaradar";
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
        font-size: 9pt;
        font-weight: 700;
        color: #1e3a8a;
    }
    @top-right {
        content: string(page-title);
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
        font-size: 9pt;
        color: #64748b;
    }
    @bottom-left {
        /* Norsk standard/fallback. Den lokaliserte «Printed N of M» overstyres
           server-side fra base.html (en media="print"-blokk lastet ETTER dette
           stilarket, så den vinner cascaden per-property). Statisk CSS kan ikke
           kalle t(), og var() inne i @page-marginbokser er ikke pålitelig i
           Chromium (selve marginboks-content er dessuten først Chrome 131+), så
           vi server-renderer den oversatte strengen i stedet. Se base.html. */
        content: "Skrevet ut " counter(page) " av " counter(pages);
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
        font-size: 8pt;
        color: #94a3b8;
    }
    @bottom-right {
        content: "firmaradar.no";
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
        font-size: 8pt;
        color: #94a3b8;
    }
}

/* Per-side-overrides: brede tabell-tunge sider får landscape som default-
   hint. Kart og brede tre-strukturer gir ikke mening i portrait. Brukeren
   kan overstyre i print-dialogen om ønskelig. */
@page landscape-hint {
    size: A4 landscape;
    margin: 14mm 12mm 18mm 12mm;
}

/* Hovedtittelen på siden settes som streng for header-recall.
   .hero h1 / main h1 fanger de fleste portal-sider. */
@media print {
    .hero h1, main h1, h1.page-title {
        string-set: page-title content();
    }

    /* ── Skjul portal-chrome ───────────────────────────────────────── */
    .header,
    header.header,
    .nav,
    .userbox,
    .footer,
    .footer-meta,
    .footer-disclaimer,
    .flash-list,
    .toolbar,
    .toolbar-group,
    .toolbar-group-handle,
    .toolbar-group-items,
    .button,
    .btn,
    .btn-row,
    .nav-trigger,
    .nav-dropdown,
    .nav-group,
    .nav-submenu,
    .nav-subgroup,
    .admin-toolbar-dropdown,
    .admin-toolbar-arrow,
    #admin-toolbar,
    #print-pdf-fab,
    /* Kunde-support-snakkeboble (firma-admin) — FAB + badge + overlay + panel */
    #mmb-fab,
    #mmb-fab-badge,
    #mmb-overlay,
    #mmb-panel,
    [data-print-hide],
    .toast-container,
    .firmaradar-print-toast,
    .ext-toolbar,
    .mp-toolbar,
    .mpd-gallery-nav,
    .card-toggle-btn,
    .card-toggle-icon,
    .card-toggle-label,
    .pagination,
    .skip-link,
    /* Modaler og overlays — aldri relevant på papir */
    #_modal,
    [role="dialog"][aria-modal="true"],
    .share-banner,
    .share-banner-cta,
    /* Autocomplete-popup */
    .ac-meta,
    .ac-name,
    /* Knappe-formede lenker i hero/footer */
    .hero .button,
    .card .btn-row,
    .card-header-row .button {
        display: none !important;
        visibility: hidden !important;
    }

    /* Form-kontroller har sjelden mening på papir.
       Brukerens utfylte verdier vises som tekst der layout har sørget
       for det (search-resultater f.eks. viser query separat). */
    form input[type="search"],
    form input[type="submit"],
    form input[type="button"],
    form button,
    form .checkbox-inline {
        display: none !important;
    }
    form input[type="text"],
    form input[type="email"],
    form input[type="number"],
    form select,
    form textarea {
        border: none !important;
        background: transparent !important;
        padding: 0 !important;
        color: #0f172a !important;
        appearance: none !important;
        -webkit-appearance: none !important;
    }

    /* ── Bakgrunnsfarge må forces (default stripping i browsere) ───── */
    body, html {
        background: #fff !important;
        color: #0f172a !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .shell, .main, main {
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* ── Kort og seksjoner ─────────────────────────────────────────── */
    .card,
    .card.span-12, .card.span-8, .card.span-7,
    .card.span-6, .card.span-5, .card.span-4, .card.span-3 {
        break-inside: avoid;
        page-break-inside: avoid;
        box-shadow: none !important;
        border: 1px solid #cbd5e1 !important;
        background: #fff !important;
        margin-bottom: 12pt !important;
        padding: 14pt 16pt !important;
        width: 100% !important;
        max-width: none !important;
        grid-column: 1 / -1 !important;
    }

    /* Cards-grid blir én kolonne på utskrift — bedre lesbart */
    .cards {
        display: block !important;
        grid-template-columns: none !important;
        gap: 0 !important;
    }

    /* ── Hero ──────────────────────────────────────────────────────── */
    .hero {
        text-align: left !important;
        max-width: none !important;
        margin: 0 0 18pt 0 !important;
        padding: 0 !important;
        border-bottom: 2pt solid #1e40af !important;
        padding-bottom: 12pt !important;
    }
    .hero h1 {
        font-size: 22pt !important;
        margin: 0 0 6pt 0 !important;
        color: #0f172a !important;
    }
    .hero p {
        font-size: 11pt !important;
        color: #475569 !important;
        max-width: none !important;
        margin: 0 !important;
    }
    .eyebrow {
        font-size: 8pt !important;
        margin-bottom: 4pt !important;
    }

    /* ── Tabeller ──────────────────────────────────────────────────── */
    table {
        width: 100% !important;
        border-collapse: collapse !important;
        page-break-inside: auto;
        font-size: 9.5pt !important;
    }
    thead {
        display: table-header-group;  /* repeat header on each page */
    }
    tfoot {
        display: table-footer-group;
    }
    tr {
        page-break-inside: avoid;
        break-inside: avoid;
    }
    th {
        background: #f1f5f9 !important;
        color: #475569 !important;
        font-size: 8pt !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.04em !important;
        padding: 6pt 8pt !important;
        border-bottom: 1pt solid #cbd5e1 !important;
        text-align: left !important;
    }
    td {
        padding: 5pt 8pt !important;
        border-bottom: 1pt solid #e2e8f0 !important;
        color: #0f172a !important;
    }

    /* ── Status-piller — tving fargene gjennom ─────────────────────── */
    .pill, .status-pill, .pill-mini, .pill-disabled,
    .health-ok, .health-fail, .health-warn,
    .button.danger-outline, .button.secondary {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    /* ── Lenker i utskrift ─────────────────────────────────────────────
       Lenketeksten beholdes, men vi skriver IKKE lenger ut sjølve URL-en som
       fotnote etter teksten. I praksis er alle lenkene i en utskrevet
       søkeresultat-/kort-PDF rein UI-navigasjon (klassifiserings-chips med
       lovdata-referanse, person-søk, tre-noder, IP-saker) — URL-fotnoten ble
       bare støy som brøt kolonnebredder. Trenger en side seinare URL-fotnoter,
       kan det gjøres opt-in via en egen klasse. */

    /* Rene ikon-lenker uten lenketekst gir ingen mening på papir → skjul. */
    .u-ip-ext-link { display: none !important; }

    /* ── Topp-chrome skjules i utskrift ────────────────────────────────
       En utskrift skal starte på selve selskapet (navn + orgnr). Skjul
       søke-hero (overskrift + søkefelt), den redigerbare topp-banneren
       (pilot-varsel) og del-banneret. Provenance-stempelet
       (.firmaradar-print-stamp: «Skrevet ut … fra <URL>») beholdes. */
    .hero,
    .content-slot[data-slot="search.banner_top"],
    .share-banner,
    /* Drifts-/status-bannere (nattlig oppdatering, oppvarming, driftsmelding) */
    #driftsmelding-banner,
    #nightly-banner,
    #warmup-banner,
    #firmaradar-cookie-banner,
    /* Tre-kortets header-tekst: seksjonstittel + beskrivelse + «velg en annen
       visning»-instruksjon — ren UI-kontekst, ikke rapportdata. Kun .two-col-
       headeren rammes; node-radenes orgnr-.muted-note ligger utenfor. */
    #group-tree-card .two-col h3,
    #group-tree-card .two-col p,
    #group-tree-card .two-col .muted-note { display: none !important; }

    /* ── Kompakte nøkkeltall ───────────────────────────────────────────
       Tre store kort med ett tall hver er sløsing på papir. Vis dem som
       «Foreldrenivåer: 0» / «Søsken: 0» / «Datterselskaper: 0» på hver sin
       linje i stedet. */
    .search-metrics { display: block !important; gap: 0 !important; margin: 4pt 0 8pt !important; }
    .search-metrics > .card {
        display: block !important;
        border: none !important;
        box-shadow: none !important;
        background: transparent !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .search-metrics .metric,
    .search-metrics .metric > div { display: inline !important; }
    .search-metrics .metric p {
        display: inline !important;
        margin: 0 !important;
        font-size: 10pt !important;
        color: inherit !important;
    }
    .search-metrics .metric p::after { content: ": "; }
    .search-metrics .metric strong { display: inline !important; font-size: 10pt !important; }

    /* ── Generell typografi ────────────────────────────────────────── */
    body {
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif !important;
        font-size: 10pt !important;
        line-height: 1.55 !important;
    }
    h2 { font-size: 14pt !important; margin: 14pt 0 6pt !important; }
    h3 { font-size: 12pt !important; margin: 10pt 0 4pt !important; }
    h4 { font-size: 10.5pt !important; margin: 8pt 0 3pt !important; }
    p, ul, ol { margin: 0 0 6pt !important; }
    code, pre { font-family: "SF Mono", Menlo, Consolas, monospace !important; }
    pre {
        background: #f8fafc !important;
        border: 1pt solid #e2e8f0 !important;
        padding: 8pt !important;
        font-size: 9pt !important;
        white-space: pre-wrap !important;
        word-break: break-word !important;
        page-break-inside: avoid;
    }

    /* ── Trees (aksjonær-tre, konsern-støtte) — pene linjer ─────────── */
    /* NB: KUN enkelt-rader/-noder skal holdes samlet. Container-elementer som
       omslutter en hel undergren (.company-tree-branch = <details> med alle
       etterkommere, .es-children, .ks-children) må IKKE ha break-inside:avoid —
       da prøver nettleseren å holde hele undertreet på én side og dytter det til
       neste side med en nesten tom side foran (observert på konserntreet). */
    .company-tree-surface,
    .tree-row,
    .tree-node-surface,
    .es-node,
    .es-company,
    .ks-node {
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* Konsern-tre-kortet kan være høyere enn en side — la kortet OG grenene
       flyte over sidebrudd i stedet for .card sin break-inside:avoid. */
    #group-tree-card,
    #group-tree-collapsible,
    .company-tree-branch,
    .es-children,
    .ks-children {
        break-inside: auto !important;
        page-break-inside: auto !important;
    }

    /* Tre-strukturer kan bli brede — la dem flyte ned, og krymp
       eventuelle gallery-paddinger for bedre dybde-utnyttelse. */
    .es-root, .ks-grants {
        max-width: none !important;
    }

    /* ── Notice / callout-bokser — beholdes synlig i print som info ── */
    .notice, .notice.warn {
        background: #f8fafc !important;
        border: 1pt solid #cbd5e1 !important;
        padding: 8pt 10pt !important;
        margin: 8pt 0 !important;
        page-break-inside: avoid;
    }


    /* ── Forsidemeta-stempel skjules ───────────────────────────────────
       Utskrift skal starte rent på selskapsnavnet. Dato + URL finnes uansett
       i @page-bunnteksten («Skrevet ut N av M» + «firmaradar.no»), så det
       «Skrevet ut … fra <full-URL>»-stempelet var bare topp-støy. */
    .firmaradar-print-stamp {
        display: none !important;
    }

    /* ──────────────────────────────────────────────────────────────────
       Per-side-overrides
       ──────────────────────────────────────────────────────────────────
       Bruk body-class fra Jinja-template (`{% block body_class %}`) eller
       request-endpoint-baserte data-attributter når de er på plass.
       Per nå plukker vi sidene opp via toppnivå-template-spesifikke
       containere når de eksisterer (article-id, hero-class, osv.). */

    /* Konsernstruktur / aksjonær-tre — brede tre-strukturer.
       Krymp font litt for at lange selskapsnavn skal få plass på linja. */
    .es-name, .es-orgnr, .es-pct,
    .ks-node-name, .ks-node-orgnr {
        font-size: 9pt !important;
    }
    .es-meta, .ks-node-stats {
        font-size: 8pt !important;
        color: #475569 !important;
    }

    /* ══════════════════════════════════════════════════════════════════
       Gjenbrukbar print-rapport-konvensjon (godkjennings-/tabell-sider):
       Firmaradar-logo-header + seksjonstittel som spenner alle kolonner,
       dataradene under. Brukes av konsernstøtte (+ kandidater for utrulling:
       eierstruktur, AML, bulk-oppslag). Skjerm-skjuling i utilities.css.
       ══════════════════════════════════════════════════════════════════ */
    .print-report-header {
        display: flex !important;
        align-items: center;
        gap: 14pt;
        border-bottom: 1.5pt solid #1e40af !important;
        padding-bottom: 9pt !important;
        margin-bottom: 16pt !important;
    }
    .print-report-logo { height: 30pt !important; width: auto !important; }
    .print-report-title { font-size: 16pt; font-weight: 700; color: #0f172a; letter-spacing: -0.01em; }
    .print-report-sub { font-size: 9.5pt; color: #64748b; margin-top: 3pt; }

    /* Seksjonstittel-rad som spenner alle kolonner (lys, blekk-vennlig, med
       brand venstre-kant) over dataradene. */
    .print-section-row { display: table-row !important; }
    .print-section-cell {
        background: #eef2ff !important;
        color: #1e3a8a !important;
        border-left: 3pt solid #1e40af !important;
        border-bottom: 0.75pt solid #c7d2fe !important;
        font-size: 10.5pt !important;
        font-weight: 700 !important;
        text-transform: none !important;
        letter-spacing: 0 !important;
        text-align: left !important;
        padding: 6pt 9pt !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    .print-section-meta { font-weight: 400; font-size: 8.5pt; color: #4f46e5; margin-left: 8pt; }
    .print-section-total { float: right; font-weight: 600; font-size: 9.5pt; color: #1e3a8a; }

    /* ── Konsernstøtte-spesifikt ───────────────────────────────────────── */
    /* Skjul interaktiv chrome (firmanavnet ligger nå i seksjons-raden, eller i
       .ks-print-empty-head for noder uten tabell).
       Behold summary-kortet (forside-oppsummering) + grant-tabellene. */
    .ks-search-form,
    .ks-node-head,
    .ks-empty-note { display: none !important; }

    /* Tre-kortet er en `.card` (break-inside:avoid over) — det dyttet hele
       treet til neste side og ga tom forside-bunn. La kortet OG nodene flyte
       fritt over sidebrudd (grant-tabellene holder sine egne rader samlet, og
       firmanavn-raden gjentas via thead). */
    .ks-tree-card,
    .ks-tree,
    .ks-children,
    .ks-node,
    .ks-node > details {
        break-inside: auto !important;
        page-break-inside: auto !important;
    }
    /* Flat ut nodenes skjerm-rammer (avrundet border + panel-bakgrunn +
       padding) — en tom/minimert node skal ikke vises som en avrundet pille,
       og innrykks-streken til venstre er ren skjerm-pynt. */
    .ks-node > details {
        border: none !important;
        border-radius: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }
    /* En kollapset <details> (noder uten grants/dybde≥1 er ikke `open`) skjuler
       alt unntatt summary — og summary er skjult i print. Det fikk tomme grener
       OG hele undertrær under kollapsede foreldre til å forsvinne. Tving
       innholdet synlig i print uavhengig av open-attributtet. */
    .ks-node > details::details-content {
        content-visibility: visible !important;
        display: block !important;
    }
    .ks-node > details > .ks-print-empty-head { display: block !important; }
    .ks-node > details > .ks-children { display: block !important; }
    .ks-node > details > table.ks-grants { display: table !important; }

    /* Firmanavn-header for noder uten tildelings-tabell (holding-spisser, tomme
       grener). Speiler .print-section-cell så tomme noder får samme blekk-
       vennlige seksjonsrad som grant-nodene i stedet for en blank ramme. */
    .ks-print-empty-head {
        display: block !important;
        background: #eef2ff !important;
        color: #1e3a8a !important;
        border-left: 3pt solid #1e40af !important;
        border-bottom: 0.75pt solid #c7d2fe !important;
        font-size: 10.5pt !important;
        font-weight: 700 !important;
        padding: 6pt 9pt !important;
        margin: 0 0 6pt !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }
    /* Fjern <details>-pil-markører på papir */
    .ks-node summary::-webkit-details-marker,
    .ks-node summary::marker { display: none !important; }
    /* Behold konsern-innrykket så datterselskaper leses som underordnet mor-
       selskapet (tre-strukturen). Hvert nivå rykkes inn med en lett venstre
       guide-linje; nestede .ks-children komponerer innrykket pr. dybde. */
    .ks-children {
        margin-left: 5pt !important;
        padding-left: 13pt !important;
        border-left: 1.5pt solid #c7d2fe !important;
        list-style: none !important;
    }
    .ks-node { list-style: none !important; margin: 0 0 11pt 0 !important; }
    .ks-grants { margin-top: 0 !important; }
    /* Lett zebra på grant-rader for lesbarhet */
    .ks-grants tbody tr:nth-child(even) td {
        background: #f8fafc !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    /* Beskrivelse-kolonnen får puste, beløp høyrejusteres tett */
    .ks-grants .ks-beskrivelse { width: 38% !important; }
    .ks-grants .ks-belop { text-align: right !important; white-space: nowrap !important; }
    /* Avslag/under-behandling-rader dempes (men synlige) */
    .ks-grant-row-avslag td, .ks-grant-row-pending td { color: #64748b !important; }

    /* Søkeresultater og kunngjørings-lister — lange flate lister.
       Sett page-break-after på hver hovedlistepost slik at en kunng-
       gjørings-blokk ikke blir splittet. */
    .ay-pill, .ay-missing-pill {
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* Selskapsdetaljer — kompakt header, mer plass til data */
    .es-stats, .es-info, .es-person {
        page-break-inside: avoid;
    }

    /* Bulk lookup-resultater — typisk veldig mange rader, la tabellen
       flyte over flere sider men hold thead repeating (allerede satt). */
    .bulk-result-table {
        font-size: 9pt !important;
    }

    /* Monitoring-overview — ofte mange overvåknings-kort i grid.
       Kortene ligger allerede under .cards/.card og dekkes av reglene
       over; ekstra avoid på event-rad/log-listen. */
    .monitoring-row, .monitoring-event,
    [data-monitor-row] {
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* Marketplace-detaljer / extension-detaljer — skjul gallery-nav
       (allerede skjult), men sørg for at hovedbildet ikke tar hele
       siden. Marketplace-screenshots er pyntelement, ikke kjernedata. */
    .mpd-gallery-main img,
    .marketplace-screenshot img,
    .marketplace-detail img {
        max-width: 100% !important;
        max-height: 80mm !important;
        page-break-inside: avoid;
    }
}

/* Print-stamp er skjult på skjerm — vises bare i print-mode */
.firmaradar-print-stamp {
    display: none;
}
/* NB: .ks-print-header/.ks-print-company-row skjules på SKJERM i selve
   konsern_stotte-templatens <style>-blokk — IKKE her, fordi print.css lastes
   med media="print" og dermed aldri gjelder på skjerm. */
