/* Leinstrandvegen 203 — felles stil.
   Palett: kjølig tegningsgrå, brannskille-rødt fra Norgeshus-tegninga som eneste
   aksent, furugrønn til summer. Type: IBM Plex Sans Condensed / Sans / Mono. */
:root {
  --ground:#E4E7E9; --surface:#FBFCFC; --sheet:#F3F5F5;
  --ink:#151A1E; --text:#242C33; --muted:#5F6E7A; --faint:#8896A2;
  --line:#C7CFD5; --hair:#DDE3E7;
  --brann:#B4262C; --brann-soft:#F6E4E4;
  --sum:#1C4F45; --sum-soft:#DDEBE7;
  --u0:#E8CE84; --u1:#A9CFC0; --u2:#E6B7BE; --u3:#CFCCC4; --u4:#D5DBE0;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ground:#10151A; --surface:#191F26; --sheet:#1F262E;
    --ink:#F0F3F5; --text:#DDE4E9; --muted:#93A2AE; --faint:#75838F;
    --line:#2E3841; --hair:#252E36;
    --brann:#E9666B; --brann-soft:#3A1E20;
    --sum:#7CC7B4; --sum-soft:#16302B;
    --u0:#6A5518; --u1:#255043; --u2:#5A343B; --u3:#3C3A34; --u4:#2C343B;
  }
}
:root[data-theme="dark"] {
  --ground:#10151A; --surface:#191F26; --sheet:#1F262E;
  --ink:#F0F3F5; --text:#DDE4E9; --muted:#93A2AE; --faint:#75838F;
  --line:#2E3841; --hair:#252E36;
  --brann:#E9666B; --brann-soft:#3A1E20;
  --sum:#7CC7B4; --sum-soft:#16302B;
  --u0:#6A5518; --u1:#255043; --u2:#5A343B; --u3:#3C3A34; --u4:#2C343B;
}
* { box-sizing:border-box; }
html { color-scheme:light dark; }
body {
  margin:0; background:var(--ground); color:var(--text);
  font-family:"IBM Plex Sans","Segoe UI",Helvetica,Arial,sans-serif;
  font-size:16px; line-height:1.55;
}
img { max-width:100%; }
h1,h2,h3,.lbl,th,.eyebrow,.fase-nr,.unit-tag,.brand-a,nav a { font-family:"IBM Plex Sans Condensed","IBM Plex Sans",Helvetica,Arial,sans-serif; }
h1 { font-size:clamp(30px,4.6vw,46px); font-weight:700; line-height:1.03; letter-spacing:-0.015em; margin:2px 0 10px; color:var(--ink); text-wrap:balance; }
h2 { font-size:23px; font-weight:700; margin:0 0 10px; color:var(--ink); letter-spacing:-0.005em; text-wrap:balance; }
h3 { font-size:17px; font-weight:600; margin:16px 0 4px; color:var(--ink); text-wrap:balance; }
p { margin:0 0 10px; max-width:70ch; }
p:last-child { margin-bottom:0; }
a { color:var(--brann); text-underline-offset:2px; }
:focus-visible { outline:2px solid var(--brann); outline-offset:2px; }
.eyebrow { font-size:11px; font-weight:600; letter-spacing:0.17em; text-transform:uppercase; color:var(--muted); display:block; }
.muted { color:var(--muted); }
.num, .val, td.num, .mono { font-family:"IBM Plex Mono",Menlo,monospace; font-variant-numeric:tabular-nums; }

/* ---------- topbar ---------- */
.topbar {
  background:var(--surface); border-bottom:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:10px 26px; align-items:center; justify-content:space-between;
  padding:12px 22px; position:sticky; top:0; z-index:10;
}
.brand { text-decoration:none; display:flex; flex-direction:column; line-height:1.2; }
.brand-a { font-weight:700; font-size:17px; color:var(--ink); letter-spacing:-0.01em; }
.brand-b { font-size:11.5px; color:var(--faint); letter-spacing:0.06em; }
.topbar nav { display:flex; flex-wrap:wrap; gap:4px; }
.topbar nav a {
  text-decoration:none; color:var(--muted); font-weight:600; font-size:14.5px;
  padding:6px 12px; border:1px solid transparent; border-radius:2px;
}
.topbar nav a:hover { color:var(--ink); background:var(--sheet); }
.topbar nav a.on { color:var(--brann); border-color:var(--brann); }

