/* Felles A4-rapport for solkart.no (PV-kalkulator, snølast, snøtap).

   Samme design som terrengkategori-rapporten, som tegnes med WeasyPrint fra
   SunPointPrediction/src/terraincat/report/template.html: Fraunces i tittel
   og hovedtall, Inter i tekst, JetBrains Mono i tall og koordinater, dyp
   havblå aksent og brunoransje varselfarge. Endres designet der, endres det
   her.

   Disse rapportene tegnes av nettleseren. Derfor er alt scopet under .skr og
   setter hver egenskap sidenes egne tabell- og overskriftsregler også setter,
   og derfor print-color-adjust: exact — uten den dropper Chrome bakgrunnene
   (resultatstripen, pillene) med mindre leseren huker av for bakgrunnsgrafikk.

   Utskriften viser bare #sk-rapport, og bare når rapporten er bygget
   (html.skr-klar). Før første beregning skriver Ctrl+P ut sida som før. */

#sk-rapport { display: none; }
@media print {
  html.skr-klar, html.skr-klar body {
    background: #fff !important; margin: 0 !important; padding: 0 !important;
    min-height: 0 !important;
  }
  html.skr-klar body > *:not(#sk-rapport) { display: none !important; }
  html.skr-klar #sk-rapport { display: block; }
}

.skr {
  --ink:        #14181d;
  --ink-soft:   #454e59;
  --ink-faint:  #7b8794;
  --rule:       #d8dde3;
  --rule-soft:  #eceff2;
  --paper:      #ffffff;
  --accent:     #1f4e5f;
  --accent-mid: #8fb0bb;
  --accent-pale:#e8f0f2;
  --flag:       #a8500f;
  --flag-pale:  #fdf1e6;
  font-family: Inter, -apple-system, "Segoe UI", sans-serif;
  color: var(--ink); line-height: normal; font-size: 10px;
  -webkit-font-smoothing: antialiased;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.skr *, .skr *::before, .skr *::after { box-sizing: border-box; }

/* Arket. 287 mm og ikke 288 som i WeasyPrint-malen: Chrome runder
   innholdshøyden, og en millimeter for mye gir et tomt ark bak hvert ark. */
.skr .sheet {
  width: 210mm; height: 287mm; margin: 0 auto;
  background: var(--paper); padding: 4mm 14mm 10mm;
  position: relative; overflow: hidden;
  break-after: page; page-break-after: always;
}
.skr .sheet.flow { height: auto; overflow: visible; padding-bottom: 6mm; }
.skr .sheet:last-child { break-after: auto; page-break-after: auto; }

.skr .top { display: flex; justify-content: space-between; align-items: flex-start;
            border-bottom: 2px solid var(--ink); padding-bottom: 7px; }
.skr .top > div:first-child { flex: 1; }
.skr .doctype { font-family: Fraunces, Georgia, serif; font-size: 20px; font-weight: 600;
                letter-spacing: -.2px; line-height: 1.1; color: var(--ink); }
.skr .doctype span { font-size: 14px; font-weight: 500; color: var(--ink-soft); }
.skr .docsub { font-size: 10.5px; color: var(--ink-soft); margin-top: 3px; line-height: 1.35; }
.skr .brand { width: 62mm; text-align: right; font-size: 10px; color: var(--ink-soft);
              line-height: 1.45; }
.skr .brand b { display: block; font-size: 12px; color: var(--ink); letter-spacing: .2px; }
.skr .sheet.flow .top { border-bottom-width: 1px; }
.skr .sheet.flow .doctype { font-size: 15px; }

.skr .site { display: flex; border-bottom: 1px solid var(--rule); }
.skr .site > div { width: 20%; padding: 7px 10px 7px 0; }
.skr .site > div:first-child { width: 40%; }
.skr .site > div + div { padding-left: 10px; border-left: 1px solid var(--rule-soft); }
.skr .lbl { font-size: 8px; text-transform: uppercase; letter-spacing: .09em;
            color: var(--ink-faint); font-weight: 600; }
.skr .val { font-size: 11.5px; margin-top: 2px; font-weight: 500; line-height: 1.3; }
.skr .val small { font-size: 9.5px; font-weight: 400; color: var(--ink-soft); }
.skr .mono { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 10.5px; }
/* Id-er («y0565x635») i mono: Inter gjør x mellom sifre om til ×. */
.skr .id { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: .9em; }

/* Resultatstripen: hovedtallet i Fraunces der terrengrapporten har
   kategoribokstaven, nøkkeltallene i mono, og til høyre det leseren skal
   sammenligne med. */
.skr .result { display: flex; align-items: center; background: var(--accent-pale);
               border-left: 4px solid var(--accent); padding: 12px 14px; margin: 11px 0 0; }
.skr .hero { flex: none; margin-right: 18px; font-family: Fraunces, Georgia, serif;
             font-size: 38px; font-weight: 600; line-height: .9; color: var(--accent);
             letter-spacing: -.8px; white-space: nowrap; }
.skr .hero span { display: block; font-family: Inter, sans-serif; font-size: 8px;
                  text-transform: uppercase; font-weight: 700; color: var(--ink-soft);
                  margin-bottom: 4px; letter-spacing: .12em; }
.skr .hero small { font-family: Inter, sans-serif; font-size: 11px; font-weight: 500;
                   color: var(--ink-soft); letter-spacing: 0; margin-left: 3px; }
.skr .params { flex: 1; display: flex; }
.skr .params > div { flex: 1; padding-right: 8px; }
.skr .params .v { font-family: "JetBrains Mono", monospace; font-size: 13.5px; font-weight: 500;
                  margin-top: 2px; white-space: nowrap; }
.skr .params .v small { font-family: Inter, sans-serif; font-size: 8.5px; color: var(--ink-soft);
                        font-weight: 400; margin-left: 2px; }
.skr .conf { width: 36mm; flex: none; text-align: right; font-size: 9.5px; color: var(--ink-soft);
             line-height: 1.35; }
.skr .conf .n { font-size: 18px; font-weight: 700; color: var(--ink); display: block;
                font-family: "JetBrains Mono", monospace; margin-bottom: 1px; }

.skr .mid { display: flex; margin-top: 12px; }
.skr .mid > .l { width: 46%; padding-right: 13px; }
.skr .mid > .r { width: 54%; }
.skr .duo { display: flex; margin-top: 12px; }
.skr .duo > div { width: 50%; }
.skr .duo > div:first-child { padding-right: 9px; }
.skr .duo > div + div { padding-left: 9px; }
.skr h2 { font-family: Inter, sans-serif; font-size: 9px; text-transform: uppercase;
          letter-spacing: .1em; font-weight: 700; color: var(--ink-faint); margin: 0 0 6px;
          padding-bottom: 3px; border-bottom: 1px solid var(--rule); line-height: 1.3; }
.skr h2.gap { margin-top: 11px; }

.skr .fig svg { display: block; width: 100%; height: auto; }
.skr .mapnote { font-size: 7.5px; color: var(--ink-faint); text-align: center;
                margin-top: 4px; line-height: 1.4; }
.skr .legend { text-align: center; margin-top: 5px; font-size: 8.5px; color: var(--ink-soft);
               line-height: 1.7; }
.skr .legend span { margin: 0 4px; white-space: nowrap; }
.skr .legend i { width: 8px; height: 8px; display: inline-block; margin-right: 3px;
                 border-radius: 1.5px; vertical-align: -1px; }
.skr .legend i.line { height: 0; border-top: 1.5px solid var(--accent); border-radius: 0;
                      width: 12px; vertical-align: 2px; }

.skr table { width: 100%; border-collapse: collapse; font-size: 9px; margin: 0; }
.skr th { text-align: left; font-size: 7.5px; text-transform: uppercase; letter-spacing: .06em;
          color: var(--ink-faint); font-weight: 700; padding: 0 4px 4px 0;
          border-bottom: 1px solid var(--rule); background: none; vertical-align: bottom;
          line-height: 1.25; }
.skr td { text-align: left; padding: 3.2px 4px 3.2px 0; border-bottom: 1px solid var(--rule-soft);
          vertical-align: top; color: var(--ink); font-size: 9px; line-height: 1.3; }
.skr td.n, .skr th.n { text-align: right; font-family: "JetBrains Mono", monospace; }
.skr th.n { font-family: Inter, sans-serif; }
.skr tr.sum td { font-weight: 600; border-top: 1px solid var(--rule); border-bottom: none; }
.skr tr.hl td { background: var(--accent-pale); font-weight: 600; }
.skr tr.fl td { background: var(--flag-pale); }
.skr td .muted, .skr .muted { color: var(--ink-faint); font-weight: 400; }

/* Nøkkel-verdi-tabellen for inndata og grunnlag. */
.skr table.kv td { padding: 2.6px 0; }
.skr table.kv td:first-child { color: var(--ink-soft); width: 46%; padding-right: 8px; }
.skr table.kv td:last-child { font-weight: 500; }
.skr table.kv tr.sub td:first-child { padding-left: 10px; }

.skr .findings { margin-top: 12px; }
.skr .finding { display: flex; font-size: 9.2px; line-height: 1.38; padding: 3.5px 0;
                border-bottom: 1px solid var(--rule-soft); color: var(--ink-soft); }
.skr .finding .m { width: 15px; flex: none; margin-right: 7px;
                   font-family: "JetBrains Mono", monospace; font-size: 8px;
                   color: var(--ink-faint); padding-top: 1px; }
.skr .finding .t { flex: 1; }
.skr .finding b { color: var(--ink); font-weight: 600; }
.skr .flag { background: var(--flag-pale); border-left: 3px solid var(--flag);
             padding: 6px 10px; margin-top: 10px; font-size: 9px; line-height: 1.4;
             color: var(--ink); }
.skr .flag b { color: var(--flag); }
.skr .flag ul { margin: 4px 0 0; padding-left: 14px; }
.skr .flag li { margin: 2px 0; }

.skr .foot { position: absolute; left: 14mm; right: 14mm; bottom: 10mm;
             padding-top: 10px; border-top: 1px solid var(--rule); background: var(--paper); }
.skr .sheet.flow .foot { position: static; margin-top: 8px; padding-top: 6px; }
.skr .sources { font-size: 7.8px; color: var(--ink-faint); line-height: 1.5; }
.skr .sources b { color: var(--ink-soft); }
.skr .disclaimer { font-size: 8px; color: var(--ink-soft); line-height: 1.5;
                   margin-top: 6px; padding: 7px 9px; background: #f7f8f9;
                   border: 1px solid var(--rule-soft); }
.skr .disclaimer b { color: var(--ink); }
/* Sluttsiden: alle kilder, referanser og forbehold samlet bakerst. */
.skr .sluttside h2 { font-family: Fraunces, Georgia, serif; font-size: 13px; font-weight: 600; margin: 14px 0 6px; }
.skr .sluttside .refs { margin: 0; padding-left: 16px; font-size: 8.8px; line-height: 1.55; color: var(--ink-soft); }
.skr .sluttside .refs li { margin: 0 0 3px; }
.skr .sluttside .disclaimer p { margin: 0 0 5px; font-size: 8.8px; }
.skr .sign { display: flex; margin-top: 10px; font-size: 8px; color: var(--ink-faint); }
.skr .sign div { flex: 1; border-top: 1px solid var(--ink); padding-top: 3px; margin-right: 18px; }
.skr .sign div:last-child { margin-right: 0; }

.skr .tabnote { font-size: 7.4px; color: var(--ink-faint); margin-top: 4px; line-height: 1.45; }
.skr .prose { font-size: 8.8px; color: var(--ink-soft); line-height: 1.5; }
.skr .prose p { margin: 0 0 5px; }
.skr .prose b { color: var(--ink); font-weight: 600; }
.skr .prose ol, .skr .prose ul { margin: 0 0 5px; padding-left: 15px; }
.skr .prose li { margin: 0 0 3px; }
.skr .cols2 { display: flex; }
.skr .cols2 > div { width: 50%; }
.skr .cols2 > div:first-child { padding-right: 10px; }
.skr .cols2 > div + div { padding-left: 10px; }
