/* ============================================================================
   Biztrac public site (biztrac.no) — design system
   Server-rendered. Mirrors the "Biztrac nettside / selskap / søk" designs.
   ========================================================================== */

:root {
  /* ── Editorial palette (shared with reports, valuation, comparison) ──────
     One navy, one blue, one green across the whole product. Body copy sits on
     --ink; headings and strong UI on the deeper --navy. */
  --navy: #0B1F33;       /* headings, strong UI, dark surfaces */
  --ink: #14273B;        /* default body text */
  --ink-hover: #14273B;  /* dark hover states */
  --blue: #2563EB;
  --blue-dark: #1D4ED8;
  --blue-soft: #EFF4FF;
  --muted: #5C6B7A;      /* secondary text */
  --slate: #77808C;      /* tertiary text */
  --subtle: #8A97A4;     /* labels, eyebrows, faint meta */
  --faint: #9AA6B2;      /* faintest captions */
  --line: #E4E9EF;       /* default borders / dividers */
  --line-soft: #EDF1F5;  /* soft borders */
  --hair: #EDF1F5;       /* ultra-thin borders (header, hairlines) */
  --soft: #FBFCFD;       /* soft card fill */
  --bg: #F5F7FA;         /* page background */
  --surface: #ffffff;    /* card background */
  --strong: #C3CCD5;     /* strong neutral */
  --good: #0F7A50;       /* positive / equity */
  --good-bg: #F2F7F5;
  --good-bd: #BBF7D0;
  --negative: #C0392B;

  /* ── Type ─────────────────────────────────────────────────────────────────
     One family. Schibsted Grotesk carries everything — display, UI, body and
     figures — so a page never reads as a collage of typefaces. Weight, size and
     colour do all the hierarchy work.

     --font-serif is kept ONLY because the PRO workspace (pro.css) and the
     printable credit report still opt into Instrument Serif; those shells load
     the webfont themselves. Nothing in the public site should use it. */
  --font-sans: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-serif: "Instrument Serif", Georgia, "Times New Roman", serif;

  /* ── Type scale ───────────────────────────────────────────────────────────
     Ten steps, no in-between values. Anything that used to be 9.5/10.5/11.5/
     12.5/13.5/14.5/15.5px snaps to the nearest step. If a new size feels
     necessary, the answer is almost always a different weight or colour. */
  --t-2xs: 10px;   /* uppercase eyebrows, micro-labels */
  --t-xs:  11px;   /* dense meta, table micro-copy */
  --t-sm:  12px;   /* secondary meta, captions, chips */
  --t-md:  13px;   /* dense UI, table cells, nav */
  --t-base:14px;   /* default UI text, buttons, form fields */
  --t-lg:  15px;   /* body copy, lead-ins */
  --t-xl:  16px;   /* card titles, small section headings */
  --t-2xl: 21px;   /* sub-headings, in-card figures, article leads */
  --t-3xl: 28px;   /* section headings, hero figures */
  --t-4xl: 36px;   /* the largest non-fluid figure */

  /* Long-form reading size. Deliberately off the UI ramp: article body copy
     wants to be a notch larger than anything in the interface. */
  --t-read: 17px;

  /* Fluid display sizes — page titles and hero headlines only.
     Every detail page (company, person, search, admin, finn, relasjoner …)
     used to pick its own h1 size somewhere between 23px and 30px. They all
     use --t-display-sm now; only marketing and article heroes go bigger. */
  --t-display-sm: clamp(26px, 3.4vw, 32px);
  --t-display:    clamp(30px, 5vw, 44px);
  --t-display-lg: clamp(36px, 6vw, 58px);

  /* ── Weight ───────────────────────────────────────────────────────────────
     Five stops, each with one job. 650 and other one-off weights are gone. */
  --w-normal: 400;   /* body copy */
  --w-medium: 500;   /* emphasised body, breadcrumb links */
  --w-semi:   600;   /* UI labels, buttons, secondary headings */
  --w-bold:   700;   /* card titles, figures, eyebrows */
  --w-display:800;   /* --t-3xl and up, plus the wordmark / brand lockups */

  /* ── Tracking ─────────────────────────────────────────────────────────────
     Two directions only: tighten as type grows, open up when it goes
     uppercase. Previously 25 hand-picked values did this job. */
  --tr-display: -0.03em;  /* 28px and up */
  --tr-tight:   -0.02em;  /* 17–27px */
  --tr-snug:    -0.01em;  /* 14–16px headings */
  --tr-caps:     0.06em;  /* uppercase labels and eyebrows */
  --tr-caps-lg:  0.1em;   /* uppercase at 10px and below */

  /* ── Radius scale: square by design; kept as tokens so a softer corner is one edit. */
  --r-sm: 0;
  --r-md: 0;
  --r-lg: 0;
  --r-xl: 0;
  --r-pill: 0;

  /* ── Elevation ────────────────────────────────────────────────────────── */
  --shadow-sm: 0 1px 2px rgba(11, 31, 51, 0.05);
  --shadow-md: 0 10px 30px -14px rgba(11, 31, 51, 0.18);
  --shadow-lg: 0 24px 50px -18px rgba(11, 31, 51, 0.28);

  /* ── Layout ───────────────────────────────────────────────────────────────
     One content column and one gutter for the whole app shell, so every page's
     content edges line up with the header and with each other. Values match the
     valuation page. Marketing/reading pages (landing, about, article) opt into a
     narrower width on purpose but stay centred in this same shell. */
  --page-max: 1200px;
  --page-px: clamp(18px, 4vw, 40px);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  font-family: var(--font-sans);
  font-size: var(--t-lg);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Display figures. Kept as a class name for the many templates that already
   carry it, but it no longer switches typeface — a figure is now just Grotesk,
   bold and tight.

   Proportional figures on purpose. Schibsted Grotesk's tabular set is ~17%
   wider and pads "." and spaces out to figure width, which makes a formatted
   value like "2.9 mrd. kr" read as though it were letter-spaced. Tabular is
   for columns of digits (.data-table td.num, .fin-table td.num, the ranking
   and percentage columns) — not for single headline values. */
.serif,
.figure {
  font-family: var(--font-sans);
  font-weight: var(--w-bold);
  letter-spacing: var(--tr-tight);
}

a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }
::selection { background: var(--blue); color: #fff; }

/* ── App header ─────────────────────────────────────────────────────────── */
.topbar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--hair);
}
.topbar-inner {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 0 var(--page-px);
  height: 50px;
  display: flex;
  align-items: center;
  gap: 18px;
}
.brand { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; flex-shrink: 0; }
.brand:hover { text-decoration: none; }
.wordmark { font-weight: var(--w-display); font-size: var(--t-base); letter-spacing: var(--tr-caps); color: var(--navy); }
.wordmark .accent { color: var(--blue); }

.topbar-search {
  position: relative;
  /* Spans the whole gap between the brand and the nav — uncapped, so the bar has
     no dead space in the middle at wide viewports. */
  flex: 1;
  display: flex;
  align-items: center;
  gap: 7px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 0 4px 0 11px;
  height: 32px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s, box-shadow 0.15s;
}

