/* ==========================================================================
   Eligo — felles designsystem

   Alt som går igjen på tvers av sidene bor her, slik at bredde, typografi
   og rytme er identisk uansett hvilken meny man står i. Sidene skal kun
   inneholde stil som er unik for den ene siden.

   Rekkefølge:
     1. Tokens
     2. Grunnmur
     3. Topp (merke, meny, klokke)
     4. Tabeller
     5. Kort og rutenett
     6. Merkelapper
     7. Skjema og knapper
     8. Tekstbiter som går igjen
     9. Bunn
    10. Responsivt
   ========================================================================== */


/* 1. Tokens ---------------------------------------------------------------- */

:root {
  /* Farger */
  --bg: #14161C;
  --bg-raised: #1B1E27;
  --hairline: #2A2E3A;
  --ink: #EDEAE3;
  --ink-dim: #9498A6;
  --gold: #B8935F;
  --gold-dim: #6E5B41;
  --gold-lys: #C9A672;
  --up: #4A9D6E;
  --down: #C24C4C;
  --varsel: #C8973A;
  --krise: #E03030;

  /* Skrift */
  --f-tittel: 'Fraunces', Georgia, serif;
  --f-tall: 'IBM Plex Mono', ui-monospace, monospace;
  --f-tekst: 'Inter', system-ui, sans-serif;

  /* Skriftskala — én verdi per rolle, ikke fem varianter av det samme */
  --t-merke: 2rem;      /* Eligo·Sidenavn        */
  --t-h2: 1.15rem;      /* seksjonsoverskrift    */
  --t-stor: 1.5rem;     /* nøkkeltall i kort     */
  --t-tall: 0.95rem;    /* framhevet tall i tabell */
  --t-body: 0.88rem;    /* brødtekst, tabellrad  */
  --t-meta: 0.75rem;    /* underordnet tekst     */
  --t-mikro: 0.7rem;    /* etiketter, kolonnehoder */
  --t-badge: 0.66rem;   /* merkelapper           */

  /* Mål og rytme */
  --bredde: 960px;
  --rom-seksjon: 40px;
  --rom-blokk: 24px;
  --celle-y: 14px;
  --celle-x: 12px;
  --radius: 8px;
  --radius-liten: 6px;
  --radius-pille: 20px;
  --kort-pad: 22px 24px;
  --rute-pad: 20px 22px;
}


/* 2. Grunnmur -------------------------------------------------------------- */

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--f-tekst);
  font-size: var(--t-body);
  line-height: 1.5;
  min-height: 100vh;
  padding: 56px 24px;
  -webkit-font-smoothing: antialiased;
}

.page {
  max-width: var(--bredde);
  margin: 0 auto;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--gold-dim);
  outline-offset: 2px;
}

h2 {
  font-family: var(--f-tittel);
  font-weight: 500;
  font-size: var(--t-h2);
  margin: var(--rom-seksjon) 0 14px;
}

h2:first-of-type { margin-top: 0; }


/* 3. Topp ------------------------------------------------------------------ */

header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 24px;
  margin-bottom: 0;
}

.brand {
  font-family: var(--f-tittel);
  font-weight: 600;
  font-size: var(--t-merke);
  letter-spacing: -0.01em;
  color: var(--ink);
  white-space: nowrap;
}

.brand span { color: var(--gold); }

.hode-hoyre {
  display: flex;
  align-items: baseline;
  gap: 20px;
}

nav { font-size: 0.8rem; }

nav a {
  color: var(--ink-dim);
  text-decoration: none;
  margin-left: 20px;
}

nav a:first-child { margin-left: 0; }
nav a:hover { color: var(--ink); }
nav a.active { color: var(--gold); }
nav a.logg-ut { opacity: 0.6; }

/* Nedtrekksmeny (Aksjeanalyse). Bygget på <details>, så den virker med
   klikk, trykk og tastatur uten skript — skriptet i _hode.html lukker
   den bare ved klikk utenfor eller Escape. */
nav details.nedtrekk {
  display: inline-block;
  position: relative;
  margin-left: 20px;
}

nav details.nedtrekk summary {
  list-style: none;
  cursor: pointer;
  color: var(--ink-dim);
  white-space: nowrap;
}

nav details.nedtrekk summary::-webkit-details-marker { display: none; }

nav details.nedtrekk summary::after {
  content: '▾';
  font-size: 0.7em;
  margin-left: 5px;
  display: inline-block;
  transition: transform 0.15s;
}

nav details.nedtrekk[open] summary::after { transform: rotate(180deg); }
nav details.nedtrekk summary:hover { color: var(--ink); }
nav details.nedtrekk.active summary { color: var(--gold); }

nav details.nedtrekk summary:focus-visible {
  outline: 2px solid var(--gold-dim);
  outline-offset: 2px;
}

nav .nedtrekk-meny {
  position: absolute;
  top: calc(100% + 10px);
  left: -14px;
  z-index: 50;
  min-width: 230px;
  background: var(--bg-raised);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  padding: 6px 0;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}