.wrap { max-width:1120px; margin:0 auto; padding:26px 18px 60px; display:flex; flex-direction:column; gap:26px; }
.hero { max-width:74ch; }
.lead { font-size:18.5px; line-height:1.5; max-width:66ch; }

/* ---------- forsidekort ---------- */
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.card-link {
  background:var(--surface); border:1px solid var(--line); padding:20px;
  text-decoration:none; color:var(--text); display:flex; flex-direction:column; gap:6px;
}
.card-link:hover { border-color:var(--brann); }
.card-link h2 { margin:2px 0 4px; }
.card-link p { font-size:14.5px; color:var(--muted); flex:1; }
.card-sum { font-family:"IBM Plex Mono",monospace; font-size:22px; font-weight:600; color:var(--ink); margin-top:8px; }
.card-note { font-size:13px; color:var(--faint); }

/* ---------- faktarad ---------- */
.factgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); background:var(--surface); border:1px solid var(--line); }
.factgrid > div { padding:14px 18px; border-right:1px solid var(--hair); display:flex; flex-direction:column; gap:2px; }
.factgrid > div:last-child { border-right:none; }
.lbl { font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--faint); }
.factgrid .val { font-size:22px; font-weight:600; color:var(--ink); }
.fnote { font-size:12.5px; color:var(--muted); }

/* ---------- plansjer ---------- */
.plan { display:grid; grid-template-columns:1.55fr 1fr; gap:22px; align-items:start; }
@media (max-width:900px) { .plan { grid-template-columns:1fr; } }
figure { margin:0; background:var(--sheet); border:1px solid var(--line); padding:9px 9px 0; }
figure .scroll img { display:block; width:100%; min-width:520px; height:auto; }
figcaption { font-size:13px; color:var(--muted); padding:9px 3px 10px; border-top:1px solid var(--hair); margin-top:9px; }
.scroll { overflow-x:auto; }

.findings { list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:9px; }
.findings li { display:grid; grid-template-columns:auto 1fr; gap:10px; font-size:14.5px; line-height:1.45; align-items:baseline; }
.tg { font-family:"IBM Plex Mono",monospace; font-size:11px; font-weight:600; padding:2px 6px; border:1px solid; white-space:nowrap; }
.tg3 { color:var(--brann); border-color:var(--brann); background:var(--brann-soft); }
.tg2 { color:var(--muted); border-color:var(--line); }
.tgiu { color:var(--faint); border-color:var(--hair); border-style:dashed; }
.tgok { color:var(--sum); border-color:var(--sum); background:var(--sum-soft); }

/* ---------- tabeller ---------- */
table { width:100%; border-collapse:collapse; font-size:14.5px; }
th { text-align:left; font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--faint); font-weight:600; padding:8px 10px; border-bottom:1px solid var(--line); white-space:nowrap; }
td { padding:9px 10px; border-bottom:1px solid var(--hair); vertical-align:top; }
td.num { text-align:right; white-space:nowrap; font-size:13.5px; }
th.num { text-align:right; }
td.dim { color:var(--muted); }
td.sum { color:var(--ink); font-weight:500; }
tbody tr:last-child td { border-bottom:none; }
.vare { display:block; font-weight:500; color:var(--ink); }
.spek { display:block; color:var(--muted); font-size:13px; line-height:1.4; max-width:52ch; }
.spek-td { color:var(--muted); font-size:13.5px; }
.tight td, .tight th { padding:6px 8px; }
.scroll table { min-width:560px; }

/* ---------- faser ---------- */
.fase { background:var(--surface); border:1px solid var(--line); }
.fase-hd { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:start; padding:16px 18px; border-bottom:1px solid var(--line); }
@media (max-width:640px) { .fase-hd { grid-template-columns:auto 1fr; } .fase-sum { grid-column:2; text-align:left; } }
.fase-nr { font-family:"IBM Plex Mono",monospace; font-size:22px; font-weight:600; color:var(--brann); line-height:1.2; }
.fase-nr.alt { color:var(--muted); }
.fase-ing { font-size:14px; color:var(--muted); margin:4px 0 0; max-width:64ch; }
.fase-sum { text-align:right; white-space:nowrap; }
.fase-sum .val { font-family:"IBM Plex Mono",monospace; font-size:19px; font-weight:600; color:var(--ink); display:block; }

