/* Solpark – arbeidsflaten (solpark-gui.jsx, 13. nov 2026). Prefiks .spg-, oklch-farger.
   PC (> 1100 px): toppfelt, nøkkeltall, stegmeny til venstre, kartet i midten og panelet for steget til høyre.
   Mobil: kartet over hele skjermen, stegene som en rad øverst og panelet i en bunnskuff (lukket/halv/hel). */
.spg {
  --spg-bunn: oklch(0.965 0.014 80); --spg-flate: oklch(0.985 0.008 80); --spg-meny: oklch(0.972 0.012 82);
  --spg-kant: oklch(0.88 0.03 80); --spg-kant-sterk: oklch(0.84 0.04 78); --spg-spor: oklch(0.9 0.035 80);
  --spg-tekst: oklch(0.29 0.03 60); --spg-mork: oklch(0.25 0.03 60); --spg-dempet: oklch(0.5 0.04 65); --spg-dempet2: oklch(0.43 0.04 60);
  --spg-leire: oklch(0.44 0.12 45); --spg-aksent: oklch(0.56 0.15 45); --spg-gronn: oklch(0.52 0.1 148); --spg-varsel: oklch(0.68 0.14 75);
  --spg-rod: oklch(0.45 0.15 30); --spg-aktiv: oklch(0.92 0.035 80); --spg-aktiv-kant: oklch(0.83 0.055 78); --spg-pille: oklch(0.98 0.02 80);
  --spg-panel: clamp(380px, 29vw, 460px); --spg-skinne: 236px; --spg-skuff-h: 50dvh;
  --sp-flate: oklch(0.995 0.004 85);
  position: fixed; inset: 0; z-index: 900; display: flex; flex-direction: column; min-height: 0; overflow: hidden;
  background: var(--spg-bunn); color: var(--spg-tekst); font: 14px/1.4 "DM Sans", system-ui, sans-serif;
}
.spg::after { display: none; }
html.spg-aapen, html.spg-aapen body { overflow: hidden; }
.spg:fullscreen { width: 100vw; height: 100vh; }

/* ---------- Knapper ---------- */
.spg-knapp { font: 500 13.5px/1.2 "DM Sans", system-ui, sans-serif; padding: 8px 14px; min-height: 36px; border-radius: 999px; border: 1px solid var(--spg-kant-sterk);
  background: var(--spg-flate); color: var(--spg-tekst); cursor: pointer; white-space: nowrap; }