nav .nedtrekk-meny a {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  margin: 0;
  padding: 8px 14px;
  color: var(--ink);
}

nav .nedtrekk-meny a:hover { background: rgba(255, 255, 255, 0.04); }
nav .nedtrekk-meny a.valgt { color: var(--gold); }

/* Selskap hvis analyseprofil ikke er bygget ennå (banker) */
nav .nedtrekk-meny .ikke-klar {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 8px 14px;
  color: var(--ink-dim);
  cursor: default;
}

/* Gruppene «Eid» og «Følger» (oppfolging.py) */
nav .nedtrekk-meny .nedtrekk-gruppe {
  padding: 8px 14px 4px;
  font-size: var(--t-badge);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--gold-dim);
}
nav .nedtrekk-meny .nedtrekk-gruppe ~ .nedtrekk-gruppe {
  border-top: 1px solid var(--hairline);
  margin-top: 4px;
  padding-top: 10px;
}
nav .nedtrekk-meny a.fulgt > span:first-child { color: var(--ink-dim); }
nav .nedtrekk-meny a.fulgt.valgt > span:first-child { color: var(--gold); }

/* Plassen i menyen, øverst på analysesiden */
.oppfolging { display: inline-flex; align-items: center; gap: 8px; }
.oppfolging .merke-eid, .oppfolging .merke-fulgt {
  font-size: var(--t-mikro); text-transform: uppercase; letter-spacing: 0.07em;
  border: 1px solid var(--hairline); border-radius: var(--radius-pille); padding: 1px 8px;
}
.oppfolging .merke-eid { color: var(--up); border-color: rgba(74, 157, 110, 0.5); }
.oppfolging .merke-fulgt { color: var(--ink-dim); }

.nedtrekk-ticker {
  font-family: var(--f-tall);
  font-size: var(--t-mikro);
  color: var(--ink-dim);
}

.clock {
  font-family: var(--f-tall);
  font-size: 0.8rem;
  color: var(--ink-dim);
  white-space: nowrap;
}

.clock::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--up);
  margin-right: 8px;
  vertical-align: middle;
}

.rule {
  height: 1px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-dim) 35%, transparent 70%);
  margin: 18px 0 0;
}

.subtitle {
  font-size: 0.85rem;
  color: var(--ink-dim);
  max-width: 76ch;
  margin: 12px 0 var(--rom-seksjon);
}

.subtitle a { color: var(--gold); text-decoration: none; }
.subtitle a:hover { text-decoration: underline; }


/* 4. Tabeller -------------------------------------------------------------- */

/* Tabeller ligger i en hylle som kan skyves sidelengs på smal skjerm.
   Da er det tabellen som panorerer, ikke hele siden — menyen og
   overskriften blir stående der de skal. */
.tabellhylle { width: 100%; }

table {
  width: 100%;
  border-collapse: collapse;
}

thead th {
  text-align: left;
  font-size: var(--t-mikro);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-dim);
  padding: 0 var(--celle-x) 12px;
  border-bottom: 1px solid var(--hairline);
  white-space: nowrap;
}

tbody td {
  padding: var(--celle-y) var(--celle-x);
  border-bottom: 1px solid var(--hairline);
  font-size: var(--t-body);
  vertical-align: middle;
}

/* Ytterkantene flukter med sidens venstre- og høyremarg. Alle kolonner
   imellom har luft på begge sider, slik at et høyrestilt tall aldri
   klistrer seg inntil teksten i neste kolonne. */
thead th:first-child,
tbody td:first-child { padding-left: 0; }

thead th:last-child,
tbody td:last-child { padding-right: 0; }

tbody tr:last-child td { border-bottom: none; }

thead th.num,
tbody td.num { text-align: right; }

/* Talltung tabell: alt høyrestilt bortsett fra navnekolonnen.
   Brukes på analysesiden, der hver kolonne er et nøkkeltall. */
.tabell-tall thead th,
.tabell-tall tbody td { text-align: right; }

.tabell-tall tbody td {
  font-family: var(--f-tall);
  font-variant-numeric: tabular-nums;
}

.tabell-tall thead th:first-child,
.tabell-tall tbody td:first-child { text-align: left; }

.tabell-tall tbody td:first-child { font-family: var(--f-tekst); }

/* Felles celleinnhold */
.navn { font-weight: 500; }

.ticker {
  font-family: var(--f-tall);
  font-size: var(--t-meta);
  color: var(--ink-dim);
  margin-top: 2px;
}

.mono {
  font-family: var(--f-tall);
  font-variant-numeric: tabular-nums;
}