.totalbar { background:var(--sum); color:#FBFCFC; display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:baseline; padding:18px 22px; }
.totalbar .t-lbl { font-family:"IBM Plex Sans Condensed",sans-serif; font-size:12px; letter-spacing:0.15em; text-transform:uppercase; opacity:.85; }
.totalbar .t-val { font-family:"IBM Plex Mono",monospace; font-size:clamp(26px,4vw,38px); font-weight:600; letter-spacing:-0.01em; }
.totalbar .t-note { font-size:13.5px; opacity:.9; max-width:46ch; margin:0; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .totalbar { color:#0E1A17; } }
:root[data-theme="dark"] .totalbar { color:#0E1A17; }

/* ---------- kort og notater ---------- */
.card { background:var(--surface); border:1px solid var(--line); padding:18px 20px; }
.card.wide p, .card.wide li { max-width:78ch; }
.note { border-left:3px solid var(--brann); background:var(--brann-soft); padding:14px 18px; }
.note h3 { margin-top:0; }
.note p { font-size:14.5px; }
.note.danger { border-left-width:5px; }
.sec-hd { display:flex; flex-wrap:wrap; gap:12px; align-items:baseline; justify-content:space-between; border-bottom:2px solid var(--ink); padding-bottom:8px; }
.sec-hd h2 { margin:0; }
ul.plain { margin:8px 0 0; padding-left:19px; }
ul.plain li { margin-bottom:8px; max-width:74ch; }
ul.plain li:last-child { margin-bottom:0; }
.unit-tag { font-size:11px; font-weight:700; letter-spacing:0.08em; padding:3px 8px; white-space:nowrap; color:#151A1E; display:inline-block; }
.u0 { background:var(--u0); } .u1 { background:var(--u1); } .u2 { background:var(--u2); }
.u3 { background:var(--u3); } .u4 { background:var(--u4); }

.foot { border-top:1px solid var(--line); padding:20px 22px 40px; color:var(--faint); font-size:13px; }
.foot p { max-width:80ch; margin:0 auto; }
@media (prefers-reduced-motion:reduce) { * { transition:none !important; animation:none !important; } }

tr.total td { border-top:2px solid var(--line); border-bottom:none; padding-top:11px; }

/* ==========================================================================
   Visjonsdokument — komponenter lagt til da sida gikk fra materialliste til
   kjøpsdokument. Samme palett; semantiske farger er holdt utenfor aksenten
   bortsett fra brannrødt, som her betyr «kritisk» og er den samme rødfargen
   som branncelleskillene på Norgeshus-tegningene.
   ========================================================================== */
:root {
  --kritisk:#B4262C; --kritisk-flate:#F6E4E4;
  --hoy:#8A5A12;     --hoy-flate:#F6EDDD;
  --middels:#41606F; --middels-flate:#E3EBEF;
  --antatt:#7A6A4E;  --antatt-flate:#F2EEE4;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --kritisk:#E9666B; --kritisk-flate:#3A1E20;
    --hoy:#D9A445;     --hoy-flate:#33280F;
    --middels:#8FAEC0; --middels-flate:#1C2930;
    --antatt:#C4B183;  --antatt-flate:#2A2519;
  }
}
:root[data-theme="dark"] {
  --kritisk:#E9666B; --kritisk-flate:#3A1E20;
  --hoy:#D9A445;     --hoy-flate:#33280F;
  --middels:#8FAEC0; --middels-flate:#1C2930;
  --antatt:#C4B183;  --antatt-flate:#2A2519;
}

/* ---------- undernavigasjon ---------- */
.subnav { display:flex; flex-wrap:wrap; gap:2px; border-bottom:1px solid var(--line); padding-bottom:0; }
.subnav a { text-decoration:none; color:var(--muted); font-family:"IBM Plex Sans Condensed",sans-serif;
  font-weight:600; font-size:13.5px; padding:7px 13px; border:1px solid transparent; border-bottom:none; }
.subnav a:hover { color:var(--ink); background:var(--sheet); }
.subnav a.on { color:var(--ink); background:var(--surface); border-color:var(--line); margin-bottom:-1px; }

/* ---------- kildemerking ---------- */
.kilde { font-family:"IBM Plex Mono",monospace; font-size:10px; font-weight:500;
  letter-spacing:0.09em; text-transform:uppercase; padding:2px 6px; white-space:nowrap;
  border:1px solid var(--hair); color:var(--faint); display:inline-block; }
.kilde.k-modell { color:var(--sum); border-color:var(--sum); background:var(--sum-soft); }
.kilde.k-forutsetning { color:var(--antatt); border-color:var(--antatt); background:var(--antatt-flate); border-style:dashed; }

/* ---------- etasjestabelen ---------- */
.stack { display:flex; flex-direction:column; border:1px solid var(--line); background:var(--surface); }
.etg { display:grid; grid-template-columns:12px 1fr auto; gap:0 16px; align-items:start;
  padding:15px 18px 15px 0; border-bottom:1px solid var(--hair); }
.etg:last-child { border-bottom:none; }
.etg-flagg { align-self:stretch; }
.etg.s-prosjekt .etg-flagg { background:var(--brann); }
.etg.s-godkjent .etg-flagg { background:var(--sum); }
.etg.s-sperret  .etg-flagg { background:var(--hoy); }
.etg.s-kaldt    .etg-flagg { background:var(--faint); }
.etg h3 { margin:0 0 3px; }
.etg p { font-size:14px; color:var(--muted); margin:0; max-width:62ch; }
.etg-tall { text-align:right; white-space:nowrap; font-family:"IBM Plex Mono",monospace; }
.etg-tall b { font-size:19px; font-weight:600; color:var(--ink); display:block; }
.etg-tall span { font-size:12px; color:var(--faint); }

/* ---------- fordelingsbjelke (tilstandsgrader) ---------- */
.fordeling { display:flex; height:46px; border:1px solid var(--line); overflow:hidden; }
.fordeling > div { display:flex; align-items:center; justify-content:center;
  font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:15px; color:var(--ink); }
.f-0 { background:var(--sum-soft); } .f-1 { background:var(--u1); }
.f-2 { background:var(--u3); } .f-3 { background:var(--kritisk); color:#FBFCFC; }
.f-iu { background:var(--u4); }
:root[data-theme="dark"] .f-3, :root:not([data-theme="light"]) .f-3 { color:#12080A; }
.fordeling-nokkel { display:flex; flex-wrap:wrap; gap:6px 20px; margin-top:10px;
  font-size:13px; color:var(--muted); list-style:none; padding:0; }
.fordeling-nokkel li { display:flex; align-items:center; gap:7px; }
.fordeling-nokkel i { width:11px; height:11px; display:block; border:1px solid var(--line); font-style:normal; }

/* ---------- kostnadsbånd ---------- */
.band { display:block; height:6px; background:var(--hair); position:relative; min-width:90px; margin-top:5px; }
.band i { position:absolute; height:100%; background:var(--kritisk); display:block; }
.band.apen i { background:linear-gradient(90deg,var(--kritisk),transparent); }

/* ---------- risikoregister ---------- */
.risiko { display:flex; flex-direction:column; gap:0; border:1px solid var(--line); background:var(--surface); }
.risk { display:grid; grid-template-columns:5px 1fr; border-bottom:1px solid var(--hair); }
.risk:last-child { border-bottom:none; }
.risk-stripe { align-self:stretch; }
.risk.a-kritisk .risk-stripe { background:var(--kritisk); }
.risk.a-hoy .risk-stripe { background:var(--hoy); }
.risk.a-middels .risk-stripe { background:var(--middels); }
.risk-inn { padding:17px 20px; display:flex; flex-direction:column; gap:9px; }
.risk-hd { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:baseline; justify-content:space-between; }
.risk-hd h3 { margin:0; }
.sev { font-family:"IBM Plex Sans Condensed",sans-serif; font-size:10.5px; font-weight:700;
  letter-spacing:0.13em; text-transform:uppercase; padding:3px 8px; white-space:nowrap; border:1px solid; }
.sev.a-kritisk { color:var(--kritisk); border-color:var(--kritisk); background:var(--kritisk-flate); }
.sev.a-hoy { color:var(--hoy); border-color:var(--hoy); background:var(--hoy-flate); }
.sev.a-middels { color:var(--middels); border-color:var(--middels); background:var(--middels-flate); }
.risk-felt { display:grid; grid-template-columns:88px 1fr; gap:4px 14px; font-size:14.5px; }
@media (max-width:560px) { .risk-felt { grid-template-columns:1fr; gap:2px 0; } }
.risk-felt dt { font-family:"IBM Plex Sans Condensed",sans-serif; font-size:10.5px; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--faint); padding-top:4px; }
.risk-felt dd { margin:0; max-width:74ch; }
.risk-felt dd.tiltak { color:var(--ink); }
.risk-naar { font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--faint); white-space:nowrap; }

/* ---------- tidslinje ---------- */
.tl { display:flex; flex-direction:column; }
.tl-steg { display:grid; grid-template-columns:auto 1fr; gap:0 22px; }
.tl-spor { display:flex; flex-direction:column; align-items:center; }
.tl-nr { font-family:"IBM Plex Mono",monospace; font-size:15px; font-weight:600; color:var(--brann);
  border:1px solid var(--brann); width:36px; height:36px; display:flex; align-items:center;
  justify-content:center; background:var(--surface); flex:none; }
.tl-linje { width:1px; background:var(--line); flex:1; min-height:14px; }
.tl-steg:last-child .tl-linje { background:transparent; }
.tl-inn { padding:0 0 26px; }
.tl-steg:last-child .tl-inn { padding-bottom:0; }
.tl-naar { font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--muted); display:block; margin-top:2px; }
.tl-inn h3 { margin:6px 0 8px; font-size:19px; }
.tl-port { margin-top:12px; border-left:3px solid var(--brann); background:var(--brann-soft);
  padding:10px 14px; font-size:14.5px; }
.tl-port b { font-family:"IBM Plex Sans Condensed",sans-serif; font-size:10.5px; font-weight:700;
  letter-spacing:0.13em; text-transform:uppercase; color:var(--brann); display:block; margin-bottom:2px; }

/* ---------- nøkkeltall og matrise ---------- */
.nokkel { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  background:var(--surface); border:1px solid var(--line); }
.nokkel > div { padding:15px 18px; border-right:1px solid var(--hair); border-bottom:1px solid var(--hair); }
.nokkel > div:last-child { border-right:none; }
.nokkel .val { font-family:"IBM Plex Mono",monospace; font-size:24px; font-weight:600; color:var(--ink); display:block; margin-top:2px; }
.nokkel .val.neg { color:var(--kritisk); }
.nokkel .val.pos { color:var(--sum); }
.nokkel small { font-size:12.5px; color:var(--faint); display:block; margin-top:3px; }

table.matrise td.celle { text-align:right; font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; }
table.matrise td.celle.her { background:var(--brann-soft); color:var(--ink); font-weight:600; outline:1px solid var(--brann); outline-offset:-1px; }
table.matrise th.rad { font-family:"IBM Plex Mono",monospace; text-transform:none; letter-spacing:0;
  font-size:13.5px; color:var(--text); text-align:right; }

/* ---------- to spalter ---------- */
.spalter { display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
@media (max-width:820px) { .spalter { grid-template-columns:1fr; } }
.spalter.smal-hoyre { grid-template-columns:1.5fr 1fr; }
@media (max-width:820px) { .spalter.smal-hoyre { grid-template-columns:1fr; } }

/* ---------- dom ---------- */
.dom { border:1px solid var(--line); border-left:5px solid var(--sum); background:var(--surface); padding:20px 24px; }
.dom h2 { margin-top:0; }
.dom p { font-size:16px; max-width:76ch; }
.dom .strek { border:none; border-top:1px solid var(--hair); margin:14px 0; }

table.matrise th.rad { width:1%; padding-right:22px; }
table.matrise tbody th { border-bottom:1px solid var(--hair); font-weight:600; }
table.matrise tbody tr:last-child th { border-bottom:none; }

/* ==========================================================================
   Kortversjonen (2026-09-08): tre menypunkter, nedtrekksmeny, rom-for-rom,
   gulvsnitt, stegliste og Maxbo-kolonne i handlelista.
   ========================================================================== */

/* ---------- nedtrekksmeny (ren CSS) ---------- */
.topbar nav { position:relative; }
.topbar nav .menu { position:relative; }
.topbar nav .menu > a::after { content:"▾"; font-size:10px; margin-left:6px; opacity:.6; }
.topbar nav .menu ul {
  display:none; position:absolute; top:100%; left:0; margin:0; padding:6px 0;
  list-style:none; background:var(--surface); border:1px solid var(--line);
  min-width:230px; box-shadow:0 10px 28px rgba(0,0,0,.14); z-index:40;
}
.topbar nav .menu:hover ul, .topbar nav .menu:focus-within ul { display:block; }
.topbar nav .menu ul a { display:block; border:0; border-radius:0; padding:7px 16px; font-size:14px; }
.topbar nav .menu ul a:hover { background:var(--sheet); }
.topbar nav .menu ul a.on { color:var(--brann); background:var(--brann-soft); border:0; }
@media (max-width:640px) { .topbar nav .menu ul { display:none !important; } .topbar nav .menu > a::after { content:""; } }

/* ---------- underkort ---------- */
.cards.under { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; }
.cards.under .card-link { padding:14px 16px; gap:2px; }
.cards.under h2 { font-size:18px; margin:0; }
.cards.under p { font-size:13.5px; margin:0; }

/* ---------- rom for rom ---------- */
.romgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.rom { background:var(--surface); border:1px solid var(--line); display:flex; flex-direction:column; }
.rom .foto { margin:0; border:0; padding:0; background:var(--sheet); }
.rom .foto img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; }
.rom .foto figcaption { padding:6px 12px; margin:0; border-top:0; font-size:12px; }
.rom .foto.tom { aspect-ratio:3/2; display:flex; align-items:center; justify-content:center; color:var(--faint); font-size:12.5px; border-bottom:1px solid var(--hair); }
.rom-inn { padding:12px 16px 16px; display:flex; flex-direction:column; gap:4px; flex:1; }
.rom-hd { display:flex; justify-content:space-between; align-items:center; }
.rom-hd .num { font-size:13px; color:var(--muted); }
.rom h3 { margin:2px 0 2px; font-size:18px; }
.rom p { font-size:14px; color:var(--muted); margin:0; }

/* ---------- gulvsnitt ---------- */
.lagrad { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px; }
figure.lag { padding:10px 12px 4px; }
figure.lag svg { width:100%; height:auto; display:block; }

/* ---------- stegliste ---------- */
ol.steg { margin:6px 0 0; padding-left:0; list-style:none; counter-reset:steg; }
ol.steg li { position:relative; padding-left:38px; margin-bottom:9px; font-size:14.5px; counter-increment:steg; }
ol.steg li::before { content:counter(steg); position:absolute; left:0; top:1px; width:26px; height:26px;
  border:1px solid var(--brann); color:var(--brann); font-family:"IBM Plex Mono",monospace; font-size:12.5px;
  font-weight:600; display:flex; align-items:center; justify-content:center; }
ul.plain.kompakt li { margin-bottom:4px; font-size:14px; }

/* ---------- handleliste ---------- */
.fase.kompakt .fase-hd { padding:10px 18px; }
.fase.kompakt h3 { margin:0; font-size:16px; }
td.lnk { white-space:nowrap; font-family:"IBM Plex Mono",monospace; font-size:12.5px; }
td.lnk a.kat { color:var(--muted); font-style:italic; }
th:last-child.lnk { }

/* ---------- fullskjerm bildevisning ---------- */
a.zoom { display:block; cursor:zoom-in; }
.lys { position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center;
  padding:20px; background:rgba(8,10,12,.94); cursor:zoom-out; }
.lys.on { display:flex; }
.lys img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain;
  box-shadow:0 24px 70px rgba(0,0,0,.55); background:#fff; }
.lys-x { position:absolute; top:14px; right:18px; width:44px; height:44px; border:0; border-radius:2px;
  background:rgba(255,255,255,.12); color:#fff; font-size:30px; line-height:1; cursor:pointer; }
.lys-x:hover { background:rgba(255,255,255,.24); }

/* ---------- trinnsidene (bare lister) ---------- */
.trinn-hd { display:grid; grid-template-columns:auto 1fr auto; gap:18px; align-items:center; }
.trinn-hd .fase-nr { font-size:34px; }
.trinn-hd h1 { margin:0; font-size:clamp(26px,3.6vw,36px); }
.trinn-hd .fase-sum .val { font-size:26px; }
figure.tegning { padding:9px 9px 9px; }
table.oversikt tr.trinn td { border-top:2px solid var(--ink); padding-top:12px; }
table.oversikt tr.trinn:first-child td { border-top:none; }
table.oversikt td a { color:inherit; text-decoration:none; }
table.oversikt td a:hover { color:var(--brann); }
table.oversikt td:first-child { width:1%; white-space:nowrap; }
table.oversikt .fase-nr { font-size:18px; }
.fase.kompakt { scroll-margin-top:76px; }