.spg-knapp:hover:not(:disabled) { background: oklch(0.95 0.02 80); }
.spg-knapp:disabled { opacity: 0.5; cursor: default; }
.spg-knapp--primar { background: var(--spg-leire); border-color: var(--spg-leire); color: oklch(0.99 0.01 80); font-weight: 600; }
.spg-knapp--primar:hover:not(:disabled) { background: oklch(0.38 0.11 45); }
.spg-knapp--mork { background: var(--spg-tekst); border-color: var(--spg-tekst); color: oklch(0.99 0.01 80); font-weight: 600; }
.spg-knapp--mork:hover:not(:disabled) { background: var(--spg-mork); }
.spg-knapp--ikon { padding: 8px 11px; font-size: 15px; }
.spg-knapp--liten { padding: 4px 10px; min-height: 28px; font-size: 12px; }
.spg-lenke { border: 0; background: none; padding: 0; font: inherit; color: var(--spg-leire); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.spg-lenke:hover { color: oklch(0.36 0.1 45); }
.spg-x { border: 0; background: none; font-size: 22px; line-height: 1; color: var(--spg-dempet); cursor: pointer; padding: 2px 8px; border-radius: 8px; }
.spg-x:hover { background: oklch(0.94 0.02 60); }
.spg :focus-visible { outline: 2px solid var(--spg-aksent); outline-offset: 2px; }
.spg-fyll { flex: 1 1 10px; }

/* ---------- Toppfeltet ---------- */
.spg-topp { position: relative; z-index: 30; flex: none; display: flex; align-items: center; gap: 10px 16px; padding: 8px 18px; border-bottom: 1px solid var(--spg-kant); background: var(--spg-flate); }
.spg-logo { font: 400 19px/1 Newsreader, Georgia, serif; letter-spacing: 0.14em; color: var(--spg-mork); text-decoration: none; }
.spg-topp__skille { color: oklch(0.65 0.04 70); }
.spg-prosjekt { display: flex; flex-direction: column; gap: 0; min-width: 0; flex: 0 1 320px; }
.spg-prosjekt__kicker { font-size: 11px; color: var(--spg-dempet); text-transform: uppercase; letter-spacing: 0.06em; }
.spg-prosjekt__navn { font: 400 18px/1.2 Newsreader, Georgia, serif; color: var(--spg-mork); border: 1px solid transparent; border-radius: 8px; background: transparent; padding: 1px 6px; margin-left: -6px; min-width: 0; width: 100%; }
.spg-prosjekt__navn:hover { border-color: var(--spg-kant); }
.spg-prosjekt__navn:focus { border-color: var(--spg-kant-sterk); background: #fff; outline: none; }
.spg-prosjekt__navn::placeholder { color: oklch(0.6 0.03 65); font-style: italic; }
.spg-handlinger { display: flex; align-items: center; gap: 8px; }
.spg-meny { display: none; position: relative; }
.spg-meny > summary { list-style: none; cursor: pointer; font-size: 20px; line-height: 1; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--spg-kant-sterk); background: var(--spg-flate); }
.spg-meny > summary::-webkit-details-marker { display: none; }
.spg-meny__liste { position: absolute; right: 0; top: calc(100% + 6px); z-index: 50; display: flex; flex-direction: column; align-items: stretch; gap: 6px; padding: 10px; border-radius: 14px;
  background: var(--spg-flate); border: 1px solid var(--spg-kant); box-shadow: 0 18px 40px -20px oklch(0.3 0.05 60 / 0.6); min-width: 200px; }

/* Jobbpillen */
.spg-pille { display: inline-flex; align-items: center; gap: 9px; padding: 6px 12px 6px 9px; min-height: 34px; border: 1px solid var(--spg-kant-sterk); border-radius: 999px; background: var(--spg-pille); color: var(--spg-tekst);
  font: 13px "DM Sans", system-ui, sans-serif; cursor: pointer; white-space: nowrap; }
.spg-pille b { font-weight: 600; }
.spg-pille__bar { display: block; width: 72px; height: 6px; border-radius: 3px; background: var(--spg-spor); overflow: hidden; }
.spg-pille__bar > span { display: block; height: 100%; background: var(--spg-aksent); transition: width 0.4s ease; }
.spg-pille__pst { color: var(--spg-dempet); font-variant-numeric: tabular-nums; }
.spg-pille--ferdig { color: var(--spg-gronn); }
.spg-pille__hake { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--spg-gronn); color: #fff; }
.spg-pille--feil { color: var(--spg-rod); }
.spg-pille__utrop { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--spg-varsel); color: #fff; font-weight: 700; font-size: 12px; }

/* Ring (fremdrift) */
.spg-ring__spor { stroke: var(--spg-spor); }
.spg-ring__del { stroke: var(--spg-aksent); transition: stroke-dasharray 0.4s ease; }
.spg-ring--ubestemt { animation: spg-snurr 1.1s linear infinite; }
@keyframes spg-snurr { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spg-ring--ubestemt { animation: none; } }

/* Jobblisten (popover under pillen) */
.spg-jobber { position: absolute; top: calc(100% + 6px); right: 18px; z-index: 60; width: min(520px, calc(100vw - 24px)); max-height: min(70vh, 720px); overflow: auto; box-sizing: border-box;
  padding: 16px 18px 14px; border-radius: 18px; background: var(--spg-flate); border: 1px solid var(--spg-kant); box-shadow: 0 28px 60px -28px oklch(0.25 0.05 60 / 0.6); outline: none; }
.spg-jobber__hode { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 6px; }
.spg-jobber__hode > div { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.spg-jobber__hode h2 { margin: 0; font: 500 22px/1.2 Newsreader, Georgia, serif; color: var(--spg-mork); }
.spg-jobber__hode span { font-size: 12.5px; color: var(--spg-dempet); }
.spg-jobber__del { display: flex; align-items: center; gap: 10px; margin: 12px 0 6px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--spg-leire); }
.spg-jobber__del--ferdig { color: var(--spg-dempet); }
.spg-jobber__del .spg-lenke { font-size: 11px; text-transform: none; letter-spacing: 0; font-weight: 500; }
.spg-jobber__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.spg-jobb { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border-radius: 14px; background: #fff; border: 1px solid var(--spg-kant); }
.spg-jobb__topp { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.spg-jobb__topp b { font-weight: 600; }
.spg-jobb__topp span { font-size: 12.5px; color: var(--spg-dempet); text-align: right; }
.spg-jobb__bar { display: block; height: 6px; border-radius: 3px; background: var(--spg-spor); overflow: hidden; }
.spg-jobb__bar > span { display: block; height: 100%; background: var(--spg-aksent); transition: width 0.4s ease; }
.spg-jobb__bar--ubestemt > span { width: 30% !important; animation: spg-glid 1.4s ease-in-out infinite; }
@keyframes spg-glid { 0% { transform: translateX(-100%); } 100% { transform: translateX(340%); } }
@media (prefers-reduced-motion: reduce) { .spg-jobb__bar--ubestemt > span { animation: none; width: 100% !important; opacity: 0.35; } }
.spg-jobb__fot { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--spg-dempet); }
.spg-jobb__tid { margin-left: auto; font-variant-numeric: tabular-nums; }
.spg-jobb--venter { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; background: transparent; border-style: dashed; }
.spg-jobb--venter span { font-size: 12.5px; color: var(--spg-dempet); }
.spg-jobber__liste--ferdig { gap: 0; }
.spg-jobber__liste--ferdig li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 8px; align-items: baseline; padding: 6px 2px; border-bottom: 1px solid oklch(0.92 0.02 80); font-size: 13px; }
.spg-jobb__merke { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: var(--spg-gronn); color: #fff; font-size: 10px; font-weight: 700; align-self: center; }
.spg-jobb--feil .spg-jobb__merke { background: var(--spg-varsel); }
.spg-jobb__navn small { color: var(--spg-dempet); }
.spg-jobb__resultat { color: var(--spg-dempet); font-size: 12px; text-align: right; }
.spg-jobb--feil .spg-jobb__resultat { color: var(--spg-rod); }
.spg-jobber__fot { margin-top: 12px; font-size: 12px; color: var(--spg-dempet); }

/* ---------- Nøkkeltall ---------- */
.spg-tall { flex: none; display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--spg-kant); background: var(--spg-flate); }
.spg-tall > div { display: flex; flex-direction: column; padding: 6px 20px; border-right: 1px solid oklch(0.91 0.025 80); min-width: 0; }
.spg-tall > div:last-child { border-right: 0; }
.spg-tall b { font: 500 20px/1.15 Newsreader, Georgia, serif; color: var(--spg-mork); font-variant-numeric: tabular-nums; white-space: nowrap; }
.spg-tall span { font-size: 11px; color: var(--spg-dempet); white-space: nowrap; }
.spg-tall--neg b { color: var(--spg-rod); }

/* ---------- Kroppen: meny, kart, panel ---------- */
.spg-kropp { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: var(--spg-skinne) minmax(0, 1fr) var(--spg-panel); }

/* Stegmenyen */
.spg-steg { display: flex; flex-direction: column; gap: 4px; padding: 14px 12px; border-right: 1px solid var(--spg-kant); background: var(--spg-meny); overflow-y: auto; min-height: 0; }
.spg-steg__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.spg-steg__knapp { all: unset; box-sizing: border-box; display: flex; gap: 10px; align-items: flex-start; width: 100%; padding: 8px 10px; border-radius: 12px; cursor: pointer; color: var(--spg-tekst); }
.spg-steg__knapp:hover { background: oklch(0.95 0.02 80); }
.spg-steg__knapp:focus-visible { outline: 2px solid var(--spg-aksent); outline-offset: 1px; }
.spg-steg__knapp.on { background: var(--spg-aktiv); box-shadow: inset 0 0 0 1px var(--spg-aktiv-kant); color: var(--spg-mork); }
.spg-steg__merke { flex: 0 0 24px; height: 24px; box-sizing: border-box; border-radius: 50%; border: 1.5px solid oklch(0.78 0.04 75); display: grid; place-items: center; font-size: 12px; color: var(--spg-dempet); }
.spg-steg__merke--ferdig { border: 0; background: var(--spg-gronn); color: #fff; }
.spg-steg__merke--varsel { border: 0; background: var(--spg-varsel); color: #fff; font-weight: 700; font-size: 13px; }
.spg-steg__merke--aktiv { border: 0; background: var(--spg-leire); color: #fff; font-weight: 700; }
.spg-steg__merke--jobb { border: 0; }
.spg-steg__tekst { display: flex; flex-direction: column; min-width: 0; }
.spg-steg__tekst b { font-weight: 600; }
.spg-steg__knapp.on .spg-steg__tekst b { font-weight: 700; }
.spg-steg__kortnavn { display: none; }
.spg-steg__tekst small { font-size: 12px; color: var(--spg-dempet); line-height: 1.35; overflow: hidden; text-overflow: ellipsis; }
.spg-steg__fot { margin-top: auto; padding: 10px; border-radius: 12px; background: oklch(0.94 0.022 80); font-size: 12px; color: var(--spg-dempet2); display: flex; flex-direction: column; gap: 4px; }
.spg-steg__fot .spg-lenke { align-self: flex-start; font-size: 12px; }
.spg-steg__lenker { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.spg-kode { font-family: ui-monospace, monospace; color: var(--spg-mork); }

/* Kartet i midten (kartkortet fra solpark-app.jsx, uten ramme) */
.spg-kart { position: relative; min-width: 0; min-height: 0; isolation: isolate; background: oklch(0.9 0.03 125); }
.spg .solpark-kart { position: absolute; inset: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
/* Leaflet setter position: relative på beholderen når den lages */
.spg .solpark-kart__wrap { position: absolute !important; inset: 0; height: auto; margin: 0; border-radius: 0; }
.spg .solpark-kart__topp { position: absolute; top: 10px; left: 56px; right: 10px; z-index: 1000; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; pointer-events: none; }
.spg .solpark-kart__topp > * { pointer-events: auto; }
.spg .solpark-kart__topp .horisont-address-search { width: min(300px, 100%); margin: 0; }
.spg .solpark-verktoy { margin: 0; padding: 4px 6px; border-radius: 999px; background: oklch(0.99 0.006 85 / 0.96); border: 1px solid var(--spg-kant-sterk); box-shadow: 0 10px 28px -16px oklch(0.3 0.05 60 / 0.55); max-width: 100%; box-sizing: border-box; }
.spg .solpark-verktoy:empty { display: none; }
.spg .solpark-verktoy__btn { border: 0; background: transparent; font-weight: 500; font-size: 13px; padding: 6px 12px; min-height: 32px; }
.spg .solpark-verktoy__btn:hover { background: oklch(0.95 0.02 80); }
.spg .solpark-verktoy__btn.on { background: var(--spg-aktiv); color: var(--spg-mork); font-weight: 600; box-shadow: inset 0 0 0 1px var(--spg-aktiv-kant); }
.spg .solpark-verktoy__aarsak { border-radius: 999px; padding: 5px 8px; }
.spg .solpark-hint { flex-basis: 100%; margin: 0; padding: 5px 12px; border-radius: 12px; background: oklch(0.99 0.006 85 / 0.96); max-width: 640px; }
.spg .solpark-kart__bunn { position: absolute; left: 12px; bottom: 22px; z-index: 1000; max-width: calc(100% - 300px); display: flex; flex-direction: column; align-items: flex-start; gap: 6px; pointer-events: none; }
.spg .solpark-kart__bunn > * { pointer-events: auto; }
.spg .solpark-fs-lagknapp { background: oklch(0.99 0.006 85 / 0.96); border: 1px solid var(--spg-kant-sterk); font-weight: 500; box-shadow: 0 8px 22px -12px oklch(0.3 0.05 60 / 0.6); }
.spg .solpark-kartlag { margin: 0; padding: 8px 12px; border-radius: 12px; background: oklch(0.99 0.006 85 / 0.96); border: 1px solid var(--spg-kant); max-width: 560px; max-height: 40vh; overflow: auto; }
.spg .solpark-kartlag--skjult { display: none; }
.spg .solpark-melding { margin: 0; padding: 6px 10px; border-radius: 10px; background: oklch(0.99 0.006 85 / 0.96); max-width: 560px; }
.spg .solpark-3d { margin: 0; }
.spg .solpark-3d > .solpark-verktoy__btn { background: oklch(0.99 0.006 85 / 0.96); border: 1px solid var(--spg-kant-sterk); }
/* «Se i 3D» er erstattet av segmentvalget «Kart | 3D» øverst i kartet (skallet klikker modulens egen knapp) */
.spg .solpark-3d > .solpark-verktoy__btn { display: none; }
.spg .solpark-3d__vindu { flex: 1; height: auto; min-height: 0; }
/* 3D i midten: fyller kartflaten under segmentvalget; resten av verktøylinjen og knappene nederst skjules */
.spg { --spg-3d-topp: 56px; }
.spg.spg--3d .solpark-kart__topp { z-index: 1300; }
.spg.spg--3d .solpark-kart__topp > :not(.spg-visning) { display: none; }
.spg.spg--3d .solpark-kart__bunn { inset: 0; max-width: none; z-index: 1200; }
.spg.spg--3d .solpark-kart__bunn > * { visibility: hidden; }
.spg.spg--3d .solpark-3d__ytre { visibility: visible; position: absolute; inset: 0; z-index: 1; box-sizing: border-box; padding: var(--spg-3d-topp) 10px 10px; border-radius: 0; box-shadow: none; background: var(--spg-bunn); }
.spg.spg--3d .solpark-3d__ytre:fullscreen { padding: 8px; }
.spg.spg--3d .solpark-3d__ytre > .solpark-fot { margin: 0; }
/* Segmentvalget Kart | 3D */
.spg-visning { display: inline-flex; flex: none; padding: 3px; gap: 2px; border-radius: 999px; background: oklch(0.99 0.006 85 / 0.96); border: 1px solid var(--spg-kant-sterk); box-shadow: 0 10px 28px -16px oklch(0.3 0.05 60 / 0.55); }
.spg-visning__knapp { font: 600 13px/1 "DM Sans", system-ui, sans-serif; min-width: 52px; min-height: 30px; padding: 6px 14px; border: 0; border-radius: 999px; background: transparent; color: var(--spg-dempet2); cursor: pointer; }
.spg-visning__knapp:hover { background: oklch(0.95 0.02 80); color: var(--spg-mork); }
.spg-visning__knapp.on { background: var(--spg-tekst); color: oklch(0.99 0.01 80); }
.spg-visning__knapp[aria-disabled="true"] { color: oklch(0.7 0.02 70); cursor: help; }
.spg-visning__knapp[aria-disabled="true"]:hover { background: transparent; color: oklch(0.6 0.02 70); }
/* Tegnforklaringen nederst til høyre, siden verktøylinjen ligger øverst */
.spg .leaflet-top.leaflet-right { top: auto; bottom: 22px; }
.spg .solpark-tf-kontroll { margin: 0 12px 6px 0; }

/* Panelet for steget */
.spg-panel { display: flex; flex-direction: column; min-height: 0; min-width: 0; border-left: 1px solid var(--spg-kant); background: var(--spg-flate); }
.spg-panel__handtak, .spg-panel__minitall { display: none; }
.spg-panel__hode { flex: none; padding: 14px 20px 0; }
.spg-kicker { font-size: 11px; color: var(--spg-leire); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }
.spg-panel__hode h1 { margin: 2px 0 8px; font: 500 28px/1.15 Newsreader, Georgia, serif; color: var(--spg-mork); outline: none; }
.spg-faner { display: flex; flex-wrap: wrap; gap: 2px 4px; border-bottom: 1px solid var(--spg-kant); }
.spg-fane { font: 500 13px/1.2 "DM Sans", system-ui, sans-serif; padding: 8px 9px; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: transparent; color: var(--spg-dempet2); cursor: pointer; }
.spg-fane:hover { color: var(--spg-mork); }
.spg-fane.on { border-bottom-color: var(--spg-leire); color: var(--spg-mork); font-weight: 600; }
.spg-innhold { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: 14px 16px 28px; display: flex; flex-direction: column; gap: 12px; }
.spg-innhold > .spg-post > * { max-width: 100%; box-sizing: border-box; flex: none; }
.spg .spg-innhold .solpark-panel { padding: 12px 14px; border-radius: 16px; overflow-x: auto; background: #fff; }
.spg .spg-innhold .solpark-panel__head h3 { font-size: 19px; margin-bottom: 8px; }
.spg .spg-innhold .solpark-rutenett { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.spg-tomt { display: none; padding: 4px 2px; }
.spg-tomt .spg-knapp { margin-top: 10px; }
.spg-innhold:not(:has(> .spg-post:not(.spg-post--skjult) > *)) .spg-tomt { display: block; }
.spg-panel__fot { flex: none; display: flex; align-items: center; gap: 10px; padding: 10px 20px 12px; border-top: 1px solid var(--spg-kant); }

/* Oppsummeringer (steg 8 og 9) */
.spg-rader { display: flex; flex-direction: column; gap: 8px; }
.spg-rad { display: grid; grid-template-columns: minmax(84px, auto) 1fr; gap: 10px; align-items: baseline; }
.spg-rad b { font: 500 18px/1.2 Newsreader, Georgia, serif; color: var(--spg-mork); white-space: nowrap; }
.spg-rad span { font-size: 13px; color: var(--spg-tekst); }
.spg-rad i { color: var(--spg-dempet); }
.spg-produkter { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin: 6px 0 4px; }
.spg-produkt { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--spg-kant); border-radius: 14px; background: var(--spg-flate); }
.spg-produkt h4 { margin: 0; font: 500 17px/1.2 Newsreader, Georgia, serif; color: var(--spg-mork); }
.spg-produkt > span { font-size: 12.5px; color: var(--spg-dempet); }
.spg-produkt .spg-knapp { margin-top: auto; }
.spg-merkelapp { font-size: 12px !important; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
.spg-merkelapp--ok { background: oklch(0.93 0.05 148); color: oklch(0.38 0.09 148) !important; }
.spg-merkelapp--info { background: oklch(0.94 0.02 240); color: oklch(0.4 0.06 240) !important; }
.spg-merkelapp--mangler { background: oklch(0.94 0.05 80); color: oklch(0.42 0.1 65) !important; }
.spg-sjekk { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.spg-sjekk li { display: grid; grid-template-columns: 20px auto 1fr; gap: 8px; align-items: baseline; }
.spg-sjekk li > span { text-align: center; font-weight: 700; color: var(--spg-dempet); }
.spg-sjekk--ferdig > span { color: var(--spg-gronn) !important; }
.spg-sjekk--varsel > span { color: var(--spg-varsel) !important; }
.spg-sjekk li small { color: var(--spg-dempet); }

/* ---------- Mellombredde: smalere meny ---------- */
@media (max-width: 1360px) and (min-width: 1101px) {
  .spg { --spg-skinne: 200px; --spg-panel: clamp(360px, 31vw, 420px); }
  .spg-tall > div { padding: 6px 14px; }
  .spg-pille__bar { display: none; }
}

/* ---------- Mobil og nettbrett (≤ 1100 px) ---------- */
@media (max-width: 1100px) {
  .spg { --spg-panel: 0px; --spg-skinne: 0px; }
  .spg.spg--skuff-lukket { --spg-skuff-h: 132px; }
  .spg.spg--skuff-halv { --spg-skuff-h: 50dvh; }
  .spg.spg--skuff-hel { --spg-skuff-h: 88dvh; }
  .spg-topp { padding: 6px 10px; gap: 8px; }
  .spg-logo, .spg-topp__skille, .spg-prosjekt__kicker, .spg-handlinger { display: none; }
  .spg-prosjekt { flex: 1 1 auto; }
  .spg-prosjekt__navn { font-size: 17px; }
  .spg-topp > .spg-pille .spg-pille__bar { display: none; }
  .spg-meny { display: block; }
  .spg-jobber { right: 8px; left: 8px; width: auto; }
  .spg-tall { display: none; }
  .spg-kropp { display: block; position: relative; }
  /* Stegene som en rad med brikker øverst over kartet */
  .spg-steg { position: absolute; top: 0; left: 0; right: 0; z-index: 20; flex-direction: row; padding: 8px 10px; border: 0; background: transparent; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; pointer-events: none; }
  .spg-steg::-webkit-scrollbar { display: none; }
  .spg-steg__liste { flex-direction: row; gap: 6px; pointer-events: auto; }
  .spg-steg__knapp { padding: 6px 12px 6px 6px; border-radius: 999px; background: oklch(0.99 0.006 85 / 0.96); border: 1px solid var(--spg-kant-sterk); align-items: center; gap: 6px; white-space: nowrap; box-shadow: 0 6px 16px -12px oklch(0.3 0.05 60 / 0.6); }
  .spg-steg__knapp.on { background: var(--spg-tekst); color: oklch(0.99 0.01 80); box-shadow: none; border-color: var(--spg-tekst); }
  .spg-steg__knapp.on .spg-steg__merke--aktiv { background: oklch(0.99 0.01 80); color: var(--spg-tekst); }
  .spg-steg__merke { flex-basis: 20px; height: 20px; font-size: 11px; }
  .spg-steg__merke--jobb svg { width: 20px; height: 20px; }
  .spg-steg__tekst small, .spg-steg__navn, .spg-steg__fot { display: none; }
  .spg-steg__kortnavn { display: inline; }
  .spg-steg__nr { display: none; }
  .spg-kart { position: absolute; inset: 0 0 calc(var(--spg-skuff-h) - 18px) 0; transition: bottom 0.22s ease; }
  .spg.spg--skuff-hel .spg-kart { bottom: calc(50dvh - 18px); }
  .spg .solpark-kart__topp { top: 54px; left: 60px; right: 8px; }
  .spg .leaflet-top.leaflet-left { top: 46px; }
  .spg .solpark-kart__topp .horisont-address-search { width: 100%; }
  .spg .solpark-verktoy { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; width: 100%; border-radius: 16px; }
  .spg .solpark-verktoy > * { flex: none; }
  .spg .solpark-kart__bunn { bottom: 26px; max-width: calc(100% - 24px); }
  .spg .leaflet-top.leaflet-right { bottom: 26px; }
  .spg { --spg-3d-topp: 98px; }
  .spg .solpark-kart__topp .horisont-address-search { flex: 1 1 160px; width: auto; min-width: 0; }
  .spg .solpark-kart__topp .solpark-verktoy { flex-basis: 100%; }
  /* Panelet som bunnskuff */
  .spg-panel { position: absolute; left: 0; right: 0; bottom: 0; z-index: 25; height: var(--spg-skuff-h); border-left: 0; border-top: 1px solid var(--spg-kant);
    border-radius: 18px 18px 0 0; box-shadow: 0 -12px 30px -18px oklch(0.3 0.05 60 / 0.6); transition: height 0.22s ease; overflow: hidden; }
  .spg-panel__handtak { display: flex; justify-content: center; padding: 8px 0 4px; touch-action: none; cursor: grab; user-select: none; flex: none; }
  .spg-panel__handtak i { width: 42px; height: 5px; border-radius: 3px; background: oklch(0.75 0.03 70); }
  .spg-panel__minitall { display: flex; align-items: center; gap: 6px; padding: 0 12px 6px; flex: none; }
  .spg-panel__minitall > div { flex: 1 1 0; display: flex; flex-direction: column; padding: 4px 8px; border-radius: 10px; background: #fff; border: 1px solid var(--spg-kant); min-width: 0; }
  .spg-panel__minitall b { font: 500 17px/1.15 Newsreader, Georgia, serif; color: var(--spg-mork); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .spg-panel__minitall span { font-size: 10.5px; color: var(--spg-dempet); }
  .spg-panel__minitall .spg-pille { flex: none; }
  .spg-panel__minitall .spg-pille__bar { display: none; }
  .spg-panel__hode { padding: 4px 14px 0; }
  .spg-panel__hode h1 { font-size: 22px; margin-bottom: 4px; }
  .spg-faner { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .spg-fane { flex: none; }
  .spg-innhold { padding: 12px 12px 20px; }
  .spg-panel__fot { padding: 8px 12px calc(10px + env(safe-area-inset-bottom)); }
  .spg.spg--skuff-lukket .spg-panel__hode .spg-kicker, .spg.spg--skuff-lukket .spg-faner, .spg.spg--skuff-lukket .spg-innhold, .spg.spg--skuff-lukket .spg-panel__fot { display: none; }
}
@media (max-width: 600px) {
  .spg .spg-innhold .solpark-rutenett { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spg-steg__knapp { padding-right: 10px; }
}