.tall {
  font-family: var(--f-tall);
  font-size: var(--t-tall);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.dim { color: var(--ink-dim); }
.opp { color: var(--up); }
.ned { color: var(--down); }

.navarn {
  color: var(--ink-dim);
  font-style: italic;
  font-size: 0.85rem;
}


/* 5. Kort og rutenett ------------------------------------------------------ */

.kort {
  background: var(--bg-raised);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  padding: var(--kort-pad);
  margin-bottom: var(--rom-seksjon);
}

.kort h2 { margin: 0 0 20px; }

/* Rutenett av nøkkeltall — sammendraget på porteføljesiden og
   konsentrasjonsblokken på analysesiden deler mål. */
.rutenett {
  display: grid;
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: var(--rom-seksjon);
}

.celle,
.kons-blokk {
  background: var(--bg-raised);
  padding: var(--rute-pad);
}

.celle .label,
.kons-tittel,
.vix-tittel {
  font-size: var(--t-mikro);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--ink-dim);
  margin-bottom: 10px;
}

.celle .verdi,
.kons-hovedtall,
.vix-nivå {
  font-family: var(--f-tall);
  font-size: var(--t-stor);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.celle .verdi.opp { color: var(--up); }
.celle .verdi.ned { color: var(--down); }

.celle .sub,
.kons-sub,
.vix-sub {
  font-size: var(--t-meta);
  color: var(--ink-dim);
  margin-top: 6px;
}

.celle .sub { font-family: var(--f-tall); }


/* 6. Merkelapper ----------------------------------------------------------- */

.merke,
.type-pill,
.vix-badge {
  display: inline-block;
  font-family: var(--f-tekst);
  font-size: var(--t-badge);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  padding: 3px 9px;
  border-radius: var(--radius-pille);
  white-space: nowrap;
  background: var(--hairline);
  color: var(--ink-dim);
}

.merke.hoy,
.vix-badge.urolig { background: #3A1A1A; color: #E88; }

.merke.middels,
.vix-badge.moderat { background: #3A2E18; color: var(--varsel); }

.vix-badge.rolig { background: #1A3D2B; color: var(--up); }
.vix-badge.normal { background: var(--hairline); color: var(--ink-dim); }
.vix-badge.krise { background: #4A0E0E; color: var(--krise); }

.type-kjop { background: rgba(74, 157, 110, 0.15); color: var(--up); }
.type-salg { background: rgba(194, 76, 76, 0.15); color: var(--down); }
.type-utbytte,
.type-innskudd,
.type-uttak { background: rgba(184, 147, 95, 0.15); color: var(--gold); }


/* 7. Skjema og knapper ----------------------------------------------------- */

label {
  font-size: var(--t-mikro);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-dim);
}

input, select {
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-liten);
  color: var(--ink);
  font-family: var(--f-tall);
  font-size: 0.85rem;
  padding: 9px 10px;
}

/* Feltene har en egen minstebredde fra nettleseren som sprenger
   rutenettet på smal skjerm. Dette lar dem krympe med kolonnen. */
input:not([type="checkbox"]):not([type="radio"]),
select {
  width: 100%;
  min-width: 0;
}

input:focus, select:focus {
  outline: none;
  border-color: var(--gold-dim);
}

.btn {
  justify-self: start;
  background: var(--gold);
  color: #1B1508;
  border: none;
  border-radius: var(--radius-liten);
  font-family: var(--f-tekst);
  font-weight: 500;
  font-size: 0.85rem;
  padding: 10px 22px;
  cursor: pointer;
  margin-top: 6px;
}

.btn:hover { background: var(--gold-lys); }

.slett-btn {
  background: none;
  border: none;
  color: var(--ink-dim);
  cursor: pointer;
  font-size: var(--t-meta);
  padding: 2px 6px;
}

.slett-btn:hover { color: var(--down); }

/* Pillefilter — periodevelgeren på kurs- og porteføljesiden */
.periodefilter {
  display: flex;
  gap: 8px;
  margin: 0 0 var(--rom-blokk);
}

.periodefilter a {
  font-size: var(--t-meta);
  color: var(--ink-dim);
  text-decoration: none;
  padding: 6px 14px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-pille);
}

.periodefilter a:hover {
  border-color: var(--gold-dim);
  color: var(--ink);
}

.periodefilter a.aktiv {
  background: var(--gold);
  border-color: var(--gold);
  color: #1B1508;
  font-weight: 500;
}


/* 8. Tekstbiter som går igjen ---------------------------------------------- */

.fotnote {
  margin-top: var(--rom-seksjon);
  font-size: var(--t-meta);
  color: var(--ink-dim);
  line-height: 1.6;
  max-width: 82ch;
}

.fotnote ul { margin: 10px 0 0; padding-left: 18px; }
.fotnote li { margin-bottom: 3px; }

.tom {
  background: var(--bg-raised);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  padding: 28px;
  color: var(--ink-dim);
  font-size: 0.86rem;
  text-align: center;
}


/* 9. Bunn ------------------------------------------------------------------ */

footer {
  margin-top: 56px;
  padding-top: 18px;
  border-top: 1px solid var(--hairline);
  font-size: var(--t-mikro);
  color: var(--ink-dim);
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

footer a {
  color: var(--gold);
  text-decoration: none;
}

footer a:hover { text-decoration: underline; }


/* 10. Responsivt ----------------------------------------------------------- */

@media (max-width: 760px) {
  .rutenett { grid-template-columns: repeat(2, 1fr) !important; }
  header { flex-direction: column; align-items: flex-start; gap: 10px; }
  .hode-hoyre { flex-direction: row; align-items: baseline; gap: 16px; flex-wrap: wrap; }
  nav a { margin-left: 14px; }
  nav details.nedtrekk { margin-left: 14px; }

  .tabellhylle {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    /* Gir hyllen litt luft under, så rullefeltet ikke ligger oppå raden */
    padding-bottom: 4px;
  }
  .tabellhylle table { min-width: 600px; }
}

@media (max-width: 560px) {
  body { padding: 32px 16px; }
  .brand { font-size: 1.5rem; }
  .clock { display: none; }
  .rutenett { grid-template-columns: 1fr !important; }
  nav a { margin-left: 0; margin-right: 14px; }
  nav details.nedtrekk { margin-left: 0; margin-right: 14px; }
  nav .nedtrekk-meny { left: 0; }
}


/* 11. Selskapsanalyse -------------------------------------------------------
   Komponenter som er spesifikke for analyseside for enkeltselskap
   (/selskap/<slug>). Gjenbruker tokens og mønstre fra resten av siden. */

.selskap-topp {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 16px;
  margin: 4px 0 var(--rom-blokk);
}

.selskap-id .selskap-navn {
  font-family: var(--f-tittel);
  font-size: 1.3rem;
  font-weight: 500;
}

.selskap-id .selskap-meta {
  font-size: var(--t-meta);
  color: var(--ink-dim);
  margin-top: 4px;
}

.status-rad {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: var(--t-meta);
  color: var(--ink-dim);
}

.demomerke {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--t-badge);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: var(--radius-pille);
  background: #3A2E18;
  color: var(--varsel);
  border: 1px solid rgba(200, 151, 58, 0.35);
}

.datastatus {
  font-size: var(--t-badge);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: var(--radius-pille);
  background: var(--hairline);
  color: var(--ink-dim);
}

/* Nøkkeltallsraden i toppfeltet — fem kompakte celler */
.nokkeltallsrad {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: var(--rom-seksjon);
}

.nokkeltallsrad .celle .verdi.opp { color: var(--up); }
.nokkeltallsrad .celle .verdi.ned { color: var(--down); }
.nokkeltallsrad .celle .verdi.flat { color: var(--ink-dim); }

/* Datamerker A / G / C / D — skal aldri blandes, derfor fire faste farger */
.dm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 4px;
  font-family: var(--f-tall);
  font-size: 0.62rem;
  font-weight: 600;
  cursor: default;
  border: none;
  vertical-align: middle;
  margin-left: 6px;
}

.dm-a { background: rgba(148, 152, 166, 0.22); color: var(--ink-dim); }
.dm-g { background: rgba(184, 147, 95, 0.22); color: var(--gold-lys); }
.dm-c { background: rgba(74, 157, 110, 0.18); color: var(--up); }
.dm-d { background: rgba(120, 140, 200, 0.22); color: #8FA6D6; }

button.dm {
  cursor: pointer;
}

button.dm:hover,
button.dm:focus-visible {
  outline: 2px solid var(--gold-dim);
  outline-offset: 1px;
}

/* Verdi + datamerke i tabellceller */
.verdi-med-merke {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

/* Kilde-popover — delt panel, posisjonert av kilde.js ved klikk/fokus */
.kilde-popover {
  position: fixed;
  z-index: 40;
  max-width: 320px;
  background: var(--bg-raised);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  padding: 14px 16px;
  font-size: var(--t-meta);
  color: var(--ink);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
  display: none;
}

.kilde-popover.vis { display: block; }
.kilde-popover dt { color: var(--ink-dim); margin-top: 8px; font-size: var(--t-mikro); text-transform: uppercase; letter-spacing: 0.05em; }
.kilde-popover dt:first-child { margin-top: 0; }
.kilde-popover dd { margin: 2px 0 0; }
.kilde-popover .kat-navn { font-family: var(--f-tekst); font-weight: 500; color: var(--gold-lys); }

/* Seksjon B — «Hva har endret seg?» */
.endringer-kort {
  background: var(--bg-raised);
  border: 1px solid var(--hairline);
  border-left: 3px solid var(--gold);
  border-radius: var(--radius);
  padding: var(--rute-pad);
  margin-bottom: var(--rom-seksjon);
}

.endringer-kort ul { margin: 0; padding-left: 18px; }
.endringer-kort li { margin-bottom: 6px; font-size: var(--t-body); }
.endringer-kort li:last-child { margin-bottom: 0; }

/* Seksjon C — tre oversiktskort */
.tre-kort {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: var(--rom-seksjon);
}

.tre-kort .kort { margin-bottom: 0; }
.tre-kort .kort h3 {
  font-family: var(--f-tekst);
  font-size: var(--t-mikro);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--gold-lys);
  margin: 0 0 4px;
}
.tre-kort .kort-periode { font-size: var(--t-meta); color: var(--ink-dim); margin-bottom: 14px; }
.tre-kort .kort-rad { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--hairline); }
.tre-kort .kort-rad:last-child { border-bottom: none; }
.tre-kort .kort-rad .label { font-size: var(--t-meta); color: var(--ink-dim); }
.tre-kort .kort-rad .verdi { font-family: var(--f-tall); font-variant-numeric: tabular-nums; }
.tre-kort .grunnlag { font-family: var(--f-tall); font-size: 0.85em; color: var(--ink-dim); opacity: 0.8; }

/* Seksjon D — finansiell hovedtabell, med sticky radetikett for mobil rulling */
.finans-tabell thead th.a-kolonne,
.finans-tabell tbody td.a-kolonne { color: var(--ink); }
.finans-tabell thead th.e-kolonne,
.finans-tabell tbody td.e-kolonne { color: var(--ink); background: rgba(184, 147, 95, 0.045); }

.finans-tabell tbody tr.undergruppe-start td {
  border-top: 1px solid var(--hairline);
  padding-top: 20px;
}

.finans-tabell .radnavn { text-align: left; font-weight: 500; }

@media (max-width: 760px) {
  .finans-tabell thead th:first-child,
  .finans-tabell tbody td:first-child {
    position: sticky;
    left: 0;
    background: var(--bg);
    z-index: 1;
  }
}

/* Seksjon E — estimatrevisjoner */
.revisjon-kpi {
  display: grid;
  /* Antall kort varierer (EBIT vises bare når det finnes konsensus). */
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: var(--rom-blokk);
}

.revisjon-kpi .celle .sub.antall-endret { color: var(--varsel); }

/* Seksjon F — graf */
.graf-forklaring {
  font-size: var(--t-meta);
  color: var(--ink-dim);
  margin: 0 0 16px;
  max-width: 70ch;
}

.graf-wrap { position: relative; }

.graf-legende {
  display: flex;
  gap: 20px;
  font-size: var(--t-meta);
  color: var(--ink-dim);
  margin-bottom: 10px;
}

.graf-legende .prikk {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
}

.graf-legende .prikk.kurs { background: var(--gold); }
.graf-legende .prikk.eps { background: #8FA6D6; }

.graf-svg { width: 100%; height: auto; display: block; }
.graf-svg .linje-kurs { fill: none; stroke: var(--gold); stroke-width: 2; }
.graf-svg .linje-eps { fill: none; stroke: #8FA6D6; stroke-width: 2; stroke-dasharray: 5 4; }
.graf-svg .punkt-kurs { fill: var(--gold); cursor: pointer; }
.graf-svg .punkt-eps { fill: #8FA6D6; cursor: pointer; }
.graf-svg .aksefotnote { fill: var(--ink-dim); font-size: 10px; font-family: var(--f-tall); }

.graf-tooltip {
  position: fixed;
  z-index: 40;
  background: var(--bg-raised);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-liten);
  padding: 8px 12px;
  font-size: var(--t-meta);
  font-family: var(--f-tall);
  pointer-events: none;
  display: none;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}

.graf-tooltip.vis { display: block; }

/* Seksjon G/H — merkelapper for prognosetype */
.merke-prognose {
  font-size: var(--t-badge);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 9px;
  border-radius: var(--radius-pille);
  background: rgba(184, 147, 95, 0.15);
  color: var(--gold-lys);
}

.merke-langsiktig {
  font-size: var(--t-badge);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 9px;
  border-radius: var(--radius-pille);
  background: var(--hairline);
  color: var(--ink-dim);
}

/* Tomtilstand inne i en seksjon (ikke hele siden) */
.seksjon-tom {
  background: var(--bg-raised);
  border: 1px dashed var(--hairline);
  border-radius: var(--radius);
  padding: 20px 22px;
  color: var(--ink-dim);
  font-size: var(--t-body);
}

.hjelpetekst {
  font-size: var(--t-meta);
  color: var(--ink-dim);
  margin: 6px 0 0;
}

@media (max-width: 900px) {
  .tre-kort { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .nokkeltallsrad { grid-template-columns: repeat(2, 1fr); }
  .revisjon-kpi { grid-template-columns: 1fr; grid-auto-flow: row; }
}

/* Datavarsel øverst på analysesiden (f.eks. mistanke om valutafeil i konsensus) */
.datavarsel {
  margin: 0 0 var(--rom-blokk);
  padding: 10px 14px;
  border: 1px solid var(--varsel);
  border-left-width: 3px;
  border-radius: var(--radius);
  color: var(--varsel);
  font-size: var(--t-meta);
}

/* Tynn konsensus (færre enn 3 analytikere): stiplet ramme på C-merket */
.dm.tynn { background: transparent; outline: 1px dashed currentColor; outline-offset: -1px; }
.tynn-tekst { color: var(--varsel); }

/* Merknad om at siden bruker en midlertidig mal (vekst, energi) */
.profilmerknad {
  margin: 0 0 var(--rom-blokk);
  color: var(--ink-dim);
  font-size: var(--t-meta);
}

/* Kapital og solvens (bankprofil): kravets sammensetning under kilden */
.kravtekst {
  display: inline-block;
  margin-top: 2px;
  font-size: var(--t-mikro);
  color: var(--ink-dim);
  opacity: 0.85;
}

.nowrap { white-space: nowrap; }

/* Kildekolonnen i kapital- og prognosetabellene: bred nok til at radene ikke blir
   meterhøye på mobil — tabellen ruller heller sideveis i .tabellhylle. */
td.kildekolonne { min-width: 14rem; }

/* Diverse — søk etter en hvilken som helst aksje ----------------------------- */
.visuelt-skjult {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.diverse-sok {
  display: flex;
  gap: 10px;
  align-items: stretch;
  max-width: 640px;
  margin: 0 0 8px;
}
.diverse-sok input { flex: 1; }
.diverse-sok .btn { margin-top: 0; white-space: nowrap; }
.diverse-tips { margin-bottom: var(--rom-seksjon); }

nav .nedtrekk-meny a.nedtrekk-diverse {
  border-top: 1px solid var(--hairline);
  margin-top: 4px;
  padding-top: 10px;
}

.diverse-banner {
  background: var(--bg-raised);
  border: 1px solid var(--hairline);
  border-left: 3px solid var(--gold-dim);
  border-radius: var(--radius);
  padding: 14px 18px;
  margin: 0 0 var(--rom-blokk);
  font-size: var(--t-meta);
  line-height: 1.6;
}
.merke-diverse {
  display: inline-block;
  font-size: var(--t-mikro);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--gold-lys);
  border: 1px solid var(--gold-dim);
  border-radius: var(--radius-pille);
  padding: 1px 8px;
  margin-right: 6px;
}
.profilvalg {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin: 10px 0 8px;
}
.profilvalg button {
  background: none;
  font: inherit;
  font-size: var(--t-mikro);
  color: var(--ink-dim);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-pille);
  padding: 4px 11px;
  cursor: pointer;
}
.profilvalg button:hover { border-color: var(--gold-dim); color: var(--ink); }
.profilvalg button.aktiv { background: var(--gold); border-color: var(--gold); color: #1B1508; }
.diverse-fot { color: var(--ink-dim); font-size: var(--t-mikro); }
.diverse-fot a { color: var(--gold); text-decoration: none; }
.inline-skjema { display: inline; }
.lenkeknapp {
  background: none; border: none; padding: 0; font: inherit;
  color: var(--ink-dim); text-decoration: underline; cursor: pointer;
}
.lenkeknapp:hover { color: var(--down); }
@media (max-width: 560px) {
  .diverse-sok { flex-direction: column; }
}
.diverse-tabell a { color: var(--gold); text-decoration: none; }
.diverse-tabell a:hover { text-decoration: underline; }

/* Kvartalsrapporter: opplasting, kontroll og kvartalstabell ------------------ */
.gull-lenke { color: var(--gold); text-decoration: none; }
.gull-lenke:hover { text-decoration: underline; }

.rapport-opplasting {
  display: grid;
  grid-template-columns: minmax(0, 12rem) minmax(0, 7rem) minmax(0, 1fr) minmax(0, 12rem) auto;
  gap: 12px;
  align-items: end;
  max-width: 1100px;
  margin: 0 0 8px;
}
.rapport-felt { display: flex; flex-direction: column; gap: 6px; }
.rapport-opplasting .btn { margin-top: 0; white-space: nowrap; }
.slippsone {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px dashed var(--gold-dim);
  border-radius: var(--radius-liten);
  background: var(--bg-raised);
  color: var(--ink-dim);
  text-transform: none;
  letter-spacing: 0;
  font-size: var(--t-meta);
  cursor: pointer;
}
.slippsone input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.slippsone.over { border-color: var(--gold); background: rgba(184, 147, 95, 0.08); }
.slippsone.har-fil .slippsone-tekst { display: none; }
.slippsone-fil { color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 760px) {
  .rapport-opplasting { grid-template-columns: 1fr 1fr; }
  .slippsone, .rapport-opplasting .btn { grid-column: 1 / -1; }
}
.lenke-form { max-width: 1100px; margin: 0 0 8px; }

.rapportstatus {
  display: inline-block;
  font-size: var(--t-mikro);
  padding: 2px 9px;
  border-radius: var(--radius-pille);
  background: var(--hairline);
  color: var(--ink-dim);
  white-space: nowrap;
}
.rapportstatus.status-tolket { background: rgba(200, 151, 58, 0.15); color: var(--varsel); }
.rapportstatus.status-godkjent { background: rgba(74, 157, 110, 0.15); color: var(--up); }
.rapportstatus.status-feilet,
.rapportstatus.status-avbrutt { background: rgba(194, 76, 76, 0.15); color: var(--down); }
.rapportstatus.status-tolkes { color: var(--gold-lys); }

.rapport-oppsummering {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 var(--rom-blokk);
}
.oppsum {
  background: var(--bg-raised);
  border: 1px solid var(--hairline);
  border-left: 3px solid var(--hairline);
  border-radius: var(--radius);
  padding: 12px 16px;
}
.oppsum.ok { border-left-color: var(--up); }
.oppsum.varsel { border-left-color: var(--varsel); }
.oppsum.feil { border-left-color: var(--down); }
.oppsum-tall { font-family: var(--f-tall); font-size: 1.3rem; }
.oppsum-tekst { color: var(--ink-dim); font-size: var(--t-meta); }
@media (max-width: 560px) { .rapport-oppsummering { grid-template-columns: 1fr; } }

.knapperad { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 16px 0 6px; }
.knapperad .btn { margin-top: 0; }
.btn-sekundaer { background: transparent; color: var(--gold); border: 1px solid var(--gold-dim); }
.btn-sekundaer:hover { background: rgba(184, 147, 95, 0.1); }

h2.h2-luft { margin-top: var(--rom-seksjon); }
.rapport-tabell { margin-bottom: 18px; }
.rapport-tabell tbody tr.gruppe-rad td {
  padding-top: 18px;
  color: var(--gold-lys);
  font-family: var(--f-tekst);
  font-size: var(--t-mikro);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-align: left;
}
.rapport-tabell td { vertical-align: top; }
.rapport-tabell tbody tr:not(.gruppe-rad) td:first-child { white-space: nowrap; padding-top: 14px; }
.rapport-tabell input { text-align: right; min-width: 7rem; padding: 6px 8px; }
.rapport-tabell input[readonly] { border-color: transparent; background: transparent; }
.rapport-tabell input.rettet { border-color: var(--varsel); }
.rapport-tabell td.avviker input { border-color: var(--down); }
.rapport-tabell .enhet { font-size: var(--t-mikro); }
.celle-meta { display: flex; gap: 8px; justify-content: flex-end; font-size: var(--t-mikro); margin-top: 3px; min-height: 1em; }
.celle-meta a { color: var(--ink-dim); }
.celle-meta a:hover { color: var(--gold); }
.varsel-tekst { color: var(--varsel); }

.kvartal-tabell tbody tr.gruppe-rad td {
  padding-top: 18px;
  color: var(--gold-lys);
  font-family: var(--f-tekst);
  font-size: var(--t-mikro);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-align: left;
}
.kvartal-tabell tbody tr.uthevet td { font-weight: 600; }
.kvartal-tabell tbody tr.vekst-rad td { color: var(--ink-dim); font-size: var(--t-meta); }
.kvartal-tabell th.ltm-kolonne,
.kvartal-tabell td.ltm-kolonne { background: rgba(184, 147, 95, 0.045); }

.guiding-tabell td:first-child { white-space: nowrap; }
.publisert-felt { max-width: 12rem; margin-top: 14px; }

/* --- Kvartalet i korte trekk (analysesiden) og oppsummeringen på kontrollsiden ------------------ */
.kv-hode { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 14px; margin-bottom: 18px; }
.kv-hode h2 { margin: 0; }
.kv-periode { font-family: var(--f-tall); font-size: var(--t-meta); color: var(--gold-lys);
  border: 1px solid var(--gold-dim); border-radius: var(--radius-pille); padding: 2px 10px; }
.kv-kilder { font-size: var(--t-meta); color: var(--ink-dim); }
.kv-kilder a { color: var(--gold); text-decoration: none; margin-left: 8px; }
.kv-rutenett { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 18px; }
@media (max-width: 900px) { .kv-rutenett { grid-template-columns: minmax(0, 1fr); } }
.kv-stabel { display: grid; gap: 18px; align-content: start; min-width: 0; }
.kv-kort { min-width: 0; background: var(--bg-raised); border: 1px solid var(--hairline); border-radius: var(--radius); padding: 16px 18px; }
.kv-kort h3 { margin: 0 0 12px; font-size: var(--t-mikro); text-transform: uppercase; letter-spacing: 0.07em;
  color: var(--ink-dim); font-weight: 500; }
.kv-punkter { list-style: none; margin: 0; padding: 0; }
.kv-punkter li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 9px 0;
  border-bottom: 1px solid var(--hairline); line-height: 1.5; font-size: 0.9rem; overflow-wrap: anywhere; }
.kv-punkter li:last-child { border-bottom: none; }
.kv-kort .tall, .kv-vekting .tall { font-family: var(--f-tall); font-variant-numeric: tabular-nums; white-space: nowrap; }
.kilde { font-family: var(--f-tall); font-size: var(--t-mikro); color: var(--ink-dim); border: 1px solid var(--hairline);
  border-radius: 4px; padding: 1px 6px; white-space: nowrap; align-self: start; margin-top: 2px; text-decoration: none; }
.kilde:hover { color: var(--gold); border-color: var(--gold-dim); }
.endring { padding: 10px 0; border-bottom: 1px solid var(--hairline); }
.endring:last-child { border-bottom: none; }
.endring-topp { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; margin-bottom: 4px; }
.endring-type { font-size: var(--t-mikro); text-transform: uppercase; letter-spacing: 0.05em; }
.endring-type.senket { color: var(--down); } .endring-type.hevet { color: var(--up); }
.endring-type.uendret, .endring-type.nytt, .endring-type.fjernet { color: var(--ink-dim); }
.endring-hva { font-size: 0.9rem; }
.endring-tekst { font-size: var(--t-meta); line-height: 1.5; }
.endring-tekst .gammel { color: var(--ink-dim); text-decoration: line-through; }
.endring-tekst .pil { color: var(--gold); margin: 0 6px; }
.kv-tabell { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.kv-tabell th { text-align: left; font-size: var(--t-mikro); text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--ink-dim); font-weight: 500; padding: 0 0 8px; border-bottom: 1px solid var(--hairline); }
.kv-tabell td { padding: 8px 0; border-bottom: 1px solid var(--hairline); vertical-align: top; }
.kv-tabell tr:last-child td { border-bottom: none; }
.kv-tabell .num { text-align: right; font-family: var(--f-tall); padding-right: 12px; white-space: nowrap; }
@media (max-width: 760px) { .tabellhylle .kv-tabell { min-width: 440px; } }
.kv-vekting { margin-top: 18px; padding: 12px 16px; border-left: 3px solid var(--varsel); background: rgba(200, 151, 58, 0.06);
  border-radius: 0 var(--radius) var(--radius) 0; font-size: 0.88rem; line-height: 1.55; display: flex; gap: 12px;
  justify-content: space-between; }
.kv-vekting strong { color: var(--varsel); font-weight: 600; }
.kv-fot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 12px;
  font-size: var(--t-meta); color: var(--ink-dim); }
.kv-fot a { color: var(--gold); text-decoration: none; }
.kv-logg a { margin-left: 8px; font-family: var(--f-tall); }
.kv-logg a.valgt { color: var(--gold-lys); text-decoration: underline; }
.kv-guiding { margin-top: 12px; font-size: var(--t-meta); color: var(--ink-dim); }
.kv-guiding summary { cursor: pointer; }
.kv-guiding ul { margin: 8px 0 0; padding-left: 18px; line-height: 1.55; }

/* Redigering på kontrollsiden */
.fortelling-seksjon { margin: 14px 0 22px; }
.fortelling-seksjon h3 { margin: 0 0 8px; font-size: var(--t-mikro); text-transform: uppercase; letter-spacing: 0.07em;
  color: var(--gold-lys); font-weight: 500; }
.fortelling-rad { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: start;
  padding: 8px 0; border-bottom: 1px solid var(--hairline); }
.fortelling-felt { display: flex; flex-wrap: wrap; gap: 8px; }
.fortelling-felt label { display: flex; flex-direction: column; gap: 3px; font-size: var(--t-mikro); color: var(--ink-dim);
  flex: 1 1 10rem; }
.fortelling-felt label.bred { flex: 4 1 22rem; }
.fortelling-felt input[type=text], .fortelling-felt select, .fortelling-felt textarea { width: 100%; padding: 6px 8px; }
.fortelling-felt textarea { background: var(--bg); border: 1px solid var(--hairline); border-radius: var(--radius-liten);
  color: var(--ink); font-family: var(--f-tall); font-size: 0.85rem; line-height: 1.45; min-width: 0; resize: vertical;
  field-sizing: content; min-height: 2.4em; }
.fortelling-felt textarea:focus { outline: none; border-color: var(--gold-dim); }
.fortelling-fjern { font-size: var(--t-mikro); color: var(--ink-dim); white-space: nowrap; display: flex; gap: 5px;
  align-items: center; padding-top: 22px; }
.fortelling-kilde { padding-top: 22px; }
.fortelling-presentasjon { margin: 10px 0; display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center;
  font-size: var(--t-meta); color: var(--ink-dim); }

/* Rapportsesong: oversikt over hvor hvert selskap står */
.sesong-tabell td.venter { color: var(--varsel); }
.rapportkilde-merke { font-family: var(--f-tall); font-size: var(--t-mikro); color: var(--ink-dim);
  border: 1px solid var(--hairline); border-radius: 4px; padding: 1px 6px; white-space: nowrap; }
.rapportkilde-merke.auto { color: var(--gold-lys); border-color: var(--gold-dim); }
.lenke-skjema { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); align-items: end;
  margin-top: 12px; }
.lenke-skjema .bred { grid-column: 1 / -1; }
.slippsone-liten { min-height: 0; }