/* Toolbar autosuggest dropdown */
.suggest {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0;
  box-shadow: 0 14px 36px -14px rgba(15, 23, 42, 0.35);
  padding: 5px;
  z-index: 200;
  max-height: 60vh;
  overflow-y: auto;
}
.suggest[hidden] { display: none; }
.suggest-item { display: flex; flex-direction: column; gap: 1px; padding: 8px 11px; border-radius: 0; cursor: pointer; }
.suggest-item:hover, .suggest-item.is-active { background: var(--blue-soft); text-decoration: none; }
.suggest-name { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.suggest-meta { font-size: var(--t-xs); color: var(--subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar-search:focus-within { border-color: #bfdbfe; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); }
.topbar-search .search-icon { width: 14px; height: 14px; color: var(--subtle); flex-shrink: 0; }
.topbar-search input {
  flex: 1; min-width: 0; background: transparent; border: 0; outline: none;
  padding: 0; font-size: var(--t-md); color: var(--navy); font-family: inherit;
}
.topbar-search input::placeholder { color: var(--subtle); }
.topbar-search input::-webkit-search-cancel-button { display: none; }
.topbar-search button {
  flex-shrink: 0; background: var(--blue); color: #fff; border: 0; border-radius: 0;
  padding: 0 14px; height: 26px; font-size: var(--t-sm); font-weight: var(--w-semi); cursor: pointer;
  font-family: inherit; transition: background 0.15s;
}
.topbar-search button:hover { background: var(--blue-dark); }

.topnav {
  display: flex; align-items: center; gap: 18px;
  font-size: var(--t-sm); font-weight: var(--w-medium); flex-shrink: 0;
}
.topnav a { color: var(--muted); }
.topnav a:hover { color: var(--navy); text-decoration: none; }
.topnav a.login { color: var(--navy); font-weight: var(--w-semi); }
.topnav-sep { width: 1px; height: 15px; background: var(--line); flex-shrink: 0; }
/* With the Produkter menu the full nav needs ~1080px at 18px gaps; tighten it
   down to the 1024px mobile-menu cutover instead of raising the cutover. */
@media (max-width: 1200px) {
  .topnav { gap: 12px; }
  .topnav-sep { display: none; }
}

/* Site-wide beta flag, sits beside the wordmark. */
.beta-flag {
  font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); line-height: 1;
  color: var(--blue); background: var(--blue-soft);
  padding: 3px 5px; border-radius: 0; flex-shrink: 0;
}

/* PRO entry point — outlined so it reads as a destination, not a nav link. */
.topnav-pro {
  color: var(--blue); font-weight: var(--w-bold); letter-spacing: var(--tr-caps);
  border: 1px solid var(--blue); border-radius: 0;
  padding: 3px 9px; line-height: 1.4; transition: background 0.15s, color 0.15s;
}
.topnav a.topnav-pro:hover { background: var(--blue); color: #fff; }

/* "Verktøy" dropdown. <details> gives click-to-open and keyboard access for
   free; nav.js only adds outside-click/Escape close. */
.navdrop { position: relative; flex-shrink: 0; }
.navdrop summary {
  display: inline-flex; align-items: center; gap: 5px;
  color: var(--muted); cursor: pointer; list-style: none;
}
.navdrop summary::-webkit-details-marker { display: none; }
.navdrop summary:hover, .navdrop[open] summary { color: var(--navy); }
.navdrop-caret {
  width: 0; height: 0; border-left: 3.5px solid transparent; border-right: 3.5px solid transparent;
  border-top: 4px solid currentColor; transition: transform 0.15s;
}
.navdrop[open] .navdrop-caret { transform: rotate(180deg); }
.navdrop-panel {
  position: absolute; top: calc(100% + 10px); right: 0;
  width: 270px; background: #fff; border: 1px solid var(--line);
  border-radius: 0; box-shadow: 0 14px 36px -14px rgba(15, 23, 42, 0.35);
  padding: 5px; z-index: 200;
}
.navdrop-panel a {
  display: flex; flex-direction: column; gap: 2px;
  padding: 8px 11px; border-radius: 0;
}
.navdrop-panel a:hover { background: var(--blue-soft); text-decoration: none; }
.navdrop-panel a b { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); }
.navdrop-panel a span { font-size: var(--t-xs); color: var(--subtle); font-weight: var(--w-normal); }

.mobile-menu {
  display: none;
  position: relative;
  flex-shrink: 0;
}
.mobile-menu summary {
  list-style: none;
  width: 34px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  cursor: pointer;
}
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary:hover {
  border-color: #bfdbfe;
  color: var(--navy);
}
.mobile-menu[open] summary {
  border-color: #bfdbfe;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.mobile-menu-icon,
.mobile-menu-icon::before,
.mobile-menu-icon::after {
  display: block;
  width: 16px;
  height: 2px;
  border-radius: 0;
  background: var(--navy);
}
.mobile-menu-icon {
  position: relative;
}
.mobile-menu-icon::before,
.mobile-menu-icon::after {
  content: "";
  position: absolute;
  left: 0;
}
.mobile-menu-icon::before { top: -5px; }
.mobile-menu-icon::after { top: 5px; }
.mobile-menu-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 260;
  width: min(280px, calc(100vw - 24px));
  padding: 6px;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0;
  box-shadow: 0 18px 42px -18px rgba(15, 23, 42, 0.38);
}
.mobile-menu-panel a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 40px;
  padding: 9px 11px;
  border-radius: 0;
  color: var(--muted);
  font-size: var(--t-md);
  font-weight: var(--w-semi);
  text-decoration: none;
}
.mobile-menu-panel a:hover {
  background: var(--soft);
  color: var(--navy);
  text-decoration: none;
}
.mobile-menu-panel a.login {
  color: var(--navy);
  background: var(--blue-soft);
}
.mobile-menu-head {
  padding: 10px 11px 4px;
  font-size: var(--t-2xs);
  font-weight: var(--w-bold);
  letter-spacing: var(--tr-caps);
  text-transform: uppercase;
  color: var(--subtle);
}
/* The outlined PRO pill is desktop chrome; in the panel it follows the row layout. */
.mobile-menu-panel a.topnav-pro {
  border: 0;
  padding: 9px 11px;
  letter-spacing: var(--tr-caps);
  background: var(--blue-soft);
  color: var(--blue);
}

main { min-height: calc(100vh - 50px - 280px); }

/* ── Buttons ────────────────────────────────────────────────────────────── */
.btn-primary, .btn-blue, .btn-secondary {
  display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
  padding: 11px 18px; border-radius: 0; font-size: var(--t-base); font-weight: var(--w-semi);
  border: 1px solid transparent; cursor: pointer; text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}
.btn-primary { background: var(--navy); color: #fff; border-color: var(--navy); }
.btn-primary:hover { background: var(--ink-hover); border-color: var(--ink-hover); color: #fff; text-decoration: none; }
.btn-blue { background: var(--blue); color: #fff; border-color: var(--blue); }
.btn-blue:hover { background: var(--blue-dark); border-color: var(--blue-dark); color: #fff; text-decoration: none; }
.btn-secondary { background: #fff; color: var(--navy); border-color: var(--strong); }
.btn-secondary:hover { background: var(--soft); border-color: var(--subtle); text-decoration: none; }
.btn-full { display: flex; width: 100%; justify-content: center; }

/* ── Cards ──────────────────────────────────────────────────────────────── */
.card {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: 0;
  padding: 22px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  margin-bottom: 22px;
}
.card h2 { font-size: var(--t-xl); font-weight: var(--w-bold); letter-spacing: var(--tr-snug); color: var(--navy); margin-bottom: 16px; }
.card h2 .sub { color: var(--subtle); font-weight: var(--w-semi); }
.sidebar-card h3, .card h3 { font-size: var(--t-xl); font-weight: var(--w-bold); letter-spacing: var(--tr-snug); color: var(--navy); margin-bottom: 12px; }
.sidebar-card p { font-size: var(--t-md); color: var(--muted); margin-bottom: 16px; line-height: 1.55; }

/* ── Tags / chips ───────────────────────────────────────────────────────── */
.tag {
  display: inline-block; padding: 4px 10px; border-radius: 0;
  font-size: var(--t-sm); font-weight: var(--w-medium); background: #fff;
  color: var(--muted); border: 1px solid var(--line); white-space: nowrap;
}
.tag-status { font-weight: var(--w-bold); letter-spacing: var(--tr-caps); }
.tag-status.active { background: var(--good-bg); color: var(--good); border-color: var(--good-bd); }
.tag-status.bankrupt { background: #fee2e2; color: #991b1b; border-color: #fecaca; }
.tag-status.winding_up,
.tag-status.forced_dissolution { background: #fff7ed; color: #b45309; border-color: #fed7aa; }
.tag-same { background: var(--good-bg); color: var(--good); border-color: var(--good-bd); }
.tag-diff { background: #fff7ed; color: #b45309; border-color: #fed7aa; }

/* ── Data tables ────────────────────────────────────────────────────────── */
.data-table { width: 100%; border-collapse: collapse; font-size: var(--t-md); }
.data-table th {
  text-align: left; padding: 0 0 10px; border-bottom: 1px solid var(--line-soft);
  font-size: var(--t-2xs); font-weight: var(--w-bold); text-transform: uppercase;
  letter-spacing: var(--tr-caps); color: var(--subtle);
}
.data-table td { padding: 13px 0; border-bottom: 1px solid #f1f5f9; color: var(--navy); }
/* Every column but the last needs a gutter to its neighbour — with
   border-collapse and no horizontal padding otherwise, two narrow columns
   (e.g. a "Dropped" count next to "Newest story") can render with their
   content touching, reading as one run-together word. The last column keeps
   0 so its content still hugs the table's own right/left edge. */
.data-table th:not(:last-child), .data-table td:not(:last-child) { padding-right: 16px; }
.data-table tr:last-child td { border-bottom: none; }
.data-table td a { color: var(--blue); font-weight: var(--w-semi); }
.data-table th.num, .data-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.data-table td.neg { color: var(--negative); }
.table-note { font-size: var(--t-sm); color: var(--muted); }
.table-scroll { overflow-x: auto; }
.accounts-table { min-width: 560px; }

/* ── Info grid (dt/dd) ──────────────────────────────────────────────────── */
.info-grid {
  display: grid; grid-template-columns: 120px 1fr; gap: 11px 12px; font-size: var(--t-md);
}
.info-grid dt { color: var(--subtle); }
.info-grid dd { color: var(--navy); font-weight: var(--w-medium); word-break: break-word; }

/* ── Key figures (stat cells) ───────────────────────────────────────────── */
.fin-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.fin-cell { padding: 14px; background: #fff; border: 1px solid var(--line-soft); border-radius: 0; }
.fin-cell-accent { background: #f7faff; }
.fin-label { font-size: var(--t-2xs); font-weight: var(--w-bold); text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--subtle); }
.fin-value { font-size: var(--t-2xl); font-weight: var(--w-bold); color: var(--navy); margin-top: 6px; }
.fin-value.negative { color: var(--negative); }

/* ── Financial health ───────────────────────────────────────────────────── */
.health-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.health-cell { background: #fff; border: 1px solid var(--line-soft); border-radius: 0; padding: 16px; display: flex; flex-direction: column; }
.health-label { font-size: var(--t-2xs); font-weight: var(--w-bold); text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--subtle); margin-bottom: 6px; }
.health-value { font-size: var(--t-2xl); font-weight: var(--w-bold); color: var(--navy); }
.health-hint { font-size: var(--t-sm); color: var(--subtle); }
.rate-badge { display: inline-block; padding: 3px 9px; border-radius: 0; font-size: var(--t-xs); font-weight: var(--w-bold); width: fit-content; margin: 9px 0 10px; }
.rating-bad { background: #fee2e2; color: #991b1b; }
.rating-weak { background: #fff7ed; color: #b45309; }
.rating-ok { background: #fef3c7; color: #92400e; }
.rating-good { background: var(--good-bg); color: var(--good); }
.rating-vgood { background: #dcfce7; color: #166534; }
.rating-na { background: #f1f5f9; color: var(--subtle); }

/* ── Two-column card grid ───────────────────────────────────────────────── */
.two-col-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.two-col-grid .card { margin-bottom: 0; }

.muted, .muted-text { color: var(--muted); }
.muted-text { font-size: var(--t-base); }
.data-source { font-size: var(--t-xs); color: var(--subtle); line-height: 1.55; }
.empty-state { padding: 48px 0; text-align: center; color: var(--muted); }

/* ── Company / Person page ──────────────────────────────────────────────── */
.company-page { max-width: var(--page-max); margin: 0 auto; padding: 28px var(--page-px) 64px; }
.company-page-inner { display: grid; grid-template-columns: 1fr 332px; gap: 22px; align-items: start; }
.company-main { min-width: 0; }
.company-main > .card:last-child { margin-bottom: 0; }

.company-breadcrumb { display: flex; align-items: center; gap: 7px; font-size: var(--t-md); color: var(--subtle); margin-bottom: 18px; }
.company-breadcrumb a { color: var(--muted); }
.company-breadcrumb a:hover { color: var(--blue); }

.company-header { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 18px; margin-bottom: 24px; }
.company-header-left { display: flex; align-items: center; gap: 16px; }
.company-icon { width: 54px; height: 54px; border-radius: 0; background: var(--blue-soft); border: 1px solid #dbeafe; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.company-header h1 { font-size: var(--t-display-sm); font-weight: var(--w-display); letter-spacing: var(--tr-display); color: var(--navy); margin-bottom: 9px; }
.company-meta-row { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }

/* ════════════════════════════════════════════════════════════════════════
   Shared page header — the valuation-page hero, reused across detail pages so
   every page opens the same way: breadcrumb › eyebrow › big grotesk title ›
   dotted meta line, over a soft gradient band with a faint network motif.
   ════════════════════════════════════════════════════════════════════════ */
.pagehero { position: relative; overflow: hidden; background: linear-gradient(180deg, #F4F8FF 0%, var(--bg) 66%); border-bottom: 1px solid var(--hair); }
.pagehero-motif { position: absolute; top: -30px; right: -40px; opacity: 0.7; pointer-events: none; max-width: 52%; height: auto; }
.pagehero-in { position: relative; max-width: var(--page-max); margin: 0 auto; padding: clamp(18px,2.6vw,26px) var(--page-px) clamp(22px,2.6vw,30px); }
.pagehero-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; flex-wrap: wrap; }
.pagehero-top-main { min-width: 0; flex: 1 1 460px; }
.pagehead-crumbs { display: flex; align-items: center; gap: 8px; font-size: var(--t-sm); color: var(--subtle); margin-bottom: clamp(16px,2.2vw,24px); flex-wrap: wrap; }
.pagehead-crumbs a { color: var(--muted); font-weight: var(--w-medium); }
.pagehead-crumbs a:hover { color: var(--blue); text-decoration: none; }
.pagehead-eyebrow { font-size: var(--t-xs); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; color: var(--blue); font-weight: var(--w-bold); margin-bottom: 12px; }
.pagehead-title { font-weight: var(--w-display); font-size: var(--t-display); line-height: 1.03; letter-spacing: var(--tr-display); color: var(--navy); margin: 0 0 13px; text-wrap: balance; }
.pagehead-title .verified-badge { vertical-align: middle; }
.pagehead-meta { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; font-size: var(--t-md); color: var(--muted); }
.pagehead-meta .strong { color: var(--ink); font-weight: var(--w-medium); }
.pagehead-meta .ok { color: var(--good); font-weight: var(--w-semi); }
.pagehead-meta .status-bad { color: var(--negative); font-weight: var(--w-bold); }
.admin-inline-btn { font: inherit; font-size: var(--t-sm); color: var(--blue); background: none; border: none; padding: 0; cursor: pointer; text-decoration: underline; }
.admin-inline-btn:hover { color: var(--navy); }
.pagehead-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--strong); flex-shrink: 0; }

/* Prominent banner for companies that are bankrupt / winding up / forced-dissolved —
   deliberately loud since these statuses materially change how the numbers on
   this page should be read. */
.status-banner { display: flex; align-items: center; gap: 10px; background: #FEF2F2; border: 1px solid #FCA5A5; color: #7F1D1D; border-radius: var(--r-lg); padding: 12px 16px; margin-bottom: clamp(16px,2.2vw,22px); font-size: var(--t-base); font-weight: var(--w-semi); }
.status-banner-ic { flex-shrink: 0; font-size: var(--t-xl); line-height: 1; }

/* Key-figure strip — flex so a handful of cells sit at a natural width and
   left-align, instead of a single cell stretching across the whole row. */
.company-kpis { display: flex; flex-wrap: wrap; margin-top: clamp(20px,2.6vw,28px); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-md); }
.ckpi { flex: 1 1 160px; min-width: 148px; max-width: 300px; padding: 15px 19px; display: flex; flex-direction: column; gap: 7px; border-right: 1px solid var(--line); }
.ckpi:last-child { border-right: none; }
.ckpi-l { font-size: var(--t-2xs); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; color: var(--subtle); font-weight: var(--w-bold); }
.ckpi-v { font-size: var(--t-3xl); line-height: 1; color: var(--navy); }
/* Two cells per row on phones. The figures step down one rung on the scale
   so a value like "−959 000 kr" still fits a cell on one line. */
@media (max-width: 560px) {
  .ckpi { flex-basis: 45%; max-width: none; }
  .ckpi:nth-child(even) { border-right: none; }
  .ckpi-v { font-size: var(--t-2xl); }
}

/* Small section tabs, sitting directly under the header as a compact tab bar. */
.pagehero .sel-tabs { margin: clamp(18px,2.2vw,24px) 0 0; border-bottom: 1px solid var(--line); gap: 2px 20px; }
.pagehero .sel-tab { font-size: var(--t-sm); padding: 0 1px 9px; font-weight: var(--w-semi); }
.pagehero .sel-tab.active { font-weight: var(--w-bold); }

.company-sidebar { display: flex; flex-direction: column; gap: 22px; position: sticky; top: 84px; }
.company-sidebar .card { margin-bottom: 0; }
.valuation-big { font-size: var(--t-3xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); color: var(--blue); }
.valuation-range { font-size: var(--t-md); color: var(--subtle); margin-top: 4px; }

.company-graph-cta { background: linear-gradient(160deg, #0f172a, #16243d); border: none; color: #fff; }
.company-graph-cta h3 { color: #fff; }
.company-graph-cta p { color: var(--subtle); }

/* ── Report shop ────────────────────────────────────────────────────────── */

/* Full-report house-ad card (sidebar). Dark gradient by design intent —
   deliberately a step more premium than the site's white editorial cards. */
.report-cta-pro { position: relative; overflow: hidden; background: linear-gradient(160deg, #0C1322 0%, #111C31 60%, #152741 100%); border: 1px solid #1E293B; border-radius: 0; padding: 24px; color: #fff; }
.rcp-glow { position: absolute; top: -50px; right: -40px; width: 170px; height: 170px; border-radius: 50%; background: radial-gradient(circle, rgba(37,99,235,0.28), transparent 70%); pointer-events: none; }
.rcp-mesh { position: absolute; top: -8px; right: -20px; opacity: 0.55; pointer-events: none; }
.rcp-body { position: relative; }
.rcp-badge { display: inline-flex; align-items: center; gap: 7px; background: rgba(59,130,246,0.16); border: 1px solid rgba(96,165,250,0.35); border-radius: 0; padding: 5px 11px; margin-bottom: 18px; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); color: #BFDBFE; text-transform: uppercase; }
.rcp-dot { width: 6px; height: 6px; border-radius: 50%; background: #4ADE80; box-shadow: 0 0 0 3px rgba(74,222,128,0.2); flex-shrink: 0; }
.rcp-h { margin: 0 0 10px; line-height: 1.08; }
.rcp-h span { display: block; font-size: var(--t-2xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); color: #fff; }
.rcp-h .rcp-company { font-size: var(--t-3xl); color: #3B82F6; }
.rcp-sub { margin: 0 0 20px; font-size: var(--t-md); line-height: 1.55; color: #93A4BC; }
.rcp-features { display: flex; flex-direction: column; gap: 13px; margin-bottom: 22px; }
.rcp-feature { display: flex; align-items: center; gap: 11px; font-size: var(--t-sm); color: #DDE5F0; }
.rcp-feature-icon { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 0; background: rgba(59,130,246,0.16); flex-shrink: 0; }
.rcp-preview { position: relative; margin-bottom: 22px; }
.rcp-preview-shadow { position: absolute; top: 12px; left: 16px; right: -6px; bottom: -7px; background: #B9C6DB; border-radius: 0; transform: rotate(2.5deg); }
.rcp-preview-card { position: relative; background: #fff; border-radius: 0; padding: 14px 15px; box-shadow: 0 14px 30px -14px rgba(0,0,0,0.55); display: flex; align-items: center; gap: 13px; }
.rcp-preview-lines { flex: 1; display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.rcp-preview-brand { display: flex; align-items: center; gap: 6px; margin-bottom: 2px; font-size: var(--t-2xs); font-weight: var(--w-bold); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rcp-preview-brand svg { flex-shrink: 0; width: 13px; height: 13px; }
.rcp-preview-bar { height: 6px; background: #E4E9F1; border-radius: 0; }
.rcp-preview-donut { width: 46px; height: 46px; border-radius: 50%; background: conic-gradient(#2563EB 0 62%, #D7E1F2 62% 100%); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rcp-preview-donut div { width: 26px; height: 26px; border-radius: 50%; background: #fff; }
.rcp-cta { display: flex; align-items: center; justify-content: center; gap: 8px; background: var(--blue); color: #fff; border-radius: 0; padding: 14px; font-size: var(--t-base); font-weight: var(--w-semi); text-decoration: none; box-shadow: 0 10px 24px -10px rgba(37,99,235,0.7); }
.rcp-cta:hover { background: var(--blue-dark); text-decoration: none; }
.rcp-trust { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 14px; font-size: var(--t-xs); color: #8394AD; }

.buy-box { background: #fff; border: 1px solid #e2e8f0; border-radius: 0; padding: 22px; margin-top: 18px; max-width: 460px; }
.buy-price { font-size: var(--t-3xl); font-weight: var(--w-bold); color: var(--navy); margin-bottom: 14px; }
.buy-price span { font-size: var(--t-md); font-weight: var(--w-medium); color: var(--slate); }
.buy-error { background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; border-radius: 0; padding: 9px 12px; font-size: var(--t-md); margin-bottom: 14px; }
.buy-note { background: var(--blue-soft); color: var(--blue-dark); border-radius: 0; padding: 9px 12px; font-size: var(--t-md); margin-bottom: 14px; }
.buy-form { display: flex; flex-direction: column; gap: 10px; }
.buy-form label { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); }
.buy-form input[type="email"] { padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 0; font-size: var(--t-base); }
.buy-consent { display: flex; gap: 9px; align-items: flex-start; font-weight: var(--w-normal) !important; font-size: var(--t-md); color: var(--slate); line-height: 1.5; }
.buy-consent input { margin-top: 3px; flex-shrink: 0; }
.buy-submit { margin-top: 4px; padding: 12px 16px; background: var(--blue); color: #fff; border: none; border-radius: 0; font-size: var(--t-lg); font-weight: var(--w-bold); cursor: pointer; text-align: center; }
.buy-submit:hover { background: var(--blue-dark); text-decoration: none; color: #fff; }
.buy-submit:disabled { background: #94a3b8; cursor: not-allowed; }
.buy-fineprint { font-size: var(--t-sm); color: var(--slate); margin-top: 14px; line-height: 1.5; }

/* ── Auth (login / register) ────────────────────────────────────────────── */
.auth-page { max-width: var(--page-max); margin: 0 auto; padding: 56px var(--page-px) 72px; display: flex; justify-content: center; }
.auth-card { background: var(--surface); border: 1px solid var(--line-soft); border-radius: 0; box-shadow: 0 1px 2px rgba(15,23,42,0.04); padding: 32px; width: 100%; max-width: 420px; }
.auth-card h1 { font-size: var(--t-display-sm); font-weight: var(--w-display); letter-spacing: var(--tr-display); color: var(--navy); }
.auth-sub { font-size: var(--t-base); color: var(--slate); margin: 6px 0 20px; }
.auth-error { background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; border-radius: 0; padding: 9px 12px; font-size: var(--t-md); margin-bottom: 16px; }
.auth-form { display: flex; flex-direction: column; gap: 6px; }
.auth-form label { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); margin-top: 8px; }
.auth-form input { padding: 11px 12px; border: 1px solid var(--strong); border-radius: 0; font-size: var(--t-base); font-family: inherit; }
.auth-form input:focus { outline: none; border-color: #bfdbfe; box-shadow: 0 0 0 3px rgba(37,99,235,0.1); }
.auth-form .btn-blue { margin-top: 16px; }
.auth-alt { font-size: var(--t-md); color: var(--slate); margin-top: 18px; text-align: center; }
.auth-fineprint { font-size: var(--t-sm); color: var(--subtle); margin-top: 14px; line-height: 1.5; text-align: center; }
.auth-banner { background: #fffbeb; border: 1px solid #fde68a; border-radius: 0; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: var(--t-base); color: var(--navy); }
.auth-banner form { margin: 0; }

.person-avatar { width: 54px; height: 54px; border-radius: 50%; background: var(--blue-soft); color: var(--blue); font-size: var(--t-2xl); font-weight: var(--w-bold); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* ── Search page ────────────────────────────────────────────────────────── */
.sok-page { max-width: var(--page-max); margin: 0 auto; padding: 40px var(--page-px) 72px; }
/* Header: the query itself is the headline, as on the editorial pages. */
.sok-resulthead { padding-bottom: 22px; margin-bottom: 26px; border-bottom: 1px solid var(--line); }
.sok-resulthead .sok-eyebrow { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--blue); margin: 0 0 10px; }
.sok-resulthead h1 { font-size: var(--t-display); font-weight: var(--w-display); letter-spacing: var(--tr-display); line-height: 1.05; color: var(--navy); margin: 0 0 10px; overflow-wrap: anywhere; }
.sok-resulthead p { font-size: var(--t-lg); color: var(--muted); margin: 0; }
.sok-resulthead strong { color: var(--navy); font-weight: var(--w-semi); }

.sok-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; align-items: start; }
.sok-layout--full { grid-template-columns: minmax(0, 1fr); }

/* Filter rail: a square list; a selected value turns navy, like the ranking rail. */
.sok-filters { position: sticky; top: 76px; }
.sok-filter-group + .sok-filter-group { margin-top: 24px; }
.sok-filter-title { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); color: var(--subtle); text-transform: uppercase; padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid var(--line); }
.sok-filter-options { display: flex; flex-direction: column; }
.sok-check { display: flex; align-items: center; gap: 10px; padding: 7px 9px; font-size: var(--t-md); font-weight: var(--w-medium); color: var(--muted); }
.sok-check:hover { background: var(--surface); color: var(--navy); text-decoration: none; }
.sok-check.is-active, .sok-check.is-active:hover { background: var(--navy); color: #fff; font-weight: var(--w-semi); }
.sok-check-box { width: 12px; height: 12px; border: 1.5px solid var(--strong); flex-shrink: 0; }
.sok-check.is-active .sok-check-box { border-color: #fff; background: #fff; box-shadow: inset 0 0 0 2px var(--navy); }
.sok-check-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sok-check-count { font-size: var(--t-xs); color: var(--subtle); font-variant-numeric: tabular-nums; }
.sok-check.is-active .sok-check-count { color: var(--strong); }
.sok-filter-clear { display: inline-block; margin-top: 14px; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--blue); }

/* Results: one ranking-style table rather than a stack of cards. */
.sok-results { min-width: 0; }
.sok-table { background: var(--surface); border: 1px solid var(--line); }
.sok-thead, .sok-row { display: grid; grid-template-columns: minmax(0, 1fr) 150px 100px; gap: 16px; align-items: center; padding: 0 18px; }
.sok-thead { padding-top: 9px; padding-bottom: 9px; background: var(--navy); font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; color: var(--strong); }
.sok-row { padding-top: 13px; padding-bottom: 13px; border-top: 1px solid var(--line-soft); color: inherit; }
.sok-thead + .sok-row { border-top: 0; }
.sok-row:hover { background: var(--soft); text-decoration: none; box-shadow: inset 3px 0 0 var(--navy); }
.sok-row-main { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.sok-row-title { display: flex; align-items: center; gap: 9px; min-width: 0; }
.sok-card-name { font-size: var(--t-base); font-weight: var(--w-bold); color: var(--navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sok-row:hover .sok-card-name { color: var(--blue-dark); }
.sok-row.is-inactive .sok-card-name { color: var(--muted); }
.sok-card-meta { font-size: var(--t-sm); color: var(--slate); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sok-num { text-align: right; font-variant-numeric: tabular-nums; }
.sok-rev { font-size: var(--t-base); font-weight: var(--w-bold); color: var(--navy); }
.sok-row .sok-col-emp { font-size: var(--t-md); color: var(--muted); }
.sok-nil { color: var(--faint); font-weight: var(--w-normal); }
.sok-status { flex-shrink: 0; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; padding: 2px 6px; }
.sok-status.active { color: var(--good); background: var(--good-bg); border: 1px solid var(--good-bd); }
.sok-status.bankrupt { color: #991b1b; background: #fee2e2; border: 1px solid #fecaca; }
.sok-status.winding_up, .sok-status.forced_dissolution { color: #b45309; background: #fff7ed; border: 1px solid #fed7aa; }

/* ── Ad slots ───────────────────────────────────────────────────────────── */
/* Live AdSense units: just a label + the <ins>; let AdSense size/fill it,
   and hide the whole unit (label included) when there's no ad to show. */
.ad-unit { margin: 0 0 18px; }
.ad-unit.ad-leaderboard { max-width: 728px; margin: 18px auto; }
.ad-label { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); color: var(--subtle); text-transform: uppercase; margin-bottom: 5px; text-align: center; }
.ad-rect .ad-label { text-align: left; }
.ad-unit .adsbygoogle { display: block; }
.ad-unit.ad-leaderboard .adsbygoogle { margin: 0 auto; }
.ad-unit:has(.adsbygoogle[data-ad-status="unfilled"]) { display: none; }

/* ── House ads (own promos shown while AdSense approval is pending) ───────── */
.ad-house { display: flex; text-decoration: none; color: var(--navy); background: #fff; border: 1px solid var(--line); border-radius: 0; overflow: hidden; margin: 18px 0; transition: border-color .15s, box-shadow .15s; }
.ad-house:hover { text-decoration: none; border-color: #bfd0e8; box-shadow: 0 6px 20px rgba(15,23,42,.07); }
.ad-house .wm { font-weight: var(--w-display); letter-spacing: var(--tr-caps); color: var(--navy); }
.ad-house .wm span { color: var(--blue); }
.ad-house-eyebrow { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; color: var(--blue); }
.ad-house-h { font-weight: var(--w-bold); letter-spacing: var(--tr-tight); }
.ad-house-cta { display: inline-flex; align-items: center; justify-content: center; background: var(--blue); color: #fff; font-weight: var(--w-bold); border-radius: 0; white-space: nowrap; flex: none; }
.ad-house:hover .ad-house-cta { background: var(--blue-dark); }
.ad-house-cta-full { width: 100%; }

/* Leaderboard / in-content horizontal */
.ad-house-lead { width: 100%; max-width: 728px; min-height: 90px; margin: 18px auto; align-items: center; gap: 18px; padding: 0 22px; }
.ad-house-lead .ad-house-brand { display: inline-flex; align-items: center; gap: 10px; flex: none; }
.ad-house-lead .ad-house-divider { width: 1px; height: 42px; background: var(--line); flex: none; }
.ad-house-lead .ad-house-copy { flex: 1; min-width: 0; }
.ad-house-lead .ad-house-h { display: block; font-size: var(--t-xl); line-height: 1.15; }
.ad-house-lead .ad-house-sub { display: block; font-size: var(--t-sm); color: var(--slate); margin-top: 2px; }
.ad-house-lead .ad-house-cta { height: 38px; padding: 0 20px; font-size: var(--t-md); }

/* Medium rectangle / sidebar */
.ad-house-rect { width: 100%; max-width: 336px; min-height: 250px; flex-direction: column; padding: 20px; background: radial-gradient(360px 220px at 100% 0%, var(--blue-soft), #fff); }
.ad-house-rect .ad-house-brand { display: inline-flex; align-items: center; gap: 8px; }
.ad-house-rect .ad-house-rectbody { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 14px 0; }
.ad-house-rect .ad-house-eyebrow { margin-bottom: 8px; }
.ad-house-rect .ad-house-h { display: block; font-size: var(--t-2xl); line-height: 1.1; }
.ad-house-rect .ad-house-sub { display: block; font-size: var(--t-md); color: var(--slate); margin-top: 9px; line-height: 1.45; }
.ad-house-rect .ad-house-cta { height: 42px; font-size: var(--t-base); }

@media (max-width: 560px) {
  .ad-house-lead { gap: 12px; padding: 10px 14px; }
  .ad-house-lead .ad-house-divider, .ad-house-lead .ad-house-sub { display: none; }
  .ad-house-lead .ad-house-h { font-size: var(--t-lg); }
}

/* ── Eierkartet ─────────────────────────────────────────────────────────── */
.owner-map-page .kr-hero { background: linear-gradient(135deg,#0f2942 0%,#173f5f 60%,#1f5f6c 100%); }
.owner-map-page .kr-eyebrow { color: #99f6e4; }
.owner-map-page .kr-eyebrow span { background: #2dd4bf; }
.owner-map-page .kr-kpi .n { color: #0f766e; }
.owner-map-kpis { grid-template-columns: repeat(5,minmax(0,1fr)); }
.owner-industry-section { margin: 46px 0; }
.owner-industry-table { overflow: hidden; border: 1px solid var(--line); border-radius: 0; background: #fff; box-shadow: var(--shadow-sm); }
.owner-industry-head,.owner-industry-row { display: grid; grid-template-columns: minmax(260px,2fr) .6fr repeat(5,.75fr); align-items: center; gap: 12px; padding: 11px 16px; }
.owner-industry-head { background: var(--soft); color: var(--subtle); font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; }
.owner-industry-row { border-top: 1px solid var(--line-soft); color: var(--muted); font-size: var(--t-sm); }
.owner-industry-row > span:first-child { display: grid; gap: 6px; color: var(--navy); font-size: var(--t-md); }
.owner-industry-row i { display: block; height: 3px; max-width: 100%; border-radius: 0; background: linear-gradient(90deg,#0f766e,#5eead4); }
.owner-controller-head,.owner-controller-row { display: grid; grid-template-columns: 42px minmax(260px,1fr) 80px 160px; align-items: center; gap: 12px; padding: 12px 16px; }
.owner-controller-head { background: var(--soft); color: var(--subtle); font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; }
.owner-controller-row { border-top: 1px solid var(--line-soft); color: var(--muted); }
a.owner-controller-row:hover { background: #f0fdfa; text-decoration: none; }
.owner-controller-row .topp-tval { justify-self: end; }
@media (max-width: 820px) {
  .owner-map-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .owner-industry-table { overflow-x: auto; }
  .owner-industry-head,.owner-industry-row { min-width: 820px; }
  .owner-controller-head,.owner-controller-row { grid-template-columns: 34px minmax(190px,1fr) 55px 96px; padding: 11px 12px; }
}
@media (max-width: 560px) {
  .owner-map-kpis { grid-template-columns: 1fr; }
  .owner-controller-head span:nth-child(3),.owner-controller-row > span:nth-child(3) { display: none; }
  .owner-controller-head,.owner-controller-row { grid-template-columns: 30px minmax(0,1fr) 84px; }
}

/* ── About / privacy ────────────────────────────────────────────────────── */
.about-page, .content-page { max-width: 860px; margin: 0 auto; padding: 48px 28px 64px; }
.about-hero { margin-bottom: 40px; }
.about-hero h1, .content-page h1 { font-size: var(--t-display-sm); font-weight: var(--w-display); letter-spacing: var(--tr-display); color: var(--navy); margin-bottom: 14px; }
.about-hero p { font-size: var(--t-read); color: var(--muted); max-width: 620px; }
.about-section, .content-page section { margin-bottom: 32px; }
.about-section h2, .content-page h2 { font-size: var(--t-2xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); margin-bottom: 12px; }
.about-section p, .content-page p { color: var(--muted); margin-bottom: 12px; }
.source-list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.source-list li { font-size: var(--t-base); color: var(--muted); padding-left: 16px; position: relative; }
.source-list li::before { content: "·"; position: absolute; left: 0; color: var(--blue); font-weight: var(--w-bold); }
.about-inner { display: grid; grid-template-columns: 1fr auto; gap: 36px; align-items: center; }
.about-text h2 { font-size: var(--t-2xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); margin: 24px 0 12px; }
.about-text h2:first-child { margin-top: 0; }
.about-products { margin-bottom: 32px; }
.about-products h2 { font-size: var(--t-2xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); margin-bottom: 16px; }
.product-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.product-card-about, .about-data { background: var(--surface); border: 1px solid var(--line-soft); border-radius: 0; padding: 26px; box-shadow: 0 1px 2px rgba(15,23,42,0.04); }
.product-card-about h3 { font-size: var(--t-xl); font-weight: var(--w-bold); margin-bottom: 10px; }
.product-card-about p { font-size: var(--t-base); color: var(--muted); margin-bottom: 18px; line-height: 1.6; }
.about-data h2 { font-size: var(--t-xl); font-weight: var(--w-bold); margin-bottom: 14px; }
.portfolio-big { font-size: var(--t-3xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); color: var(--blue); }

/* ── Footer ─────────────────────────────────────────────────────────────── */
.sitefooter { background: var(--navy); color: var(--subtle); margin-top: 64px; }
.footer-inner { max-width: var(--page-max); margin: 0 auto; padding: 48px var(--page-px) 0; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1.3fr; gap: 32px; padding-bottom: 36px; border-bottom: 1px solid #1e293b; }
.footer-brand .wordmark { color: #fff; font-size: var(--t-xl); }
.footer-brand p { font-size: var(--t-md); margin-top: 10px; color: var(--slate); max-width: 240px; line-height: 1.6; }
.footer-links { display: flex; flex-direction: column; gap: 9px; }
.footer-links h4 { color: #fff; font-size: var(--t-xs); font-weight: var(--w-bold); text-transform: uppercase; letter-spacing: var(--tr-caps); margin-bottom: 4px; }
.footer-links a { font-size: var(--t-md); color: var(--subtle); }
.footer-links a:hover { color: #fff; text-decoration: none; }
.footer-contact span { font-size: var(--t-md); color: var(--slate); line-height: 1.5; }
.footer-bottom { max-width: var(--page-max); margin: 0 auto; padding: 18px var(--page-px) 24px; display: flex; justify-content: space-between; align-items: center; font-size: var(--t-sm); color: var(--slate); }
.footer-bottom a { color: var(--subtle); }

/* ============================================================================
   Landing (home) — light, airy marketing front
   ========================================================================== */
.lp-hero { position: relative; background: radial-gradient(750px 420px at 88% -8%, var(--blue-soft) 0%, #fff 62%); }
/* Clip the motif only — not the hero — so the hero search dropdown can overflow. */
.lp-hero-motif-wrap { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.lp-hero-motif { position: absolute; top: -15px; right: -45px; opacity: 0.55; pointer-events: none; }
.lp-hero-grid { position: relative; max-width: 1000px; margin: 0 auto; padding: 48px 28px 40px; display: grid; grid-template-columns: 1.04fr 0.96fr; gap: 48px; align-items: center; }
.lp-eyebrow { display: inline-block; font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); color: var(--blue); text-transform: uppercase; }
.lp-hero h1 { margin: 18px 0; font-size: var(--t-display); line-height: 1.08; letter-spacing: var(--tr-display); font-weight: var(--w-display); color: var(--navy); }
.lp-hero-lead { margin: 0 0 26px; font-size: var(--t-read); line-height: 1.6; color: var(--muted); max-width: 440px; }
.lp-hero-form { display: flex; gap: 10px; max-width: 440px; }
.lp-hero-form .wrap { position: relative; flex: 1; display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 0 6px 0 14px; height: 46px; box-shadow: 0 4px 16px -8px rgba(15,23,42,0.2); }
.lp-hero-form .wrap:focus-within { border-color: #bfdbfe; box-shadow: 0 0 0 3px rgba(37,99,235,0.12); }
.lp-hero-form input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font-size: var(--t-lg); color: var(--navy); font-family: inherit; }
.lp-hero-form .search-icon { width: 16px; height: 16px; color: var(--subtle); flex-shrink: 0; }
.lp-hero-form button { background: var(--navy); color: #fff; border: 0; border-radius: 0; padding: 0 18px; height: 38px; font-size: var(--t-base); font-weight: var(--w-semi); cursor: pointer; font-family: inherit; }
.lp-hero-form button:hover { background: var(--ink-hover); }
.lp-hero-hint { margin-top: 16px; font-size: var(--t-md); color: var(--subtle); }
.lp-hero-hint a { color: var(--muted); }

.lp-window { background: #fff; border: 1px solid var(--line); border-radius: 0; box-shadow: 0 28px 56px -26px rgba(15,23,42,0.34), 0 4px 12px -4px rgba(15,23,42,0.08); overflow: hidden; }
.lp-window-bar { background: var(--navy); padding: 12px 15px; display: flex; align-items: center; gap: 10px; }
.lp-window-bar .field { flex: 1; background: #1e293b; border: 1px solid #334155; border-radius: 0; padding: 7px 10px; font-size: var(--t-sm); color: var(--strong); }
.lp-window-bar .go { background: var(--blue); color: #fff; border-radius: 0; padding: 7px 12px; font-size: var(--t-sm); font-weight: var(--w-semi); }
.lp-window-body { padding: 15px; }
.lp-firm-row { border: 1px solid var(--line); border-radius: 0; padding: 13px; display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.lp-firm-name { font-size: var(--t-base); font-weight: var(--w-bold); }
.lp-firm-org { font-size: var(--t-sm); color: var(--subtle); margin-top: 2px; }
.lp-pill { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--good); background: var(--good-bg); border: 1px solid var(--good-bd); border-radius: 0; padding: 4px 9px; }
.lp-mini-label { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; margin: 0 2px 9px; }
.lp-mini-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 9px; }
.lp-mini-cell { border: 1px solid var(--line); border-radius: 0; padding: 11px; }
.lp-mini-cell .k { font-size: var(--t-2xs); color: var(--subtle); font-weight: var(--w-semi); }
.lp-mini-cell .v { font-size: var(--t-xl); font-weight: var(--w-bold); margin: 3px 0 6px; }
.lp-mini-rate { font-size: var(--t-2xs); font-weight: var(--w-bold); border-radius: 0; padding: 3px 7px; }
.lp-mini-rate.good { color: var(--good); background: var(--good-bg); }
.lp-mini-rate.neutral { color: var(--muted); background: #f1f5f9; }

.lp-section { max-width: 1000px; margin: 0 auto; padding: 56px 28px; }
.lp-section.soft { background: var(--soft); max-width: none; }
.lp-section.soft > .inner { max-width: 1000px; margin: 0 auto; }
.lp-section-head { max-width: 560px; margin-bottom: 40px; }
.lp-section-head h2, .lp-section.center h2 { font-size: var(--t-3xl); line-height: 1.2; letter-spacing: var(--tr-display); font-weight: var(--w-display); color: var(--navy); margin: 12px 0; }
.lp-section-head p, .lp-section.center p { font-size: var(--t-lg); line-height: 1.6; color: var(--muted); }
.lp-section.center { text-align: center; }
.lp-section.center h2 { max-width: 520px; margin-left: auto; margin-right: auto; }
.lp-section.center > p { max-width: 460px; margin: 0 auto 36px; }

.lp-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lp-feature { background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 26px; }
.lp-feature-icon { width: 42px; height: 42px; border-radius: 0; background: var(--blue-soft); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.lp-feature h3 { font-size: var(--t-xl); font-weight: var(--w-bold); margin-bottom: 8px; }
.lp-feature p { font-size: var(--t-base); line-height: 1.6; color: var(--muted); }

/* Landing — "Plattformen" showcase (search → detail in one window) */
.lp-showcase .lp-show-window { margin-top: 8px; text-align: left; background: #fff; border: 1px solid var(--line); border-radius: 0; box-shadow: 0 30px 60px -27px rgba(15,23,42,0.32), 0 5px 12px -5px rgba(15,23,42,0.07); overflow: hidden; }
.lp-show-bar { background: var(--navy); padding: 11px 15px; display: flex; align-items: center; gap: 12px; }
.lp-show-brand { display: inline-flex; align-items: center; gap: 7px; font-weight: var(--w-display); font-size: var(--t-md); letter-spacing: var(--tr-caps); color: #fff; white-space: nowrap; }
.lp-show-brand span { color: #60a5fa; }
.lp-show-search { flex: 1; min-width: 0; background: #1e293b; border: 1px solid #334155; border-radius: 0; padding: 7px 10px; font-size: var(--t-sm); color: var(--strong); display: flex; align-items: center; gap: 6px; }
.lp-show-search > i { color: #64748b; font-style: normal; }
.lp-show-navlink { font-size: var(--t-sm); color: #94a3b8; white-space: nowrap; }
.lp-show-body { display: grid; grid-template-columns: 230px 1fr; }
.lp-show-results { background: var(--soft); border-right: 1px solid var(--line); padding: 14px; }
.lp-show-res { border: 1px solid var(--line); border-radius: 0; padding: 9px 10px; margin-bottom: 6px; background: #fff; }
.lp-show-res:last-child { margin-bottom: 0; }
.lp-show-res.is-active { background: var(--blue-soft); border-color: #bfdbfe; border-left: 2.5px solid var(--blue); }
.lp-show-res .n { font-size: var(--t-sm); font-weight: var(--w-bold); color: var(--navy); }
.lp-show-res .o { font-size: var(--t-xs); color: var(--subtle); margin-top: 2px; }
.lp-show-detail { padding: 22px; }
.lp-show-detail-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 9px; margin-bottom: 6px; }
.lp-show-detail-head h3 { font-size: var(--t-xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); color: var(--navy); margin: 0 0 3px; }
.lp-show-sub { font-size: var(--t-sm); color: var(--subtle); }
.lp-show-cols { display: grid; grid-template-columns: 1.15fr 1fr; gap: 20px; margin-top: 18px; }
.lp-show-health { display: flex; flex-direction: column; gap: 8px; }
.lp-show-hrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid var(--line); border-radius: 0; padding: 11px 12px; }
.lp-show-hrow .k { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--navy); }
.lp-show-hrow .s { font-size: var(--t-xs); color: var(--subtle); margin-top: 1px; }
.lp-show-owner { background: var(--soft); border: 1px solid var(--line); border-radius: 0; padding: 14px; display: flex; flex-direction: column; }
.lp-show-owner svg { width: 100%; flex: 1; min-height: 120px; margin: 4px 0; }
.lp-show-ownercap { font-size: var(--t-xs); color: var(--subtle); }

.lp-stats { background: var(--soft); border-top: 1px solid var(--hair); }
.lp-stats-inner { max-width: 1000px; margin: 0 auto; padding: 40px 28px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; text-align: center; }
.lp-stat .num { font-size: var(--t-3xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); color: var(--navy); }
.lp-stat .cap { font-size: var(--t-base); color: var(--slate); margin-top: 5px; }

.lp-cta-wrap { background: #fff; }
.lp-cta { max-width: 1000px; margin: 0 auto; background: #f1f5f9; border: 1px solid var(--line-soft); border-radius: 0; padding: 30px 28px; text-align: center; }
.lp-cta h2 { font-size: var(--t-2xl); line-height: 1.2; letter-spacing: var(--tr-tight); font-weight: var(--w-bold); color: var(--navy); max-width: 460px; margin: 0 auto 8px; }
.lp-cta p { font-size: var(--t-base); line-height: 1.6; color: var(--muted); max-width: 420px; margin: 0 auto 20px; }
.lp-cta-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ── Landing: topplister teaser ──────────────────────────────────────────── */
.lp-topp { background: #fff; border-top: 1px solid var(--hair); }
.lp-topp-inner { max-width: 1000px; margin: 0 auto; padding: 56px 28px; }
.lp-topp-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-bottom: 24px; }
.lp-topp-head .txt { max-width: 560px; }
.lp-topp-head h2 { font-size: var(--t-3xl); line-height: 1.2; letter-spacing: var(--tr-display); font-weight: var(--w-display); color: var(--navy); margin: 12px 0; }
.lp-topp-head p { font-size: var(--t-lg); line-height: 1.6; color: var(--muted); }
.lp-topp-alllink { font-size: var(--t-base); font-weight: var(--w-semi); color: var(--blue); white-space: nowrap; }

.lp-topp-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.lp-topp-tab { font-size: var(--t-md); font-weight: var(--w-medium); color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 8px 14px; white-space: nowrap; }
.lp-topp-tab:hover { border-color: var(--strong); color: var(--navy); text-decoration: none; }
.lp-topp-tab.is-active { background: var(--blue-soft); color: var(--blue-dark); border-color: #bfdbfe; font-weight: var(--w-bold); }

.lp-topp-filters { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-bottom: 16px; margin-bottom: 4px; border-bottom: 1px solid var(--line-soft); }
.lp-topp-filterlabel { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; margin-right: 2px; }
.lp-topp-chip { font-size: var(--t-sm); font-weight: var(--w-medium); color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 6px 12px; white-space: nowrap; }
.lp-topp-chip:hover { border-color: var(--strong); color: var(--navy); text-decoration: none; }
.lp-topp-chip.is-active { background: var(--navy); color: #fff; border-color: var(--navy); }

.lp-topp-list { border: 1px solid var(--line-soft); border-radius: 0; overflow: hidden; margin-top: 16px; }
.lp-topp-listhead { display: grid; grid-template-columns: 44px 1fr 150px; gap: 12px; padding: 10px 16px; background: var(--soft); border-bottom: 1px solid var(--line-soft); font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; }
.lp-topp-rh { text-align: right; }
.lp-topp-row { display: grid; grid-template-columns: 44px 1fr 150px; gap: 12px; align-items: center; padding: 11px 16px; border-bottom: 1px solid #f1f5f9; }
.lp-topp-row:last-child { border-bottom: none; }
.lp-topp-row:hover { background: var(--soft); text-decoration: none; }
.lp-topp-rank { font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); }
.lp-topp-rank.top3 { color: var(--blue); }
.lp-topp-name { display: block; font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lp-topp-meta { display: block; font-size: var(--t-xs); color: var(--subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
.lp-topp-val { text-align: right; font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); }

@media (max-width: 720px) {
  .lp-topp-inner { padding: 40px 20px; }
}

/* ── Front page: search and live ownership ─────────────────────────────────
   The hp- namespace is exclusive to the live homepage; /v1 uses lp-.
   Keep the graph and search as live UI, with news and register data below. */
body:has(.hp-hero) .topbar-inner { max-width: 1304px; }
.hp-hero { background: var(--navy); color: #fff; }
.hp-wire-inner, .hp-hero-grid, .hp-proof-inner, .hp-band-inner { max-width: 1304px; margin: 0 auto; padding-left: 28px; padding-right: 28px; }
.hp-wire-inner { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 18px; padding-top: 36px; padding-bottom: 36px; font-size: var(--t-base); color: #b8c7d9; }
.hp-wire-date { font-weight: var(--w-bold); color: #fff; }
.hp-wire-tagline { margin-left: auto; font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; }
.hp-hero-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 48px; align-items: center; padding-bottom: 40px; }
.hp-hero-grid.is-solo { grid-template-columns: 1fr; }
.hp-hero-grid.is-solo .hp-hero-copy { max-width: 760px; }
.hp-eyebrow { display: block; margin: 0; font-size: var(--t-sm); line-height: 1.5; font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); color: var(--blue); text-transform: uppercase; }
.hp-hero .hp-eyebrow { color: #7dccff; }
.hp-hero h1 { margin: 14px 0 20px; font-size: var(--t-display-lg); line-height: 1.06; letter-spacing: var(--tr-display); font-weight: var(--w-display); color: #fff; }
.hp-hero-lead { margin: 0 0 26px; font-size: clamp(18px, 1.8vw, 26px); line-height: 1.4; color: #d6e3f2; max-width: 640px; }
.hp-hero-form { display: flex; gap: 12px; }
.hp-hero-form .wrap { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 0 16px; height: 60px; }
.hp-hero-form .wrap:focus-within { border-color: #7dccff; outline: 3px solid #7dccff; outline-offset: 3px; }
.hp-hero-form input { flex: 1; min-width: 0; width: 100%; height: 100%; border: 0; outline: none; background: transparent; font-size: 18px; color: var(--navy); font-family: inherit; }
.hp-hero-form input::placeholder { color: var(--muted); opacity: 1; }
.hp-hero-form .search-icon { width: 20px; height: 20px; color: var(--muted); flex-shrink: 0; }
.hp-hero-form button { background: var(--blue); color: #fff; border: 0; border-radius: var(--r-sm); padding: 0 32px; height: 60px; font-size: 18px; font-weight: var(--w-semi); cursor: pointer; font-family: inherit; }
.hp-hero-form button:hover { background: var(--blue-dark); }
.hp-hero-hint { margin: 18px 0 0; font-size: var(--t-base); color: #d6e3f2; }
.hp-hero-hint a { color: #7dccff; margin: 0 6px; text-decoration: underline; text-underline-offset: 4px; }
.hp-hero a:focus-visible, .hp-hero button:focus-visible { outline: 3px solid #7dccff; outline-offset: 5px; }
.hp-hero-hint a:hover, .hp-ownership-link:hover { color: #fff; }
.hp-ownership { min-width: 0; border-left: 1px solid #3b5067; padding-left: 48px; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.hp-ownership-link { display: block; text-align: center; margin-top: 14px; font-size: var(--t-lg); font-weight: var(--w-semi); color: #7dccff; }

/* The existing interactive ownership diagram, sized to the hero column.
   Multiple owners and holdings retain their real branches and links. */
.hp-graph { display: flex; flex-direction: column; align-items: center; padding: 24px 0 0; }
.hp-gtier { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); position: relative; width: min(100%, calc(var(--n) * 280px)); }
.hp-gtier.is-owners::after { content: ""; position: absolute; bottom: 0; left: calc(50% / var(--n)); right: calc(50% / var(--n)); height: 1px; background: #a9bfd6; }
.hp-gtier.is-holdings::before { content: ""; position: absolute; top: 0; left: calc(50% / var(--n)); right: calc(50% / var(--n)); height: 1px; background: #a9bfd6; }
.hp-gbranch { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 0 4px; }
.hp-gnode { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; min-height: 68px; padding: 14px 12px; background: #fff; border: 1px solid #c7d2e0; border-radius: var(--r-sm); text-align: center; box-sizing: border-box; }
.hp-gnode:hover { border-color: #7dccff; box-shadow: 0 0 0 2px #7dccff; text-decoration: none; }
.hp-gnode .n { font-size: var(--t-base); font-weight: var(--w-bold); line-height: 1.3; color: var(--navy); overflow-wrap: anywhere; }
.hp-gnode .s { font-size: var(--t-sm); line-height: 1.4; color: var(--muted); margin-top: 4px; overflow-wrap: anywhere; }
.hp-gnode.is-person { background: #f4f7fb; }
.hp-gnode.is-unknown { background: var(--soft); border-style: dashed; }
.hp-gnode.is-focus { width: min(340px, 100%); min-height: 96px; background: transparent; border-color: #c7d2e0; }
.hp-gnode.is-focus .n { color: #fff; }
.hp-gnode.is-focus .s { color: #b8c7d9; }
.hp-glink { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 72px; }
.hp-gtier.is-owners .hp-glink { flex: 1; }
.hp-glink::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: #a9bfd6; }
.hp-gpct { position: relative; z-index: 1; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--navy); background: #ddecfa; border-radius: 0; padding: 3px 8px; }
.hp-gstem { width: 1px; height: 18px; background: #a9bfd6; }
.hp-gempty { margin: 0 0 18px; font-size: var(--t-sm); color: #b8c7d9; }
.hp-gmore { margin-top: 14px; font-size: var(--t-sm); font-weight: var(--w-semi); color: #7dccff; }
.hp-ownership.is-expanded .hp-gnode { padding: 10px 7px; }
.hp-ownership.is-expanded .hp-gtier .n { font-size: var(--t-sm); }
.hp-ownership.is-expanded .hp-glink { min-height: 38px; }

/* Dataset provenance bridges the dark hero and editorial content. */
.hp-proof { background: #fff; border-bottom: 1px solid var(--line); }
.hp-proof-inner { display: grid; grid-template-columns: 1fr 1fr 1fr; padding-top: 28px; padding-bottom: 28px; }
.hp-proof-item { display: flex; align-items: flex-start; justify-content: center; gap: 22px; padding: 0 24px; font-size: var(--t-base); font-weight: var(--w-medium); color: var(--navy); }
.hp-proof-item + .hp-proof-item { border-left: 1px solid var(--line); }
.hp-proof-item b { font-size: var(--t-3xl); line-height: 1; font-weight: var(--w-display); letter-spacing: var(--tr-tight); white-space: nowrap; }
.hp-proof-item small { display: block; margin-top: 5px; font-size: var(--t-sm); font-weight: var(--w-normal); color: var(--muted); }

/* Shared lower sections stay on one aligned, unboxed surface. */
.hp-band { border-top: 1px solid var(--hair); background: #fff; }
.hp-band-inner { padding-top: 36px; padding-bottom: 40px; }
.hp-band-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 24px; }
.hp-band-head .txt { min-width: 0; }
.hp-band-head h2 { font-size: var(--t-3xl); line-height: 1.2; letter-spacing: var(--tr-tight); font-weight: var(--w-display); color: var(--navy); margin: 8px 0 0; }
.hp-band-head p { font-size: var(--t-lg); line-height: 1.5; color: var(--muted); margin: 8px 0 0; }
.hp-band-all { font-size: var(--t-base); font-weight: var(--w-semi); color: var(--blue); }
.hp-activity { border-top: 0; }
.hp-activity .hp-band-head h2 { font-size: var(--t-4xl); }
.hp-activity-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 32px; }
.hp-activity-grid.is-solo { grid-template-columns: 1fr; }
.hp-live { min-width: 0; }
.hp-live-head, .hp-activity-register-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 0 0 14px; border-bottom: 1px solid var(--line); }
.hp-live-head h3, .hp-activity-register h3 { margin: 0; font-size: var(--t-xl); font-weight: var(--w-bold); color: var(--navy); }
.hp-live-stamp, .hp-activity-register-head > span { font-size: var(--t-sm); color: var(--muted); }
.hp-live-list { list-style: none; margin: 0; padding: 0; }
.hp-live-item { padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.hp-live-title { display: block; font-size: var(--t-lg); font-weight: var(--w-semi); line-height: 1.4; color: var(--navy); }
.hp-live-title:hover { color: var(--blue-dark); }
.hp-live-meta { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin-top: 4px; font-size: var(--t-sm); color: var(--muted); }
.hp-live-meta > span::before { content: "·"; margin-right: 6px; }
.hp-live-company { display: inline-flex; flex-wrap: wrap; gap: 4px 8px; max-width: 100%; margin-left: 8px; font-size: var(--t-xs); line-height: 1.4; }
.hp-live-company-name { color: var(--blue-dark); font-weight: var(--w-semi); overflow-wrap: anywhere; }
.hp-live-all, .hp-activity-all { display: inline-block; margin-top: 18px; font-size: var(--t-base); font-weight: var(--w-semi); color: var(--blue); }
.hp-activity-register { border-left: 1px solid var(--line); padding-left: 32px; }
.hp-activity-grid.is-solo .hp-activity-register { border: 0; padding-left: 0; }
.hp-activity-counts { margin: 0; }
.hp-activity-counts > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: baseline; column-gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.hp-activity-counts dt { grid-column: 2; grid-row: 1; color: var(--navy); font-size: var(--t-lg); }
.hp-activity-counts dt a { color: inherit; }
.hp-activity-counts dt a:hover { color: var(--blue); }
.hp-activity-counts dd { grid-column: 1; grid-row: 1; margin: 0; font-size: var(--t-3xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); color: var(--navy); }

/* Trending names form a quiet rail after the news, rather than hero cards. */
.hp-rail { margin-top: 32px; border-top: 1px solid var(--line); padding-top: 20px; }
.hp-rail-label { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--muted); text-transform: uppercase; padding-bottom: 14px; }
.hp-rail-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.hp-rail-list li + li { border-left: 1px solid var(--line); }
.hp-rail-list a { display: flex; flex-direction: column; height: 100%; padding: 4px 16px; }
.hp-rail-list li:first-child a { padding-left: 0; }
.hp-rail-list a:hover { background: var(--soft); text-decoration: none; }
.hp-rail-name { font-size: var(--t-sm); font-weight: var(--w-semi); line-height: 1.4; color: var(--navy); overflow-wrap: anywhere; }
.hp-rail-foot { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: space-between; gap: 6px; margin-top: auto; padding-top: 12px; }
.hp-rail-mentions { font-size: var(--t-xs); color: var(--muted); }
.hp-rail-trend { font-size: var(--t-xs); font-weight: var(--w-bold); color: var(--muted); }
.hp-rail-trend.is-up { color: var(--good); }

/* ── Top lists ───────────────────────────────────────────────────────────── */
.hp-topp-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 18px; }
.hp-topp-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.hp-topp-tab { font-size: var(--t-md); font-weight: var(--w-medium); color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 6px 12px; white-space: nowrap; }
.hp-topp-tab:hover { border-color: var(--strong); color: var(--navy); text-decoration: none; }
.hp-topp-tab.is-active { background: var(--blue-soft); color: var(--blue-dark); border-color: #bfdbfe; font-weight: var(--w-bold); }
.hp-topp-filters { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.hp-topp-filterlabel { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; margin-right: 2px; }
.hp-topp-chip { font-size: var(--t-sm); font-weight: var(--w-medium); color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 5px 10px; white-space: nowrap; }
.hp-topp-chip:hover { border-color: var(--strong); color: var(--navy); text-decoration: none; }
.hp-topp-chip.is-active { background: var(--navy); color: #fff; border-color: var(--navy); }
.hp-topp-list { border: 1px solid var(--line-soft); border-radius: 0; overflow: hidden; margin-top: 12px; }
.hp-topp-listhead { display: grid; grid-template-columns: 40px 1fr 150px; gap: 12px; padding: 5px 14px; background: var(--soft); border-bottom: 1px solid var(--line-soft); font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; }
.hp-topp-rh { text-align: right; }
.hp-topp-row { display: grid; grid-template-columns: 40px 1fr 150px; gap: 12px; align-items: center; padding: 6px 14px; border-bottom: 1px solid #f1f5f9; }
.hp-topp-row:last-child { border-bottom: none; }
.hp-topp-row:hover { background: var(--soft); text-decoration: none; }
.hp-topp-rank { font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); }
.hp-topp-rank.top3 { color: var(--blue); }
.hp-topp-name { display: block; font-size: var(--t-md); line-height: 1.3; font-weight: var(--w-semi); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hp-topp-meta { display: block; font-size: var(--t-xs); line-height: 1.3; color: var(--subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hp-topp-val { text-align: right; font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); }
.hp-topp-full { display: block; padding: 8px 14px; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--blue); background: var(--soft); border-top: 1px solid var(--line-soft); }
.hp-topp-full:hover { background: var(--blue-soft); text-decoration: none; }

/* ── Register band ───────────────────────────────────────────────────────── */
.hp-reg-band { background: var(--soft); }
.hp-reg-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.hp-reg-col { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 12px 16px 10px; }
.hp-reg-colhead { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--line-soft); }
.hp-reg-colhead h3 { margin: 0; font-size: var(--t-xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); color: var(--navy); }
.hp-reg-colhead a { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--blue); white-space: nowrap; }
.hp-reg-list { list-style: none; margin: 0; padding: 0; flex: 1; counter-reset: hpreg; }
.hp-reg-list > li { counter-increment: hpreg; border-bottom: 1px solid #f1f5f9; }
.hp-reg-list > li:last-child { border-bottom: none; }
.hp-reg-list a { display: grid; grid-template-columns: 20px 1fr auto; grid-template-areas: "n name val" "n meta val"; column-gap: 10px; align-items: baseline; padding: 6px 0; }
.hp-reg-list a:hover { text-decoration: none; }
.hp-reg-list a:hover .hp-reg-name { color: var(--blue-dark); }
.hp-reg-list a::before { grid-area: n; content: counter(hpreg); font-size: var(--t-xs); font-weight: var(--w-bold); color: var(--faint); }
.hp-reg-name { grid-area: name; font-size: var(--t-md); line-height: 1.3; font-weight: var(--w-semi); color: var(--navy); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hp-reg-meta { grid-area: meta; font-size: var(--t-xs); line-height: 1.3; color: var(--subtle); }
.hp-reg-val { grid-area: val; align-self: center; text-align: right; font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); white-space: nowrap; }
.hp-reg-val.is-up { color: var(--good); }
.hp-reg-foot { margin: 8px 0 0; font-size: var(--t-xs); line-height: 1.4; color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── Explore tiles ───────────────────────────────────────────────────────── */
.hp-explore { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.hp-tile { display: block; background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 10px 14px 11px; }
.hp-tile:hover { border-color: #bfdbfe; box-shadow: 0 10px 24px -18px rgba(15,23,42,0.4); text-decoration: none; }
.hp-tile-top { display: flex; align-items: center; gap: 10px; }
.hp-tile-icon { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 0; background: var(--blue-soft); flex-shrink: 0; }
.hp-tile-icon svg { width: 16px; height: 16px; }
.hp-tile-title { font-size: var(--t-xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); color: var(--navy); }
.hp-tile-desc { display: block; font-size: var(--t-sm); line-height: 1.35; color: var(--muted); margin-top: 4px; }

/* ── Closing strip ───────────────────────────────────────────────────────── */
.hp-close { background: var(--navy); }
.hp-close-inner { max-width: 1304px; margin: 0 auto; padding: 16px 28px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 28px; }
.hp-close-title { margin: 0; color: #fff; font-size: var(--t-2xl); font-weight: var(--w-bold); }
.hp-close-stats { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 22px; font-size: var(--t-sm); color: #94a3b8; }
.hp-close-stats b { font-size: var(--t-xl); font-weight: var(--w-display); letter-spacing: var(--tr-tight); color: #fff; margin-right: 4px; }
.hp-close-actions { display: flex; align-items: center; gap: 16px; }
.hp-close-link { font-size: var(--t-base); font-weight: var(--w-semi); color: #cbd5e1; }
.hp-close-link:hover { color: #fff; }
/* The strip is the same navy as the footer, so the site-wide 64px gap between
   main and the footer would cut a pale seam through one dark block. And on a
   window tall enough to trigger main's sticky-footer min-height, the strip
   absorbs the slack instead of letting page background show through below it. */
main:has(> .hp-close) { display: flex; flex-direction: column; }
main:has(> .hp-close) > * { flex-shrink: 0; }
main:has(> .hp-close) > .hp-close { flex-grow: 1; display: flex; align-items: center; }
main:has(> .hp-close) > .hp-close > .hp-close-inner { width: 100%; }
main:has(> .hp-close) + .sitefooter { margin-top: 0; }

@media (max-width: 1100px) {
  .hp-hero-grid { gap: 32px; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .hp-ownership { padding-left: 32px; }
  .hp-hero h1 { font-size: 46px; }
  .hp-wire-tagline { display: none; }
  .hp-proof-item { gap: 12px; padding: 0 16px; }
  .hp-rail-list { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 20px; }
  .hp-rail-list li:nth-child(4) { border-left: 0; }
  .hp-rail-list li:nth-child(4) a { padding-left: 0; }
}
@media (max-width: 800px) {
  .hp-hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .hp-hero h1 { font-size: var(--t-display-lg); max-width: 680px; }
  .hp-hero-lead { font-size: 20px; }
  .hp-ownership { border-left: 0; border-top: 1px solid #3b5067; padding: 28px 0 0; }
  .hp-graph { width: min(520px, 100%); margin: 0 auto; }
  .hp-ownership .hp-eyebrow { text-align: center; }
  .hp-activity-grid { grid-template-columns: 1fr; gap: 32px; }
  .hp-activity-register { border-left: 0; padding-left: 0; }
  .hp-proof-inner { grid-template-columns: 1fr 1fr; gap: 24px 0; }
  .hp-proof-item { justify-content: flex-start; padding: 0 20px 0 0; }
  .hp-proof-item:nth-child(2) { padding-left: 20px; }
  .hp-proof-item:last-child { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--line); padding: 16px 0 0; }
  .hp-explore { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .hp-wire-inner, .hp-hero-grid, .hp-proof-inner, .hp-band-inner { padding-left: 20px; padding-right: 20px; }
  .hp-wire-inner { padding-top: 24px; padding-bottom: 28px; font-size: var(--t-sm); }
  .hp-hero-grid { padding-bottom: 32px; }
  .hp-hero h1 { font-size: 36px; line-height: 1.1; }
  .hp-hero-lead { font-size: 18px; }
  .hp-hero-form { gap: 8px; }
  .hp-hero-form .wrap { height: 54px; padding: 0 10px; gap: 8px; }
  .hp-hero-form input { font-size: 16px; }
  .hp-hero-form button { height: 54px; padding: 0 16px; font-size: var(--t-base); }
  .hp-hero-form .search-icon { width: 16px; height: 16px; }
  .hp-proof-item { gap: 10px; font-size: var(--t-sm); flex-direction: column; }
  .hp-proof-item b { font-size: var(--t-2xl); }
  .hp-proof-item small { font-size: var(--t-xs); }
  .hp-band-head h2, .hp-activity .hp-band-head h2 { font-size: var(--t-3xl); }
  .hp-rail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hp-rail-list li:nth-child(n) { border-left: 1px solid var(--line); }
  .hp-rail-list li:nth-child(n) a { padding: 4px 12px; }
  .hp-rail-list li:nth-child(odd) { border-left: 0; }
  .hp-rail-list li:nth-child(odd) a { padding-left: 0; }
  .hp-reg-cols, .hp-explore { grid-template-columns: 1fr; }
  .hp-topp-listhead, .hp-topp-row { grid-template-columns: 24px 1fr 100px; gap: 8px; padding-left: 10px; padding-right: 10px; }
  .hp-close-inner { padding: 24px 20px; }
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 920px) {
  .company-page-inner { grid-template-columns: 1fr; }
  .company-sidebar { position: static; }
}
@media (max-width: 860px) {
  .sok-layout { grid-template-columns: 1fr; gap: 24px; }
  .sok-filters { position: static; }
  .sok-filter-options { max-height: 232px; overflow-y: auto; }
  .sok-thead, .sok-row { grid-template-columns: minmax(0, 1fr) auto; padding-left: 14px; padding-right: 14px; }
  .sok-col-emp { display: none; }
  .lp-hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .lp-features { grid-template-columns: 1fr; }
  .lp-stats-inner { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; }
  .lp-show-body { grid-template-columns: 1fr; }
  .lp-show-results { border-right: none; border-bottom: 1px solid var(--line); }
  .lp-show-cols { grid-template-columns: 1fr; }
}
/* The desktop nav needs ~1010px to lay out: brand (154) + links (517) + gaps
   and gutters, plus a search field wide enough to type in. It used to collapse
   at 720px, so every viewport from 721px up to about 1010 — the whole tablet
   range and small laptops — pushed the nav past the right edge and gave every
   page a horizontal scrollbar. Measured across /, a company page and a ranking
   page; 1024 is the first standard stop that clears it everywhere. */
@media (max-width: 1024px) {
  .topnav { display: none; }
  .mobile-menu { display: block; }
}
@media (max-width: 720px) {
  .fin-grid { grid-template-columns: repeat(2, 1fr); }
  .two-col-grid { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr; gap: 28px; }
  .info-grid { grid-template-columns: 110px 1fr; }
}

/* ============================================================================
   Company page — tabbed redesign (flat, compact, professional density)
   ========================================================================== */
.company-page { padding: 18px 28px 52px; }
.company-page-inner { grid-template-columns: 1fr 312px; gap: 18px; }
.company-main { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.company-main > .card { margin-bottom: 0; }
.company-sidebar { gap: 14px; top: 84px; }
.company-sidebar > .card, .company-sidebar > .ad-unit, .company-sidebar > .ad-house { margin-bottom: 0; }

/* flatter, tighter cards on the app page */
.company-page .card { border-radius: 0; padding: 16px; box-shadow: none; }
.card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.card-head h2 { margin-bottom: 0; }
.card-sub { color: var(--subtle); font-weight: var(--w-semi); font-size: var(--t-sm); }
.card-meta { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; }

/* header: smaller heading, neutral grey icon chip */
.company-header { margin-bottom: 18px; }
.company-icon { width: 54px; height: 54px; border-radius: 0; background: #f1f5f9; border: 1px solid var(--line-soft); }
.company-page .fin-cell { border-radius: 0; }

/* boxed note */
.note { margin-top: 14px; font-size: var(--t-sm); line-height: 1.5; color: var(--slate); background: var(--soft); border: 1px solid #eef2f7; border-radius: 0; padding: 11px 13px; }
.note a { color: var(--blue); }

/* ── Tabs ── */
.sel-tabs { display: flex; gap: 4px 22px; flex-wrap: wrap; border-bottom: 1px solid var(--line-soft); margin-bottom: 18px; }
.sel-tab { padding: 0 2px 12px; margin-bottom: -1px; font-size: var(--t-base); font-weight: var(--w-medium); color: var(--slate); border-bottom: 2px solid transparent; white-space: nowrap; text-decoration: none; }
.sel-tab:hover { color: var(--navy); text-decoration: none; }
.sel-tab.active { color: var(--navy); font-weight: var(--w-bold); border-bottom-color: var(--blue); }

/* ── Ad units ── */
/* ad units styled in the shared "Ad units" block near the top */

/* ── Bar charts (Regnskap) ── */
.chart-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.chart-title { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--muted); margin-bottom: 14px; }
.chart-bars { display: flex; align-items: flex-end; gap: 10px; height: 158px; border-bottom: 1px solid #eef2f7; }
.cbar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; }
.cval { font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--subtle); }
.cfill { width: 100%; max-width: 30px; background: #dce3ec; border-radius: 0; }
.cfill.latest { background: var(--blue); }
.cfill.neg { background: #fca5a5; }
.cyear { font-size: var(--t-xs); color: var(--subtle); }

/* ── Year-column tables (income / balance / ratios) ── */
.fin-table { width: 100%; border-collapse: collapse; font-size: var(--t-md); }
.fin-table th { padding: 0 0 11px; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; text-align: left; }
.fin-table th.num { text-align: right; }
.fin-table td { padding: 9px 0; color: var(--slate); border-bottom: 1px solid #f1f5f9; }
.fin-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.fin-table td:last-child { width: 66px; }
.fin-table td.bold { color: var(--navy); font-weight: var(--w-bold); }
.fin-table tr.accent td { background: #f7faff; }
.fin-table tr.accent td.num { color: var(--navy); font-weight: var(--w-bold); }
.fin-table tr.group td { padding: 17px 0 7px; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--blue); text-transform: uppercase; border-bottom: none; }
.fin-table .num:not(.bold) { color: var(--slate); }
.fin-table tr td.num:last-child { color: var(--navy); font-weight: var(--w-semi); }

/* ── Sparklines ── */
.spark { display: inline-flex; align-items: flex-end; gap: 2px; height: 16px; vertical-align: middle; }
.spark i { width: 3px; border-radius: 0; display: inline-block; }

/* ── KPI cards (Nøkkeltall) ── */
.kpi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.kpi-card { border: 1px solid var(--line-soft); border-radius: 0; padding: 16px; }
.kpi-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.kpi-label { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; }
.kpi-value { font-size: var(--t-2xl); font-weight: var(--w-bold); color: var(--navy); }
.kpi-card .rate-badge { margin: 10px 0 0; }

/* ── Roles ── */
.role-list { display: flex; flex-direction: column; }
.role-row { display: flex; align-items: center; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid #f1f5f9; font-size: var(--t-md); }
.role-row:last-child { border-bottom: none; }
.role-type { color: var(--subtle); }
.role-name { color: var(--blue); font-weight: var(--w-semi); }

/* Person-page roles, grouped by role type */
.role-group { margin-top: 18px; }
.role-group:first-child { margin-top: 0; }
.role-group-head { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 4px; }
.role-group-head h3 { font-size: var(--t-base); margin: 0; }
.role-group-count { color: var(--subtle); font-size: var(--t-sm); }
.role-row.historical .role-name { color: var(--subtle); font-weight: var(--w-medium); }
.role-badge { display: inline-block; font-size: var(--t-xs); color: var(--subtle); border: 1px solid #e2e8f0; border-radius: 0; padding: 1px 7px; }

/* Individual auditors hanging off their firm's row above (e.g. the "Revisjonsselskap" row).
   The whole block — intro sentence and list alike — is indented under the firm row, with a
   vertical line running from directly beneath it down through each individual's marker, so the
   group reads unambiguously as "these belong to the firm above" rather than a separate list. */
.auditor-individuals { margin-top: 14px; margin-left: 48px; }
.auditor-individuals .own-intro { margin: 0 0 4px; }
.role-list-nested { position: relative; padding-left: 20px; }
.role-list-nested::before { content: ""; position: absolute; left: 5px; top: -22px; bottom: 14px; width: 2px; background: #e2e8f0; border-radius: 0; }
.role-list-nested .role-row { position: relative; padding: 9px 0; font-size: var(--t-sm); }
.role-list-nested .role-row::before { content: ""; position: absolute; left: -18px; top: 50%; transform: translateY(-50%); width: 8px; height: 8px; border-radius: 50%; background: #fff; border: 2px solid var(--subtle); z-index: 1; }
.role-list-nested .role-row .role-name { color: var(--ink); font-weight: var(--w-medium); }

/* ── Konsernstruktur ── */
.konsern { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.konsern-node { border-radius: 0; padding: 11px 16px; text-align: center; }
.konsern-node .kl { font-size: var(--t-2xs); font-weight: var(--w-bold); color: var(--subtle); text-transform: uppercase; letter-spacing: var(--tr-caps); }
.konsern-node .kn { font-size: var(--t-base); font-weight: var(--w-bold); margin-top: 3px; }
.konsern-node.owner { border: 1px solid #dbeafe; background: var(--blue-soft); }
.konsern-node.owner .kn { color: var(--blue-dark); }
.konsern-node.self { background: var(--navy); color: #fff; }
.konsern-node.sub { border: 1px solid var(--line-soft); background: #fff; }
.konsern-node.none { border: 1px dashed var(--strong); background: var(--soft); color: var(--subtle); font-size: var(--t-md); }
.konsern-arrow { font-size: var(--t-xl); color: var(--strong); }

/* ── Ownership mini-diagram (Oversikt) ── */
.own-diagram { overflow: hidden; background: #fafbfd; border: 1px solid #eef2f7; border-radius: 0; padding: 28px 18px 26px; }
.own-diagram-scroll { width: 100%; overflow-x: auto; padding: 2px 0 8px; scrollbar-color: #c7d2e0 transparent; scrollbar-width: thin; }
.own-chart { display: flex; width: max(100%, calc(var(--owner-count) * 190px)); min-width: 0; flex-direction: column; align-items: center; padding: 0 18px; box-sizing: border-box; }
.own-owners { position: relative; display: grid; width: 100%; grid-template-columns: repeat(var(--owner-count), minmax(0, 1fr)); padding-bottom: 1px; }
.own-owners::after { position: absolute; right: calc(50% / var(--owner-count)); bottom: 0; left: calc(50% / var(--owner-count)); height: 1px; background: #9fb0c4; content: ""; }
.own-branch { position: relative; display: flex; min-width: 0; flex-direction: column; align-items: center; padding: 0 12px; }
.own-node { border-radius: 0; padding: 11px 18px; text-align: center; font-weight: var(--w-bold); }
.own-node.owner { display: flex; width: 100%; min-height: 68px; flex-direction: column; align-items: center; justify-content: center; padding: 11px 12px; border: 1px solid #c7d2e0; background: #fff; color: #334155; text-decoration: none; box-sizing: border-box; }
.own-node.owner:hover { border-color: #8297af; background: #f8fafc; text-decoration: none; }
.own-node.owner.person { background: #f4f7fb; }
.own-node.owner .n { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: var(--t-sm); line-height: 1.3; overflow-wrap: anywhere; }
.own-node.owner .s { margin-top: 5px; color: var(--subtle); font-size: var(--t-2xs); font-weight: var(--w-medium); }
.own-target { display: flex; width: min(520px, calc(100vw - 96px)); flex-direction: column; align-items: center; }
.own-node.company { width: 100%; min-width: 230px; background: var(--navy); color: #fff; box-sizing: border-box; }
.own-node.company .n { font-size: var(--t-md); font-weight: var(--w-bold); }
.own-node.company .s { font-size: var(--t-sm); color: var(--subtle); margin-top: 3px; font-weight: var(--w-medium); }
.own-link { position: relative; display: flex; width: 100%; height: 52px; flex-direction: column; align-items: center; justify-content: center; }
.own-link::before { position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: #9fb0c4; content: ""; }
.own-pct { position: relative; z-index: 1; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--slate); background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 3px 9px; }
.own-trunk { position: relative; width: 1px; height: 34px; flex: none; background: #9fb0c4; }
.own-trunk::after { position: absolute; bottom: 0; left: 50%; border-top: 6px solid #9fb0c4; border-right: 4px solid transparent; border-left: 4px solid transparent; content: ""; transform: translate(-50%, 1px); }

/* ── Registers list ── */
.reg-list { display: flex; flex-direction: column; gap: 10px; font-size: var(--t-md); }
.reg-row { display: flex; align-items: center; justify-content: space-between; color: var(--muted); }
.reg-row .pill { font-size: var(--t-xs); font-weight: var(--w-bold); border-radius: 0; padding: 3px 9px; }
.reg-row .pill.yes { color: var(--good); background: var(--good-bg); }
.reg-row .pill.no { color: var(--subtle); background: #f1f5f9; }
.addr { font-size: var(--t-md); color: var(--navy); font-weight: var(--w-medium); }

/* ── Map link (address → Google Maps) ── */
.map-link {
  display: inline-flex; align-items: center; gap: 4px;
  margin-left: 8px; vertical-align: baseline;
  font-size: var(--t-xs); font-weight: var(--w-bold); line-height: 1;
  color: var(--blue); text-decoration: none; white-space: nowrap;
  padding: 3px 8px; border: 1px solid var(--line); border-radius: 0;
}
.map-link:hover { border-color: var(--blue); background: #EFF6FF; }
.map-link svg { flex: none; }

/* ── Empty tab ── */
.empty-tab { padding: 24px 0; color: var(--muted); font-size: var(--t-base); }
.empty-tab .muted { display: block; margin-top: 6px; font-size: var(--t-md); color: var(--subtle); }

.cr-tab-spinner { width: 22px; height: 22px; flex-shrink: 0; border-radius: 50%; border: 3px solid var(--line); border-top-color: var(--blue); animation: cr-tab-spin 0.8s linear infinite; }
@keyframes cr-tab-spin { to { transform: rotate(360deg); } }

@media (max-width: 720px) {
  .chart-pair { grid-template-columns: 1fr; gap: 18px; }
  .kpi-grid { grid-template-columns: 1fr; }
}

/* Company-page mobile rules live after the tabbed-page overrides so the
   one-column layout is not cancelled by the later desktop grid declaration. */
@media (max-width: 920px) {
  .company-page-inner { grid-template-columns: minmax(0, 1fr); }
  .company-sidebar {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
  .company-sidebar > .ad-house-rect,
  .company-sidebar > .ad-unit.ad-rect { max-width: none; }
}

@media (max-width: 720px) {
  .topbar-inner { padding: 0 16px; gap: 12px; }
  .topbar-search { min-width: 0; }

  .company-page { padding: 16px 16px 44px; }
  .company-breadcrumb { min-width: 0; margin-bottom: 14px; }
  .company-breadcrumb span:last-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .company-header { gap: 14px; margin-bottom: 16px; }
  .company-header-left {
    align-items: flex-start;
    width: 100%;
    min-width: 0;
    gap: 12px;
  }
  .company-header-left > div:last-child { min-width: 0; }
  .company-icon,
  .company-logo {
    width: 46px;
    height: 46px;
    border-radius: 0;
  }
  .company-logo { border-radius: 0; }
  .company-header h1 {
    line-height: 1.18;
    margin-bottom: 8px;
    overflow-wrap: anywhere;
  }
  .verified-badge {
    margin: 6px 0 0;
    vertical-align: baseline;
    top: 0;
  }
  .company-meta-row { gap: 7px; }
  .company-meta-row .tag {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .company-header-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    width: 100%;
  }
  .company-header-actions .btn-primary,
  .company-header-actions .btn-secondary {
    width: 100%;
    justify-content: center;
  }

  .sel-tabs {
    flex-wrap: nowrap;
    gap: 18px;
    overflow-x: auto;
    overflow-y: hidden;
    margin: 0 -16px 16px;
    padding: 0 16px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .sel-tabs::-webkit-scrollbar { display: none; }
  .sel-tab {
    flex: 0 0 auto;
    padding-bottom: 10px;
    font-size: var(--t-md);
  }

  .company-main { gap: 12px; }
  .company-page .card {
    border-radius: 0;
    padding: 14px;
  }
  .company-page .card h2 { margin-bottom: 12px; }
  .card-head {
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 12px;
  }
  .company-sidebar {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .company-lead {
    font-size: var(--t-base);
    line-height: 1.58;
    margin-bottom: 14px;
  }
  .info-grid {
    grid-template-columns: 1fr;
    gap: 3px 0;
  }
  .info-grid dt {
    font-size: var(--t-xs);
    font-weight: var(--w-bold);
    letter-spacing: var(--tr-caps);
    text-transform: uppercase;
  }
  .info-grid dd + dt { margin-top: 10px; }

  .fin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .fin-cell { padding: 12px; }
  .fin-value {
    font-size: var(--t-xl);
    overflow-wrap: anywhere;
  }
  .health-grid { grid-template-columns: 1fr; }

  .own-diagram { padding: 16px 12px; }
  .own-node {
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  .own-list li { align-items: flex-start; }

  .table-scroll {
    margin: 0 -14px;
    padding: 0 14px;
  }
  .table-scroll .data-table,
  .table-scroll .fin-table,
  .table-scroll .ipr-table { min-width: 560px; }

  .role-row {
    align-items: flex-start;
    gap: 12px;
  }
  .role-name {
    min-width: 0;
    text-align: right;
    overflow-wrap: anywhere;
  }

  .konsern {
    flex-direction: column;
    align-items: stretch;
  }
  .konsern-arrow {
    align-self: center;
    transform: rotate(90deg);
  }
  .konsern-node { overflow-wrap: anywhere; }

  .ad-house-lead { margin: 14px 0; }
  .ad-house-rect {
    max-width: none;
    min-height: 0;
    padding: 16px;
  }
  .ad-house-rect .ad-house-rectbody { padding: 16px 0; }
  .ad-house-rect .ad-house-h { font-size: var(--t-xl); }
}

@media (max-width: 420px) {
  .topbar-inner { padding: 0 12px; gap: 10px; }
  .topbar-search { padding-left: 9px; }
  .topbar-search button { padding: 0 10px; }

  .company-page { padding-left: 12px; padding-right: 12px; }
  .sel-tabs {
    margin-left: -12px;
    margin-right: -12px;
    padding-left: 12px;
    padding-right: 12px;
  }
  .company-meta-row .tag { white-space: normal; }
  .fin-grid { grid-template-columns: 1fr; }
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

@media (max-width: 360px) {
  .topbar .wordmark { display: none; }
}

/* ── Top lists / rankings ───────────────────────────────────────────────── */
.topp-index, .topp-page { max-width: var(--page-max); }
.topp-hero { margin-bottom: 32px; }
.topp-hero h1 { font-size: var(--t-display-sm); font-weight: var(--w-display); letter-spacing: var(--tr-display); color: var(--navy); margin-bottom: 12px; }
.topp-hero p { font-size: var(--t-read); color: var(--muted); max-width: 620px; line-height: 1.6; }

.topp-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 44px; }
.topp-card { position: relative; display: block; border: 1px solid var(--line); border-radius: 0; padding: 18px 20px; background: var(--surface); transition: border-color .15s, box-shadow .15s, transform .15s; }
.topp-card:hover { border-color: var(--blue); box-shadow: 0 6px 18px rgba(15,23,42,.06); transform: translateY(-1px); text-decoration: none; }
.topp-card-title { font-size: var(--t-lg); font-weight: var(--w-bold); color: var(--navy); margin-bottom: 6px; padding-right: 18px; }
.topp-card-tag { font-size: var(--t-md); color: var(--muted); line-height: 1.5; }
.topp-card-arrow { position: absolute; top: 18px; right: 18px; color: var(--blue); font-weight: var(--w-bold); }

.topp-dims { display: flex; flex-direction: column; gap: 26px; margin-bottom: 36px; }
.topp-dim-group h2 { font-size: var(--t-xl); font-weight: var(--w-bold); color: var(--navy); margin-bottom: 12px; }

.topp-chiprow { display: flex; flex-wrap: wrap; gap: 8px; }
.topp-chip { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-md); font-weight: var(--w-semi); color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 0; padding: 6px 13px; }
.topp-chip:hover { border-color: var(--blue); color: var(--navy); text-decoration: none; }
.topp-chip span { font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--subtle); }
.topp-chip.is-active { background: var(--navy); border-color: var(--navy); color: #fff; }
.topp-chip.is-active span { color: #cbd5e1; }

/* ── Topplister hub (landing) ────────────────────────────────────────────── */
.topp-heroband {
  position: relative; overflow: hidden; border-bottom: 1px solid #e4eaf2;
  background-color: #cbd9ef;
  background-image: radial-gradient(rgba(37,99,235,0.14) 1px, transparent 1.5px), linear-gradient(180deg, #bfd2ec 0%, #dce5f3 100%);
  background-size: 24px 24px, 100% 100%;
}
.topp-heroband::after { content: ""; position: absolute; top: -180px; right: -60px; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(37,99,235,0.12), transparent 64%); pointer-events: none; }
.topp-heroband-inner { position: relative; max-width: var(--page-max); margin: 0 auto; padding: 46px var(--page-px) 40px; }
.topp-heroband-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); color: var(--blue); text-transform: uppercase; margin-bottom: 16px; }
.topp-heroband-eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 4px rgba(37,99,235,0.16); }
.topp-heroband h1 { margin: 0 0 12px; font-size: var(--t-display); line-height: 1.05; font-weight: var(--w-display); letter-spacing: var(--tr-display); color: var(--navy); max-width: 680px; }
.topp-heroband p { margin: 0 0 26px; font-size: var(--t-lg); color: var(--slate); max-width: 560px; }
.topp-herostats { display: flex; flex-wrap: wrap; gap: 10px; }
.topp-herostat { display: flex; flex-direction: column; gap: 2px; background: #fff; border: 1px solid var(--line-soft); border-radius: 0; padding: 11px 16px; box-shadow: 0 1px 2px rgba(15,23,42,0.03); }
.topp-herostat .n { font-size: var(--t-2xl); font-weight: var(--w-bold); color: var(--navy); letter-spacing: var(--tr-tight); }
.topp-herostat .l { font-size: var(--t-xs); font-weight: var(--w-semi); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; }
.topp-herostat.is-accent { background: var(--blue-soft); border-color: #bfdbfe; }
.topp-herostat.is-accent .l { color: var(--blue); }

.topp-index-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.topp-index-head h2 { font-size: var(--t-lg); font-weight: var(--w-bold); letter-spacing: var(--tr-snug); color: var(--navy); }
.topp-index-head span { font-size: var(--t-sm); color: var(--subtle); }

.topp-hubcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 40px; }
.topp-hubcard { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line-soft); border-radius: 0; padding: 18px; box-shadow: 0 1px 2px rgba(15,23,42,0.03); transition: border-color .15s, box-shadow .15s, transform .15s; }
.topp-hubcard:hover { border-color: #bfd0e8; box-shadow: 0 8px 24px rgba(15,23,42,0.08); transform: translateY(-2px); text-decoration: none; }
.topp-hubcard-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 13px; }
.topp-hubcard-icon { width: 38px; height: 38px; border-radius: 0; background: var(--blue-soft); display: inline-flex; align-items: center; justify-content: center; }
.topp-hubcard-arrow { color: var(--strong); font-size: var(--t-xl); }
.topp-hubcard h3 { margin: 0 0 4px; font-size: var(--t-lg); font-weight: var(--w-bold); color: var(--navy); }
.topp-hubcard > p { margin: 0 0 14px; font-size: var(--t-sm); color: var(--slate); line-height: 1.45; }
.topp-hubcard-preview { display: flex; flex-direction: column; gap: 7px; padding-top: 13px; border-top: 1px solid #f1f5f9; margin-top: auto; }
.topp-hubcard-row { display: grid; grid-template-columns: 17px 1fr auto; align-items: center; gap: 10px; }
.topp-hubcard-row .r { font-size: var(--t-xs); font-weight: var(--w-bold); color: var(--subtle); }
.topp-hubcard-row .r.top1 { color: var(--blue); }
.topp-hubcard-row .nm { min-width: 0; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topp-hubcard-row .v { font-size: var(--t-sm); font-weight: var(--w-bold); color: var(--navy); white-space: nowrap; }

.topp-breakdown { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 24px; }
.topp-bdcard { background: var(--surface); border: 1px solid var(--line-soft); border-radius: 0; padding: 20px; }
.topp-bdcard-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 15px; }
.topp-bdcard-head h2 { font-size: var(--t-base); font-weight: var(--w-bold); color: var(--navy); }
.topp-bdcard-head span { font-size: var(--t-xs); color: var(--subtle); }
.topp-bars { display: flex; flex-direction: column; gap: 9px; }
.topp-bar { display: grid; grid-template-columns: 118px 1fr 56px; align-items: center; gap: 11px; padding: 1px 0; }
.topp-bar-wide { grid-template-columns: 148px 1fr 56px; }
.topp-bar:hover { opacity: 0.78; text-decoration: none; }
.topp-bar .lbl { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topp-bar .track { height: 8px; border-radius: 0; background: #f1f5f9; overflow: hidden; display: block; }
.topp-bar .fill { display: block; height: 100%; border-radius: 0; background: linear-gradient(90deg, #3b82f6, #2563eb); }
.topp-bar .fill.alt { background: linear-gradient(90deg, #60a5fa, #3b82f6); }
.topp-bar .cnt { text-align: right; font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--slate); font-variant-numeric: tabular-nums; }

@media (max-width: 860px) {
  .topp-hubcards { grid-template-columns: 1fr 1fr; }
  .topp-breakdown { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .topp-hubcards { grid-template-columns: 1fr; }
  .topp-bar, .topp-bar-wide { grid-template-columns: 96px 1fr 52px; }
}

.topp-disclaimer { font-size: var(--t-sm); color: var(--slate); line-height: 1.6; border-top: 1px solid var(--line); padding-top: 18px; margin-top: 36px; }

/* ── Konkursradaren: acquisition/data-story landing page ───────────────── */
.konkursradar { padding-bottom: 76px; }
.kr-hero { position: relative; overflow: hidden; margin: 0 0 22px; padding: clamp(28px,5vw,54px); border-radius: 0; color: #fff; background: linear-gradient(132deg,#0b1f33 0%,#122f4c 62%,#174f78 100%); }
.kr-hero::after { content:""; position:absolute; width:390px; height:390px; right:-125px; top:-185px; border-radius:50%; background:radial-gradient(circle,rgba(96,165,250,.34),transparent 68%); }
.kr-eyebrow,.kr-section-kicker { display:inline-flex; align-items:center; gap:8px; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform:uppercase; color:#60a5fa; }
.kr-eyebrow span { width:7px; height:7px; border-radius:50%; background:#60a5fa; box-shadow:0 0 0 5px rgba(96,165,250,.14); }
.kr-hero h1 { position:relative; z-index:1; margin:16px 0 10px; max-width:720px; color:#fff; font-size: var(--t-display-lg); line-height:1; letter-spacing: var(--tr-display); }
.kr-lead { position:relative; z-index:1; max-width:720px; margin:0; color:rgba(255,255,255,.78); font-size: var(--t-read); line-height:1.55; }
.kr-answer { position:relative; z-index:1; max-width:760px; margin:24px 0 0; padding-top:20px; border-top:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.86); font-size: var(--t-lg); line-height:1.65; }
.kr-answer strong { color:#fff; }
.kr-actions { position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.kr-hero .btn-secondary { color:#fff; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.25); }
.kr-hero .btn-secondary:hover { background:rgba(255,255,255,.15); }
.kr-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:0 0 42px; }
.kr-kpi { min-width:0; padding:18px 20px; border:1px solid var(--line-soft); border-radius:0; background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.035); }
.kr-kpi .n { display:block; overflow:hidden; color:var(--navy); font-size: var(--t-2xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); text-overflow:ellipsis; white-space:nowrap; }
.kr-kpi .n.kr-kpi-text { font-size: var(--t-lg); line-height:1.35; white-space:normal; }
.kr-kpi .l { display:block; margin-top:5px; color:var(--subtle); font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform:uppercase; }
.kr-section-head { max-width:680px; margin-bottom:18px; }
.kr-section-head h2,.kr-presskit h2,.kr-monitor h2,.kr-method h2 { margin:6px 0 7px; color:var(--navy); font-size: var(--t-2xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); }
.kr-section-head p,.kr-presskit p,.kr-monitor p,.kr-method p { color:var(--slate); font-size: var(--t-md); line-height:1.65; }
.kr-section-head-row { display:flex; max-width:none; align-items:flex-end; justify-content:space-between; gap:20px; }
.kr-section-head-row > p { white-space:nowrap; }
.kr-breakdowns { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:44px; }
.kr-breakdowns > .kr-section-head { grid-column:1/-1; }
.kr-breakdown-card { padding:20px; border:1px solid var(--line-soft); border-radius:0; background:#fff; }
.kr-breakdown-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:18px; }
.kr-breakdown-head h3 { margin:0; color:var(--navy); font-size: var(--t-lg); }
.kr-breakdown-head > span { color:var(--subtle); font-size: var(--t-2xs); }
.kr-bar-row { margin:0 0 14px; }
.kr-bar-row:last-child { margin-bottom:0; }
.kr-bar-label { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:6px; }
.kr-bar-label strong { overflow:hidden; color:var(--navy); font-size: var(--t-sm); font-weight: var(--w-bold); text-overflow:ellipsis; white-space:nowrap; }
.kr-bar-label span { color:var(--subtle); font-size: var(--t-2xs); white-space:nowrap; }
.kr-bar-track { display:block; height:7px; overflow:hidden; border-radius:0; background:#edf2f7; }
.kr-bar-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#60a5fa,#2563eb); }
.kr-list-section { margin-bottom:38px; scroll-margin-top:90px; }
.kr-presskit { display:grid; grid-template-columns:1.1fr .9fr; gap:28px; margin:0 0 18px; padding:26px; border:1px solid #bfdbfe; border-radius:0; background:linear-gradient(135deg,#eff6ff,#f8fbff); }
.kr-monitor { display:flex; align-items:center; justify-content:space-between; gap:26px; margin:0 0 38px; padding:26px; border-radius:0; background:var(--navy); }
.kr-monitor h2 { color:#fff; }
.kr-monitor p { max-width:670px; margin:0; color:#cbd5e1; }
.kr-monitor .btn-blue { flex:0 0 auto; }
.kr-method { max-width:820px; padding-top:24px; border-top:1px solid var(--line); }
.kr-method .topp-cite-src { margin-top:14px; }
@media (max-width:860px) { .kr-kpis { grid-template-columns:1fr 1fr; } .kr-breakdowns,.kr-presskit { grid-template-columns:1fr; } }
@media (max-width:620px) { .kr-hero { margin-left:-8px; margin-right:-8px; border-radius:0; } .kr-kpis { grid-template-columns:1fr; } .kr-monitor { align-items:flex-start; flex-direction:column; } .kr-section-head-row { align-items:flex-start; flex-direction:column; gap:2px; } .kr-bar-label { align-items:flex-start; flex-direction:column; gap:2px; } }
.vekst-page .kr-hero { background:linear-gradient(132deg,#092d2a 0%,#0d4940 62%,#087f5b 100%); }
.vekst-page .kr-hero::after { background:radial-gradient(circle,rgba(52,211,153,.3),transparent 68%); }
.vekst-page .kr-eyebrow,.vekst-page .kr-section-kicker { color:#34d399; }
.vekst-page .kr-eyebrow span { background:#34d399; box-shadow:0 0 0 5px rgba(52,211,153,.14); }
.vekst-page .kr-bar-track span { background:linear-gradient(90deg,#6ee7b7,#059669); }
.vekst-table-head,.vekst-table-row { display:grid; grid-template-columns:40px minmax(260px,1fr) 145px 95px; gap:10px; align-items:center; }
.vekst-table-head { padding:11px 18px; background:var(--soft); border-bottom:1px solid #eef2f7; color:var(--subtle); font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform:uppercase; }
.vekst-table-row { padding:13px 18px; border-bottom:1px solid #f1f5f9; }
.vekst-table-row:hover { background:var(--soft); text-decoration:none; }
.vekst-table .topp-tval small { display:block; margin-top:2px; color:#059669; font-size: var(--t-2xs); font-weight: var(--w-bold); }
.vekst-pct { text-align:right; color:#047857; font-size: var(--t-lg); font-weight: var(--w-bold); font-variant-numeric:tabular-nums; }
@media(max-width:720px){ .vekst-table-head,.vekst-table-row{grid-template-columns:34px minmax(0,1fr) 78px}.vekst-table-head span:nth-child(3),.vekst-table-row>span:nth-child(3){display:none}.vekst-table-row{padding:12px}.vekst-table-head{padding:10px 12px}.vekst-table .topp-tsub{max-width:100%} }

.topp-breadcrumb { font-size: var(--t-md); color: var(--slate); margin-bottom: 16px; }
.topp-breadcrumb span { color: var(--strong); margin: 0 4px; }
.topp-pagehead { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-bottom: 18px; }
.topp-pagehead .txt { max-width: 600px; }
.topp-pagehead h1 { font-size: var(--t-display-sm); font-weight: var(--w-display); letter-spacing: var(--tr-display); color: var(--navy); margin-bottom: 8px; }
.topp-scope { font-weight: var(--w-semi); color: var(--blue); }
.topp-pagehead p { font-size: var(--t-base); color: var(--muted); }

.topp-metricnav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.topp-metric { font-size: var(--t-md); font-weight: var(--w-medium); color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 8px 14px; white-space: nowrap; }
.topp-metric:hover { border-color: var(--strong); color: var(--navy); text-decoration: none; }
.topp-metric.is-active { background: var(--blue-soft); border-color: #bfdbfe; color: var(--blue-dark); font-weight: var(--w-bold); }

/* ── Ranked detail page: rail + table card ───────────────────────────────── */
.topp-layout { display: grid; grid-template-columns: 240px 1fr; gap: 20px; align-items: start; }
.topp-layout.norail { grid-template-columns: 1fr; }

.topp-rail { position: sticky; top: 84px; max-height: calc(100vh - 104px); overflow-y: auto; background: var(--surface); border: 1px solid var(--line-soft); border-radius: 0; padding: 18px; }
.topp-rail-group { margin-bottom: 18px; }
.topp-rail-group:last-child { margin-bottom: 0; }
.topp-rail-label { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; margin-bottom: 10px; }
.topp-rail-active { display: inline-flex; align-items: center; gap: 8px; background: var(--blue-soft); border: 1px solid #bfdbfe; border-radius: 0; padding: 5px 7px 5px 12px; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--blue-dark); }
.topp-rail-active:hover { text-decoration: none; }
.topp-rail-active .x { width: 16px; height: 16px; border-radius: 50%; background: #dbeafe; color: var(--blue-dark); display: inline-flex; align-items: center; justify-content: center; font-size: var(--t-xs); }
.topp-rail-chips { display: flex; flex-direction: column; gap: 2px; }
.topp-rail-chip { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: var(--t-md); font-weight: var(--w-medium); color: var(--muted); padding: 6px 9px; border-radius: 0; }
.topp-rail-chip:hover { background: var(--soft); color: var(--navy); text-decoration: none; }
.topp-rail-chip.is-active { background: var(--navy); color: #fff; font-weight: var(--w-semi); }
.topp-rail-chip span { font-size: var(--t-xs); color: var(--subtle); }
.topp-rail-chip.is-active span { color: #cbd5e1; }

.topp-tablecard { background: var(--surface); border: 1px solid var(--line-soft); border-radius: 0; overflow: hidden; }
.topp-tablehead { display: grid; grid-template-columns: 40px 1fr 124px; gap: 10px; padding: 11px 18px; background: var(--soft); border-bottom: 1px solid #eef2f7; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; }
.topp-th-r { text-align: right; }
.topp-trow { display: grid; grid-template-columns: 40px 1fr 124px; gap: 10px; align-items: center; padding: 13px 18px; border-bottom: 1px solid #f1f5f9; }
.topp-trow:hover { background: var(--soft); text-decoration: none; }
.topp-trank { font-size: var(--t-base); font-weight: var(--w-bold); color: var(--navy); }
.topp-trank.top3 { color: var(--blue); }
.topp-tco { display: flex; align-items: center; gap: 11px; min-width: 0; }
.topp-avatar { width: 34px; height: 34px; border-radius: 0; background: var(--soft); border: 1px solid var(--line-soft); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.topp-tname { display: block; font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topp-tsub { display: block; font-size: var(--t-xs); color: var(--subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
.topp-tsub .sok-status { font-size: var(--t-2xs); padding: 1px 6px; }
.topp-tval { text-align: right; font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); }
.topp-tval.neg { color: var(--negative); }
/* The company cell used to sit beside a 34px icon of a house, repeated
   identically on every row of every ranking — decoration that carried no
   information and made the tables look generated. In its place the value
   column carries a bar scaled to the list leader, so the shape of the ranking
   is visible without reading a single figure. */
.topp-tcell { flex: 1; min-width: 0; }
.topp-tbar { display: block; height: 3px; margin-top: 6px; border-radius: 0; background: var(--line-soft); overflow: hidden; }
.topp-tbar > span { display: block; height: 100%; border-radius: 0; background: var(--blue); opacity: .55; }
.topp-trow:hover .topp-tbar > span { opacity: .85; }
.topp-tval.neg .topp-tbar > span { background: var(--negative); }

/* ── Industry change feed (/topplister/bransje/{x}/endringer) ──────────────
   The feed reuses the ranking table's card and rows, but its columns carry
   different things: a full date where a ranking has a one-to-three digit rank,
   and a change name — sometimes several, joined — where a ranking has a short
   number. Left on the ranking grid (40px | 1fr | 124px) the date overflowed
   into the company name and every multi-change row wrapped to three lines. */
.feed-table .topp-tablehead,
.feed-table .topp-trow { grid-template-columns: 92px minmax(0,1fr) 210px; }
/* The date is metadata, not the headline the rank is — same size as the
   company's sub-line, so the company name stays the loudest thing in the row. */
.feed-table .topp-trank { font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--muted); white-space: nowrap; }
.feed-change { text-align: right; font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--muted); line-height: 1.35; }
/* Only the changes that end or start a company get a colour; routine
   housekeeping (address, industry code, capital) stays muted so the
   consequential rows are findable by scanning. */
.feed-change.feed-company_bankrupt,
.feed-change.feed-company_winding_up,
.feed-change.feed-company_deregistered { color: var(--negative); font-weight: var(--w-bold); }
.feed-change.feed-company_registered { color: var(--blue); font-weight: var(--w-bold); }
.feed-tally { display: flex; flex-wrap: wrap; gap: 7px 9px; margin: 0 0 26px; }
.feed-tally-item { font-size: var(--t-xs); color: var(--muted); background: var(--surface); border: 1px solid var(--line-soft); border-radius: 0; padding: 5px 11px; white-space: nowrap; }
.feed-tally-item strong { color: var(--navy); font-weight: var(--w-bold); }
.feed-tally-item.feed-company_bankrupt strong,
.feed-tally-item.feed-company_winding_up strong,
.feed-tally-item.feed-company_deregistered strong { color: var(--negative); }
.feed-tally-item.feed-company_registered strong { color: var(--blue); }

@media(max-width:720px){
  /* Two columns, with the change dropping under the company name rather than
     being squeezed against the right edge. */
  .feed-table .topp-tablehead,
  .feed-table .topp-trow { grid-template-columns: 78px minmax(0,1fr); row-gap: 5px; }
  .feed-table .topp-tablehead span:nth-child(3) { display: none; }
  .feed-change { grid-column: 2; text-align: left; }
}
.topp-tablefoot { padding: 13px 18px; font-size: var(--t-sm); color: var(--subtle); }

@media (max-width: 860px) {
  .topp-layout { grid-template-columns: 1fr; }
  .topp-rail { position: static; max-height: none; overflow: visible; }
}

.topp-filters { display: flex; flex-direction: column; gap: 14px; margin-bottom: 26px; }
.topp-filter-group { display: grid; grid-template-columns: 72px 1fr; gap: 12px; align-items: start; }
.topp-filter-label { font-size: var(--t-sm); font-weight: var(--w-bold); text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--subtle); padding-top: 7px; }

.topp-table td a { color: var(--navy); }
.topp-table td a:hover { color: var(--blue); }
.topp-rank { width: 44px; color: var(--subtle); font-weight: var(--w-bold); }
.topp-sub { font-size: var(--t-sm); color: var(--subtle); margin-top: 3px; }
.topp-loc { color: var(--muted); white-space: nowrap; }
.topp-bransje { color: var(--muted); max-width: 280px; }

@media (max-width: 720px) {
  .topp-cards { grid-template-columns: 1fr; }
  .topp-filter-group { grid-template-columns: 1fr; gap: 6px; }
  .topp-loc, .topp-bransje { display: none; }
}

/* ── Traffic dashboard (/admin/stats) ───────────────────────────────────── */
.stats-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-bottom: 24px; }
.stats-funnel-card { margin-bottom: 18px; }
.stats-funnel-card > p { margin: 3px 0 16px; }
.stats-funnel { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.stats-funnel-stage { position:relative; padding:15px 17px; overflow:hidden; border:1px solid var(--line-soft); border-radius:0; background:var(--soft); }
.stats-funnel-stage:not(:last-child)::after { content:"→"; position:absolute; right:-8px; top:50%; z-index:1; width:16px; height:16px; transform:translateY(-50%); color:var(--blue); background:#fff; font-weight: var(--w-display); }
.stats-funnel-value { color:var(--navy); font-size: var(--t-3xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); }
.stats-funnel-label { margin-top:2px; color:var(--slate); font-size: var(--t-sm); font-weight: var(--w-bold); }
.stats-funnel-rate { margin-top:7px; color:var(--subtle); font-size: var(--t-2xs); }
@media (max-width:720px) { .stats-funnel { grid-template-columns:1fr 1fr; } .stats-funnel-stage::after { display:none; } }
.stats-filters { display: flex; flex-wrap: wrap; gap: 10px; }
.stats-edition { margin-left: 8px; color: var(--subtle); font-size: var(--t-md); font-weight: var(--w-medium); letter-spacing: 0; }
.stats-returning .stats-funnel-stage::after { display: none; } /* four separate measures, not a sequence */
.stats-accounts { margin-bottom: 18px; }
.stats-sub-inline { color: var(--subtle); font-size: var(--t-sm); }
.stats-tag-partial { background: var(--soft); color: var(--slate); }

.stats-chart-card h2 { margin-bottom: 12px; }
.stats-legend { display: flex; gap: 18px; margin-bottom: 14px; font-size: var(--t-sm); color: var(--slate); }
.stats-legend .dot { display: inline-block; width: 10px; height: 10px; border-radius: 0; margin-right: 5px; vertical-align: -1px; }
.stats-legend .dot-views { background: var(--blue); }
.stats-legend .dot-visitors { background: var(--navy); }
.stats-chart { display: flex; align-items: flex-end; gap: 3px; height: 160px; padding-top: 8px; overflow-x: auto; }
.stats-bar-col { flex: 1 1 0; min-width: 8px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; }
.stats-bar-stack { position: relative; width: 100%; height: 120px; }
.stats-bar { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 70%; max-width: 26px; min-height: 2px; background: var(--blue); border-radius: 0; transition: background .15s; }
.stats-bar-visitors { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 40%; max-width: 13px; background: var(--navy); border-radius: 0; }
.stats-bar-col:hover .stats-bar { background: var(--blue-dark); }
.stats-bar-x { font-size: var(--t-2xs); color: var(--subtle); margin-top: 6px; white-space: nowrap; transform: rotate(-45deg); transform-origin: center; height: 16px; }

.stats-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; margin-top: 4px; }
.stats-sub { font-size: var(--t-sm); color: var(--subtle); margin-top: 2px; }
.stats-ua { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--t-sm); color: var(--slate); word-break: break-all; }
.stats-tag { display: inline-block; font-size: var(--t-2xs); font-weight: var(--w-bold); text-transform: uppercase; letter-spacing: var(--tr-caps); border-radius: 0; padding: 1px 6px; margin-left: 6px; vertical-align: 1px; }
.stats-tag-bot { background: #fef2f2; color: #b91c1c; }
.stats-tag-suspect { background: #fffbeb; color: #b45309; }
.stats-note { font-size: var(--t-sm); color: var(--slate); line-height: 1.6; border-top: 1px solid var(--line); padding-top: 16px; margin-top: 28px; }

@media (max-width: 720px) {
  .stats-grid { grid-template-columns: 1fr; }
  .stats-bar-x { display: none; }
}

/* Admin dashboard (.admin-page, .admin-kpi*, .admin-btn* etc.) moved to
   static/admin.css — exclusive to /admin/*, which now has its own shell. */
.pill { display: inline-block; padding: 2px 9px; border-radius: var(--r-pill); font-size: var(--t-xs); font-weight: var(--w-bold); }
.pill-good { background: var(--good-bg); color: var(--good); }
.pill-bad { background: #fee2e2; color: #991b1b; }
.pill-warn { background: #fff7ed; color: #b45309; }
.pill-info { background: #e0e7ff; color: #3730a3; }
.pill-accent { background: #ede9fe; color: #5b21b6; }
.pill-neutral { background: var(--soft); color: var(--muted); }

/* ── Phase 3 SEO: company lead + ownership-intent content + related links ── */
.company-lead { font-size: var(--t-lg); line-height: 1.6; color: var(--slate); margin: 0 0 18px; }
.company-lead strong { color: var(--ink-hover); }

.own-intro { margin: 16px 0 8px; font-size: var(--t-base); color: var(--slate); }
.own-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.own-list li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 8px 2px; border-bottom: 1px solid var(--line-soft); }
.own-list li:last-child { border-bottom: 0; }
.own-list a { color: var(--blue); font-weight: var(--w-semi); text-decoration: none; }
.own-list a:hover { text-decoration: underline; }
.own-list-pct { color: var(--muted); font-size: var(--t-md); font-variant-numeric: tabular-nums; white-space: nowrap; }
.konsern-child { padding-left: 1.5rem !important; border-left: 2px solid var(--line-soft); margin-left: 0.5rem; }

.more-link { display: inline-block; margin-top: 12px; font-size: var(--t-md); font-weight: var(--w-semi); color: var(--blue); text-decoration: none; }
.more-link:hover { text-decoration: underline; }

/* Long lists show their first rows; the rest carry .is-extra and stay hidden
   until the checkbox inside the list's .expandable is ticked. No script: the
   label is the control, and the checkbox keeps it reachable by keyboard. */
.expandable:not(:has(.expand-check:checked)) .is-extra { display: none; }
.expand-toggle { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-size: var(--t-md); font-weight: var(--w-semi); color: var(--blue); cursor: pointer; }
.expand-toggle:hover { text-decoration: underline; }
.expand-toggle::after { content: "▾"; font-size: .85em; }
.expand-toggle:has(.expand-check:checked)::after { content: "▴"; }
.expand-toggle:has(.expand-check:focus-visible) { outline: 2px solid var(--blue); outline-offset: 3px; }
.expand-check { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.expand-less, .expand-toggle:has(.expand-check:checked) .expand-more { display: none; }
.expand-toggle:has(.expand-check:checked) .expand-less { display: inline; }
/* The last visible row of a collapsed table is no longer its last child. */
.expandable:not(:has(.expand-check:checked)) tr:has(+ .is-extra):not(.is-extra) td,
.expandable:not(:has(.expand-check:checked)) .role-row:has(+ .is-extra):not(.is-extra) { border-bottom: none; }

.related-links { list-style: none; margin: 0; padding: 0; }
.related-links li { padding: 9px 0; border-bottom: 1px solid var(--line-soft); }
.related-links li:last-child { border-bottom: 0; }
.related-links a { color: var(--blue); font-weight: var(--w-semi); text-decoration: none; font-size: var(--t-base); }
.related-links a:hover { text-decoration: underline; }

/* ── Phase 4: topplister cite + embed card ── */
.topp-cite { display: grid; grid-template-columns: 1.4fr 1fr; gap: 22px; margin-top: 26px; padding: 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 0; }
.topp-cite h2 { margin: 0 0 6px; font-size: var(--t-xl); }
.topp-cite-lead { margin: 0 0 12px; font-size: var(--t-md); color: var(--slate); }
.topp-embed-code { width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: var(--t-sm); line-height: 1.5; color: #334155; background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 11px 13px; resize: vertical; }
.topp-cite-label { font-size: var(--t-xs); text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--muted); margin-bottom: 6px; }
.topp-cite-src { margin: 0 0 10px; font-size: var(--t-md); color: var(--slate); line-height: 1.5; }
.topp-cite-src strong { color: var(--ink-hover); }
.page-cite-src { margin: 18px 0 0; padding-top: 12px; border-top: 1px solid var(--hairline, #e5e7eb); font-size: var(--t-sm); color: var(--muted); line-height: 1.5; }
.page-cite-src strong { color: var(--slate); }
.topp-cite-method { margin: 0; font-size: var(--t-sm); color: var(--muted); line-height: 1.5; }
@media (max-width: 720px) { .topp-cite { grid-template-columns: 1fr; gap: 16px; } }

/* ── Growth: company FAQ section ── */
.faq-list { display: flex; flex-direction: column; gap: 4px; }
.faq-item { padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
.faq-item:last-child { border-bottom: 0; }
.faq-q { margin: 0 0 5px; font-size: var(--t-base); font-weight: var(--w-bold); color: var(--ink-hover); }
.faq-a { margin: 0; font-size: var(--t-base); line-height: 1.55; color: var(--slate); }
/* dl/dt/dd FAQ variant used on the about page */
dl.faq-list { margin: 0; }
dl.faq-list dt { padding: 14px 0 5px; border-top: 1px solid var(--line-soft); font-size: var(--t-base); font-weight: var(--w-bold); color: var(--ink-hover); }
dl.faq-list dt:first-of-type { border-top: 0; }
dl.faq-list dd { margin: 0 0 14px; font-size: var(--t-base); line-height: 1.6; color: var(--muted); }
/* h3 subheadings inside about-section text */
.about-text h3 { font-size: var(--t-xl); font-weight: var(--w-bold); margin: 20px 0 8px; color: var(--ink); }

/* ============================================================================
   Articles (/artikler) — editorial reading experience
   ========================================================================== */

/* Shared: category tag + meta line */
.article-tag { display: inline-block; font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--blue); background: var(--blue-soft); border-radius: var(--r-pill); padding: 4px 11px; }
.article-meta { display: inline-flex; align-items: center; gap: 7px; font-size: var(--t-md); font-weight: var(--w-semi); color: var(--slate); }
.article-arrow { display: inline-block; transition: transform 0.18s ease; }

/* ── Guides index (/artikler) — dark cover + illustrated cards ───────────── */
.ghero { position: relative; overflow: hidden; background: linear-gradient(135deg, #0B1F33 0%, #14304d 100%); padding: clamp(44px, 6vw, 64px) 0 150px; }
.ghero-motif { position: absolute; right: -20px; top: -30px; opacity: 0.85; pointer-events: none; }
.ghero-in { position: relative; max-width: 1064px; margin: 0 auto; padding: 0 var(--page-px); }
.ghero-eyebrow { display: inline-block; font-size: var(--t-sm); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; color: #7DA6E8; margin-bottom: 16px; }
.ghero h1 { font-family: var(--font-sans); font-weight: var(--w-display); font-size: var(--t-display-lg); line-height: 1.04; letter-spacing: var(--tr-display); color: #fff; max-width: 640px; }
.ghero p { font-size: var(--t-read); line-height: 1.6; color: rgba(255,255,255,0.72); max-width: 540px; margin-top: 18px; }

/* Card grid pulled up over the hero band */
.gcards { position: relative; max-width: 1064px; margin: -92px auto 0; padding: 0 var(--page-px) 64px; }
.gcards-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gcard { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--r-xl); overflow: hidden; text-decoration: none; color: inherit; box-shadow: var(--shadow-md); transition: transform 0.18s ease, box-shadow 0.18s ease; }
.gcard:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); text-decoration: none; }
.gcard:hover .article-arrow { transform: translateX(3px); }
.gcard--feature { grid-column: span 2; box-shadow: var(--shadow-lg); }

/* Illustration panel — tinted per category tone */
.gcard-art { display: flex; align-items: center; justify-content: center; height: 120px; flex-shrink: 0; }
.gcard--feature .gcard-art { height: 210px; }
.gcard--tall .gcard-art { height: 150px; }
.gcard--blue .gcard-art { background: var(--blue-soft); }
.gcard--green .gcard-art { background: var(--good-bg); }
.gcard--navy .gcard-art { background: var(--bg); }
.gcard-orgchips { display: flex; gap: 10px; }
.gcard-orgchip { width: 46px; height: 46px; border-radius: var(--r-md); font-size: var(--t-xs); font-weight: var(--w-bold); display: flex; align-items: center; justify-content: center; background: #fff; border: 2px solid var(--strong); color: var(--slate); }
.gcard-orgchip--solid { background: var(--navy); border-color: var(--navy); color: #fff; }
.gcard-orgchip--line { border-color: var(--navy); color: var(--navy); }

.gcard-body { padding: 20px 22px; display: flex; flex-direction: column; flex: 1; }
.gcard--feature .gcard-body { padding: 28px 30px 26px; }
.gcard--tall .gcard-body { padding: 24px 24px 22px; }
.gcard-tag { align-self: flex-start; font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; border-radius: var(--r-pill); padding: 4px 11px; }
.gcard--blue .gcard-tag { color: var(--blue); background: var(--blue-soft); }
.gcard--green .gcard-tag { color: var(--good); background: var(--good-bg); }
.gcard--navy .gcard-tag { color: var(--navy); background: var(--bg); }
.gcard-kicker { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; }
.gcard--blue .gcard-kicker { color: var(--blue); }
.gcard--green .gcard-kicker { color: var(--good); }
.gcard--navy .gcard-kicker { color: var(--navy); }
.gcard--feature h2 { font-size: var(--t-3xl); font-weight: var(--w-display); letter-spacing: var(--tr-display); line-height: 1.12; color: var(--navy); margin: 14px 0 10px; }
.gcard--tall h2 { font-size: var(--t-2xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); line-height: 1.16; color: var(--navy); margin: 12px 0 8px; }
.gcard--small h2 { font-size: var(--t-xl); font-weight: var(--w-bold); letter-spacing: var(--tr-snug); line-height: 1.25; color: var(--navy); margin-top: 8px; }
.gcard p { font-size: var(--t-base); line-height: 1.55; color: var(--muted); margin: 0; }
.gcard--feature p { font-size: var(--t-lg); max-width: 520px; }
.gcard .article-meta { margin-top: auto; padding-top: 16px; }

/* ── News (/nyheter) — month posters with ghost numerals ────────────────── */
.index-eyebrow { display: inline-block; font-size: var(--t-sm); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; color: var(--blue); }
.nposter-page { max-width: 1020px; margin: 0 auto; padding: 56px var(--page-px) 76px; }
.nposter-head h1 { font-family: var(--font-sans); font-weight: var(--w-display); font-size: var(--t-display); line-height: 1.06; letter-spacing: var(--tr-display); color: var(--navy); margin: 10px 0 12px; }
.nposter-head p { font-size: var(--t-read); line-height: 1.6; color: var(--muted); max-width: 520px; }

.nposter-month { position: relative; margin-top: 44px; border-top: 4px solid var(--navy); padding: 30px 0 10px; }
.nposter-ghost { position: absolute; right: 0; top: -14px; font-size: clamp(96px, 16vw, 170px); font-weight: var(--w-display); letter-spacing: var(--tr-display); line-height: 1; color: var(--line); pointer-events: none; user-select: none; }
.nposter-month h2 { position: relative; font-size: var(--t-2xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); color: var(--navy); margin-bottom: 22px; }
.nposter-count { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--subtle); margin-left: 8px; }

.nposter-grid { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 40px; max-width: 880px; }
.nposter-item { display: block; border-left: 3px solid var(--blue); padding: 4px 16px 4px 18px; text-decoration: none; color: inherit; }
.nposter-item--funksjon { border-left-color: var(--good); }
.nposter-kicker { font-size: var(--t-sm); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--subtle); }
.nposter-item h3 { font-size: var(--t-2xl); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); line-height: 1.2; color: var(--navy); margin-top: 6px; transition: color 0.15s ease; }
.nposter-item:hover h3 { color: var(--blue); }

/* Card grid */
.article-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.article-card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--r-lg); padding: 26px 26px 22px; text-decoration: none; color: inherit; transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease; overflow: hidden; }
.article-card:hover { transform: translateY(-2px); border-color: #dbe6f5; box-shadow: var(--shadow-md); text-decoration: none; }
.article-card .article-tag { align-self: flex-start; }
.article-card h2 { font-family: var(--font-sans); font-weight: var(--w-bold); font-size: var(--t-2xl); line-height: 1.14; letter-spacing: var(--tr-tight); color: var(--navy); margin: 14px 0 10px; }
.article-card p { font-size: var(--t-base); line-height: 1.55; color: var(--muted); margin: 0 0 18px; }
.article-card .article-meta { margin-top: auto; }
.article-card:hover .article-arrow { transform: translateX(3px); }
.article-card-media { margin: -26px -26px 18px; aspect-ratio: 16 / 9; background: var(--soft); }
.article-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ── Detail page (/artikler/{slug}) — white reading sheet on grey page ───── */
.article-page { max-width: 840px; margin: 0 auto; padding: 30px var(--page-px) 76px; }
.article-sheet { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--r-xl); box-shadow: var(--shadow-md); padding: clamp(28px, 5vw, 64px); }
.article-breadcrumb { display: flex; align-items: center; gap: 8px; font-size: var(--t-md); color: var(--subtle); margin-bottom: 24px; }
.article-breadcrumb a { color: var(--muted); text-decoration: none; }
.article-breadcrumb a:hover { color: var(--blue); }
.article-head { border-bottom: 1px solid var(--line-soft); padding-bottom: 28px; margin-bottom: 34px; }
/* Norwegian compounds ("selskapsverdivurdering") outrun a phone-width column
   at display sizes, so headings hyphenate rather than overflow. */
.article-head h1 { font-family: var(--font-sans); font-weight: var(--w-display); font-size: var(--t-display); line-height: 1.08; letter-spacing: var(--tr-display); color: var(--navy); margin: 16px 0 18px; overflow-wrap: break-word; hyphens: auto; }
.article-lead { font-size: var(--t-2xl); font-weight: var(--w-normal); line-height: 1.55; color: var(--ink); margin-bottom: 22px; }
.article-byline { display: flex; align-items: center; gap: 10px; font-size: var(--t-md); color: var(--slate); }
.article-byline .dot { color: var(--strong); }

/* Hero screenshot on the detail page — sits between the header and the body copy */
.article-hero-media { margin: -6px 0 32px; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-md); background: var(--soft); }
.article-hero-media img { display: block; width: 100%; height: auto; }

/* Body typography */
.article-body { font-size: var(--t-read); line-height: 1.75; color: var(--ink); }
.article-body h2 { font-weight: var(--w-bold); font-size: var(--t-2xl); line-height: 1.2; letter-spacing: var(--tr-tight); color: var(--navy); margin: 40px 0 14px; }
.article-body p { margin-bottom: 18px; color: var(--ink); }
.article-body ul, .article-body ol { padding-left: 24px; margin: 0 0 18px; display: flex; flex-direction: column; gap: 9px; }
.article-body li { line-height: 1.65; color: var(--ink); }
.article-body li::marker { color: var(--blue); }
.article-body strong { color: var(--navy); font-weight: var(--w-bold); }

/* Call-to-action */
.article-cta { text-align: center; background: linear-gradient(135deg, var(--blue-soft) 0%, #f5f8ff 100%); border: 1px solid #dbe6f5; border-radius: var(--r-xl); padding: 40px; margin: 40px 0; }
.article-cta h3 { font-weight: var(--w-bold); font-size: var(--t-2xl); letter-spacing: var(--tr-tight); color: var(--navy); margin-bottom: 10px; }
.article-cta p { font-size: var(--t-lg); color: var(--muted); max-width: 430px; margin: 0 auto 22px; line-height: 1.55; }
.article-cta-btn { display: inline-block; background: var(--navy); color: #fff; font-size: var(--t-base); font-weight: var(--w-semi); padding: 12px 26px; border-radius: var(--r-pill); text-decoration: none; transition: background 0.15s ease; }
.article-cta-btn:hover { background: var(--blue); text-decoration: none; }

/* More articles */
.article-more > h2 { font-family: var(--font-sans); font-weight: var(--w-display); font-size: var(--t-3xl); letter-spacing: var(--tr-display); color: var(--navy); margin-bottom: 20px; text-align: center; }

/* ── Article detail (/artikler/{slug}) — wide sheet + sticky rail ───────── */
.artdet-page { max-width: var(--page-max); margin: 0 auto; padding: 30px var(--page-px) 76px; }
.artdet-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; align-items: start; }
.artdet-grid .article-sheet { min-width: 0; }
.article-body h2 { scroll-margin-top: 84px; }

.artdet-rail { position: sticky; top: 84px; display: flex; flex-direction: column; gap: 16px; max-height: calc(100vh - 104px); overflow-y: auto; scrollbar-width: thin; }
.artdet-rail-h { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--subtle); margin-bottom: 12px; }
.artdet-railcard { background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--r-lg); padding: 20px 22px; box-shadow: var(--shadow-sm); }
.artdet-toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; counter-reset: toc; }
.artdet-toc li { counter-increment: toc; display: flex; gap: 10px; align-items: baseline; }
.artdet-toc li::before { content: counter(toc, decimal-leading-zero); font-size: var(--t-xs); font-weight: var(--w-bold); color: var(--strong); }
.artdet-toc a { font-size: var(--t-md); font-weight: var(--w-medium); line-height: 1.4; color: var(--muted); text-decoration: none; }
.artdet-toc a:hover { color: var(--blue); }

.artdet-railcta { background: linear-gradient(135deg, #0B1F33 0%, #14304d 100%); border-radius: var(--r-lg); padding: 22px; color: #fff; }
.artdet-railcta h3 { font-size: var(--t-xl); font-weight: var(--w-bold); letter-spacing: var(--tr-snug); margin-bottom: 8px; }
.artdet-railcta p { font-size: var(--t-md); line-height: 1.55; color: rgba(255,255,255,0.72); margin-bottom: 16px; }
.artdet-railcta-btn { display: inline-block; background: #fff; color: var(--navy); font-size: var(--t-md); font-weight: var(--w-semi); padding: 9px 18px; border-radius: var(--r-pill); text-decoration: none; transition: background 0.15s ease; }
.artdet-railcta-btn:hover { background: var(--blue-soft); text-decoration: none; }

.artdet-more-link { display: block; padding: 10px 0; border-top: 1px solid var(--line-soft); text-decoration: none; }
.artdet-more-link:first-of-type { border-top: 0; }
.artdet-more-cat { display: block; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; color: var(--subtle); }
.artdet-more-title { display: block; font-size: var(--t-base); font-weight: var(--w-semi); line-height: 1.35; color: var(--navy); margin-top: 3px; transition: color 0.15s ease; }
.artdet-more-link:hover .artdet-more-title { color: var(--blue); }

/* News detail (/nyheter/{slug}) — same shell, changelog header treatment.
   Posts carry no h2s, so the rail runs date/type + CTA + related instead of
   a table of contents. */
.nydet-head { position: relative; overflow: hidden; }
.nydet-head-in { position: relative; }
.nydet-ghost { position: absolute; right: 0; top: -0.22em; font-size: clamp(88px, 12vw, 140px); font-weight: var(--w-display); letter-spacing: var(--tr-display); line-height: 1; color: var(--line-soft); pointer-events: none; user-select: none; }
.nydet-tag { display: inline-block; font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--blue); background: var(--blue-soft); border-radius: var(--r-pill); padding: 4px 11px; }
.nydet-sheet--funksjon .nydet-tag { color: var(--good); background: var(--good-bg); }
.nydet-sheet--funksjon .article-body li::marker { color: var(--good); }

.nydet-meta-date { font-size: var(--t-xl); font-weight: var(--w-bold); letter-spacing: var(--tr-snug); color: var(--navy); }
.nydet-meta-tag { display: inline-block; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; border-radius: var(--r-pill); padding: 3px 9px; margin-top: 10px; color: var(--blue); background: var(--blue-soft); }
.nydet-meta-tag--funksjon { color: var(--good); background: var(--good-bg); }

@media (max-width: 1000px) {
  .artdet-grid { grid-template-columns: 1fr; }
  .artdet-rail { position: static; max-height: none; overflow: visible; }
  .artdet-toc { display: none; }
  .nydet-meta { display: none; }
  .nydet-ghost { display: none; }
}

@media (max-width: 720px) {
  .article-grid { grid-template-columns: 1fr; }
  .ghero { padding-bottom: 120px; }
  .gcards { margin-top: -76px; }
  .gcards-grid { grid-template-columns: 1fr; }
  .gcard--feature { grid-column: auto; }
  .nposter-ghost { font-size: 84px; top: -8px; }
  .nposter-grid { grid-template-columns: 1fr; }
}

/* ── Press page (/presse) ───────────────────────────────────────────────── */
.presse-steps { margin: 4px 0 18px; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; }
.presse-steps li { color: var(--muted); line-height: 1.55; padding-left: 4px; }
.presse-eksempel-label { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); margin-bottom: 8px; }
.presse-soon { display: inline-block; vertical-align: middle; font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--blue); background: var(--blue-soft); border: 1px solid #bfdbfe; border-radius: 0; padding: 3px 9px; margin-left: 6px; }
.presse-page .topp-embed-code { margin-bottom: 16px; }

/* ── Premium company profiles ───────────────────────────────────────────── */
.company-logo { width: 72px; height: 72px; border-radius: 0; border: 1px solid var(--line-soft); background: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; padding: 6px; }
.company-logo img { width: 100%; height: 100%; object-fit: contain; }

.verified-badge { display: inline-flex; align-items: center; gap: 4px; font-size: var(--t-sm); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: #166534; background: #dcfce7; border: 1px solid #86efac; border-radius: 0; padding: 3px 10px; margin-left: 10px; vertical-align: middle; position: relative; top: -2px; }

.profile-card { background: linear-gradient(135deg, #f0fdf4 0%, #eff6ff 100%); border: 1px solid #bbf7d0; border-radius: 0; padding: 18px 22px; margin-bottom: 22px; display: flex; flex-direction: column; gap: 10px; }
.profile-description { margin: 0; font-size: var(--t-lg); line-height: 1.6; color: var(--ink-hover); }
.profile-contacts { display: flex; flex-wrap: wrap; gap: 14px; }
.profile-contact-link { font-size: var(--t-base); color: var(--navy); text-decoration: none; display: inline-flex; align-items: center; gap: 5px; }
.profile-contact-link:hover { text-decoration: underline; color: var(--blue); }

.company-header--verified { border-bottom: 2px solid #bbf7d0; padding-bottom: 20px; margin-bottom: 16px; }

/* ── Immaterielle rettigheter (Patentstyret) ── */
.ipr-group { margin-bottom: 20px; }
.ipr-group:last-of-type { margin-bottom: 8px; }
.ipr-type-heading { font-size: var(--t-md); font-weight: var(--w-bold); color: var(--slate); text-transform: uppercase; letter-spacing: var(--tr-caps); margin: 0 0 10px; }
.ipr-table { width: 100%; border-collapse: collapse; font-size: var(--t-md); }
.ipr-table th { text-align: left; font-weight: var(--w-semi); color: var(--subtle); font-size: var(--t-sm); padding: 0 8px 6px 0; border-bottom: 1px solid var(--line-soft); }
.ipr-table td { padding: 7px 8px 7px 0; border-bottom: 1px solid var(--line-soft); color: var(--ink); vertical-align: top; }
.ipr-table tr:last-child td { border-bottom: none; }
.ipr-table a { color: var(--navy); text-decoration: none; }
.ipr-table a:hover { text-decoration: underline; color: var(--blue); }
.ipr-source { font-size: var(--t-sm); color: var(--subtle); margin: 12px 0 0; }
.ipr-source a { color: var(--subtle); }
.ipr-nr { white-space: nowrap; color: var(--slate); font-size: var(--t-md); }

/* ── Event badges (hendelser tab) ─────────────────────────────────────── */
.event-badge {
  display: inline-block;
  font-size: var(--t-xs);
  font-weight: var(--w-semi);
  padding: 2px 7px;
  border-radius: 0;
  white-space: nowrap;
  background: var(--surface2);
  color: var(--slate);
}
.event-company_registered    { background: #e6f4ea; color: #1e6b38; }
.event-company_deregistered  { background: #fce8e6; color: #9b211a; }
.event-company_bankrupt      { background: #fce8e6; color: #9b211a; }
.event-company_winding_up    { background: #fce8e6; color: #9b211a; }
.event-ceo_appointed         { background: #e8f0fe; color: #1a56a0; }
.event-ceo_resigned          { background: #fef3e2; color: #8b5e00; }
.event-board_member_added    { background: #e8f0fe; color: #1a56a0; }
.event-board_member_removed  { background: #fef3e2; color: #8b5e00; }
.event-capital_changed       { background: #f3e8ff; color: #6a1ea0; }
.event-company_name_changed  { background: #f3e8ff; color: #6a1ea0; }
.event-vat_registered        { background: #e6f4ea; color: #1e6b38; }
.event-vat_deregistered      { background: #fef3e2; color: #8b5e00; }

/* ── Company browser (/finn) ─────────────────────────────────────────────── */
.finn-page { max-width: var(--page-max); margin: 0 auto; padding: 28px var(--page-px) 64px; }
.finn-head { margin-bottom: 28px; }
.finn-head h1 { font-size: var(--t-display-sm); font-weight: var(--w-display); letter-spacing: var(--tr-display); color: var(--navy); margin-bottom: 6px; }
.finn-head p { font-size: var(--t-base); color: var(--muted); }

.finn-layout { display: grid; grid-template-columns: 260px 1fr; gap: 24px; align-items: start; }

/* Filter panel */
.finn-filters { position: sticky; top: 66px; background: #fff; border: 1px solid var(--line-soft); border-radius: 0; padding: 20px; box-shadow: 0 1px 2px rgba(15,23,42,0.04); }
.finn-filter-group { margin-bottom: 18px; }
.finn-filter-group:last-child { margin-bottom: 0; }
.finn-filter-label { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; margin-bottom: 7px; display: block; }
.finn-select { width: 100%; padding: 7px 10px; font-size: var(--t-md); color: var(--navy); background: var(--soft); border: 1px solid var(--line); border-radius: 0; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; cursor: pointer; }
.finn-select:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,0.1); }
.finn-input { width: 100%; padding: 7px 10px; font-size: var(--t-md); color: var(--navy); background: var(--soft); border: 1px solid var(--line); border-radius: 0; }
.finn-input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,0.1); }
.finn-range { display: flex; align-items: center; gap: 8px; }
.finn-range-in { flex: 1; min-width: 0; }
.finn-range-sep { color: var(--subtle); font-size: var(--t-md); flex-shrink: 0; }
.finn-check-row { display: flex; align-items: center; }
.finn-checkbox-label { display: flex; align-items: center; gap: 8px; font-size: var(--t-md); color: var(--muted); cursor: pointer; }
.finn-checkbox-label input[type=checkbox] { width: 15px; height: 15px; accent-color: var(--blue); cursor: pointer; }
.finn-filter-actions { display: flex; gap: 10px; align-items: center; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line-soft); }
.finn-btn-primary { flex: 1; padding: 9px 0; font-size: var(--t-md); font-weight: var(--w-bold); color: #fff; background: var(--blue); border: none; border-radius: 0; cursor: pointer; }
.finn-btn-primary:hover { background: var(--blue-dark); }
.finn-btn-clear { font-size: var(--t-sm); color: var(--muted); text-decoration: none; white-space: nowrap; }
.finn-btn-clear:hover { color: var(--blue); text-decoration: none; }

/* Results */
.finn-results { display: flex; flex-direction: column; gap: 10px; }
.finn-results-head { font-size: var(--t-md); color: var(--muted); padding: 4px 0 6px; display: flex; align-items: center; gap: 6px; }
.finn-page-info { color: var(--subtle); }
.finn-card { display: flex; }
.finn-card-meta { display: flex; flex-wrap: wrap; gap: 0 6px; }

/* Pagination */
.finn-pagination { display: flex; align-items: center; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.finn-pag-btn { padding: 6px 14px; font-size: var(--t-md); font-weight: var(--w-semi); color: var(--blue); background: #fff; border: 1px solid var(--line); border-radius: 0; text-decoration: none; }
.finn-pag-btn:hover { background: var(--blue-soft); border-color: #bfdbfe; text-decoration: none; }
.finn-pag-num { min-width: 34px; padding: 6px 8px; font-size: var(--t-md); text-align: center; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 0; text-decoration: none; }
.finn-pag-num:hover { background: var(--soft); text-decoration: none; }
.finn-pag-num.is-active { background: var(--blue); color: #fff; border-color: var(--blue); font-weight: var(--w-bold); }

/* Empty state */
.finn-empty-prompt { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 64px 0; color: var(--subtle); text-align: center; }
.finn-empty-prompt p { font-size: var(--t-lg); color: var(--muted); }

/* Responsive */
@media (max-width: 700px) {
  .finn-layout { grid-template-columns: 1fr; }
  .finn-filters { position: static; }
}

/* ── Company browser v2 (/finn redesign) ─────────────────────────────────── */
.finn2-wrap { max-width: var(--page-max); margin: 0 auto; padding: 28px var(--page-px) 64px; }

.finn2-head { margin-bottom: 20px; }
.finn2-breadcrumb { font-size: var(--t-xs); font-weight: var(--w-semi); letter-spacing: var(--tr-caps); color: var(--subtle); margin-bottom: 7px; }
.finn2-breadcrumb a { color: var(--subtle); text-decoration: none; }
.finn2-breadcrumb a:hover { color: var(--navy); }
.finn2-breadcrumb span { color: var(--strong); margin: 0 5px; }
.finn2-head h1 { font-size: var(--t-display-sm); font-weight: var(--w-display); letter-spacing: var(--tr-display); color: var(--navy); margin: 0 0 5px; }
.finn2-head p { font-size: var(--t-base); color: var(--slate); margin: 0; }
.finn2-count { color: var(--navy); font-weight: var(--w-bold); }

.finn2-layout { display: grid; grid-template-columns: 236px 1fr; gap: 20px; align-items: start; }

/* Filter rail */
.finn2-rail { position: sticky; top: 70px; background: #fff; border: 1px solid var(--line-soft); border-radius: 0; padding: 18px; box-shadow: 0 1px 2px rgba(15,23,42,0.03); }
.finn2-rail-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.finn2-rail-title { font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); }
.finn2-rail-reset { font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--blue); text-decoration: none; }
.finn2-rail-reset:hover { text-decoration: underline; }
.finn2-section-title { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; margin: 16px 0 10px; }
.finn2-section-title:first-of-type { margin-top: 0; }

.finn2-check-group { display: flex; flex-direction: column; gap: 9px; margin-bottom: 4px; }
.finn2-check { display: flex; align-items: center; gap: 9px; font-size: var(--t-md); color: var(--muted); cursor: pointer; user-select: none; }
.finn2-check:hover { color: var(--navy); }
.finn2-check-box { width: 16px; height: 16px; border-radius: 0; border: 1.5px solid var(--strong); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.finn2-check-box.is-active { background: var(--blue); border-color: var(--blue); }

.finn2-select { width: 100%; padding: 7px 10px; font-size: var(--t-md); color: var(--navy); background: var(--soft); border: 1px solid var(--line); border-radius: 0; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 9px center; cursor: pointer; font-family: inherit; }
.finn2-select:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,0.1); }
.finn2-input { width: 100%; padding: 7px 10px; font-size: var(--t-md); color: var(--navy); background: var(--soft); border: 1px solid var(--line); border-radius: 0; font-family: inherit; }
.finn2-input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,0.1); }
.finn2-range { display: flex; align-items: center; gap: 6px; }
.finn2-range .finn2-input { flex: 1; min-width: 0; }
.finn2-range-sep { color: var(--subtle); font-size: var(--t-md); flex-shrink: 0; }
.finn2-mva-label { display: flex; align-items: center; gap: 8px; font-size: var(--t-md); color: var(--muted); cursor: pointer; margin-top: 16px; }
.finn2-mva-label input { accent-color: var(--blue); cursor: pointer; }
.finn2-submit { width: 100%; margin-top: 18px; padding: 9px 0; font-size: var(--t-md); font-weight: var(--w-bold); color: #fff; background: var(--blue); border: none; border-radius: 0; cursor: pointer; font-family: inherit; transition: background 0.14s; }
.finn2-submit:hover { background: var(--blue-dark); }

/* Column headers */
.finn2-col-head { display: grid; grid-template-columns: 1fr 88px 124px 22px; gap: 14px; align-items: center; padding: 0 18px 8px 68px; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: #A9B5C4; }
.finn2-col-right { text-align: right; }

/* Result cards */
.finn2-results { display: flex; flex-direction: column; gap: 9px; }
.finn2-card { display: grid; grid-template-columns: 1fr 18px; gap: 14px; align-items: center; text-decoration: none; background: #fff; border: 1px solid var(--line-soft); border-radius: 0; padding: 14px 18px; box-shadow: 0 1px 2px rgba(15,23,42,0.03); transition: transform 0.12s, box-shadow 0.12s, border-color 0.12s; }
.finn2-card.has-stats { grid-template-columns: 1fr 96px 130px 18px; }
.finn2-card:hover { border-color: #c7d2fe; box-shadow: 0 10px 24px -14px rgba(37,99,235,0.4); transform: translateY(-1px); text-decoration: none; }
.finn2-main { display: flex; align-items: center; gap: 14px; min-width: 0; }
.finn2-avatar { width: 40px; height: 40px; border-radius: 0; background: linear-gradient(135deg, #2563eb, #1e40af); color: #fff; font-size: var(--t-md); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.finn2-avatar-muted { background: #f1f5f9; border: 1px solid var(--line); color: var(--subtle); }
.finn2-info { min-width: 0; }
.finn2-card-top { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; flex-wrap: wrap; }
.finn2-card-name { font-size: var(--t-lg); font-weight: var(--w-bold); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.finn2-card-sub { font-size: var(--t-sm); color: var(--subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.finn2-card-stat { text-align: right; font-size: var(--t-md); font-weight: var(--w-semi); color: #334155; }
.finn2-rev { font-weight: var(--w-bold); color: var(--navy); }
.finn2-arrow { width: 18px; height: 18px; color: var(--strong); flex-shrink: 0; }
.finn2-card:hover .finn2-arrow { color: var(--blue); }

/* Contact-flag checkboxes */
.finn2-contact-group { display: flex; flex-direction: column; gap: 9px; }
.finn2-contact { display: flex; align-items: center; gap: 8px; font-size: var(--t-md); color: var(--muted); cursor: pointer; user-select: none; }
.finn2-contact:hover { color: var(--navy); }
.finn2-contact input { accent-color: var(--blue); cursor: pointer; }

/* Dense Proff-style result rows */
.finn2-row { display: block; text-decoration: none; background: #fff; border: 1px solid var(--line-soft); border-radius: 0; padding: 15px 18px; box-shadow: 0 1px 2px rgba(15,23,42,0.03); transition: transform 0.12s, box-shadow 0.12s, border-color 0.12s; }
.finn2-row:hover { border-color: #c7d2fe; box-shadow: 0 10px 24px -14px rgba(37,99,235,0.4); transform: translateY(-1px); text-decoration: none; }
.finn2-row.is-muted { background: #fbfcfd; }
.finn2-row-head { display: flex; align-items: center; gap: 9px; }
.finn2-row-name { font-size: var(--t-lg); font-weight: var(--w-bold); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.finn2-row .finn2-arrow { margin-left: auto; }
.finn2-row-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 4px; font-size: var(--t-sm); color: var(--subtle); }
.finn2-dot { color: var(--line); }
.finn2-facts { display: flex; flex-wrap: wrap; gap: 8px 10px; margin-top: 11px; padding: 10px 12px; background: var(--soft); border-radius: 0; }
.finn2-fact { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.finn2-fact-wide { flex: 1 1 180px; }
.finn2-fact-lbl { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: #A9B5C4; }
.finn2-fact-val { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.finn2-fact-val.is-neg { color: #dc2626; }
.finn2-row-industry { margin-top: 9px; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--blue); }

/* Hints & multi-select pickers */
.finn2-hint { font-size: var(--t-2xs); color: var(--subtle); margin-top: 5px; }
.finn2-multi { position: relative; }
.finn2-multi-summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 10px; font-size: var(--t-md); color: var(--navy); background: var(--soft); border: 1px solid var(--line); border-radius: 0; cursor: pointer; user-select: none; }
.finn2-multi-summary::-webkit-details-marker { display: none; }
.finn2-multi-summary svg { color: var(--subtle); flex-shrink: 0; transition: transform 0.15s; }
.finn2-multi[open] .finn2-multi-summary svg { transform: rotate(180deg); }
.finn2-multi-label { color: var(--subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.finn2-multi-label.is-set { color: var(--blue); font-weight: var(--w-semi); }
.finn2-multi-list { max-height: 210px; overflow-y: auto; margin-top: 6px; padding: 8px 10px; background: #fff; border: 1px solid var(--line); border-radius: 0; display: flex; flex-direction: column; gap: 8px; box-shadow: 0 6px 18px -10px rgba(15,23,42,0.25); }

/* Dual-handle range slider */
.finn2-slider { position: relative; height: 26px; margin: 4px 2px 2px; }
.finn2-slider-track { position: absolute; top: 11px; left: 0; right: 0; height: 4px; background: var(--line); border-radius: 0; }
.finn2-slider-fill { position: absolute; height: 100%; background: var(--blue); border-radius: 0; }
.finn2-slider-range { position: absolute; top: 0; left: 0; width: 100%; height: 26px; margin: 0; background: transparent; pointer-events: none; -webkit-appearance: none; appearance: none; }
.finn2-slider-range:focus { outline: none; }
.finn2-slider-range::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 2px solid var(--blue); cursor: pointer; box-shadow: 0 1px 3px rgba(15,23,42,0.25); margin-top: 5.5px; }
.finn2-slider-range::-moz-range-thumb { pointer-events: auto; width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 2px solid var(--blue); cursor: pointer; box-shadow: 0 1px 3px rgba(15,23,42,0.25); }
.finn2-slider-range::-webkit-slider-runnable-track { height: 26px; background: transparent; }
.finn2-slider-range::-moz-range-track { height: 26px; background: transparent; }

/* Results bar (count + sort) */
.finn2-results-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 2px 4px; }
.finn2-results-count { font-size: var(--t-md); color: var(--subtle); }
.finn2-results-count strong { color: var(--navy); font-weight: var(--w-bold); }
.finn2-sort { display: flex; align-items: center; gap: 8px; font-size: var(--t-sm); color: var(--subtle); }
.finn2-sort-select { padding: 6px 28px 6px 10px; font-size: var(--t-sm); color: var(--navy); background: #fff; border: 1px solid var(--line); border-radius: 0; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 9px center; cursor: pointer; font-family: inherit; }
.finn2-sort-select:focus { outline: none; border-color: var(--blue); }

/* No results with filter */
.finn2-empty { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 64px 0; color: var(--subtle); text-align: center; }
.finn2-empty p { font-size: var(--t-lg); color: var(--muted); }
.finn2-empty-link { font-size: var(--t-md); color: var(--blue); }

/* Default prompt (no filter) */
.finn2-prompt { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 72px 0; color: var(--subtle); text-align: center; }
.finn2-prompt p { font-size: var(--t-lg); color: var(--muted); }

/* Pagination */
.finn2-pager { display: flex; align-items: center; gap: 6px; margin-top: 12px; flex-wrap: wrap; justify-content: center; }
.finn2-pag-btn { padding: 6px 14px; font-size: var(--t-md); font-weight: var(--w-semi); color: var(--blue); background: #fff; border: 1px solid var(--line); border-radius: 0; text-decoration: none; }
.finn2-pag-btn:hover { background: var(--blue-soft); border-color: #bfdbfe; text-decoration: none; }
.finn2-pag-num { min-width: 32px; height: 32px; padding: 0 8px; font-size: var(--t-md); font-weight: var(--w-semi); text-align: center; display: inline-flex; align-items: center; justify-content: center; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 0; text-decoration: none; }
.finn2-pag-num:hover { background: var(--soft); text-decoration: none; }
.finn2-pag-num.is-active { background: var(--blue); color: #fff; border-color: var(--blue); font-weight: var(--w-bold); }

/* Responsive */
@media (max-width: 800px) {
  .finn2-layout { grid-template-columns: 1fr; }
  .finn2-rail { position: static; }
  .finn2-col-head { display: none; }
  .finn2-card-inner { grid-template-columns: 1fr 22px; }
  .finn2-card-stat { display: none; }
}

/* ============================================================================
   Relasjonssøk (/relasjoner) — connection search
   ========================================================================== */
.rel-wrap { max-width: var(--page-max); margin: 0 auto; padding: 28px var(--page-px) 64px; }
.rel-crumb { font-size: var(--t-sm); color: var(--subtle); margin-bottom: 10px; }
.rel-crumb span { margin: 0 6px; }
.rel-head h1 { font-size: var(--t-display-sm); font-weight: var(--w-display); letter-spacing: var(--tr-display); display: flex; align-items: center; gap: 12px; }
.rel-head p { color: var(--muted); margin-top: 8px; max-width: 640px; font-size: var(--t-base); }

/* search card */
.rel-search-card { margin-top: 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 0; padding: 20px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.rel-search-label { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-sm); font-weight: var(--w-bold); color: var(--navy); margin-bottom: 14px; }
.rel-ai-badge { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 0; background: var(--navy); color: #fff; font-size: var(--t-xs); }
.rel-pickers { display: grid; grid-template-columns: 1fr auto 1fr auto; gap: 12px; align-items: end; }
.rel-picker label { display: block; font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--slate); margin-bottom: 5px; }
.rel-input-wrap { position: relative; }
.rel-picker input[type=text] { width: 100%; height: 44px; padding: 0 14px; font-size: var(--t-base); font-family: inherit; color: var(--navy); background: var(--soft); border: 1.5px solid var(--line); border-radius: 0; outline: none; }
.rel-picker input[type=text]:focus { border-color: var(--blue); background: #fff; }
.rel-picker.is-set input[type=text] { border-color: var(--blue); background: #fff; font-weight: var(--w-semi); }
.rel-swap { align-self: end; margin-bottom: 6px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 0; background: var(--soft); border: 1px solid var(--line); color: var(--slate); cursor: pointer; font-size: var(--t-xl); user-select: none; }
.rel-swap:hover { background: var(--blue-soft); color: var(--blue); border-color: var(--blue); }
.rel-go { align-self: end; height: 44px; padding: 0 22px; font-size: var(--t-base); font-weight: var(--w-bold); font-family: inherit; color: #fff; background: var(--navy); border: 0; border-radius: 0; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; }
.rel-go:hover { background: var(--ink-hover); }

/* typeahead dropdown */
.rel-suggest { position: absolute; top: calc(100% + 5px); left: 0; right: 0; z-index: 40; background: #fff; border: 1px solid var(--line); border-radius: 0; box-shadow: 0 8px 28px rgba(15,23,42,.13); overflow: hidden; max-height: 320px; overflow-y: auto; }
.rel-sg-item { display: flex; flex-direction: column; gap: 1px; padding: 8px 12px; cursor: pointer; }
.rel-sg-item:hover, .rel-sg-item.is-active { background: var(--blue-soft); }
.rel-sg-name { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); }
.rel-sg-meta { font-size: var(--t-xs); color: var(--subtle); }

/* example chips */
.rel-chips { margin-top: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rel-chips-label { font-size: var(--t-sm); color: var(--subtle); }
.rel-chip { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--muted); background: var(--soft); border: 1px solid var(--line); border-radius: 0; padding: 5px 12px; cursor: pointer; font-family: inherit; }
.rel-chip:hover { background: var(--blue-soft); color: var(--blue); border-color: var(--blue); }

/* states */
.rel-state { margin-top: 40px; text-align: center; color: var(--subtle); }
.rel-state.rel-prompt svg { color: var(--strong); margin-bottom: 10px; }
.rel-state p { font-size: var(--t-base); }
.rel-error { color: var(--negative); font-weight: var(--w-semi); }
.rel-spinner { display: inline-block; width: 15px; height: 15px; border: 2px solid var(--line); border-top-color: var(--blue); border-radius: 50%; animation: rel-spin .7s linear infinite; vertical-align: -2px; margin-right: 6px; }
@keyframes rel-spin { to { transform: rotate(360deg); } }

/* interpretation strip */
.rel-results { margin-top: 22px; }
.rel-interpret { background: var(--surface); border: 1px solid var(--line); border-radius: 0; padding: 12px 16px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.rel-int-label { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; }
.rel-int-body { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rel-int-ent { display: inline-flex; align-items: center; gap: 8px; }
.rel-int-ent-txt { display: flex; flex-direction: column; line-height: 1.25; }
.rel-int-ent-txt b { font-size: var(--t-md); color: var(--navy); }
.rel-int-ent-txt small { font-size: var(--t-xs); color: var(--subtle); }
.rel-int-swap { color: var(--slate); font-size: var(--t-lg); }
.rel-int-pill { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--blue); background: var(--blue-soft); border-radius: 0; padding: 4px 11px; }

/* summary card (dark) */
.rel-summary { margin-top: 14px; background: var(--navy); color: #fff; border-radius: 0; padding: 18px 20px; }
.rel-sum-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.rel-sum-badge { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: #93c5fd; }
.rel-conf { font-size: var(--t-xs); font-weight: var(--w-bold); padding: 4px 10px; border-radius: 0; }
.rel-conf-high { background: rgba(34,197,94,.22); color: #86efac; }
.rel-conf-med { background: rgba(59,130,246,.24); color: #93c5fd; }
.rel-conf-low, .rel-conf-none { background: rgba(148,163,184,.22); color: #cbd5e1; }
.rel-sum-text { font-size: var(--t-lg); line-height: 1.6; color: #e2e8f0; }
.rel-sum-text b { color: #fff; }
.rel-sum-foot { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.12); font-size: var(--t-xs); color: #94a3b8; }

/* layout */
.rel-layout { margin-top: 18px; display: grid; grid-template-columns: 1fr 300px; gap: 22px; align-items: start; }
.rel-forb-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.rel-forb-head > span:first-child { font-size: var(--t-xl); font-weight: var(--w-bold); color: var(--navy); }
.rel-count { color: var(--subtle); font-weight: var(--w-medium); font-size: var(--t-md); }
.rel-forb-sort { font-size: var(--t-sm); color: var(--subtle); }

/* path rows */
.rel-path { background: var(--surface); border: 1px solid var(--line); border-radius: 0; padding: 14px 16px; margin-bottom: 12px; }
.rel-path-strong { border-left: 3px solid var(--blue); }
.rel-path-weak { opacity: .82; }
.rel-path-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.rel-path-badge { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); padding: 3px 8px; border-radius: 0; text-transform: uppercase; }
.rel-path-badge.tier-strong { background: var(--blue); color: #fff; }
.rel-path-badge.tier-medium { background: var(--blue-soft); color: var(--blue-dark); }
.rel-path-badge.tier-weak { background: #fef3c7; color: #92400e; }
.rel-path-kind { font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); }
.rel-path-hops { font-size: var(--t-sm); color: var(--subtle); }
.rel-eff { font-size: var(--t-sm); font-weight: var(--w-bold); color: var(--good); background: var(--good-bg); border: 1px solid var(--good-bd); padding: 1px 7px; border-radius: 0; }
.rel-path-narr { font-size: var(--t-md); color: var(--muted); margin-bottom: 10px; }

/* entity chain */
.rel-chain { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.rel-ent { display: inline-flex; align-items: center; gap: 6px; background: var(--soft); border: 1px solid var(--line); border-radius: 0; padding: 4px 9px 4px 5px; text-decoration: none; }
.rel-ent:hover { text-decoration: none; border-color: var(--blue); background: var(--blue-soft); }
.rel-chip-av { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 0; background: var(--navy); color: #fff; font-size: var(--t-2xs); font-weight: var(--w-bold); flex-shrink: 0; }
.rel-chip-av.is-person { background: var(--blue); border-radius: 50%; }
.rel-chip-name { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--navy); }
.rel-arrow { flex-shrink: 0; position: relative; min-width: 46px; height: 20px; display: inline-flex; align-items: center; justify-content: center; }
.rel-arrow::before { content: ""; position: absolute; left: 2px; right: 8px; top: 50%; height: 1.5px; background: var(--strong); }
.rel-arrow::after { content: ""; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); border-left: 5px solid var(--strong); border-top: 3.5px solid transparent; border-bottom: 3.5px solid transparent; }
.rel-arrow-lbl { position: relative; z-index: 1; font-size: var(--t-2xs); font-weight: var(--w-semi); color: var(--slate); background: var(--surface); padding: 0 4px; white-space: nowrap; }

.rel-none { background: var(--surface); border: 1px dashed var(--line); border-radius: 0; padding: 28px; text-align: center; color: var(--muted); }
.rel-none-hint { font-size: var(--t-sm); color: var(--subtle); margin-top: 4px; }

/* side panels */
.rel-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 0; padding: 16px; margin-bottom: 16px; }
.rel-panel h3 { font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); margin-bottom: 12px; }
.rel-sh-row { display: flex; gap: 10px; padding: 9px 0; border-top: 1px solid var(--hair); }
.rel-sh-row:first-child { border-top: 0; padding-top: 0; }
.rel-sh-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.rel-sh-kind { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: var(--subtle); text-transform: uppercase; }
.rel-sh-name { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--navy); }
a.rel-sh-name:hover { color: var(--blue); }
.rel-sh-sub { font-size: var(--t-xs); color: var(--slate); }

/* refine controls */
.rel-refine-label { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--slate); margin: 14px 0 8px; }
.rel-refine-label:first-of-type { margin-top: 0; }
.rel-hops { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.rel-hops button { font-size: var(--t-md); font-weight: var(--w-semi); font-family: inherit; padding: 7px 0; border: 1px solid var(--line); background: var(--soft); border-radius: 0; cursor: pointer; color: var(--muted); }
.rel-hops button.is-active { background: var(--blue); color: #fff; border-color: var(--blue); }
.rel-check { display: flex; align-items: center; gap: 8px; font-size: var(--t-md); color: var(--muted); padding: 4px 0; cursor: pointer; }
.rel-check input { accent-color: var(--blue); width: 15px; height: 15px; }
.rel-toggle { display: flex; align-items: center; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--hair); font-size: var(--t-md); color: var(--muted); cursor: pointer; }
.rel-toggle input { accent-color: var(--blue); width: 15px; height: 15px; }

@media (max-width: 860px) {
  .rel-pickers { grid-template-columns: 1fr; }
  .rel-swap { justify-self: center; transform: rotate(90deg); }
  .rel-layout { grid-template-columns: 1fr; }
}

/* Relasjonssøk — natural-language prompt */
.rel-nl { display: flex; gap: 10px; }
.rel-nl input { flex: 1; height: 48px; padding: 0 16px; font-size: var(--t-lg); font-family: inherit; color: var(--navy); background: var(--soft); border: 1.5px solid var(--line); border-radius: 0; outline: none; }
.rel-nl input:focus { border-color: var(--blue); background: #fff; box-shadow: 0 0 0 3px var(--blue-soft); }
.rel-nl input::placeholder { color: var(--subtle); }
.rel-nl-go { flex-shrink: 0; height: 48px; padding: 0 18px; font-size: var(--t-base); font-weight: var(--w-bold); font-family: inherit; color: var(--blue-dark); background: var(--blue-soft); border: 1.5px solid var(--blue-soft); border-radius: 0; cursor: pointer; white-space: nowrap; }
.rel-nl-go:hover { background: #dbeafe; }
.rel-or { display: flex; align-items: center; gap: 12px; margin: 14px 0; color: var(--subtle); font-size: var(--t-sm); }
.rel-or::before, .rel-or::after { content: ""; flex: 1; height: 1px; background: var(--hair); }

/* Relasjonssøk — disambiguation ("mente du?") */
.rel-disambig { margin-top: 12px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 0; padding: 10px 14px; }
.rel-dis-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 3px 0; }
.rel-dis-lbl { font-size: var(--t-sm); font-weight: var(--w-bold); color: #92400e; }
.rel-dis-chip { display: inline-flex; align-items: baseline; gap: 6px; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--navy); background: #fff; border: 1px solid #fde68a; border-radius: 0; padding: 4px 10px; cursor: pointer; font-family: inherit; }
.rel-dis-chip:hover { border-color: var(--blue); background: var(--blue-soft); }
.rel-dis-meta { font-size: var(--t-2xs); font-weight: var(--w-medium); color: var(--subtle); }

/* ============================================================================
   Oppdag selskaper (/oppdag) — semantic company discovery
   ========================================================================== */
.opp-wrap { max-width: var(--page-max); margin: 0 auto; padding: 28px var(--page-px) 64px; }
.opp-crumb { font-size: var(--t-sm); color: var(--subtle); margin-bottom: 10px; }
.opp-crumb span { margin: 0 6px; }
.opp-head h1 { font-size: var(--t-display-sm); font-weight: var(--w-display); letter-spacing: var(--tr-display); display: flex; align-items: center; gap: 12px; }
.opp-head p { color: var(--muted); margin-top: 8px; max-width: 640px; font-size: var(--t-base); }

.opp-search-card { margin-top: 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 0; padding: 20px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.opp-search-label { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-sm); font-weight: var(--w-bold); color: var(--navy); margin-bottom: 14px; }
.opp-ai-badge { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 0; background: var(--navy); color: #fff; font-size: var(--t-xs); }
.opp-nl { display: flex; gap: 10px; }
.opp-nl input { flex: 1; height: 48px; padding: 0 16px; font-size: var(--t-lg); font-family: inherit; color: var(--navy); background: var(--soft); border: 1.5px solid var(--line); border-radius: 0; outline: none; }
.opp-nl input:focus { border-color: var(--blue); background: #fff; box-shadow: 0 0 0 3px var(--blue-soft); }
.opp-nl input::placeholder { color: var(--subtle); }
.opp-go { flex-shrink: 0; height: 48px; padding: 0 22px; font-size: var(--t-base); font-weight: var(--w-bold); font-family: inherit; color: #fff; background: var(--navy); border: 0; border-radius: 0; cursor: pointer; }
.opp-go:hover { background: var(--ink-hover); }
.opp-chips { margin-top: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.opp-chips-label { font-size: var(--t-sm); color: var(--subtle); }
.opp-chip { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--muted); background: var(--soft); border: 1px solid var(--line); border-radius: 0; padding: 5px 12px; cursor: pointer; font-family: inherit; }
.opp-chip:hover { background: var(--blue-soft); color: var(--blue); border-color: var(--blue); }

.opp-terms { margin-top: 16px; background: var(--blue-soft); border: 1px solid #dbeafe; border-radius: 0; padding: 10px 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.opp-terms-lbl { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--blue-dark); }
.opp-term { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--blue-dark); background: #fff; border: 1px solid #dbeafe; border-radius: 0; padding: 3px 9px; }

.opp-state { margin-top: 40px; text-align: center; color: var(--subtle); font-size: var(--t-base); }
.opp-error { color: var(--negative); font-weight: var(--w-semi); }

.opp-results { margin-top: 20px; }
.opp-results-head { font-size: var(--t-md); font-weight: var(--w-semi); color: var(--slate); margin-bottom: 10px; }
.opp-card { display: flex; align-items: center; gap: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 0; padding: 13px 16px; margin-bottom: 10px; text-decoration: none; }
.opp-card:hover { border-color: var(--blue); text-decoration: none; box-shadow: 0 2px 8px rgba(37,99,235,.08); }
.opp-av { flex-shrink: 0; width: 38px; height: 38px; border-radius: 0; display: grid; place-items: center; background: var(--navy); color: #fff; font-size: var(--t-md); font-weight: var(--w-bold); }
.opp-av.is-muted { background: var(--strong); }
.opp-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.opp-top { display: flex; align-items: center; gap: 9px; }
.opp-name { font-size: var(--t-lg); font-weight: var(--w-bold); color: var(--navy); }
.opp-status { font-size: var(--t-2xs); font-weight: var(--w-bold); padding: 1px 7px; border-radius: 0; background: var(--good-bg); color: var(--good); }
.opp-status.bankrupt, .opp-status.winding_up { background: #fef2f2; color: var(--negative); }
.opp-sub { font-size: var(--t-sm); color: var(--slate); }
.opp-snip { font-size: var(--t-sm); color: var(--muted); margin-top: 3px; line-height: 1.45; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.opp-arrow { flex-shrink: 0; width: 16px; height: 16px; color: var(--subtle); }
.opp-none { background: var(--surface); border: 1px dashed var(--line); border-radius: 0; padding: 28px; text-align: center; color: var(--muted); }

/* Relasjonssøk — relationship graph (Relasjonsgraf) */
.rel-graf { background: var(--surface); border: 1px solid var(--line); border-radius: 0; padding: 16px; margin-bottom: 16px; }
.rel-graf-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.rel-graf-head h3 { font-size: var(--t-lg); font-weight: var(--w-bold); color: var(--navy); }
.rel-graf-head p { font-size: var(--t-sm); color: var(--subtle); margin-top: 2px; }
.rel-graf-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex-shrink: 0; }
.rel-graf-legend { display: flex; gap: 14px; flex-shrink: 0; }
.rel-graf-open { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--blue); background: var(--blue-soft); border: 1px solid #bfdbfe; border-radius: 0; text-decoration: none; white-space: nowrap; transition: background 0.14s, border-color 0.14s; }
.rel-graf-open:hover { background: #dbeafe; border-color: #93c5fd; text-decoration: none; }
.rel-graf-open svg { width: 14px; height: 14px; flex-shrink: 0; }
.rel-graf-legend span { display: inline-flex; align-items: center; gap: 5px; font-size: var(--t-xs); color: var(--slate); }
.rel-graf-legend i { width: 11px; height: 11px; border-radius: 0; display: inline-block; }
.rel-lg-co { background: var(--blue); }
.rel-lg-pe { background: var(--navy); border-radius: 50% !important; }
.rel-lg-ed { width: 16px !important; height: 2px !important; background: #60a5fa; border-radius: 0; }

.rel-graf-canvas { position: relative; height: 380px; border-radius: 0; overflow: hidden;
  background: radial-gradient(120% 100% at 50% 0%, #16233d 0%, #0c1526 55%, #0a1120 100%); }
.rel-graf-svg { position: absolute; inset: 0; }
.rel-ed-line { stroke: #3b82f6; stroke-width: 2; stroke-linecap: round; opacity: .55;
  filter: drop-shadow(0 0 3px rgba(59,130,246,.7)); stroke-dasharray: 2 5; }

/* graph node — company (horizontal card) */
.rel-gn { position: absolute; transform: translate(-50%, -50%); display: flex; align-items: center; gap: 8px;
  padding: 7px 11px 7px 7px; border-radius: 0; background: #16223b; border: 1px solid #24314d;
  box-shadow: 0 4px 14px rgba(0,0,0,.35); white-space: nowrap; z-index: 2; }
.rel-gn.is-end { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue), 0 6px 18px rgba(37,99,235,.35); }
.rel-gn-av { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 0; background: var(--blue); color: #fff; font-size: var(--t-2xs); font-weight: var(--w-bold); flex-shrink: 0; }
.rel-gn-av.is-person { border-radius: 50%; background: #1e293b; border: 2px solid #475569; color: #cbd5e1; }
.rel-gn-txt { display: flex; flex-direction: column; line-height: 1.2; }
.rel-gn-name { font-size: var(--t-sm); font-weight: var(--w-bold); color: #f1f5f9; }
.rel-gn-org { font-size: var(--t-2xs); color: #94a3b8; font-variant-numeric: tabular-nums; }
.rel-gn-badge { position: absolute; top: -7px; right: -7px; width: 16px; height: 16px; border-radius: 0; background: var(--blue); color: #fff; font-size: var(--t-2xs); font-weight: var(--w-bold); display: grid; place-items: center; }

/* graph node — person (circular, name below) */
.rel-gn.is-person { flex-direction: column; gap: 4px; padding: 0; background: none; border: 0; box-shadow: none; }
.rel-gn.is-person .rel-gn-av { width: 46px; height: 46px; font-size: var(--t-base); background: #1e293b; border: 2px solid #64748b; box-shadow: 0 4px 14px rgba(0,0,0,.4); }
.rel-gn.is-person.is-end .rel-gn-av { border-color: var(--blue); box-shadow: 0 0 0 2px var(--blue); }
.rel-gn.is-person .rel-gn-txt { align-items: center; }
.rel-gn.is-person .rel-gn-name { font-size: var(--t-xs); }

/* edge label */
.rel-el { position: absolute; transform: translate(-50%, -50%); z-index: 3; font-size: var(--t-2xs); font-weight: var(--w-semi);
  color: #cbd5e1; background: rgba(16,26,44,.92); border: 1px solid #2a3b5c; border-radius: 0; padding: 2px 7px; white-space: nowrap; }

@media (max-width: 860px) { .rel-graf-canvas { height: 320px; } .rel-graf-legend { display: none; } }

/* ============================================================================
   Relasjonssøk — alignment to BiztracRelasjonssok.dc.html design
   ========================================================================== */
/* AI-summary: gradient + constellation + highlight sub-cards */
.rel-summary { position: relative; overflow: hidden; padding: 22px 24px;
  background: linear-gradient(150deg,#0F172A 0%,#16243d 60%,#1a2f52 100%);
  box-shadow: 0 20px 44px -28px rgba(15,23,42,.6); }
.rel-sum-bg { position: absolute; top: -16px; right: -20px; opacity: .5; pointer-events: none; }
.rel-sum-inner { position: relative; max-width: 820px; }
.rel-sum-badge { display: inline-flex; align-items: center; gap: 6px; }
.rel-sum-badge svg { display: block; }
.rel-sum-text { font-size: var(--t-lg); }
.rel-sum-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 14px; }
.rel-sc { background: rgba(255,255,255,.06); border: 1px solid rgba(148,163,184,.22); border-radius: 0; padding: 12px 13px; }
.rel-sc-lbl { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); color: #93C5FD; text-transform: uppercase; margin-bottom: 6px; }
.rel-sc-txt { font-size: var(--t-md); font-weight: var(--w-semi); color: #fff; line-height: 1.4; }
.rel-sum-foot { border-top: 0; padding-top: 0; margin-top: 15px; gap: 14px; }
.rel-fdot { display: inline-flex; align-items: center; gap: 6px; }
.rel-fdot i { width: 7px; height: 7px; border-radius: 999px; background: #3B82F6; }
.rel-fdot2 i { background: #60A5FA; }
.rel-fmut { opacity: .7; }

/* connection path rows */
.rel-path { background: #FBFCFE; border-color: #E6EBF2; }
.rel-path-top { margin-bottom: 12px; }
.rel-path-badge { border-radius: 0; padding: 3px 8px; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); }
.rel-path-badge.tier-strong { background: #2563EB; color: #fff; }
.rel-path-badge.tier-medium { background: #EEF4FF; color: #1D4ED8; border: 1px solid #DBE5FB; }
.rel-path-badge.tier-weak { background: #FFF7ED; color: #B45309; border: 1px solid #FED7AA; }
.rel-path-kind { font-size: var(--t-md); }
.rel-path-hops { margin-left: auto; background: #fff; border: 1px solid #E2E8F0; border-radius: 0; padding: 3px 10px; color: #64748B; font-size: var(--t-xs); font-weight: var(--w-semi); }

/* entity chips + colored connectors */
.rel-chain { display: flex; align-items: stretch; gap: 0; flex-wrap: wrap; }
.rel-ent { background: #fff; border: 1px solid #E2E8F0; border-radius: 0; padding: 7px 11px 7px 8px; }
.rel-ent:hover { background: #fff; border-color: #C7D2FE; }
.rel-chip-av { width: 24px; height: 24px; border-radius: 0; font-size: var(--t-2xs); background: linear-gradient(135deg,#2563EB,#1E40AF); }
.rel-chip-av.is-person { border-radius: 50%; background: #F1F5F9; border: 1px solid #CBD5E1; color: #64748B; }
.rel-chip-name { font-size: var(--t-sm); font-weight: var(--w-bold); }
.rel-conn { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 4px; min-width: 80px; }
.rel-conn-pill { font-size: var(--t-2xs); font-weight: var(--w-bold); border-radius: 0; padding: 2px 8px; white-space: nowrap; }
.rel-conn-line { width: 100%; display: flex; align-items: center; justify-content: flex-end; gap: 0; color: #CBD5E1; margin-top: 3px; font-size: var(--t-xs); line-height: 1; }
.rel-conn-line i { flex: 1; height: 1.5px; background: #CBD5E1; }
.rel-conn-own .rel-conn-pill { color: #1D4ED8; background: #EEF4FF; border: 1px solid #DBE5FB; }
.rel-conn-role .rel-conn-pill { color: #7C3AED; background: #F5F0FF; border: 1px solid #E6DCFB; }
.rel-conn-addr .rel-conn-pill { color: #B45309; background: #FFF7ED; border: 1px solid #FED7AA; }
.rel-conn-aud .rel-conn-pill { color: #64748B; background: #F1F5F9; border: 1px solid #E2E8F0; }

/* Felles knytninger — category icons */
.rel-sh-row { align-items: flex-start; gap: 11px; }
.rel-sh-ico { flex-shrink: 0; width: 30px; height: 30px; border-radius: 0; display: flex; align-items: center; justify-content: center; }
.rel-sh-ico-person { background: #EEF4FF; }
.rel-sh-ico-mid { background: #F5F0FF; }
.rel-sh-ico-addr { background: #FFF7ED; }
.rel-sh-ico-aud { background: #F1F5F9; }
.rel-sh-name { font-size: var(--t-md); }
a.rel-sh-name { color: #1D4ED8; }

/* checkmark checkboxes + toggle switch (Avgrens søk) */
.rel-check input { appearance: none; -webkit-appearance: none; width: 16px; height: 16px; border-radius: 0; border: 1.5px solid #CBD5E1; background: #fff; position: relative; cursor: pointer; margin: 0; }
.rel-check input:checked { background: #2563EB; border-color: #2563EB; }
.rel-check input:checked::after { content: ""; position: absolute; left: 4.5px; top: 1px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.rel-toggle { justify-content: space-between; }
.rel-toggle span { order: 0; }
.rel-toggle input { order: 2; appearance: none; -webkit-appearance: none; width: 34px; height: 20px; border-radius: 999px; background: #CBD5E1; position: relative; cursor: pointer; margin: 0; flex-shrink: 0; transition: background .15s; }
.rel-toggle input:checked { background: #2563EB; }
.rel-toggle input::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 999px; background: #fff; transition: left .15s; }
.rel-toggle input:checked::after { left: 16px; }

/* ============================================================================
   Display figures. Every headline number on the site — key figures, health
   ratios, valuation values, landing stats — renders identically: Grotesk,
   bold, tight, tabular. Sizes come from the type scale at each use site; this
   block only guarantees they share one voice.
   ========================================================================== */
.valuation-big, .portfolio-big, .buy-price,
.fin-value, .health-value, .lp-stat .num, .stats-kpi-val, .ckpi-v {
  font-family: var(--font-sans);
  font-weight: var(--w-bold);
  letter-spacing: var(--tr-tight);
}

/* ── Bransjeoversikt (/bransjer) — A–Z industry index ──────────────────────── */
.bransje-index { max-width: var(--page-max); }
.bransje-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; margin-bottom: 8px;
  position: sticky; top: 0; z-index: 5;
  background: var(--bg); padding: 12px 0; border-bottom: 1px solid var(--line);
}
.bransje-search {
  display: flex; align-items: center; gap: 8px; flex: 1 1 280px; max-width: 360px;
  border: 1px solid var(--line); border-radius: 0; background: #fff;
  padding: 9px 16px;
}
.bransje-search:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,0.12); }
.bransje-search svg { width: 15px; height: 15px; color: var(--subtle); flex-shrink: 0; }
.bransje-search input { flex: 1; border: 0; outline: 0; font: inherit; font-size: var(--t-base); color: var(--navy); background: transparent; }
.bransje-search input::placeholder { color: var(--subtle); }

.bransje-alpha { display: flex; flex-wrap: wrap; gap: 3px; }
.bransje-alpha a {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 26px; padding: 0 4px; border-radius: 0;
  font-size: var(--t-sm); font-weight: var(--w-bold); color: var(--blue);
}
.bransje-alpha a:hover { background: var(--blue-soft); text-decoration: none; }

.bransje-empty { color: var(--slate); font-size: var(--t-base); padding: 24px 0; }

.bransje-group { margin: 0 0 22px; }
.bransje-group[hidden] { display: none; }
.bransje-letter {
  font-size: var(--t-lg); font-weight: var(--w-bold); color: var(--blue);
  letter-spacing: var(--tr-caps); margin: 18px 0 10px;
  padding-bottom: 6px; border-bottom: 1px solid var(--line-soft);
}
.bransje-list {
  list-style: none; margin: 0; padding: 0;
  columns: 3; column-gap: 32px;
}
.bransje-item { break-inside: avoid; margin-bottom: 2px; }
.bransje-item[hidden] { display: none; }
.bransje-item a {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  padding: 6px 8px; border-radius: 0; color: var(--ink);
}
.bransje-item a:hover { background: var(--blue-soft); text-decoration: none; }
.bransje-item a:hover .bransje-name { color: var(--blue); }
.bransje-name { font-size: var(--t-md); line-height: 1.35; }
.bransje-meta { display: inline-flex; align-items: baseline; gap: 8px; flex-shrink: 0; }
.bransje-code { font-size: var(--t-xs); color: var(--subtle); font-variant-numeric: tabular-nums; }
.bransje-count { font-size: var(--t-xs); color: var(--subtle); font-variant-numeric: tabular-nums; min-width: 34px; text-align: right; }

@media (max-width: 860px) { .bransje-list { columns: 2; column-gap: 22px; } }
@media (max-width: 560px) {
  .bransje-list { columns: 1; }
  .bransje-toolbar { position: static; }
}

/* ── Derived attention signals (company overview) ────────────────────────── */
.flags-card .card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.flags-card .card-head h2 { margin: 0; }
.flags-card .card-meta { font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--subtle); }
.flags { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.flag { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--line-soft); border-left-width: 3px; border-radius: 0; background: #fff; }
.flag-ic { flex-shrink: 0; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 0; font-size: var(--t-base); line-height: 1; }
.flag-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.flag-label { font-size: var(--t-md); font-weight: var(--w-bold); color: var(--navy); }
.flag-date { font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--subtle); margin-left: 4px; }
.flag-desc { font-size: var(--t-sm); color: var(--muted); line-height: 1.5; }
.flag-neg { border-left-color: #dc2626; }
.flag-neg .flag-ic { background: #fee2e2; color: #991b1b; }
.flag-warn { border-left-color: #f59e0b; }
.flag-warn .flag-ic { background: #fff7ed; color: #b45309; }
.flag-info { border-left-color: var(--blue); }
.flag-info .flag-ic { background: var(--blue-soft); color: var(--blue-dark); }

/* ── Event timeline (kunngjøringer) ──────────────────────────────────────── */
.timeline { list-style: none; position: relative; padding: 2px 0 0 8px; }
.timeline::before { content: ""; position: absolute; left: 5px; top: 8px; bottom: 8px; width: 2px; background: var(--line); }
.tl-item { position: relative; padding: 0 0 20px 22px; }
.tl-item:last-child { padding-bottom: 2px; }
.tl-dot { position: absolute; left: -1px; top: 3px; width: 11px; height: 11px; border-radius: 50%; background: var(--strong); box-shadow: 0 0 0 3px #fff; }
.tl-neg .tl-dot { background: #dc2626; }
.tl-warn .tl-dot { background: #f59e0b; }
.tl-people .tl-dot { background: var(--blue); }
.tl-pos .tl-dot { background: var(--good); }
.tl-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tl-date { font-size: var(--t-sm); font-weight: var(--w-bold); color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tl-desc { font-size: var(--t-md); color: var(--muted); line-height: 1.55; margin-top: 4px; }

/* ── Inline figure trend (overview key figures) ──────────────────────────── */
.fin-trend { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.delta { font-size: var(--t-xs); font-weight: var(--w-bold); font-variant-numeric: tabular-nums; }
.delta.up { color: var(--good); }
.delta.down { color: var(--negative); }

/* ── "Meld feil" report-error button + modal (present on every page) ────── */
.reportbug-btn {
  position: fixed; right: 20px; bottom: 20px; z-index: 900;
  display: flex; align-items: center; gap: 7px;
  background: var(--navy); color: #fff; border: none; border-radius: var(--r-pill);
  padding: 10px 16px 10px 14px; font-family: var(--font-sans); font-size: var(--t-md); font-weight: var(--w-semi);
  cursor: pointer; box-shadow: var(--shadow-md); transition: background .15s ease, transform .15s ease;
}
.reportbug-btn:hover { background: var(--ink-hover); transform: translateY(-1px); }
.reportbug-btn svg { width: 15px; height: 15px; flex: none; }

.reportbug-dialog { border: none; border-radius: var(--r-lg); padding: 0; max-width: 440px; width: calc(100vw - 32px); box-shadow: var(--shadow-lg); }
.reportbug-dialog::backdrop { background: rgba(11, 31, 51, 0.45); }
.reportbug-form { padding: 22px 24px 20px; display: flex; flex-direction: column; gap: 14px; }
.reportbug-title { font-family: var(--font-sans); font-size: var(--t-xl); font-weight: var(--w-bold); color: var(--navy); margin: 0; }
.reportbug-sub { font-size: var(--t-sm); color: var(--muted); margin: -8px 0 0; }
.reportbug-kind { display: flex; gap: 8px; }
.reportbug-kind label {
  flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid var(--line); border-radius: var(--r-md); padding: 8px 10px;
  font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--muted); cursor: pointer; transition: all .12s ease;
}
.reportbug-kind input { position: absolute; opacity: 0; pointer-events: none; }
.reportbug-kind input:checked + span { color: var(--blue-dark); }
.reportbug-kind label:has(input:checked) { border-color: var(--blue); background: var(--blue-soft); color: var(--blue-dark); }
.reportbug-form textarea, .reportbug-form input[type="email"] {
  width: 100%; border: 1px solid var(--line); border-radius: var(--r-md); padding: 9px 11px;
  font-family: var(--font-sans); font-size: var(--t-md); color: var(--ink); resize: vertical;
}
.reportbug-form textarea:focus, .reportbug-form input[type="email"]:focus { outline: 2px solid var(--blue); outline-offset: 1px; }
.reportbug-form label.field-label { font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--subtle); margin-bottom: -6px; }
.reportbug-account { font-size: var(--t-sm); color: var(--muted); background: var(--soft); border-radius: var(--r-md); padding: 8px 11px; margin: 0; }
.reportbug-account strong { color: var(--navy); }
.reportbug-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.reportbug-actions button { border-radius: var(--r-pill); padding: 8px 16px; font-size: var(--t-md); font-weight: var(--w-semi); cursor: pointer; border: none; }
.reportbug-cancel { background: transparent; color: var(--muted); }
.reportbug-cancel:hover { background: var(--soft); }
.reportbug-submit { background: var(--blue); color: #fff; }
.reportbug-submit:hover { background: var(--blue-dark); }
.reportbug-submit:disabled { opacity: .6; cursor: default; }
.reportbug-status { font-size: var(--t-sm); color: var(--good); margin: 0; }
.reportbug-status.err { color: var(--negative); }

@media (max-width: 640px) {
  .reportbug-btn { right: 14px; bottom: 14px; padding: 10px 14px; }
  .reportbug-btn span { display: none; }
}
/* ============================================================================
   NewsTrac (/newstrac) — the news desk
   An instrument, not an article page: a status bar, a ticker, a filter rail and
   three columns of rows. Dense by intent — the reader is scanning for the one
   story that matters, so hierarchy comes from rules and label case rather than
   from cards and whitespace. Built from the same tokens as everything else, so
   it reads as the terminal view OF Biztrac rather than a different product.
   ========================================================================== */
/* Full-bleed white. The app-shell grey (--bg) is right behind cards, but a desk
   IS the surface — on grey the rules and hairlines go soft and the whole thing
   reads washed out. */
.desk-shell { background: #fff; border-bottom: 1px solid var(--line); }
.desk { max-width: var(--page-max); margin: 0 auto; padding: 0 var(--page-px) 64px; }

/* Shared micro-label. */
.desk-kicker { display: block; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; color: var(--subtle); }

/* ── status bar ──────────────────────────────────────────────────────────── */
.desk-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 26px; padding: 15px 0 13px; border-bottom: 2px solid var(--navy); }
.desk-bar-id { display: flex; align-items: baseline; gap: 11px; }
.desk-mark { font-size: var(--t-2xl); font-weight: var(--w-display); letter-spacing: var(--tr-caps); color: var(--navy); }
/* Same lockup as the BizTrac wordmark in the header — NewsTrac is a Biztrac
   surface, and the shared blue second syllable is what says so. */
.desk-mark .accent { color: var(--blue); }
.desk-sub { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); text-transform: uppercase; color: var(--subtle); }

.desk-bar-stats { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-left: auto; font-size: var(--t-xs); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--slate); }
.desk-bar-stats b { font-weight: var(--w-bold); color: var(--navy); font-variant-numeric: tabular-nums; }

.desk-bar-live { display: flex; align-items: center; gap: 12px; }
.desk-live { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); color: var(--good); }
.desk-live i { width: 6px; height: 6px; border-radius: 50%; background: var(--good); animation: desk-pulse 2.4s ease-in-out infinite; }
@keyframes desk-pulse { 0%,100% { opacity: 1; box-shadow: 0 0 0 0 rgba(15,122,80,.35); } 50% { opacity: .55; box-shadow: 0 0 0 5px rgba(15,122,80,0); } }
.desk-updated { font-size: var(--t-xs); color: var(--faint); font-variant-numeric: tabular-nums; }

/* ── controls ────────────────────────────────────────────────────────────── */
.desk-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 18px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.desk-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.desk-chip { font: inherit; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 1px solid var(--line); border-radius: var(--r-pill); background: #fff; color: var(--muted); font-size: var(--t-xs); font-weight: var(--w-semi); letter-spacing: var(--tr-caps); text-transform: uppercase; cursor: pointer; transition: border-color .12s ease, color .12s ease, background .12s ease; }
.desk-chip b { font-weight: var(--w-bold); color: var(--faint); font-variant-numeric: tabular-nums; }
.desk-chip:hover { border-color: var(--strong); color: var(--ink); }
.desk-chip.is-on { background: var(--navy); border-color: var(--navy); color: #fff; }
.desk-chip.is-on b { color: rgba(255,255,255,.6); }

.desk-search { margin-left: auto; }
.desk-search input { font: inherit; width: 260px; max-width: 100%; padding: 7px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--bg); font-size: var(--t-md); color: var(--ink); }
.desk-search input:focus { outline: none; border-color: var(--blue); background: #fff; }
.desk-search input::placeholder { color: var(--faint); }

/* ── rail + hero grid ────────────────────────────────────────────────────────
   The rail carries two lists and grows as the reader follows more companies,
   so a single lead story beside it left a tall dead zone that got worse the
   more you tracked. Four leads in a grid fill that space with journalism
   instead of restructuring the page around the rail's height. */
.desk-top { display: grid; grid-template-columns: 250px 1fr; gap: clamp(20px, 2.8vw, 38px); padding: clamp(20px, 2.6vw, 30px) 0; border-bottom: 1px solid var(--navy); }
.desk-watch { min-width: 0; padding-right: clamp(16px, 2vw, 26px); border-right: 1px solid var(--line); }

.desk-heroes { min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 2vw, 26px) clamp(20px, 2.4vw, 32px); align-content: start; }
.desk-hero { min-width: 0; }
/* The top story spans the grid and carries a display headline; the other four
   sit beneath it as a 2x2. Five is what makes that balance — with four, the
   last cell orphaned into an L. */
.desk-hero.is-lead { grid-column: 1 / -1; padding-bottom: clamp(14px, 1.8vw, 20px); border-bottom: 1px solid var(--line); }
.desk-hero.is-lead .desk-kicker { color: var(--blue); }
.desk-hero-head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 7px; }
.desk-hero-head .desk-kicker { color: var(--blue); }
.desk-hero-title { display: block; font-size: var(--t-xl); font-weight: var(--w-bold); line-height: 1.3; letter-spacing: var(--tr-snug); color: var(--navy); text-decoration: none; text-wrap: balance; }
.desk-hero.is-lead .desk-hero-title { max-width: 26ch; font-size: var(--t-3xl); font-weight: var(--w-display); line-height: 1.08; letter-spacing: var(--tr-display); }
.desk-hero-title:hover { color: var(--blue); text-decoration: none; }
.desk-hero-title::after { content: "↗"; font-size: .62em; font-weight: var(--w-semi); color: var(--faint); margin-left: 6px; vertical-align: 3px; }
.desk-hero-title:hover::after { color: var(--blue); }
.desk-hero-sum { margin: 7px 0 0; max-width: 60ch; font-size: var(--t-md); line-height: 1.55; color: var(--muted); }
.desk-hero.is-lead .desk-hero-sum { max-width: 68ch; font-size: var(--t-lg); }
.desk-watch-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-bottom: 8px; margin-bottom: 6px; border-bottom: 2px solid var(--navy); }
.desk-watch-head h2 { margin: 0; font-size: var(--t-base); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--navy); }
.desk-watch-head span { font-size: var(--t-xs); font-weight: var(--w-bold); color: var(--faint); font-variant-numeric: tabular-nums; }

.desk-watch-list { list-style: none; margin: 0; padding: 0; }
.desk-watch-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line-soft); text-decoration: none; }
.desk-watch-row:hover { text-decoration: none; }
.desk-watch-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--t-xs); font-weight: var(--w-semi); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--slate); }
.desk-watch-row:hover .desk-watch-name { color: var(--blue); }
/* A company with stories in the current feed is the only reason to look at
   this rail, so it is the one that gets the ink. */
.desk-watch-row.has-news .desk-watch-name { color: var(--navy); font-weight: var(--w-bold); }
.desk-watch-n { flex: 0 0 auto; min-width: 20px; padding: 1px 6px; border-radius: var(--r-sm); background: var(--blue); color: #fff; font-size: var(--t-2xs); font-weight: var(--w-bold); text-align: center; font-variant-numeric: tabular-nums; }
.desk-watch-quiet { flex: 0 0 auto; font-size: var(--t-xs); color: var(--strong); }

/* Second block in the rail. Same row furniture as the watchlist, plus a rank
   column — the two lists answer different questions but should read as one
   instrument, so only the columns differ. */
.desk-watch-block { margin-top: 26px; }
.desk-rank { flex: 0 0 16px; font-size: var(--t-2xs); font-weight: var(--w-bold); color: var(--faint); font-variant-numeric: tabular-nums; }
.desk-watch-row:hover .desk-rank { color: var(--blue); }
/* Marks a most-mentioned company that is also on the watchlist, so the overlap
   between the two lists is visible rather than confusing. */
.desk-tracked { flex: 0 0 auto; width: 5px; height: 5px; border-radius: 50%; background: var(--good); }

.desk-watch-foot { margin: 11px 0 0; font-size: var(--t-2xs); line-height: 1.5; color: var(--faint); }
.desk-watch-foot a { color: var(--muted); font-weight: var(--w-semi); }
.desk-watch-foot a:hover { color: var(--blue); }
.desk-watch-empty { margin: 10px 0 0; font-size: var(--t-md); line-height: 1.6; color: var(--slate); }
.desk-watch-cta { display: inline-block; margin-top: 12px; font-size: var(--t-md); font-weight: var(--w-semi); color: var(--blue); text-decoration: none; }
.desk-watch-cta:hover { text-decoration: underline; }
.desk-watch-alt { display: block; margin-top: 6px; font-size: var(--t-md); color: var(--muted); text-decoration: none; }
.desk-watch-alt:hover { color: var(--blue); }


/* ── shared row furniture ────────────────────────────────────────────────── */
.desk-time { font-size: var(--t-xs); font-weight: var(--w-bold); color: var(--blue); font-variant-numeric: tabular-nums; }
.desk-row-top { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.desk-src { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--navy); }
.desk-cat, .desk-topic { font-size: var(--t-2xs); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--faint); }
.desk-cat::before, .desk-topic::before { content: "/"; margin-right: 8px; color: var(--strong); }

.desk-cos { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.desk-co { font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--blue); background: var(--blue-soft); border-radius: var(--r-sm); padding: 3px 8px; text-decoration: none; }
.desk-co:hover { background: var(--blue); color: #fff; text-decoration: none; }

/* ── columns ─────────────────────────────────────────────────────────────── */
.desk-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.desk-col { min-width: 0; padding: 18px 22px 8px; border-right: 1px solid var(--line); }
.desk-col:first-child { padding-left: 0; }
.desk-cols { padding-top: 2px; }
.desk-col:last-child { padding-right: 0; border-right: none; }
.desk-col-head { padding-bottom: 9px; margin-bottom: 4px; border-bottom: 2px solid var(--navy); }
.desk-col-head h2 { font-size: var(--t-base); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--navy); margin: 0; }
.desk-col-head span { display: block; margin-top: 3px; font-size: var(--t-2xs); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--faint); }

.desk-list { list-style: none; margin: 0; padding: 0; }
.desk-row { padding: 13px 0; border-bottom: 1px solid var(--line-soft); }
.desk-row:last-child { border-bottom: none; }
.desk-row-title { display: block; margin-top: 5px; font-size: var(--t-lg); font-weight: var(--w-semi); line-height: 1.35; letter-spacing: var(--tr-snug); color: var(--navy); text-decoration: none; }
.desk-row-title:hover { color: var(--blue); text-decoration: none; }
.desk-row-title::after { content: "↗"; font-size: .68em; font-weight: var(--w-semi); color: var(--faint); margin-left: 5px; vertical-align: 2px; }

.desk-col-empty, .desk-noresults, .desk-empty { padding: 22px 0; font-size: var(--t-md); color: var(--faint); }
.desk-noresults, .desk-empty { text-align: center; border-top: 1px solid var(--line); }

/* A story that arrived in a live update. The desk refreshes itself while it
   sits open, so an arrival has to be visible without moving anything the reader
   is already looking at — a fading tint rather than a jump or a banner. */
@keyframes desk-arrive { from { background: var(--blue-soft); } to { background: transparent; } }
.desk-row.is-new, .desk-hero.is-new { animation: desk-arrive 6s ease-out 1; }
@media (prefers-reduced-motion: reduce) {
  .desk-row.is-new, .desk-hero.is-new { animation: none; box-shadow: inset 2px 0 0 var(--blue); }
}

/* ── colophon ────────────────────────────────────────────────────────────── */
.desk-foot { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(24px, 4vw, 56px); margin-top: 34px; padding-top: 22px; border-top: 2px solid var(--navy); }
.desk-foot p { margin: 9px 0 0; font-size: var(--t-md); line-height: 1.65; color: var(--slate); }
.desk-srclist { list-style: none; margin: 9px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.desk-srclist a { font-size: var(--t-md); font-weight: var(--w-medium); color: var(--muted); text-decoration: underline; text-underline-offset: 2px; }
.desk-srclist a:hover { color: var(--blue); }
.desk-foot-upd { font-size: var(--t-sm) !important; color: var(--faint) !important; font-variant-numeric: tabular-nums; }

@media (max-width: 1100px) {
  /* Not enough width for a rail beside a two-up hero grid: the rail drops
     below, where it stops being a rail and becomes a summary. */
  .desk-top { grid-template-columns: 1fr; gap: 24px; }
  .desk-watch { order: 2; padding-right: 0; padding-top: 18px; border-right: none; border-top: 1px solid var(--line); }
  .desk-heroes { order: 1; }
  .desk-hero.is-lead .desk-hero-title { max-width: none; }
  .desk-cols { grid-template-columns: 1fr 1fr; }
  .desk-col { padding-left: 18px; padding-right: 18px; }
  .desk-col:nth-child(2) { border-right: none; padding-right: 0; }
  .desk-col:nth-child(3) { grid-column: 1 / -1; padding-left: 0; padding-right: 0; border-top: 1px solid var(--line); }
  .desk-foot { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .desk-cols { grid-template-columns: 1fr; }
  .desk-col { padding: 18px 0 8px; border-right: none; border-top: 1px solid var(--line); }
  .desk-col:first-child { border-top: none; }
  .desk-bar-stats { margin-left: 0; width: 100%; }
  .desk-search { margin-left: 0; width: 100%; }
  .desk-search input { width: 100%; }
  .desk-heroes { grid-template-columns: 1fr; }
  .desk-hero.is-lead .desk-hero-title { font-size: var(--t-2xl); }
}

/* ============================================================================
   NewsTrac company-signal desk (2026 redesign)
   The headline stream and register context now share one selection state. The
   selectors below intentionally sit after the earlier editorial-desk rules so
   the new page can keep the same embedded asset and design tokens while the
   legacy markup remains harmless during rollout.
   ========================================================================== */
.desk [hidden] { display: none !important; }
.desk .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.topbar:has(+ main #desk) .topbar-inner, body:has(#desk) .topbar-inner { max-width: 1480px; height: 62px; padding-inline: 24px; }
.desk-shell { background: #fff; }
.desk { max-width: 1480px; padding: 0 24px 72px; }
.desk button, .desk input { font-family: inherit; }

.desk-bar { display: flex; align-items: center; gap: 18px 28px; padding: 22px 0 19px; border-bottom: 1px solid var(--navy); }
.desk-bar-id { flex: 0 0 auto; }
.desk-mark { font-size: 23px; line-height: 1; letter-spacing: .065em; }
.desk-sub { color: var(--faint); }
.desk-bar-stats { display: flex; align-items: center; gap: 22px; margin-left: auto; }
.desk-bar-stats span { font-size: var(--t-xs); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--faint); white-space: nowrap; }
.desk-bar-stats b { margin-right: 4px; color: var(--navy); font-weight: var(--w-bold); font-variant-numeric: tabular-nums; }
.desk-bar-live { display: flex; align-items: center; gap: 14px; }
.desk-live { display: inline-flex; align-items: center; gap: 7px; font-size: var(--t-xs); font-weight: var(--w-bold); color: var(--good); letter-spacing: var(--tr-caps); }
.desk-live i { width: 6px; height: 6px; border-radius: 50%; background: var(--good); }
.desk-updated { white-space: nowrap; }

.desk-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(540px, .92fr); align-items: start; gap: 30px; padding: 19px 0 15px; }
.desk-intro-copy h1 { margin: 0; font-size: 31px; line-height: 1.12; font-weight: var(--w-display); letter-spacing: var(--tr-display); color: var(--navy); }
.desk-intro-copy p { max-width: 680px; margin: 9px 0 0; color: var(--muted); font-size: var(--t-md); line-height: 1.55; }
.desk-tools { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
.desk-search { width: 100%; margin: 0; }
.desk-search input { width: 100%; height: 38px; padding: 8px 13px; border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff; color: var(--navy); font-size: var(--t-md); box-shadow: 0 1px 3px rgba(11,31,51,.04); }
.desk-search input:focus { outline: 2px solid rgba(37,99,235,.22); outline-offset: 1px; border-color: var(--blue); }
.desk-filters { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 7px; }
.desk-chip { min-height: 32px; padding: 6px 14px; border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff; color: var(--muted); font-size: var(--t-sm); font-weight: var(--w-semi); letter-spacing: 0; text-transform: none; box-shadow: 0 1px 2px rgba(11,31,51,.03); }
.desk-chip:hover { border-color: var(--strong); color: var(--navy); }
.desk-chip.is-on { border-color: var(--navy); background: var(--navy); color: #fff; box-shadow: 0 3px 9px rgba(11,31,51,.16); }
.desk-chip:focus-visible, .desk-pulse-card:focus-visible, .desk-story:focus-visible, .desk-panel-close:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

.desk-pulse { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 0; padding: 16px 0 17px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.desk-pulse > li { min-width: 0; border-right: 1px solid var(--line); }
.desk-pulse > li:last-child { border-right: none; }
.desk-pulse-card { display: grid; grid-template-columns: 25px minmax(0, 1fr); gap: 10px; width: 100%; min-height: 120px; padding: 0 16px; border: none; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.desk-pulse > li:first-child .desk-pulse-card { padding-left: 0; }
.desk-pulse-card:hover strong { color: var(--blue); }
.desk-pulse-rank { padding-top: 1px; color: var(--navy); font-size: 22px; line-height: 1; font-weight: var(--w-bold); font-variant-numeric: tabular-nums; }
.desk-pulse-body { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.desk-pulse-body > strong { width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--blue); font-size: var(--t-sm); line-height: 1.25; letter-spacing: var(--tr-caps); text-transform: uppercase; }
.desk-pulse-body > small { margin-top: 3px; color: var(--faint); font-size: var(--t-2xs); font-variant-numeric: tabular-nums; }
.desk-pulse-signal { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 7px; padding: 3px 6px; border-radius: 0; background: var(--blue-soft); color: var(--blue); font-size: var(--t-2xs); font-weight: var(--w-bold); }
.desk-pulse-reason { display: -webkit-box; width: 100%; min-height: 31px; margin-top: 5px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--muted); font-size: var(--t-xs); line-height: 1.4; }
.desk-pulse-trend { margin-top: auto; color: var(--faint); font-size: var(--t-xs); font-weight: var(--w-bold); font-variant-numeric: tabular-nums; }
.desk-pulse-trend.is-up { color: var(--good); }
.desk-pulse-trend small { margin-left: 5px; color: var(--faint); font-weight: var(--w-medium); }

.desk-workspace { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(400px, 1fr); align-items: start; margin-top: 0; border-bottom: 1px solid var(--line); }
.desk-workspace.is-panel-closed { grid-template-columns: 1fr; }
.desk-workspace.is-panel-closed .desk-company-panel { display: none; }
.desk-feed { min-width: 0; padding: 20px 16px 0 0; }
.desk-feed-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.desk-feed-head h2 { margin: 0; color: var(--navy); font-size: 20px; font-weight: var(--w-bold); letter-spacing: var(--tr-snug); }
.desk-feed-head p { margin: 4px 0 0; color: var(--faint); font-size: var(--t-xs); }
.desk-result-status { white-space: nowrap; font-variant-numeric: tabular-nums; }
.desk-stream { list-style: none; margin: 0; padding: 0; }
.desk-stream > li { border-bottom: 1px solid var(--line); }
.desk-story { position: relative; display: grid; grid-template-columns: 96px minmax(0, 1fr) minmax(178px, .42fr); gap: 16px; min-height: 112px; margin-left: 0; padding: 14px 18px 14px 12px; border-left: 3px solid transparent; background: #fff; cursor: pointer; transition: background .12s ease, border-color .12s ease; }
.desk-story:hover { background: #f9fbfe; }
.desk-story.is-selected { border-left-color: var(--blue); background: linear-gradient(90deg, var(--blue-soft), #f8fbff 72%); }
/* The link filter is a second axis, not another section chip: the chips pick
   what kind of signal, this picks whether stories with no company behind them
   are in the stream at all. */
.desk-linkfilter { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; margin-top: 12px; cursor: pointer; }
.desk-linkfilter input { margin: 0; accent-color: var(--blue); cursor: pointer; }
.desk-linkfilter span { color: var(--navy); font-size: var(--t-xs); font-weight: var(--w-semi); }
.desk-linkfilter small { flex: 1 1 100%; padding-left: 22px; color: var(--faint); font-size: var(--t-2xs); }
/* An unlinked story is ordinary news, not a company signal — the row reads a
   step quieter and its right-hand cell says why it is empty. */
.desk-story.is-unlinked { cursor: default; }
.desk-story-company.is-unlinked .desk-match-state { color: var(--faint); }
.desk-story-company.is-unlinked .desk-match-state i { background: var(--line); border-color: var(--line); }
/* Lead image, hotlinked from the publisher's CDN. The monogram is always in
   the DOM underneath it, so an image that is refused, removed or slow to load
   degrades to the source's initials instead of a gap in the stream. */
.desk-story-figure { position: relative; overflow: hidden; width: 96px; height: 64px; margin: 2px 0 0; border-radius: 0; background: var(--news-mono-bg); }
.desk-story-figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.desk-story-figure.is-broken img { display: none; }
.desk-story-mono { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--news-mono-ink); font-size: var(--t-sm); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); }
.desk-story-figure[data-tone="0"] { --news-mono-bg: #eaf1fb; --news-mono-ink: #2f5f9e; }
.desk-story-figure[data-tone="1"] { --news-mono-bg: #e9f4ef; --news-mono-ink: #2f7a5c; }
.desk-story-figure[data-tone="2"] { --news-mono-bg: #fdf0e8; --news-mono-ink: #a55a2c; }
.desk-story-figure[data-tone="3"] { --news-mono-bg: #f1ecf9; --news-mono-ink: #614398; }
.desk-story-figure[data-tone="4"] { --news-mono-bg: #fbecef; --news-mono-ink: #9d3d55; }
.desk-story-figure[data-tone="5"] { --news-mono-bg: #eef0f3; --news-mono-ink: #4a5a6d; }
.desk-story-main { min-width: 0; }
.desk-story-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 7px; }
.desk-story-meta time { color: var(--blue); font-size: var(--t-xs); font-weight: var(--w-bold); font-variant-numeric: tabular-nums; }
.desk-story-meta span { color: var(--faint); font-size: var(--t-2xs); letter-spacing: var(--tr-caps); text-transform: uppercase; }
.desk-story-meta span:first-of-type { color: var(--navy); font-weight: var(--w-bold); }
/* A company announcement is not reporting. The meta line has to carry that
   difference at a glance, so it gets its own colour rather than sitting in the
   same grey as a section label. */
.desk-story-meta span.desk-kind-release { padding: 1px 6px; border-radius: 0; background: #fdf0e8; color: #a55a2c; font-weight: var(--w-bold); }
.desk-story-title { display: inline; color: var(--navy); font-size: 17px; line-height: 1.26; font-weight: var(--w-bold); letter-spacing: var(--tr-snug); text-decoration: none; }
.desk-story-title:hover { color: var(--blue); text-decoration: none; }
.desk-story-main > p { display: -webkit-box; max-width: 62ch; margin: 6px 0 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--muted); font-size: var(--t-sm); line-height: 1.45; }
.desk-story-company { display: flex; min-width: 0; flex-direction: column; justify-content: center; align-items: flex-start; }
.desk-story-company strong { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--blue); font-size: var(--t-xs); line-height: 1.35; letter-spacing: var(--tr-caps); text-transform: uppercase; }
.desk-match-state { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; color: var(--muted); font-size: var(--t-xs); }
.desk-match-state i { width: 12px; height: 12px; border: 2px solid #20a56b; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 2px #fff; }
.desk-noresults, .desk-empty { padding: 42px 20px; border: none; color: var(--muted); font-size: var(--t-md); text-align: center; }

.desk-company-panel { position: sticky; top: 68px; min-width: 0; max-height: calc(100vh - 82px); overflow: auto; border-left: 1px solid var(--line); background: #fff; scrollbar-width: thin; }
.desk-panel-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 44px; padding: 10px 16px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.97); }
.desk-panel-head h2 { margin: 0; color: var(--navy); font-size: 17px; font-weight: var(--w-bold); }
.desk-panel-close { padding: 5px 8px; border: none; background: transparent; color: var(--muted); font-size: var(--t-xs); font-weight: var(--w-semi); cursor: pointer; }
.desk-panel-close:hover { color: var(--navy); }
.desk-panel-body { padding: 0 16px 18px; }
.desk-company-identity { padding: 14px 0 15px; border-bottom: 1px solid var(--line); }
.desk-company-identity h3 { margin: 0; color: var(--navy); font-size: 23px; line-height: 1.15; font-weight: var(--w-display); letter-spacing: var(--tr-display); text-transform: uppercase; }
.desk-company-meta { display: inline-flex; flex-wrap: wrap; gap: 5px 11px; margin: 8px 8px 0 0; color: var(--muted); font-size: var(--t-xs); }
.desk-company-meta span + span::before { content: ""; display: inline-block; width: 3px; height: 3px; margin: 0 8px 3px 0; border-radius: 50%; background: var(--strong); }
.desk-company-status { display: inline-flex; align-items: center; gap: 6px; margin: 7px 0 0; color: var(--good); font-size: var(--t-xs); font-weight: var(--w-bold); }
.desk-company-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.desk-company-status:not([data-status="active"]):not([data-status="AKTIV"]) { color: var(--muted); }
.desk-company-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 17px; }
.desk-company-actions .btn-primary, .desk-company-actions .btn-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 39px; margin: 0; padding: 8px 12px; border-radius: var(--r-sm); font-size: var(--t-sm); font-weight: var(--w-semi); text-align: center; text-decoration: none; }
.desk-company-actions .btn-primary { background: var(--blue); }
.desk-company-actions .btn-primary:hover { background: var(--blue-dark); }
.desk-company-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-bottom: 1px solid var(--line); }
.desk-company-facts > div { min-width: 0; padding: 14px 10px 13px 0; border-bottom: 1px solid var(--line-soft); }
.desk-company-facts > div:nth-last-child(-n+3) { border-bottom: none; }
.desk-company-facts dt { overflow: hidden; color: var(--faint); font-size: 10px; font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.desk-company-facts dd { min-height: 19px; margin: 5px 0 0; overflow: hidden; color: var(--navy); font-size: var(--t-sm); line-height: 1.35; text-overflow: ellipsis; }
.desk-panel-section { padding: 16px 0; border-bottom: 1px solid var(--line); }
.desk-panel-section > h3 { margin: 0 0 10px; color: var(--navy); font-size: var(--t-sm); font-weight: var(--w-bold); }
.desk-panel-section > a { display: inline-block; margin-top: 9px; color: var(--blue); font-size: var(--t-xs); font-weight: var(--w-semi); text-decoration: none; }
.desk-event-row { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 10px; }
.desk-event-row time { color: var(--faint); font-size: var(--t-xs); font-variant-numeric: tabular-nums; }
.desk-event-row strong { color: var(--navy); font-size: var(--t-xs); }
.desk-event-row p, .desk-match-explain p { margin: 3px 0 0; color: var(--muted); font-size: var(--t-xs); line-height: 1.5; }
.desk-match-explain small { display: block; margin-top: 8px; color: var(--faint); font-size: var(--t-2xs); }
.desk-company-timeline { position: relative; list-style: none; margin: 0; padding: 0; }
.desk-company-timeline::before { content: ""; position: absolute; top: 7px; bottom: 7px; left: 5px; width: 1px; background: var(--line); }
.desk-company-timeline li { position: relative; display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 10px; padding-bottom: 15px; }
.desk-company-timeline li:last-child { padding-bottom: 0; }
.desk-company-timeline li > i { z-index: 1; width: 11px; height: 11px; margin-top: 2px; border: 2px solid #fff; border-radius: 50%; background: var(--strong); box-shadow: 0 0 0 1px var(--strong); }
.desk-company-timeline li.is-news > i { background: var(--blue); box-shadow: 0 0 0 1px var(--blue); }
.desk-company-timeline small { color: var(--faint); font-size: var(--t-2xs); }
.desk-company-timeline p { margin: 3px 0 0; color: var(--navy); font-size: var(--t-xs); line-height: 1.4; }
.desk-company-timeline span { display: block; margin-top: 3px; color: var(--blue); font-size: var(--t-2xs); }
.desk-panel-source { display: flex; justify-content: space-between; gap: 12px; padding-top: 15px; color: var(--faint); font-size: var(--t-2xs); }

.desk-foot { grid-template-columns: 1.6fr 1fr; margin-top: 34px; padding-top: 22px; }
.desk-srclist { gap: 6px 16px; }

@media (max-width: 1080px) {
  .topbar:has(+ main #desk) .topbar-inner, body:has(#desk) .topbar-inner { height: 50px; padding-inline: var(--page-px); }
  .desk { padding-inline: var(--page-px); }
  .desk-bar-stats { order: 3; width: 100%; margin-left: 0; }
  .desk-intro { grid-template-columns: 1fr; align-items: start; }
  .desk-tools { max-width: 620px; }
  .desk-pulse { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .desk-pulse > li:nth-child(2) { border-right: none; }
  .desk-pulse > li:nth-child(-n+2) { padding-bottom: 15px; margin-bottom: 15px; border-bottom: 1px solid var(--line); }
  .desk-pulse > li:nth-child(3) .desk-pulse-card { padding-left: 0; }
  .desk-workspace { grid-template-columns: minmax(0, 1fr) minmax(340px, .78fr); }
  .desk-story { grid-template-columns: 96px minmax(0, 1fr); gap: 9px 16px; }
  .desk-story-figure { grid-row: span 2; }
  .desk-story-company { justify-content: flex-start; }
}

@media (max-width: 820px) {
  .desk-workspace { grid-template-columns: 1fr; }
  .desk-feed { padding-right: 0; }
  .desk-company-panel { position: relative; top: auto; max-height: none; border-top: 2px solid var(--navy); border-left: none; }
  .desk-panel-head { position: static; }
  .desk-company-facts { grid-template-columns: repeat(3, 1fr); }
  .desk-foot { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .desk { padding-bottom: 54px; }
  .desk-bar { align-items: flex-start; gap: 12px; }
  .desk-bar-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 16px; }
  .desk-bar-live { margin-left: auto; }
  .desk-intro { padding-top: 22px; }
  .desk-intro-copy h1 { font-size: 26px; }
  .desk-tools { min-width: 0; }
  .desk-filters { display: grid; grid-template-columns: 1fr 1fr; }
  .desk-chip { justify-content: center; }
  .desk-pulse { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
  .desk-pulse > li { flex: 0 0 82%; padding: 0 !important; margin: 0 !important; border-right: 1px solid var(--line) !important; border-bottom: none !important; scroll-snap-align: start; }
  .desk-pulse-card, .desk-pulse > li:first-child .desk-pulse-card, .desk-pulse > li:nth-child(3) .desk-pulse-card { padding: 0 14px; }
  .desk-pulse > li:first-child .desk-pulse-card { padding-left: 0; }
  .desk-feed-head { align-items: flex-start; }
  .desk-story { min-height: 0; gap: 8px 12px; padding: 14px 8px; grid-template-columns: 68px minmax(0, 1fr); }
  .desk-story-figure { width: 68px; height: 48px; }
  .desk-story-mono { font-size: var(--t-2xs); }
  .desk-company-actions { grid-template-columns: 1fr; }
  .desk-company-facts { grid-template-columns: repeat(2, 1fr); }
  .desk-company-facts > div:nth-last-child(-n+3) { border-bottom: 1px solid var(--line-soft); }
  .desk-company-facts > div:nth-last-child(-n+2) { border-bottom: none; }
}

/* ── Company-page news block ("X i media") ───────────────────────────────── */
.company-news-list { list-style: none; margin: 0; padding: 0; }
.company-news-item { padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.company-news-item:last-child { border-bottom: none; padding-bottom: 0; }
.company-news-item > a { display: block; font-size: var(--t-base); font-weight: var(--w-semi); line-height: 1.45; color: var(--navy); text-decoration: none; }
.company-news-item > a:hover { color: var(--blue); text-decoration: none; }
.company-news-item > a::after { content: "↗"; font-size: .7em; color: var(--faint); margin-left: 5px; vertical-align: 2px; }
.company-news-meta { display: block; margin-top: 4px; font-size: var(--t-xs); color: var(--faint); }
.company-news-meta strong { font-weight: var(--w-semi); color: var(--slate); }

/* ============================================================================
   Company register desk (2026)
   Extends NewsTrac's flat signal hierarchy to the canonical company profile.
   The page stays server rendered and keeps every existing section and action;
   this layer changes only the information architecture and visual treatment.
   ========================================================================== */
body:has(.company-profile-desk) { background: #fff; }
body:has(.company-profile-desk) .topbar-inner { max-width: 1480px; height: 62px; padding-inline: 24px; }
.company-profile-desk { background: #fff; }
.company-desk-shell, .company-profile-desk .pagehero-in, .company-profile-desk .company-page { max-width: 1480px; margin-inline: auto; }

.company-desk-shell { padding: 0 24px; }
.company-deskbar { display: flex; align-items: center; gap: 18px 28px; min-height: 71px; padding: 20px 0 18px; border-bottom: 1px solid var(--navy); }
.company-deskbar-id { display: flex; align-items: baseline; gap: 10px; flex: 0 0 auto; }
.company-desk-mark { color: var(--navy); font-size: 22px; line-height: 1; font-weight: var(--w-display); letter-spacing: .065em; }
.company-deskbar-id > span { color: var(--faint); font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); }
.company-deskbar-stats { display: flex; align-items: center; gap: 22px; margin-left: auto; }
.company-deskbar-stats span { color: var(--faint); font-size: var(--t-xs); letter-spacing: var(--tr-caps); white-space: nowrap; }
.company-deskbar-stats b { margin-right: 4px; color: var(--navy); font-weight: var(--w-bold); font-variant-numeric: tabular-nums; }
.company-deskbar-state { display: flex; align-items: center; gap: 16px; flex: 0 0 auto; }
.company-desk-live { display: inline-flex; align-items: center; gap: 7px; color: var(--good); font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; }
.company-desk-live i, .company-now-state i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.company-desk-status { color: var(--muted); font-size: var(--t-xs); font-weight: var(--w-bold); text-transform: uppercase; }
.company-desk-updated { color: var(--faint); font-size: var(--t-xs); white-space: nowrap; }

.company-profile-desk .pagehero { overflow: visible; background: #fff; border-bottom: 1px solid var(--line); }
.company-profile-desk .pagehero-in { padding: 17px 24px 0; }
.company-profile-desk .pagehead-crumbs { margin-bottom: 18px; font-size: var(--t-xs); }
.company-profile-desk .pagehero-top { align-items: flex-end; gap: 30px; }
.company-profile-desk .pagehero-top-main { flex-basis: 620px; }
.company-profile-desk .pagehead-eyebrow { margin-bottom: 8px; font-size: var(--t-2xs); }
.company-profile-desk .pagehead-title { max-width: 900px; margin-bottom: 10px; font-size: clamp(30px, 3vw, 43px); line-height: 1.02; }
.company-profile-desk .pagehead-meta { gap: 8px 10px; font-size: var(--t-sm); }
.company-profile-desk .company-header-actions { display: flex; align-items: center; gap: 9px; padding-bottom: 1px; }
.company-profile-desk .company-header-actions .btn-primary,
.company-profile-desk .company-header-actions .btn-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; margin: 0; padding: 8px 16px; border-radius: var(--r-sm); font-size: var(--t-sm); font-weight: var(--w-semi); }
.company-profile-desk .company-header-actions .btn-primary { background: var(--blue); }
.company-profile-desk .company-header-actions .btn-secondary { background: #fff; }
.company-profile-desk .company-header-actions :focus-visible,
.company-profile-desk .sel-tab:focus-visible,
.company-profile-desk .company-now-more:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

.company-profile-desk .company-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 25px 0 0; overflow: visible; border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; background: #fff; box-shadow: none; }
.company-profile-desk .ckpi { min-width: 0; max-width: none; padding: 15px 15px 14px; border-right: 1px solid var(--line); }
.company-profile-desk .ckpi:first-child { padding-left: 0; }
.company-profile-desk .ckpi:last-child { border-right: none; }
.company-profile-desk .ckpi-l { font-size: 10px; color: var(--faint); }
.company-profile-desk .ckpi-v { color: var(--navy); font-family: inherit; font-size: clamp(19px, 1.65vw, 25px); font-weight: var(--w-bold); letter-spacing: var(--tr-tight); }

.company-profile-desk .pagehero .sel-tabs { flex-wrap: nowrap; gap: 7px; margin: 0; padding: 13px 0 12px; overflow-x: auto; border: 0; scrollbar-width: thin; }
.company-profile-desk .pagehero .sel-tab { min-height: 32px; margin: 0; padding: 7px 13px; border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff; color: var(--muted); font-size: var(--t-xs); font-weight: var(--w-semi); line-height: 1.35; box-shadow: 0 1px 2px rgba(11,31,51,.03); }
.company-profile-desk .pagehero .sel-tab:hover { border-color: var(--strong); color: var(--navy); }
.company-profile-desk .pagehero .sel-tab.active { border-color: var(--navy); background: var(--navy); color: #fff; box-shadow: 0 3px 9px rgba(11,31,51,.14); }

.company-profile-desk .company-page { padding: 0 24px 72px; }
.company-profile-desk .company-page-inner { grid-template-columns: minmax(0, 1.55fr) minmax(370px, .74fr); gap: 0; align-items: stretch; border-bottom: 1px solid var(--line); }
.company-profile-desk .company-main { display: flex; flex-direction: column; gap: 0; min-width: 0; padding: 4px 24px 0 0; }
.company-profile-desk .company-lead { max-width: 78ch; margin: 0; padding: 18px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: var(--t-base); line-height: 1.62; }
.company-profile-desk .company-main > .card,
.company-profile-desk .company-main .two-col-grid > .card { margin: 0; padding: 18px 0 20px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: #fff; box-shadow: none; }
.company-profile-desk .company-main > .card:last-of-type { border-bottom: none; }
.company-profile-desk .company-main .two-col-grid { gap: 24px; border-bottom: 1px solid var(--line); }
.company-profile-desk .company-main .two-col-grid > .card { border-bottom: 0; }
.company-profile-desk .company-main .card h2 { margin-bottom: 13px; color: var(--navy); font-size: 18px; font-weight: var(--w-bold); letter-spacing: var(--tr-snug); }
.company-profile-desk .company-main .card-head { margin-bottom: 13px; }
.company-profile-desk .company-main .card-head h2 { margin-bottom: 0; }
.company-profile-desk .note { border-color: var(--line); border-radius: var(--r-sm); background: #f8fafc; }

.company-profile-desk .fin-grid,
.company-profile-desk .health-grid { gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 0; }
.company-profile-desk .fin-cell,
.company-profile-desk .health-cell { min-width: 0; border: 0; border-right: 1px solid var(--line); border-radius: 0; background: #fff; }
.company-profile-desk .fin-cell:last-child,
.company-profile-desk .health-cell:last-child { border-right: 0; }
.company-profile-desk .fin-label,
.company-profile-desk .health-label { color: var(--faint); font-size: 10px; }
.company-profile-desk .fin-value,
.company-profile-desk .health-value { color: var(--navy); font-family: inherit; font-weight: var(--w-bold); }
.company-profile-desk .own-diagram { border-radius: 0; background: #f8fafc; }
.company-profile-desk .own-node { border-radius: var(--r-sm); box-shadow: none; }
.company-profile-desk .flags-card { border-top: 3px solid var(--blue) !important; }

.company-profile-desk .company-sidebar { position: sticky; top: 68px; align-self: start; display: flex; min-width: 0; flex-direction: column; gap: 0; padding: 0 0 0 18px; border-left: 1px solid var(--line); background: #fff; }
.company-profile-desk .company-sidebar > .card { margin: 0; padding: 18px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: #fff; box-shadow: none; }
.company-profile-desk .company-sidebar > .card h2 { color: var(--navy); font-size: var(--t-base); }
.company-profile-desk .company-graph-cta p { color: var(--muted); }
.company-profile-desk .company-sidebar .btn-blue { min-height: 38px; border-radius: var(--r-sm); }

.company-now { padding: 17px 0 18px; border-bottom: 1px solid var(--line); }
.company-now-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.company-now-kicker { display: block; margin-bottom: 4px; color: var(--blue); font-size: 10px; font-weight: var(--w-bold); letter-spacing: var(--tr-caps-lg); }
.company-now h2 { margin: 0; color: var(--navy); font-size: 18px; font-weight: var(--w-bold); letter-spacing: var(--tr-snug); }
.company-now-state { display: inline-flex; align-items: center; gap: 6px; padding-top: 3px; color: var(--good); font-size: 10px; font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; }
.company-now-lead { margin: 7px 0 15px; color: var(--muted); font-size: var(--t-xs); line-height: 1.5; }
.company-now-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.company-now-facts > div { min-width: 0; padding: 12px 10px 11px 0; }
.company-now-facts > div:nth-child(odd) { border-right: 1px solid var(--line); }
.company-now-facts > div:nth-child(even) { padding-left: 12px; }
.company-now-facts > div:nth-child(n+3) { border-top: 1px solid var(--line-soft); }
.company-now-facts dt { overflow: hidden; color: var(--faint); font-size: 10px; font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.company-now-facts dd { display: -webkit-box; min-height: 18px; margin: 5px 0 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--navy); font-size: var(--t-xs); line-height: 1.35; }
.company-now-signal { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-top: 14px; padding-left: 10px; border-left: 3px solid var(--blue); }
.company-now-signal > span { color: var(--faint); font-size: 10px; font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; }
.company-now-signal > a,
.company-now-signal > strong { color: var(--navy); font-size: var(--t-sm); line-height: 1.38; font-weight: var(--w-bold); text-decoration: none; }
.company-now-signal > a:hover { color: var(--blue); }
.company-now-signal > small { color: var(--faint); font-size: var(--t-2xs); }
.company-now-more { display: inline-block; margin-top: 11px; color: var(--blue); font-size: var(--t-xs); font-weight: var(--w-semi); text-decoration: none; }

.company-profile-desk .report-cta-pro { margin: 18px 0; border-radius: var(--r-sm); background: var(--navy); }
.company-profile-desk .report-cta-pro .rcp-glow,
.company-profile-desk .report-cta-pro .rcp-mesh,
.company-profile-desk .report-cta-pro .rcp-preview { display: none; }

@media (max-width: 1100px) {
  body:has(.company-profile-desk) .topbar-inner { height: 50px; padding-inline: var(--page-px); }
  .company-desk-shell, .company-profile-desk .pagehero-in, .company-profile-desk .company-page { padding-left: var(--page-px); padding-right: var(--page-px); }
  .company-deskbar { flex-wrap: wrap; }
  .company-deskbar-stats { order: 3; width: 100%; margin-left: 0; }
  .company-profile-desk .company-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .company-profile-desk .ckpi:nth-child(3) { border-right: none; }
  .company-profile-desk .ckpi:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .company-profile-desk .ckpi:nth-child(4) { padding-left: 0; }
  .company-profile-desk .company-page-inner { grid-template-columns: minmax(0, 1fr) minmax(330px, .7fr); }
}

@media (max-width: 840px) {
  .company-profile-desk .pagehero-top { align-items: flex-start; }
  .company-profile-desk .company-header-actions { width: 100%; }
  .company-profile-desk .company-page-inner { grid-template-columns: 1fr; }
  .company-profile-desk .company-main { padding-right: 0; }
  .company-profile-desk .company-sidebar { position: relative; top: auto; max-height: none; padding-left: 0; border-top: 2px solid var(--navy); border-left: 0; }
}

@media (max-width: 620px) {
  .company-deskbar { align-items: flex-start; gap: 12px; }
  .company-deskbar-id { width: 100%; }
  .company-deskbar-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 15px; }
  .company-deskbar-state { width: 100%; justify-content: space-between; }
  .company-profile-desk .pagehero-in { padding-top: 15px; }
  .company-profile-desk .pagehead-crumbs { margin-bottom: 14px; }
  .company-profile-desk .pagehead-title { font-size: 29px; }
  .company-profile-desk .company-header-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .company-profile-desk .company-header-actions > :only-child { grid-column: 1 / -1; }
  .company-profile-desk .company-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .company-profile-desk .ckpi,
  .company-profile-desk .ckpi:nth-child(3),
  .company-profile-desk .ckpi:nth-child(4) { padding: 13px 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .company-profile-desk .ckpi:nth-child(odd) { padding-left: 0; }
  .company-profile-desk .ckpi:nth-child(even) { border-right: 0; }
  .company-profile-desk .ckpi:nth-last-child(-n+2) { border-bottom: 0; }
  .company-profile-desk .ckpi-v { font-size: 20px; }
  .company-profile-desk .pagehero .sel-tabs { margin-right: calc(var(--page-px) * -1); padding-right: var(--page-px); }
  .company-profile-desk .company-page { padding-bottom: 54px; }
  .company-profile-desk .company-main .two-col-grid { grid-template-columns: 1fr; gap: 0; }
  .company-profile-desk .company-main .two-col-grid > .card + .card { border-top: 1px solid var(--line); }
  .company-profile-desk .fin-grid,
  .company-profile-desk .health-grid { grid-template-columns: 1fr; }
  .company-profile-desk .fin-cell,
  .company-profile-desk .health-cell { border-right: 0; border-bottom: 1px solid var(--line); }
  .company-profile-desk .fin-cell:last-child,
  .company-profile-desk .health-cell:last-child { border-bottom: 0; }
}

/* ============================================================================
   Admin: news import status (/admin/newstrac)
   A row per publisher. Failing and quiet sources carry the colour, because the
   page is read when something is wrong and the eye should land there first.
   ========================================================================== */
.nt-row { display: grid; grid-template-columns: minmax(0,1.5fr) 74px 62px 78px minmax(0,2fr) 78px; align-items: start; gap: 14px; padding: 12px 20px; border-bottom: 1px solid var(--line-soft); }
.nt-row:last-of-type { border-bottom: none; }
.nt-head { padding-top: 11px; padding-bottom: 11px; font-size: var(--t-2xs); font-weight: var(--w-bold); letter-spacing: var(--tr-caps); text-transform: uppercase; color: var(--subtle); background: var(--soft); }
.nt-row .num { text-align: right; font-variant-numeric: tabular-nums; font-size: var(--t-md); color: var(--ink); }
.nt-row .num strong { color: var(--navy); font-weight: var(--w-bold); }

.nt-row.is-bad { background: #FEF4F4; box-shadow: inset 3px 0 0 var(--negative); }
.nt-row.is-quiet { background: #FFFBF2; box-shadow: inset 3px 0 0 #D9860B; }

.nt-src { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nt-src > a { font-size: var(--t-base); font-weight: var(--w-semi); color: var(--navy); text-decoration: none; }
.nt-src > a:hover { color: var(--blue); }
.nt-src small { font-size: var(--t-2xs); color: var(--faint); }
.nt-ok { color: var(--good); font-weight: var(--w-bold); }
.nt-warn { color: #B4700A; font-weight: var(--w-bold); }
.nt-err { color: var(--negative); font-weight: var(--w-bold); }
/* The parser error is the whole diagnosis, so keep it readable rather than
   truncating it to a tooltip nobody hovers. */
.nt-errmsg { display: block; margin-top: 3px; color: var(--negative) !important; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; word-break: break-word; }

.nt-drop span { border-bottom: 1px dotted var(--strong); cursor: help; }
.nt-newest { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nt-newest a { font-size: var(--t-md); line-height: 1.35; color: var(--ink); text-decoration: none; }
.nt-newest a:hover { color: var(--blue); }
.nt-newest small { font-size: var(--t-2xs); color: var(--faint); font-variant-numeric: tabular-nums; }
.nt-none { font-size: var(--t-md); color: var(--strong); }
.nt-when { color: var(--muted) !important; }

@media (max-width: 900px) {
  .nt-row { grid-template-columns: minmax(0,1fr) 60px 54px; gap: 8px 12px; }
  .nt-head span:nth-child(n+4) { display: none; }
  .nt-row .nt-drop, .nt-row .nt-when { display: none; }
  .nt-newest { grid-column: 1 / -1; padding-top: 4px; }
}

/* Ranking-page intro — a short read of the list above the table. Body measure,
   not a caption: it is meant to be read, and it is the only prose on the page. */
.topp-intro { max-width: 68ch; margin: 0 0 clamp(18px, 2.2vw, 26px); font-size: var(--t-lg); line-height: 1.6; color: var(--muted); }

/* A company's listed-equity ticker, in the page header meta line. Understated:
   most companies are private, and for the few that are listed the symbol is a
   fact about them, not a call to action. */
.ticker-chip { display: inline-flex; align-items: baseline; gap: 5px; padding: 1px 8px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--soft); font-size: var(--t-xs); color: var(--muted); cursor: help; }
.ticker-chip b { font-weight: var(--w-bold); color: var(--navy); letter-spacing: var(--tr-caps); }

/* ── Product information: editorial marketing layout ───────────────── */
main:has(> .mk-page) { background: #fff; }
.mk-page { max-width: 1240px; margin: 0 auto; padding: 0 40px; }
.mk-hero, .mk-band { background: #0b1f33; color: #fff; box-shadow: 0 0 0 100vmax #0b1f33; clip-path: inset(0 -100vmax); }
.mk-hero { padding: 80px 0 72px; margin-bottom: 88px; }
.mk-hero-copy { max-width: 1050px; }
.mk-eyebrow { font-size: var(--t-sm); font-weight: var(--w-medium); letter-spacing: .12em; text-transform: uppercase; color: var(--blue); margin-bottom: 24px; }
.mk-hero .mk-eyebrow { color: #91b9f2; }
.mk-hero h1 { font-size: clamp(40px, 5.8vw, 76px); line-height: 1.08; font-weight: var(--w-normal); letter-spacing: -.045em; color: #fff; margin: 0 0 32px; max-width: 22ch; text-wrap: balance; }
.mk-lead { font-size: var(--t-read); line-height: 1.8; color: #c8d4e0; max-width: 710px; }
.mk-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 36px; }
.mk-cta a { padding: 16px 25px; min-height: 50px; border-radius: 0; font-size: var(--t-base); box-shadow: none; }
.mk-hero .btn-secondary, .mk-band .btn-secondary { color: #fff; background: transparent; border-color: #778999; }
.mk-hero .btn-secondary:hover, .mk-band .btn-secondary:hover { background: #ffffff12; border-color: #fff; }
.mk-crumbs { display: flex; flex-wrap: wrap; gap: 10px; font-size: var(--t-sm); color: #b0c1d2; margin: -32px 0 40px; }
.mk-crumbs a { color: #c8d4e0; }
.mk-section { margin-bottom: 88px; }
.mk-section h2 { font-size: clamp(28px, 3.3vw, 42px); line-height: 1.15; font-weight: var(--w-medium); letter-spacing: var(--tr-display); color: var(--navy); margin: 0 0 36px; text-wrap: balance; }
.mk-section-lead { color: var(--muted); margin: -18px 0 36px; max-width: 640px; font-size: var(--t-read); line-height: 1.75; }
.mk-showcase { display: grid; grid-template-columns: .75fr 1.65fr; gap: 56px; align-items: center; }
.mk-showcase h2 { margin-bottom: 24px; }
.mk-showcase-copy > p:not(.mk-eyebrow) { color: var(--muted); line-height: 1.8; font-size: var(--t-lg); }
.mk-text-link { display: inline-flex; gap: 24px; align-items: baseline; border-bottom: 1px solid var(--blue); padding: 8px 0; margin-top: 20px; font-size: var(--t-base); font-weight: var(--w-medium); }
.mk-product-shot { margin: 0; min-width: 0; }
.mk-product-shot a { display: block; border: 1px solid #cbd5df; box-shadow: 0 16px 40px -28px #0b1f3366; }
.mk-product-shot img { display: block; width: 100%; height: auto; }
.mk-product-shot figcaption { color: var(--muted); font-size: var(--t-sm); margin-top: 14px; line-height: 1.6; }
.mk-stages { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.mk-stage { border-top: 1px solid #9daebe; padding-top: 28px; display: flex; flex-direction: column; }
.mk-stage h3 { font-size: var(--t-3xl); font-weight: var(--w-medium); letter-spacing: var(--tr-tight); line-height: 1.25; color: var(--navy); margin: 0 0 32px; }
.mk-steps { list-style: none; counter-reset: mk-step; margin: 0; padding: 0; flex: 1; }
.mk-steps li { counter-increment: mk-step; position: relative; padding: 0 0 26px 44px; }
.mk-steps li::before { content: counter(mk-step, decimal-leading-zero); position: absolute; left: 0; top: 3px; color: var(--blue); font-size: var(--t-sm); font-variant-numeric: tabular-nums; }
.mk-steps strong, .mk-value-grid strong { display: block; color: var(--ink); margin-bottom: 8px; font-weight: var(--w-medium); font-size: var(--t-xl); }
.mk-steps span, .mk-value-grid span { display: block; color: var(--muted); font-size: var(--t-lg); line-height: 1.8; }
.mk-stage-foot { margin: 0; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: var(--t-sm); line-height: 1.7; }
.mk-values { padding: 64px 0; background: #eaf0f5; box-shadow: 0 0 0 100vmax #eaf0f5; clip-path: inset(0 -100vmax); }
.mk-value-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 48px; }
.mk-value-grid li { border-top: 1px solid #bdcbd7; padding-top: 24px; }
.mk-value-grid strong { font-size: var(--t-2xl); line-height: 1.3; letter-spacing: var(--tr-tight); }
.mk-values .mk-value-grid li:first-child { grid-column: span 2; }
.mk-values .mk-value-grid li:first-child strong { font-size: var(--t-3xl); }
.mk-jobs { counter-reset: mk-job; }
.mk-jobs li { counter-increment: mk-job; }
.mk-jobs li::before { content: counter(mk-job, decimal-leading-zero); display: block; font-size: var(--t-sm); color: var(--blue); margin-bottom: 24px; }
.mk-results { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid #bdcbd7; }
.mk-results h2 { margin: 0; }
.mk-results ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 20px; }
.mk-results li { font-size: var(--t-2xl); color: var(--navy); letter-spacing: var(--tr-tight); }
.mk-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 40px; }
.mk-card { position: relative; display: flex; flex-direction: column; gap: 16px; padding: 26px 0; border-top: 1px solid #9daebe; color: inherit; text-decoration: none; }
.mk-card strong { font-size: var(--t-3xl); font-weight: var(--w-medium); line-height: 1.25; letter-spacing: var(--tr-display); color: var(--navy); }
.mk-card span { font-size: var(--t-lg); line-height: 1.8; color: var(--muted); }
.mk-card .mk-card-eyebrow { font-size: var(--t-sm); color: var(--blue); text-transform: uppercase; letter-spacing: .1em; }
.mk-card .mk-card-more { margin-top: auto; padding-top: 16px; font-size: var(--t-base); color: var(--blue); }
.mk-card:hover { text-decoration: none; border-color: var(--blue); }
.mk-card:hover strong { color: var(--blue); }
.mk-connect { display: grid; grid-template-columns: 1fr 1.5fr; column-gap: 64px; border-top: 1px solid #bdcbd7; padding-top: 40px; }
.mk-connect h2 { grid-row: span 2; }
.mk-connect p { color: var(--muted); line-height: 1.8; font-size: var(--t-lg); }
.mk-connect .mk-note { font-size: var(--t-sm); margin-top: 16px; }
.mk-band { padding: 72px 0; }
.mk-band h2 { color: white; font-weight: var(--w-normal); font-size: clamp(32px, 4vw, 52px); line-height: 1.15; letter-spacing: var(--tr-display); margin: 0 0 24px; text-wrap: balance; }
.mk-band p { color: #c8d4e0; font-size: var(--t-read); line-height: 1.8; max-width: 710px; }
.mk-diagram { margin: -48px 0 88px; border-bottom: 1px solid var(--line); }
.mk-diagram summary { cursor: pointer; padding: 20px 0; color: var(--blue); font-size: var(--t-base); }
.mk-section .mk-diagram { margin: 0 0 24px; }
.mk-figure { margin: 16px 0 24px; }
.mk-figure img { display: block; width: 100%; height: auto; border: 1px solid var(--line); background: white; }
.mk-figure figcaption { margin-top: 12px; font-size: var(--t-sm); color: var(--muted); }
.about-section .mk-figure { margin: 0 0 14px; }
.mk-page a:focus-visible, .mk-page summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.mk-hero a:focus-visible, .mk-band a:focus-visible { outline-color: #a3c9ff; }
@media (max-width: 960px) {
  .mk-page { padding-inline: 28px; }
  .mk-showcase { grid-template-columns: 1fr; gap: 32px; }
  .mk-showcase-copy { max-width: 640px; }
  .mk-stages { gap: 36px; }
}
@media (max-width: 640px) {
  .mk-page { padding-inline: 20px; }
  .mk-hero { padding: 48px 0; margin-bottom: 48px; }
  .mk-hero h1 { font-size: clamp(30px, 8.5vw, 42px); max-width: 100%; hyphens: auto; overflow-wrap: break-word; }
  .mk-crumbs { margin: 0 0 28px; }
  .mk-section { margin-bottom: 48px; }
  .mk-stages, .mk-results, .mk-value-grid, .mk-connect { grid-template-columns: 1fr; }
  .mk-values .mk-value-grid li:first-child { grid-column: auto; }
  .mk-values { padding: 40px 0; }
  .mk-value-grid { gap: 28px; }
  .mk-connect h2 { grid-row: auto; margin-bottom: 20px; }
  .mk-band { padding: 48px 0; }
  .mk-diagram { margin: -16px 0 48px; }
}

/* Public information pages share the product-page shell and type scale. */
.mk-info { padding-bottom: 24px; }
.mk-info .mk-section p { font-size: var(--t-read); line-height: 1.8; color: var(--muted); margin-bottom: 18px; max-width: 780px; }
.mk-info .about-inner { display: block; }
.mk-info .about-text h2 { font-size: clamp(28px, 3.3vw, 42px); font-weight: var(--w-medium); letter-spacing: var(--tr-display); margin: 48px 0 24px; }
.mk-info .about-text h2:first-child { margin-top: 0; }
.mk-info .mk-section h3 { font-size: var(--t-2xl); font-weight: var(--w-medium); line-height: 1.3; letter-spacing: var(--tr-tight); margin: 0 0 18px; color: var(--navy); }
.mk-info .product-grid, .mk-info .article-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 56px; margin-top: 36px; }
.mk-info .product-card-about, .mk-info .article-card { background: transparent; border: 0; border-top: 1px solid #bdcbd7; border-radius: 0; padding: 26px 0 0; box-shadow: none; }
.mk-info .product-card-about p, .mk-info .article-card p { font-size: var(--t-lg); }
.mk-info .article-card { display: flex; flex-direction: column; gap: 16px; text-decoration: none; transition: none; }
.mk-info .article-card h3, .mk-info .article-card p { margin: 0; }
.mk-info .article-card:hover { transform: none; border-color: var(--blue); }
.mk-info .article-card:hover h3 { color: var(--blue); }
.mk-info .article-tag { background: transparent; color: var(--blue); padding: 0; border: 0; border-radius: 0; font-size: var(--t-sm); letter-spacing: .08em; text-transform: uppercase; }
.mk-info .article-meta { color: var(--blue); margin-top: auto; padding-top: 12px; }
.mk-info .article-grid { margin-bottom: 32px; }
.mk-info .about-data { background: #eaf0f5; box-shadow: 0 0 0 100vmax #eaf0f5; clip-path: inset(0 -100vmax); border: 0; border-radius: 0; padding: 48px 0; }
.mk-info .source-list { margin: 24px 0; padding: 0; gap: 0; }
.mk-info .source-list li { font-size: var(--t-lg); line-height: 1.8; border-top: 1px solid #cbd5df; padding: 16px 0; }
.mk-info .source-list li::before { content: none; }
.mk-info .source-list strong { color: var(--navy); font-weight: var(--w-medium); }
.mk-info .mk-section > ul:not(.source-list) { padding-left: 22px; max-width: 780px; color: var(--muted); font-size: var(--t-read); line-height: 1.8; }
.mk-info .mk-section > ul:not(.source-list) li { padding: 6px 0; }
.mk-info .faq-list { display: grid; grid-template-columns: 1fr 1.6fr; gap: 0 48px; }
.mk-info .faq-list dt, .mk-info .faq-list dd { border-top: 1px solid #bdcbd7; padding: 24px 0; margin: 0; }
.mk-info .faq-list dt { color: var(--navy); font-size: var(--t-xl); font-weight: var(--w-medium); line-height: 1.5; }
.mk-info .faq-list dd { font-size: var(--t-lg); line-height: 1.8; color: var(--muted); }
.mk-info .mk-section .btn-secondary { border-radius: 0; padding: 12px 18px; font-size: var(--t-base); white-space: normal; }
.mk-info .mk-section .data-source { font-size: var(--t-sm); }
.mk-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 64px; }
.mk-contact-grid section { border-top: 1px solid #bdcbd7; padding-top: 28px; }
.mk-info .mk-contact-grid h2 { font-size: var(--t-3xl); margin: 0 0 24px; }
.mk-contact-grid .source-list li { display: grid; grid-template-columns: minmax(170px, .9fr) minmax(0, 1fr); gap: 20px; }
.mk-contact-grid a { overflow-wrap: anywhere; }
.mk-reading .mk-section { max-width: 780px; }
.mk-reading .about-text h2 { font-size: var(--t-3xl); line-height: 1.3; border-top: 1px solid #bdcbd7; padding-top: 28px; }
.mk-reading .about-text h2:first-child { border-top: 0; padding-top: 0; }
.mk-reading .legal-notice { max-width: 780px; border-radius: 0; padding: 20px 24px; margin: -40px 0 48px; font-size: var(--t-base); line-height: 1.7; }
.mk-info .topp-embed-code { max-width: 100%; border-radius: 0; }
.mk-info .presse-steps { font-size: var(--t-read); line-height: 1.8; padding-left: 22px; }
@media (max-width: 760px) {
  .mk-info .product-grid, .mk-info .article-grid, .mk-contact-grid, .mk-info .faq-list { grid-template-columns: 1fr; gap: 28px; }
  .mk-info .faq-list { gap: 0; }
  .mk-info .faq-list dt { padding-bottom: 12px; }
  .mk-info .faq-list dd { border-top: 0; padding-top: 0; }
  .mk-contact-grid .source-list li { grid-template-columns: 1fr; gap: 4px; }
  .mk-reading .legal-notice { margin-top: -16px; }
  .mk-info .about-text h2 { margin-top: 36px; }
}

/* Editorial indexes: content carries the hierarchy, with one featured guide. */
.mk-editorial { padding-bottom: 64px; }
.mk-guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 64px; }
.mk-guide, .mk-news-item { display: flex; flex-direction: column; align-items: flex-start; color: inherit; text-decoration: none; padding: 28px 0 0; border-top: 1px solid #bdcbd7; min-width: 0; }
.mk-guide .mk-eyebrow, .mk-news-item .mk-eyebrow { margin-bottom: 20px; }
.mk-guide h2, .mk-news-item h3 { font-size: var(--t-3xl); font-weight: var(--w-medium); letter-spacing: var(--tr-display); line-height: 1.25; color: var(--navy); margin-bottom: 20px; }
.mk-guide > p, .mk-news-item > p { font-size: var(--t-lg); line-height: 1.8; color: var(--muted); margin-bottom: 24px; max-width: 65ch; }
.mk-guide-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 32px; width: 100%; font-size: var(--t-sm); color: var(--blue); margin-top: auto; }
.mk-guide-meta > span { font-size: var(--t-2xl); }
.mk-guide:hover, .mk-news-item:hover { text-decoration: none; border-color: var(--blue); }
.mk-guide:hover h2, .mk-news-item:hover h3 { color: var(--blue); }
.mk-guide-feature { grid-column: 1 / -1; display: grid; grid-template-columns: 1.15fr 1fr; gap: 0 64px; padding: 40px 0; border-bottom: 1px solid #bdcbd7; }
.mk-guide-feature .mk-eyebrow { grid-column: 1 / -1; }
.mk-guide-feature h2 { font-size: clamp(30px, 3.3vw, 42px); grid-row: span 2; margin: 0; }
.mk-guide-feature > p { font-size: var(--t-read); }
.mk-news-month { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 64px; margin-bottom: 64px; }
.mk-news-month-label { padding-top: 24px; border-top: 1px solid #bdcbd7; }
.mk-news-month-label h2 { font-size: var(--t-2xl); font-weight: var(--w-medium); letter-spacing: var(--tr-tight); margin-bottom: 10px; }
.mk-news-month-label p { font-size: var(--t-sm); color: var(--muted); }
.mk-news-list { display: grid; gap: 36px; }
.mk-news-item { padding-top: 24px; }

/* Reading views: preserve article content, anchors and the useful contents rail. */
main:has(> .artdet-page) { background: #fff; }
.artdet-page { max-width: 1240px; padding: 64px 40px; }
.article-sheet { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.article-head h1 { font-size: clamp(32px, 4vw, 52px); font-weight: var(--w-normal); letter-spacing: -.035em; line-height: 1.12; }
.article-head { border-bottom: 1px solid #bdcbd7; padding-bottom: 32px; margin-bottom: 32px; }
.article-head .article-tag, .nydet-tag { border-radius: 0; background: transparent; padding: 0; color: var(--blue); }
.nydet-ghost { display: none; }
.article-body h2 { font-weight: var(--w-medium); font-size: var(--t-3xl); line-height: 1.3; }
.artdet-railcard { border: 0; border-top: 1px solid #bdcbd7; border-radius: 0; padding: 24px 0; box-shadow: none; }
.artdet-railcta { background: var(--navy); border-radius: 0; padding: 28px; }
.artdet-railcta-btn, .nydet-meta-tag, .article-hero-media { border-radius: 0; }

/* Homepage: the same editorial scale, retaining search and live data density. */
.hp-wire-inner, .hp-hero-grid, .hp-proof-inner, .hp-band-inner, .hp-close-inner { max-width: 1240px; padding-left: 40px; padding-right: 40px; }
.hp-wire-inner { padding-top: 28px; padding-bottom: 40px; font-size: var(--t-sm); }
.hp-hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; padding-bottom: 64px; }
.hp-hero h1 { font-size: clamp(40px, 4.8vw, 64px); font-weight: var(--w-normal); letter-spacing: -.045em; line-height: 1.08; margin: 20px 0 28px; }
.hp-hero-lead { font-size: var(--t-read); line-height: 1.8; color: #c8d4e0; }
.hp-eyebrow { font-weight: var(--w-medium); letter-spacing: .12em; }
.hp-hero .hp-eyebrow { color: #91b9f2; }
.hp-hero-form .wrap, .hp-hero-form button { border-radius: 0; }
.hp-ownership { padding-left: 40px; }
.hp-gnode, .hp-gnode.is-person, .hp-gnode.is-unknown { background: #122b42; border-color: #526b80; border-radius: 0; }
.hp-gnode .n { color: #edf4fc; font-weight: var(--w-medium); }
.hp-gnode .s { color: #b8c7d9; }
.hp-gnode.is-focus { background: linear-gradient(180deg, #2f6d9e, #1f4f7a); border: 3px solid #7dccff; box-shadow: 0 0 0 6px rgba(125,204,255,.28), 0 0 36px rgba(125,204,255,.45), 0 10px 30px rgba(0,0,0,.4); min-height: 120px; width: min(380px, 100%); }
.hp-gnode.is-focus .n { color: #fff; font-weight: var(--w-bold); font-size: calc(var(--t-lg) + 2px); }
.hp-gnode.is-focus .s { color: #e4eefa; }
.hp-gnode.is-focus:hover { box-shadow: 0 0 0 6px rgba(125,204,255,.45), 0 0 44px rgba(125,204,255,.6), 0 10px 30px rgba(0,0,0,.4); }
.hp-gpct { color: #c8d4e0; background: var(--navy); border-radius: 0; }
.hp-proof-inner { padding-top: 36px; padding-bottom: 36px; }
.hp-proof-item b { font-weight: var(--w-medium); }
.hp-band-inner { padding-top: 64px; padding-bottom: 64px; }
.hp-band-head h2, .hp-activity .hp-band-head h2 { font-weight: var(--w-medium); font-size: clamp(28px, 3.3vw, 42px); letter-spacing: var(--tr-display); }
.hp-reg-col { border-radius: 0; border: 0; border-top: 1px solid #bdcbd7; padding: 24px 0 0; background: transparent; }
.hp-reg-cols { gap: 40px; }
.hp-explore { gap: 28px 40px; }
.hp-tile { border: 0; border-top: 1px solid #bdcbd7; border-radius: 0; padding: 24px 0 0; }
.hp-tile:hover { box-shadow: none; border-color: var(--blue); }
.hp-tile-icon { background: transparent; border-radius: 0; }
.hp-tile-title { font-weight: var(--w-medium); }
.hp-tile-desc { font-size: var(--t-base); line-height: 1.7; margin-top: 12px; }
.hp-close-inner { padding-top: 40px; padding-bottom: 40px; }
.hp-close-title { font-weight: var(--w-normal); font-size: var(--t-3xl); }
.hp-close-actions .btn-blue { border-radius: 0; }
@media (max-width: 960px) {
  .mk-news-month { grid-template-columns: 180px minmax(0, 1fr); gap: 36px; }
  .hp-hero-grid { gap: 32px; }
  .hp-ownership { padding-left: 28px; }
}
@media (max-width: 800px) {
  .hp-hero-grid { grid-template-columns: 1fr; }
  .hp-ownership { padding-left: 0; }
}
@media (max-width: 640px) {
  .mk-guide-grid, .mk-guide-feature, .mk-news-month { grid-template-columns: 1fr; gap: 32px; }
  .mk-guide-feature { grid-column: auto; }
  .mk-guide-feature .mk-eyebrow { grid-column: auto; margin-bottom: 0; }
  .mk-guide-feature h2 { grid-row: auto; }
  .mk-news-month { gap: 24px; }
  .mk-news-month-label { border-top: 0; padding: 0; }
  .artdet-page { padding: 32px 20px; }
  .hp-wire-inner, .hp-hero-grid, .hp-proof-inner, .hp-band-inner, .hp-close-inner { padding-left: 20px; padding-right: 20px; }
  .hp-hero h1 { font-size: clamp(34px, 9vw, 46px); }
  .hp-hero-grid { padding-bottom: 40px; }
  .hp-band-inner { padding-top: 40px; padding-bottom: 40px; }
  .hp-reg-cols { gap: 28px; }
}

/* The original lossless diagram stays visible and below its native width. */
.mk-info .mk-flow-figure { max-width: 960px; margin: 0 0 28px; }
.mk-flow-figure > a { display: block; }
.mk-flow-figure img { border: 0; border-radius: 0; box-shadow: none; }

/* ── Selectors: the dark track ───────────────────────────────────────────
   Every single-choice selector on the public site is one navy bar with square
   corners: unselected options sit in it as light text, the selected one is
   cut out in white. Replaces the separately outlined, rounded chips and their
   two competing "selected" styles (blue tint vs navy). The group label (FYLKE)
   sits inside the bar as its first cell. */
.hp-topp-tabs, .hp-topp-filters,
.lp-topp-tabs, .lp-topp-filters,
.topp-metricnav, .desk-filters {
  display: inline-flex; flex-wrap: wrap; align-items: stretch; gap: 2px;
  width: fit-content; max-width: 100%; padding: 3px;
  background: var(--navy); border: 0; border-radius: 0;
}
.lp-topp-filters { padding-bottom: 3px; margin-bottom: 14px; }
.hp-topp-filterlabel, .lp-topp-filterlabel {
  display: inline-flex; align-items: center; margin: 0; padding: 0 8px 0 9px;
  font-size: var(--t-2xs); letter-spacing: var(--tr-caps-lg); color: var(--faint);
}
.hp-topp-tab, .hp-topp-chip,
.lp-topp-tab, .lp-topp-chip,
.topp-metric, .desk-chip, .desk-filters .desk-chip {
  display: inline-flex; align-items: center; min-height: 0;
  background: transparent; color: var(--strong); border: 0; border-radius: 0; box-shadow: none;
  font-weight: var(--w-medium); text-decoration: none;
}
.hp-topp-tab, .lp-topp-tab, .topp-metric { padding: 7px 14px; font-size: var(--t-md); }
.hp-topp-chip, .lp-topp-chip { padding: 6px 11px; font-size: var(--t-sm); }
.desk-chip { padding: 6px 12px; }
.hp-topp-tab:hover, .hp-topp-chip:hover,
.lp-topp-tab:hover, .lp-topp-chip:hover,
.topp-metric:hover, .desk-chip:hover {
  background: #1B3048; color: #fff; text-decoration: none;
}
.hp-topp-tab.is-active, .hp-topp-chip.is-active,
.lp-topp-tab.is-active, .lp-topp-chip.is-active,
.topp-metric.is-active, .desk-chip.is-on {
  background: #fff; color: var(--navy); font-weight: var(--w-semi); box-shadow: none;
}
.desk-chip b { color: var(--slate); }
.desk-chip.is-on b { color: var(--muted); }
.hp-topp-tab:focus-visible, .hp-topp-chip:focus-visible,
.lp-topp-tab:focus-visible, .lp-topp-chip:focus-visible,
.topp-metric:focus-visible, .desk-chip:focus-visible {
  outline: 2px solid var(--blue); outline-offset: 1px;
}
/* The vertical county/municipality rail keeps its list form, squared to match. */
.topp-rail-chip { border-radius: 0; }
@media (max-width: 620px) {
  .desk-filters { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .desk-chip { justify-content: center; }
}
/* The ranking tables under the tracks lose their rounding to match. */
.hp-topp-list, .lp-topp-list, .topp-tablecard, .topp-rail { border-radius: 0; }
/* The top bar follows the square selectors: search field and button, the PRO
   and login links, the language and tools menus, their panels, the search
   suggestions and the mobile menu all lose their rounding. */
.topbar .beta-flag, .topbar .topbar-search, .topbar .topbar-search button,
.topbar .topnav a, .topbar .topnav-pro, .topbar .login,
.topbar summary, .topbar .navdrop-panel, .topbar .navdrop-panel a,
.topbar .langswitch-panel, .topbar .langswitch-panel a,
.topbar .suggest, .topbar .suggest-item,
.topbar .mobile-menu-panel, .topbar .mobile-menu-panel a, .topbar .mobile-menu-icon,
.topbar .mobile-menu-icon::before, .topbar .mobile-menu-icon::after { border-radius: 0; }


/* ==========================================================================
   Nettverkssøk (/nettverk) — person-to-person chains of shared boardrooms
   ========================================================================== */
.nw-pickers { display: grid; grid-template-columns: 1fr auto 1fr auto; gap: 14px; align-items: end; }
.nw-pickers .rel-picker label { min-height: 1em; }
.nw-chips { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.nw-chips-label { font-size: var(--t-sm); color: var(--subtle); margin-right: 2px; }

/* refine row under the pickers */
.nw-refine { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--line); }
.nw-refine-label { font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--slate); text-transform: uppercase; letter-spacing: .04em; }
.nw-degrees { display: inline-flex; border: 1px solid var(--line); background: var(--soft); }
.nw-degrees button { font: inherit; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--muted); background: transparent; border: 0; border-right: 1px solid var(--line); padding: 6px 13px; cursor: pointer; }
.nw-degrees button:last-child { border-right: 0; }
.nw-degrees button.is-active { background: var(--navy); color: #fff; }
.nw-toggle { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-sm); color: var(--muted); cursor: pointer; }

/* results */
.nw-results { margin-top: 26px; }
.nw-summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; margin-bottom: 14px; }
.nw-summary h2 { font-size: var(--t-lg); font-weight: var(--w-bold); color: var(--navy); margin: 0; }
.nw-summary .nw-deg { display: inline-block; font-size: var(--t-xs); font-weight: var(--w-bold); letter-spacing: .04em; text-transform: uppercase; color: var(--blue); background: var(--blue-soft); border: 1px solid var(--blue); padding: 3px 8px; }
.nw-chain-tabs { display: inline-flex; gap: 6px; margin-left: auto; }
.nw-chain-tabs button { font: inherit; font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--muted); background: var(--soft); border: 1px solid var(--line); padding: 5px 11px; cursor: pointer; }
.nw-chain-tabs button.is-active { color: var(--blue); border-color: var(--blue); background: var(--blue-soft); }

/* horizontal chain strip */
.nw-strip { display: flex; align-items: center; gap: 0; overflow-x: auto; padding: 8px 2px 14px; scrollbar-width: thin; }
.nw-strip-node { flex: 0 1 auto; min-width: 0; }
.nw-strip-node .nw-person { width: 260px; }
.nw-strip-node .nw-person.is-mid { width: 180px; }
.nw-strip-link { flex: 1 1 36px; min-width: 36px; display: flex; align-items: center; justify-content: center; position: relative; height: 2px; border-top: 2px dashed var(--strong); }
.nw-strip-link i { position: absolute; top: -10px; width: 20px; height: 20px; background: var(--surface); color: var(--slate); display: inline-flex; align-items: center; justify-content: center; }
.nw-strip-link i svg { width: 16px; height: 16px; }
.nw-strip-link i[data-count]:not([data-count="1"])::after { content: attr(data-count); position: absolute; top: -8px; right: -9px; font-size: 10px; font-weight: var(--w-bold); color: #fff; background: var(--blue); border-radius: 8px; min-width: 15px; height: 15px; line-height: 15px; text-align: center; }

/* person card */
.nw-person { position: relative; background: var(--surface); border: 1px solid var(--line); padding: 12px 14px 12px; box-shadow: 0 1px 2px rgba(15,23,42,.04); width: 280px; max-width: 100%; }
.nw-person.is-mid { width: 200px; }
.nw-person .nw-avatar { position: absolute; top: 12px; right: 12px; width: 26px; height: 26px; color: var(--slate); }
.nw-person .nw-avatar svg { width: 100%; height: 100%; }
.nw-person .nw-name { display: block; font-size: var(--t-base); font-weight: var(--w-semi); color: var(--blue); text-decoration: none; padding-right: 34px; line-height: 1.3; }
.nw-person .nw-name:hover { text-decoration: underline; }
.nw-person .nw-meta { font-size: var(--t-sm); color: var(--muted); margin-top: 3px; }
.nw-person .nw-stats { font-size: var(--t-sm); color: var(--ink); margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--line-soft); line-height: 1.45; }
.nw-person .nw-stats a { color: var(--blue); text-decoration: none; }
.nw-person .nw-stats a:hover { text-decoration: underline; }
.nw-person.is-mid .nw-stats, .nw-person.is-mid .nw-meta { display: none; }
.nw-person.is-mid { text-align: center; padding: 30px 12px 16px; }
.nw-person.is-mid .nw-avatar { position: static; display: block; margin: 0 auto 8px; }
.nw-person.is-mid .nw-name { padding-right: 0; }

/* the detail grid: people | roles | companies */
.nw-detail { margin-top: 6px; border-top: 1px solid var(--line); padding-top: 18px; }
.nw-detail-head { display: grid; grid-template-columns: minmax(220px, 280px) minmax(200px, 1fr) minmax(240px, 320px); gap: 0 24px; font-size: var(--t-sm); font-weight: var(--w-bold); color: var(--navy); margin-bottom: 14px; }
.nw-seg { display: grid; grid-template-columns: minmax(220px, 280px) minmax(200px, 1fr) minmax(240px, 320px); gap: 0 24px; align-items: start; }
.nw-seg + .nw-seg { margin-top: 0; }
.nw-seg-person { position: relative; }
.nw-seg-person .nw-person { width: 100%; }
.nw-seg-down { display: block; text-align: center; color: var(--slate); padding: 8px 0 8px; line-height: 0; }
.nw-seg-down svg { width: 14px; height: 14px; }
.nw-seg-mid { position: relative; padding-top: 10px; }
.nw-via { display: grid; grid-template-columns: subgrid; grid-column: 2 / 4; align-items: center; margin-bottom: 10px; }
.nw-roles { display: flex; flex-direction: column; gap: 6px; position: relative; }
.nw-roles::before { content: ""; position: absolute; left: -24px; right: -24px; top: 50%; border-top: 1px dashed var(--strong); z-index: 0; }
.nw-role { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-sm); color: var(--ink); background: var(--soft); border: 1px solid var(--line); padding: 5px 10px; width: fit-content; max-width: 100%; }
.nw-role b { font-weight: var(--w-semi); color: var(--navy); white-space: nowrap; }
.nw-role .nw-who { color: var(--subtle); font-size: var(--t-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 110px; }
.nw-role.is-hist { border-style: dashed; color: var(--muted); }
.nw-role .nw-hist-tag { font-size: 10px; font-weight: var(--w-bold); text-transform: uppercase; letter-spacing: .04em; color: var(--negative); }
.nw-role-a { align-self: flex-start; }
.nw-role-b { align-self: flex-end; }

/* company card */
.nw-company { position: relative; background: var(--surface); border: 1px solid var(--line); padding: 12px 14px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.nw-company .nw-cname { display: block; font-size: var(--t-base); font-weight: var(--w-semi); color: var(--blue); text-decoration: none; padding-right: 30px; line-height: 1.3; text-transform: uppercase; letter-spacing: .01em; }
.nw-company .nw-cname:hover { text-decoration: underline; }
.nw-company .nw-cicon { position: absolute; top: 12px; right: 12px; width: 20px; height: 20px; color: var(--navy); }
.nw-company .nw-cicon svg { width: 100%; height: 100%; }
.nw-company .nw-kpis { display: grid; grid-template-columns: 1fr auto; gap: 12px; margin-top: 10px; }
.nw-company .nw-kpi small { display: block; font-size: 10px; letter-spacing: .05em; text-transform: uppercase; color: var(--subtle); font-weight: var(--w-semi); }
.nw-company .nw-kpi span { display: block; font-size: var(--t-sm); color: var(--ink); margin-top: 2px; font-variant-numeric: tabular-nums; }
.nw-more-via { font-size: var(--t-sm); color: var(--muted); grid-column: 2 / 4; margin: -4px 0 12px; }

.nw-none { margin-top: 24px; padding: 22px; background: var(--soft); border: 1px dashed var(--line); color: var(--muted); }
.nw-none p { margin: 0; }
.nw-none .nw-none-hint { font-size: var(--t-sm); color: var(--subtle); margin-top: 6px; }
.nw-basis { font-size: var(--t-xs); color: var(--subtle); margin-top: 22px; }

@media (max-width: 900px) {
  .nw-pickers { grid-template-columns: 1fr; }
  .nw-pickers .rel-swap { justify-self: center; transform: rotate(90deg); }
  .nw-detail-head { display: none; }
  .nw-seg, .nw-via { grid-template-columns: 1fr; gap: 10px; }
  .nw-via { grid-column: 1; }
  .nw-roles::before { display: none; }
  .nw-seg-down { width: auto; }
  .nw-more-via { grid-column: 1; }
  .nw-person, .nw-person.is-mid { width: 100%; }
  .nw-strip { display: none; }
}

/* The trail behind a share under "owners behind the company". */
.trail-btn { font: inherit; color: var(--accent, inherit); background: none; border: 0; border-bottom: 1px dotted currentColor; padding: 0; cursor: pointer; font-variant-numeric: tabular-nums; }
.trail-btn:hover, .trail-btn:focus-visible { border-bottom-style: solid; }
.trail-dialog { margin: auto; border: none; border-radius: var(--r-lg); padding: 0; max-width: 560px; width: calc(100vw - 32px); max-height: calc(100vh - 48px); box-shadow: var(--shadow-lg); }
.trail-dialog::backdrop { background: rgba(11, 31, 51, 0.45); }
.trail-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px 0; }
.trail-dialog-head h2 { margin: 0; font-size: 1rem; }
.trail-close { font: inherit; font-size: 1.4rem; line-height: 1; background: none; border: 0; cursor: pointer; color: inherit; padding: 4px 8px; }
.trail-body { padding: 8px 20px 20px; overflow-y: auto; }
.trail-heading { margin: 4px 0 14px; font-size: 1.05rem; }
.trail-route { border-left: 3px solid var(--line, #d9e0e7); padding: 2px 0 2px 14px; margin: 0 0 14px; }
.trail-chain { list-style: none; margin: 0; padding: 0; }
.trail-party { font-weight: 600; }
.trail-step { padding: 3px 0 3px 2px; }
.trail-sum { margin: 6px 0 0; }
.trail-total { font-weight: 600; margin: 0 0 10px; }
.trail-sources-h { margin: 16px 0 4px; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.trail-sources { margin: 0 0 8px; padding-left: 18px; }
