.viz-root, .tooltip, .popover {
  color-scheme: light;
  --page: #f9f9f7;
  --surface-1: #fcfcfb;
  --text-primary: #0b0b0b;
  --text-secondary: #52514e;
  --muted: #898781;
  --grid: #e1e0d9;
  --axis: #c3c2b7;
  --border: rgba(11, 11, 11, 0.10);
  --accent: #2a78d6;          /* aktivitet inden for det næste kvartal / afholdt */
  --accent-light: #86b6ef;    /* planlagt senere / planlagt */
  --none: #b8b6ae;            /* intet planlagt */
  --nofb: #d9d7d0;            /* ingen Facebook-side */
  --link: #1c5cab;
  --critical: #d03b3b;
  --new-bg: #fff4d6;
  --font: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:where(:not([data-theme="light"])) :is(.viz-root, .tooltip, .popover) {
    color-scheme: dark;
    --page: #0d0d0d;
    --surface-1: #1a1a19;
    --text-primary: #ffffff;
    --text-secondary: #c3c2b7;
    --muted: #898781;
    --grid: #2c2c2a;
    --axis: #383835;
    --border: rgba(255, 255, 255, 0.10);
    --accent: #5598e7;
    --accent-light: #1c5cab;
    --link: #86b6ef;
    --new-bg: #3a3218;
  }
}

:root { --font: Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { font-family: var(--font); font-size: 14px; line-height: 1.45; background: #f9f9f7; }
a { color: var(--link); }
button { font-family: inherit; }

/* ---- layout: smalt sidepanel til venstre, kortet fylder resten ---- */
.app {
  --side-w: 440px; position: relative;
  display: grid; grid-template-columns: var(--side-w) minmax(0, 1fr); height: 100vh;
  background: var(--page); color: var(--text-primary); font-family: var(--font);
}
.sidebar {
  background: var(--surface-1); border-right: 1px solid var(--border);
  overflow-y: auto; padding: 16px 16px 40px; min-height: 0;
}
.app.side-lukket { grid-template-columns: 0 minmax(0, 1fr); }
.app.side-lukket .sidebar { visibility: hidden; padding: 0; border: 0; }
/* Kanten, der trækkes i, og knappen, der klapper panelet ind/ud (Google Maps-agtigt). */
.side-handle {
  position: absolute; top: 0; bottom: 0; left: calc(var(--side-w) - 4px); width: 8px; z-index: 6; cursor: col-resize;
}
.side-handle::after { content: ''; position: absolute; top: 0; bottom: 0; left: 3px; width: 2px; background: transparent; transition: background .15s; }
.side-handle:hover::after, .side-handle:focus-visible::after, body.traekker .side-handle::after { background: var(--link); }
.side-handle:focus-visible { outline: none; }
.app.side-lukket .side-handle { display: none; }
body.traekker { cursor: col-resize; user-select: none; }
.side-toggle {
  position: absolute; top: 56px; left: var(--side-w); z-index: 7; width: 22px; height: 44px; padding: 0;
  border: 1px solid var(--border); border-left: 0; border-radius: 0 8px 8px 0; background: var(--surface-1);
  color: var(--text-secondary); font-size: 16px; cursor: pointer; box-shadow: 2px 1px 4px rgba(0, 0, 0, .08);
}
.side-toggle:hover { color: var(--text-primary); }
.app.side-lukket .side-toggle { left: 0; }
.map-wrap { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.map { flex: 1; min-height: 0; position: relative; }

h1 { font-size: 20px; margin: 0; letter-spacing: -0.01em; }
.sidebar h2, .sidebar h3 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-secondary); margin: 22px 0 8px; }
.updated, .note, .method { color: var(--muted); font-size: 12.5px; margin: 2px 0 8px; }
/* "?" – forklaringen vises ved hover/fokus/tryk (initForklaringer i app.js) i stedet for at stå som tekst. */
.info {
  display: inline-grid; place-items: center; width: 15px; height: 15px; margin-left: 4px; vertical-align: 1px;
  border: 1px solid var(--axis); border-radius: 50%; font-size: 10px; font-weight: 600; line-height: 1;
  color: var(--muted); cursor: help; text-transform: none; letter-spacing: 0; user-select: none;
}
.info:hover, .info:focus-visible { color: var(--text-primary); border-color: var(--text-secondary); outline: none; }
h1 .info { vertical-align: 3px; }
.method-boks { margin-top: 20px; }
.method-boks summary { cursor: pointer; color: var(--muted); font-size: 12px; }
.method-boks .method { margin-top: 6px; }
.method { margin-top: 20px; line-height: 1.5; }

/* ---- værktøjslinje over kortet ---- */
.toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px;
  padding: 8px 12px; border-bottom: 1px solid var(--border); background: var(--surface-1);
}
.map-actions { display: flex; gap: 8px 14px; flex-wrap: wrap; align-items: center; }
.legend .warn { color: #b3261e; font-weight: 500; }
.legend .muted { color: var(--text-secondary); }
.legend[hidden], .legend:empty { display: none; }
.legend { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; font-weight: 500; color: #0b0b0b;
  position: absolute; left: 12px; right: 60px; bottom: 10px; z-index: 2; pointer-events: none;
  text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 6px #fff, 0 0 6px #fff; }
.legend .muted { color: #0b0b0b; }
.legend span { display: inline-flex; align-items: center; gap: 5px; }
.swatch { width: 12px; height: 12px; border-radius: 3px; display: inline-block; border: 1px solid var(--border); }
.chip {
  font-size: 13px; padding: 4px 12px; border-radius: 999px; cursor: pointer;
  background: var(--surface-1); color: var(--text-primary); border: 1px solid var(--axis);
}
.chip:hover, .chip:focus-visible { border-color: var(--text-secondary); outline: none; }
.chip[aria-pressed="true"] { background: var(--text-primary); color: var(--surface-1); border-color: var(--text-primary); }

/* ---- aktiviteter på kortet: små, let gennemsigtige mærker ved siden af stedet ---- */
.callouts { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 2; }
.callouts svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.leader { fill: none; stroke: #111827; stroke-width: 1; stroke-opacity: 0.45; }
.leader.hover { stroke-opacity: 0.9; stroke-width: 1.5; }
.callout {
  position: absolute; pointer-events: auto; cursor: pointer; width: max-content; max-width: 168px;
  background: rgba(255, 255, 255, 0.8); color: #0b0b0b;
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
  border-left: 3px solid #2a78d6; border-radius: 4px;
  padding: 2px 6px 3px; font-size: 11px; line-height: 1.25;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.14);
}
.callout:hover, .callout:focus-visible, .callout.active {
  background: #ffffff; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22); outline: none; z-index: 1;
}
.callout.national { border-left-color: #111827; }
.callout .when { font-weight: 600; font-size: 10px; color: #52514e; white-space: nowrap; }
.callout .what { font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.callout.cancelled { opacity: 0.75; }
.callout.cancelled .what { text-decoration: line-through; }
.more-note { position: absolute; left: 10px; bottom: 10px; font-size: 12px; color: #52514e; background: rgba(252,252,251,.9); padding: 2px 6px; border-radius: 4px; }

.popover {
  position: absolute; z-index: 5; width: 280px; background: var(--surface-1); color: var(--text-primary);
  border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  padding: 12px 14px; font-size: 13px;
}
.popover .pop-title { font-weight: 600; font-size: 15px; margin: 0 22px 4px 0; line-height: 1.3; }
.popover .pop-meta { color: var(--text-secondary); margin: 2px 0; }
.popover .pop-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; align-items: center; }
.popover .close-pop { position: absolute; top: 6px; right: 8px; border: 0; background: none; font-size: 20px; cursor: pointer; color: var(--text-secondary); }

/* ---- MapLibre ---- */
.maplibregl-ctrl-attrib { font-size: 10px; }
.maplibregl-canvas { outline: none; }

/* ---- sidepanelets indhold ---- */
.tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.tile { background: var(--page); border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; }
.tile .label { color: var(--text-secondary); font-size: 12px; line-height: 1.3; }
.tile .value { font-size: 22px; font-weight: 600; line-height: 1.25; }
.tile .hero { font-size: 32px; }
#tiles .tile:first-child { grid-column: 1 / -1; }
.tile .delta { color: var(--muted); font-size: 11px; line-height: 1.3; }

.evlist { list-style: none; margin: 0; padding: 0; }
.evlist li { padding: 7px 0; border-top: 1px solid var(--grid); display: grid; grid-template-columns: 86px 1fr; gap: 8px; }
.evlist li:first-child { border-top: 0; }
.evlist .date { font-weight: 600; font-variant-numeric: tabular-nums; font-size: 12px; }
.evlist .meta { color: var(--text-secondary); font-size: 12px; }
.evlist .title { font-weight: 500; }
.forening-link { all: unset; color: var(--link); cursor: pointer; text-decoration: underline; }
.badge { display: inline-block; font-size: 10px; font-weight: 700; padding: 0 5px; border-radius: 4px; margin-left: 5px; vertical-align: 1px; }
.badge.new { background: var(--new-bg); color: var(--text-primary); }
.badge.cancel { background: var(--critical); color: #fff; }
.empty, .pending { color: var(--muted); font-size: 13px; margin: 6px 0; }

.sort { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-secondary); margin-bottom: 6px; }
.sort select { font: inherit; font-size: 12px; padding: 2px 4px; border-radius: 6px; border: 1px solid var(--axis); background: var(--surface-1); color: var(--text-primary); }
ul.rank { list-style: none; margin: 0; padding: 0; }
ul.rank li {
  display: grid; grid-template-columns: 12px 1fr auto; gap: 0 8px; align-items: baseline;
  padding: 6px 4px; border-top: 1px solid var(--grid); cursor: pointer; border-radius: 4px;
}
ul.rank li:hover, ul.rank li:focus-visible { background: var(--page); outline: none; }
ul.rank .dot { width: 10px; height: 10px; border-radius: 50%; border: 1px solid var(--border); align-self: center; }
ul.rank .name { font-weight: 500; }
ul.rank .val { font-variant-numeric: tabular-nums; color: var(--text-secondary); font-size: 12px; text-align: right; }
ul.rank .sub { grid-column: 2 / 4; color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.status { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; white-space: nowrap; color: var(--text-secondary); }
.status .dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; border: 1px solid var(--border); }

.back { border: 0; background: none; color: var(--link); cursor: pointer; padding: 0; font-size: 13px; margin-bottom: 10px; }
.sidebar h2.fname { font-size: 20px; margin: 0 0 4px; letter-spacing: -0.01em; text-transform: none; color: var(--text-primary); }
.kvartaler { display: flex; flex-wrap: wrap; gap: 2px 12px; margin-top: 4px; }
.hb-prognose { display: flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; }
.hb-prognose .dot { width: 12px; height: 12px; border-radius: 50%; flex: none; border: 1px solid var(--border); }
.kommuner { color: var(--text-secondary); font-size: 12px; margin-top: 4px; }
.fb { display: inline-block; margin-top: 6px; font-size: 13px; }

/* diagrammer */
.chart { display: block; width: 100%; height: auto; }
.chart text { font-family: var(--font); }
.chart .lbl { font-size: 11px; fill: var(--text-secondary); }
.chart .val { font-size: 11px; fill: var(--text-primary); font-variant-numeric: tabular-nums; }
.chart .tick { font-size: 10px; fill: var(--muted); font-variant-numeric: tabular-nums; }
.chart .baseline { stroke: var(--axis); stroke-width: 1; }
.chart .hit { fill: transparent; }
.chart .nodata { fill: var(--grid); opacity: 0.5; }
.chart-legend { display: flex; gap: 12px; font-size: 11px; color: var(--text-secondary); margin: 2px 0 6px; flex-wrap: wrap; }
.chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.nodata-swatch { background: var(--grid); }

.stamdata { display: grid; grid-template-columns: max-content 1fr; gap: 4px 12px; margin: 0; font-size: 13px; }
.stamdata dt { color: var(--text-secondary); }
.stamdata dd { margin: 0; }
/* Objektvisningens egenskaber og links (panelets "Egenskaber" og "Forbundne objekter"): lange navne, værdien til højre. */
.stamdata.egenskaber { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.stamdata.egenskaber dd { font-variant-numeric: tabular-nums; }
.stamdata.egenskaber dd.fordeling { grid-column: 1 / -1; text-align: left; color: var(--muted); font-size: 12px; margin-top: -2px; }
textarea.notes {
  width: 100%; font: inherit; font-size: 13px; padding: 8px; border-radius: 8px; resize: vertical;
  border: 1px solid var(--axis); background: var(--page); color: var(--text-primary);
}
.note-status { font-size: 11px; color: var(--muted); min-height: 1.2em; }

.tooltip {
  position: fixed; z-index: 30; pointer-events: none; max-width: 280px;
  background: var(--surface-1); color: var(--text-primary);
  border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
  padding: 7px 10px; font-size: 12px; font-family: var(--font);
}
.tooltip b { display: block; font-size: 13px; }
.tooltip .muted { color: var(--text-secondary); }

/* ---- faner i sidepanelet ---- */
.side-tabs {
  position: sticky; top: -16px; z-index: 2; display: flex; overflow-x: auto; scrollbar-width: none;
  margin: -16px -16px 14px; padding: 8px 6px 0; background: var(--surface-1); border-bottom: 1px solid var(--border);
}
.side-tabs button {
  flex: 1 1 auto; border: 0; background: none; cursor: pointer; font-size: 12px; font-weight: 500; color: var(--text-secondary);
  padding: 6px 3px 8px; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap;
}
.side-tabs button:hover { color: var(--text-primary); }
.side-tabs button[aria-selected="true"] { color: var(--text-primary); border-bottom-color: var(--text-primary); }
.side-tabs button:focus-visible { outline: 2px solid var(--link); outline-offset: -2px; }

/* ---- visninger ---- */
.opts { display: flex; flex-direction: column; gap: 2px; }
.opt { display: flex; gap: 8px; align-items: flex-start; padding: 4px 2px; font-size: 13px; cursor: pointer; border-radius: 4px; }
.opt:hover { background: var(--page); }
.opt input { margin: 2px 0 0; flex: none; }
.opt .hint { display: block; color: var(--muted); font-size: 11px; }
.linkbtn { border: 0; background: none; color: var(--link); cursor: pointer; padding: 0; font-size: 13px; text-decoration: underline; }
.linkbtn.danger { color: var(--critical); }
.linkbtn:disabled { opacity: .5; cursor: default; }
.sidebar > .side-view > .linkbtn { margin-top: 14px; }
.dot-inline { width: 10px; height: 10px; border-radius: 50%; display: inline-block; border: 1px solid var(--border); margin-right: 6px; vertical-align: -1px; flex: none; }
.arr-link { display: block; margin-top: 8px; }

/* ---- HB-godkendelse ---- */
ol.hb-kat { margin: 0; padding: 0 0 0 20px; font-size: 13px; }
.hb-kat li { padding: 4px 0; border-top: 1px solid var(--grid); }
.hb-kat li:first-child { border-top: 0; }
.hb-kat li > * { vertical-align: middle; }
.hb-kat li { display: list-item; }
.hb-kat li span:nth-child(2) { display: inline-block; width: calc(100% - 50px); line-height: 1.3; }
.hb-kat li b { float: right; font-variant-numeric: tabular-nums; }
.hb-kat li.uden-nr { list-style: none; }
table.hb-tabel { width: 100%; border-collapse: collapse; font-size: 13px; }
.hb-tabel th { font-size: 11px; font-weight: 600; color: var(--text-secondary); text-align: center; padding: 4px 2px; }
.hb-tabel th:first-child, .hb-tabel td:first-child { text-align: left; }
.hb-tabel td { padding: 5px 2px; border-top: 1px solid var(--grid); text-align: center; white-space: nowrap; }
.hb-tabel td.muted { color: var(--text-secondary); font-size: 11px; }
.hb-tabel tbody tr { cursor: pointer; }
.hb-tabel tbody tr:hover, .hb-tabel tbody tr:focus-visible, .hb-tabel tr.valgt { background: var(--page); outline: none; }
.hb-tabel tr.valgt td:first-child { font-weight: 600; }
.kv-dot { display: inline-block; width: 14px; height: 14px; border-radius: 3px; border: 1px solid var(--border); }

/* ---- arrangementer ---- */
.lager .note { margin: 4px 0; }
.lager .warn, .sidebar .warn { color: #b3261e; font-size: 12px; margin: 4px 0; }
.lager code { font-size: 11px; }
.lager label { display: block; }
.arr-filtre { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 10px 0; }
.arr-filtre input { grid-column: 1 / -1; }
.arr-filtre select, .arr-filtre input, .arr-form input, .arr-form select, .arr-form textarea, .lager input {
  font: inherit; font-size: 13px; padding: 4px 6px; border-radius: 6px; border: 1px solid var(--axis);
  background: var(--page); color: var(--text-primary); min-width: 0; width: 100%;
}
ul.arrlist { list-style: none; margin: 0; padding: 0; }
.arrlist > li { border-top: 1px solid var(--grid); padding: 7px 0; }
.arrlist > li.arr-maaned {
  border-top: 0; padding: 14px 0 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--text-secondary);
}
.arr-row { display: grid; grid-template-columns: 86px 1fr; gap: 8px; }
.arr-row .date { font-weight: 600; font-variant-numeric: tabular-nums; font-size: 12px; }
.arr-row .title { font-weight: 500; }
.arr-row .meta { color: var(--text-secondary); font-size: 12px; }
.arr-note { font-style: italic; }
.arr-status { font-size: 12px; color: var(--text-secondary); display: flex; align-items: center; margin-top: 2px; }
.arr-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 5px; }
.chip.small { font-size: 12px; padding: 2px 9px; }
.chip.on { background: var(--text-primary); color: var(--surface-1); border-color: var(--text-primary); }
.chip.primary { background: var(--link); color: #fff; border-color: var(--link); }
.chip:disabled { opacity: .5; cursor: default; }
.arr-form { display: flex; flex-direction: column; gap: 7px; margin: 8px 0 4px; padding: 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--page); }
#arr-ny .arr-form { margin-top: 10px; }
.arr-form label { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--text-secondary); }
.arr-form .row2 { display: grid; grid-template-columns: 1fr 110px; gap: 6px; }
.arr-form .note { margin: 0; }
.form-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.form-status { font-size: 12px; color: var(--text-secondary); min-height: 1em; }

/* ---- admin ---- */
.side-tabs button[hidden] { display: none; }
.panel-sec .form-actions { margin-top: 6px; }
.admin-login { display: flex; flex-direction: column; gap: 8px; margin: 8px 0; }
.admin-login > label:first-child { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--text-secondary); }
.admin-login input[type="password"] {
  font: inherit; font-size: 14px; padding: 6px 8px; border-radius: 6px; border: 1px solid var(--axis);
  background: var(--page); color: var(--text-primary); width: 100%;
}
.analyse-tabel td.tal { font-variant-numeric: tabular-nums; }
.analyse-tabel th .linkbtn { font-size: 11px; font-weight: 600; color: var(--text-secondary); text-decoration: none; }
.badge.ok { background: #1f9d55; color: #fff; }
.pop-note { font-style: italic; }

/* ---- kalender øverst til højre på kortet ---- */
.kal {
  position: absolute; right: 10px; top: 60px; z-index: 4; width: 300px; overflow-y: auto;
  background: var(--surface-1); color: var(--text-primary); border: 1px solid var(--border); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18); padding: 10px 12px; font-size: 13px;
}
.kal[hidden] { display: none; }
.kal-head { display: flex; align-items: center; gap: 8px; }
.kal-head strong { font-size: 14px; }
.kal-filter { margin-left: auto; font: inherit; font-size: 12px; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--axis); background: var(--surface-1); color: var(--text-primary); cursor: pointer; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kal-luk { border: 0; background: none; font-size: 20px; line-height: 1; cursor: pointer; color: var(--text-secondary); padding: 0 2px; }
.kal-valg { margin: 8px 0 4px; padding: 6px; border: 1px solid var(--grid); border-radius: 8px; max-height: 240px; overflow-y: auto; }
.kal-valg .opt { padding: 2px; }
.kal-valg-knapper { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; position: sticky; bottom: -6px; background: var(--surface-1); padding: 4px 0; }
.kal-nav { display: flex; align-items: center; justify-content: space-between; margin: 8px 0 4px; }
.kal-nav button { border: 0; background: none; cursor: pointer; color: var(--text-primary); font: inherit; font-size: 16px; padding: 2px 8px; border-radius: 6px; }
.kal-nav button:hover { background: var(--page); }
.kal-nav .kal-titel { font-size: 13px; font-weight: 600; text-transform: capitalize; }
.kal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.kal-ugedag { font-size: 10px; color: var(--muted); padding-bottom: 2px; }
.kal-dag {
  display: flex; flex-direction: column; align-items: center; gap: 1px; height: 34px; padding: 3px 0 0;
  border: 1px solid transparent; border-radius: 6px; background: none; color: var(--text-primary); font: inherit; font-size: 12px; cursor: pointer;
  font-variant-numeric: tabular-nums;
}
.kal-dag:disabled { cursor: default; color: var(--text-secondary); }
.kal-dag.fortid { color: var(--muted); }
.kal-dag:not(:disabled):hover { background: var(--page); border-color: var(--grid); }
.kal-dag.idag > span:first-child { background: var(--accent); color: #fff; border-radius: 999px; padding: 0 5px; font-weight: 600; }
.kal-dag.valgt { border-color: var(--text-primary); }
.kal-dag .prikker { display: flex; gap: 2px; height: 6px; }
.kal-dag .prikker i { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.kal-dag .prikker i.nat { background: var(--text-primary); border-radius: 1px; transform: rotate(45deg) scale(.9); }
.kal-dag .prikker i.afl { opacity: .35; }
.kal-liste h3 { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--text-secondary); margin: 10px 0 2px; display: flex; justify-content: space-between; align-items: baseline; }
.kal-liste h3 .linkbtn { font-size: 11px; text-transform: none; letter-spacing: 0; }
.kal-liste .evlist li { grid-template-columns: 70px 1fr; padding: 5px 0; }
.kal-abonner { border-top: 1px solid var(--grid); margin-top: 8px; padding-top: 8px; }
.kal-abonner .note { margin: 6px 0; }
.kal-fil { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 4px 0; font-size: 12px; }
.kal-fil span { flex-basis: 100%; font-weight: 500; }
.kal-fil .linkbtn { font-size: 12px; display: inline-flex; align-items: center; gap: 3px; }

/* ---- mobil: kortet øverst, panelet nedenunder ---- */
@media (max-width: 760px) {
  .side-handle, .side-toggle { display: none; }
  .app { display: flex; flex-direction: column; height: auto; min-height: 100vh; }
  .map-wrap { order: 1; height: 58vh; position: sticky; top: 0; z-index: 3; }
  .sidebar { order: 2; border-right: 0; overflow: visible; }
  .side-tabs { position: static; }
  .kal { width: min(300px, calc(100% - 20px)); }
}
details.panel-sec > summary { cursor: pointer; list-style: none; }
details.panel-sec > summary::-webkit-details-marker { display: none; }
details.panel-sec > summary h3 { display: inline; }
details.panel-sec > summary::after { content: ' ▸'; color: var(--muted); font-size: 12px; }
details.panel-sec[open] > summary::after { content: ' ▾'; }
details.panel-sec { margin-top: 14px; }
details.panel-sec[open] > summary { margin-bottom: 8px; }
.akt-tiles .value { font-size: 17px; }
.akt-navn { font-size: 12.5px; margin-top: 2px; overflow-wrap: anywhere; }
details.flere summary { cursor: pointer; color: var(--link); font-size: 13px; padding: 6px 0; }

/* Momentum */
.signaler { list-style: none; margin: 10px 0 0; padding: 0; font-size: 12.5px; }
.signaler li { display: flex; gap: 7px; align-items: baseline; padding: 3px 0; color: var(--text-secondary); }
.signaler li span { flex: none; width: 15px; height: 15px; border-radius: 50%; font-size: 10px; font-weight: 700; line-height: 15px; text-align: center; color: #fff; }
.signaler li.minus span { background: #d03b3b; }
.signaler li.plus span { background: #0ca30c; }
.mom-chart { margin: 8px 0 4px; }
.mom-chart .mom-grid { stroke: var(--grid); stroke-width: 1; }
.mom-chart .mom-ok, .mom-ok-swatch { fill: #0ca30c; background: #0ca30c; opacity: 0.13; }
.mom-chart .mom-warn, .mom-warn-swatch { fill: #fab219; background: #fab219; opacity: 0.2; }
.mom-chart .mom-linje { stroke-width: 2; }
.mom-chart .mom-naeste { fill: var(--surface-1); stroke-width: 2; }
.mom-chart .mom-pt { stroke: var(--surface-1); stroke-width: 2; }
.mom-chart .hit[data-f] { cursor: pointer; }
.mom-chart .hit:hover { fill: var(--text-primary); opacity: 0.05; }
.signaler li.info span { background: var(--muted); }
.mom-kat li { display: flex; align-items: center; }
.mom-kat li span:nth-child(2) { flex: 1; width: auto; }
h3.mom-h { font-size: 13px; margin: 10px 0 4px; }

/* ---- analyser: vindue over højre del af kortet, med faner som i en browser ---- */
.analyser {
  position: absolute; right: 10px; top: 60px; bottom: 10px; z-index: 6; width: min(820px, calc(100% - 20px));
  display: flex; flex-direction: column; background: var(--surface-1); color: var(--text-primary);
  border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18); font-size: 13px; overflow: hidden;
}
.analyser[hidden] { display: none; }
.ana-head { display: flex; align-items: center; gap: 12px; padding: 12px 10px 10px 18px; border-bottom: 1px solid var(--border); flex: none; }
.ana-head h2 { font-size: 18px; margin: 0; flex: 1; min-width: 0; }
.ana-luk {
  border: 0; background: none; cursor: pointer; color: var(--text-secondary); font-size: 22px; line-height: 1;
  width: 30px; height: 30px; border-radius: 50%; flex: none; padding: 0;
}
.ana-luk:hover { background: var(--grid); color: var(--text-primary); }
.ana-luk:focus-visible { outline: 2px solid var(--link); outline-offset: -2px; }
.ana-body { overflow-y: auto; padding: 14px 18px 24px; flex: 1; min-height: 0; }
.ana-body h3 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-secondary); margin: 20px 0 8px; }
.ana-body .tiles { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
ul.ana-liste { list-style: none; margin: 0; padding: 0; }
.ana-liste button {
  all: unset; box-sizing: border-box; display: block; width: 100%; cursor: pointer; padding: 8px 10px; border-radius: 8px;
  border: 1px solid transparent; margin-bottom: 4px;
}
.ana-liste button:hover, .ana-liste button:focus-visible { background: var(--page); border-color: var(--grid); }
.ana-liste button.aktiv { border-color: var(--text-primary); background: var(--page); }
.ana-liste b { display: block; font-size: 13.5px; }
.ana-liste span { display: block; font-size: 12px; color: var(--muted); line-height: 1.35; }

/* ---- advarsler: "Kræver handling nu" øverst i sidepanelet ---- */
.adv-boks { border: 1px solid #e8b4ae; background: #fdf1ef; border-radius: 10px; padding: 2px 12px 8px; margin-top: 12px; }
.adv-boks h2 { margin: 10px 0 6px; color: #9e2a1f; display: flex; align-items: center; gap: 8px; }
.adv-antal { font-size: 11px; background: #fab219; color: #0b0b0b; border-radius: 999px; padding: 0 7px; letter-spacing: 0; }
.adv-antal.kritisk { background: var(--critical); color: #fff; }
ul.advarsler { list-style: none; margin: 0; padding: 0; font-size: 12.5px; }
.advarsler li { display: flex; gap: 8px; align-items: flex-start; padding: 6px 0; border-top: 1px solid rgba(208, 59, 59, 0.15); }
.advarsler li:first-child { border-top: 0; }
.advarsler .adv-ikon { flex: none; width: 17px; height: 17px; border-radius: 50%; font-size: 10px; font-weight: 700; line-height: 17px; text-align: center; background: #fab219; color: #0b0b0b; margin-top: 1px; }
.advarsler li.adv-kritisk .adv-ikon { background: var(--critical); color: #fff; }
.advarsler b { font-weight: 600; }
.advarsler .adv-frist, .advarsler .adv-tekst { display: block; color: var(--text-secondary); }
.advarsler .adv-frist { font-weight: 500; }
.advarsler li.adv-kritisk .adv-frist { color: #9e2a1f; }
.advarsler .linkbtn { font-size: 12px; margin-top: 2px; }
.adv-sec { border: 1px solid #e8b4ae; background: #fdf1ef; border-radius: 10px; padding: 0 12px 6px; }
.adv-sec h3 { color: #9e2a1f; }
/* "Godt gået": samme sted som advarslerne, men grøn og positiv */
.adv-boks.positiv, .adv-sec.positiv-sec { border-color: #a9d8b4; background: #eef8f0; }
.adv-boks.positiv h2, .adv-sec.positiv-sec h3 { color: #1b6e34; }
.adv-antal.positiv { background: #1f9d55; color: #fff; }
.advarsler li.adv-positiv { border-top-color: rgba(31, 157, 85, 0.18); }
.advarsler li.adv-positiv .adv-ikon { background: #1f9d55; color: #fff; }
.adv-boks + .adv-boks { margin-top: 8px; }
@media (prefers-color-scheme: dark) {
  :root:where(:not([data-theme="light"])) .viz-root :is(.adv-boks, .adv-sec) { background: #2a1614; border-color: #5c2a24; }
  :root:where(:not([data-theme="light"])) .viz-root :is(.adv-boks h2, .adv-sec h3, .advarsler li.adv-kritisk .adv-frist) { color: #f0a59c; }
  :root:where(:not([data-theme="light"])) .viz-root :is(.adv-boks.positiv, .adv-sec.positiv-sec) { background: #12261a; border-color: #2b5a3a; }
  :root:where(:not([data-theme="light"])) .viz-root :is(.adv-boks.positiv h2, .adv-sec.positiv-sec h3) { color: #8fd6a4; }
}
@media (max-width: 760px) {
  .analyser { top: 10px; right: 6px; bottom: 6px; width: calc(100% - 12px); }
}

/* ---- udvidelse: hvide pletter ---- */
.hp-knapper { margin: 10px 0 6px; }
.hp-tabel td.hp-navne { white-space: normal; text-align: left; font-size: 12.5px; line-height: 1.4; padding-right: 8px; }
.hp-tabel th:nth-child(5) { text-align: left; }
.hp-tabel .hp-medl { color: #b45309; font-weight: 600; }
.hp-tabel .hp-andet { display: block; color: var(--muted); font-size: 11px; }
.hp-tabel .hp-af { color: var(--muted); font-size: 11px; }
.hp-tabel .muted { color: var(--muted); }
.hp-tabel .chip:disabled { visibility: hidden; }
@media (prefers-color-scheme: dark) {
  :root:where(:not([data-theme="light"])) .viz-root .hp-tabel .hp-medl { color: #f0a54a; }
}

/* ---- udvidelse: hvad virker ---- */
.hv-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 0 24px; }
.hv-chart .hv-ref { stroke: var(--text-secondary); stroke-width: 1; stroke-dasharray: 3 3; }
.hv-chart .hv-bar { fill: var(--accent); }
.hv-chart .hv-bar-faa { fill: var(--axis); }
.hv-chart .hv-faa { fill: var(--muted); font-style: italic; }
.hv-chart .val { paint-order: stroke; stroke: var(--surface-1); stroke-width: 3px; stroke-linejoin: round; }
.hv-swatch-faa { background: var(--axis); }
ul.hv-konklusioner, ul.hv-forbehold { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.5; }
ul.hv-konklusioner li, ul.hv-forbehold li { margin-bottom: 4px; }
ul.hv-forbehold { color: var(--text-secondary); font-size: 12.5px; }
.hv-top td.hv-navn { white-space: normal; text-align: left; max-width: 320px; }
.hv-top th:first-child { text-align: left; }
.hv-top .hv-kat { display: block; color: var(--muted); font-size: 11px; }
.hv-valg { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 8px; }
.hv-valg .note { margin: 0 0 0 6px; }
.ana-body h2.hv-sek { font-size: 16px; margin: 26px 0 4px; padding-top: 14px; border-top: 1px solid var(--grid); }
.hv-gode { border: 1px solid #a9d8b4; background: #eef8f0; border-radius: 10px; padding: 0 12px 6px; margin: 10px 0; }
.hv-gode h3 { color: #1b6e34; }
@media (prefers-color-scheme: dark) {
  :root:where(:not([data-theme="light"])) .viz-root .hv-gode { background: #12261a; border-color: #2b5a3a; }
  :root:where(:not([data-theme="light"])) .viz-root .hv-gode h3 { color: #8fd6a4; }
}
/* ---- udvidelse: hb-risiko ---- */
.hbr-top, .hbr-spand, .hbr-tom, .hbr-hop, .hbr-fremad, .hbr-forklaring, .hbr-q {
  --hbr-ja: #7b3fbf; --hbr-nej: #8c1452; --hbr-plan-bg: #ece3f8; --hbr-plan-tekst: #4b1f8f; --hbr-ukendt: #d3cde0;
}
.hbr-sp-handle { --c: var(--critical); }
.hbr-sp-planlagt { --c: #e8930c; }
.hbr-sp-hold { --c: #c9a227; }
.hbr-sp-sikret { --c: #1f9d55; }
.hbr-sp-tabt { --c: #8c1452; }
.hbr-sp-ukendt { --c: #9a988f; }
/* Øverst: fristen, én sætning og året som tidslinje */
.hbr-top { border: 1px solid var(--border); border-radius: 10px; background: var(--page); padding: 12px 14px 10px; margin: 4px 0 14px; }
.hbr-frist { font-size: 18px; font-weight: 700; margin: 0 0 2px; color: var(--text-primary); }
.hbr-saetning { font-size: 14px; margin: 0 0 30px; color: var(--text-secondary); }
.hbr-saetning b { color: var(--critical); }
.hbr-aar { display: flex; gap: 3px; height: 26px; }
.hbr-seg { position: relative; border-radius: 5px; background: var(--grid); overflow: visible; }
.hbr-seg-fyld { position: absolute; inset: 0 auto 0 0; border-radius: 5px; background: var(--axis); }
.hbr-seg.nu { box-shadow: 0 0 0 2px var(--text-primary); }
.hbr-seg.nu .hbr-seg-fyld { background: color-mix(in srgb, var(--critical) 35%, var(--grid)); border-radius: 5px 0 0 5px; }
.hbr-seg-navn { position: relative; display: block; line-height: 26px; padding: 0 8px; font-size: 12px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hbr-seg-navn b { color: var(--text-primary); }
.hbr-seg.senere .hbr-seg-navn { color: var(--muted); }
.hbr-idag { position: absolute; top: -6px; bottom: -4px; width: 0; border-left: 2px solid var(--text-primary); }
.hbr-idag > span { position: absolute; bottom: 100%; left: 0; transform: translateX(-50%); margin-bottom: 1px; font-size: 11px; font-weight: 600; white-space: nowrap; color: var(--text-primary); }
.hbr-idag > span.h { transform: translateX(-100%); }
.hbr-idag > span.v { transform: none; }
.hbr-aar-under { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 2px 12px; font-size: 12px; color: var(--muted); margin: 6px 0 0; }
.hbr-aar-under b { color: var(--text-secondary); }
.hbr-hops { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.hbr-hop {
  all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--text-secondary);
  border: 1px solid var(--border); border-radius: 999px; padding: 2px 10px 2px 8px; background: var(--surface-1);
}
.hbr-hop b { color: var(--text-primary); }
.hbr-hop:hover, .hbr-hop:focus-visible { border-color: var(--c); }
.hbr-prik { width: 9px; height: 9px; border-radius: 50%; background: var(--c); flex: none; display: inline-block; }
/* Spandene */
.hbr-spand { border: 1px solid var(--border); border-left: 4px solid var(--c); border-radius: 8px; margin: 0 0 12px; background: color-mix(in srgb, var(--c) 5%, transparent); scroll-margin-top: 8px; }
.hbr-spand > header { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px 6px; }
.hbr-ikon { flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--c); color: #fff; font-size: 12px; font-weight: 700; line-height: 22px; text-align: center; margin-top: 1px; }
.hbr-sp-hold .hbr-ikon, .hbr-sp-planlagt .hbr-ikon { color: #0b0b0b; }
.ana-body .hbr-spand > header h3 { margin: 0; font-size: 14.5px; text-transform: none; letter-spacing: 0; color: var(--text-primary); display: flex; align-items: center; gap: 8px; }
.hbr-spand > header p { margin: 2px 0 0; font-size: 12px; line-height: 1.4; color: var(--text-secondary); }
.hbr-antal { font-size: 11px; font-weight: 600; background: var(--c, var(--grid)); color: #fff; border-radius: 999px; padding: 0 7px; line-height: 17px; }
.hbr-sp-hold .hbr-antal, .hbr-sp-planlagt .hbr-antal { color: #0b0b0b; }
.hbr-spand ul { list-style: none; margin: 0; padding: 0 4px 4px; }
.hbr-raekke {
  display: grid; grid-template-columns: 130px auto 1fr; gap: 12px; align-items: center; padding: 6px 8px; cursor: pointer;
  border-top: 1px solid var(--border); border-radius: 4px; font-size: 12.5px;
}
.hbr-raekke:hover, .hbr-raekke.valgt { background: color-mix(in srgb, var(--c) 12%, transparent); }
.hbr-raekke:focus-visible { outline: 2px solid var(--link); outline-offset: -2px; }
.hbr-navn { font-weight: 600; color: var(--link); }
.hbr-tekst { color: var(--text-primary); line-height: 1.4; }
.hbr-sp-tabt .hbr-tekst, .hbr-sp-ukendt .hbr-tekst, .hbr-sp-sikret .hbr-tekst { color: var(--text-secondary); }
.hbr-kv { display: inline-flex; gap: 3px; }
.hbr-tom { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; padding: 7px 12px; font-size: 12.5px; color: var(--text-secondary); border: 1px dashed var(--border); border-radius: 8px; }
.hbr-tom .hbr-prik { background: #1f9d55; }
/* Kvartalsfelterne Q1–Q4 */
.hbr-q {
  display: inline-block; min-width: 24px; height: 18px; line-height: 16px; padding: 0 3px; text-align: center; font-size: 10.5px; font-weight: 700;
  border-radius: 4px; border: 1px solid transparent; box-sizing: border-box;
}
.hbr-q-ja { background: var(--hbr-ja); color: #fff; }
.hbr-q-planlagt { background: var(--hbr-plan-bg); color: var(--hbr-plan-tekst); border: 1px dashed var(--hbr-ja); }
.hbr-q-mangler { background: transparent; color: var(--muted); border: 1px dashed var(--muted); }
.hbr-q-nej { background: var(--hbr-nej); color: #fff; text-decoration: line-through; }
.hbr-q-ukendt { background: var(--hbr-ukendt); color: #52514e; }
.hbr-q.nu { box-shadow: 0 0 0 1.5px var(--surface-1), 0 0 0 3px var(--text-primary); }
.hbr-forklaring { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 11.5px; color: var(--text-secondary); margin: 14px 0 6px; padding-left: 4px; }
.hbr-forklaring > span { display: inline-flex; align-items: center; gap: 5px; }
/* Fremadblik: det næste kvartal */
.hbr-fremad { border: 1px solid var(--border); border-radius: 8px; padding: 2px 12px 10px; margin: 0 0 12px; }
.ana-body .hbr-fremad h3 { margin: 10px 0 2px; font-size: 14.5px; text-transform: none; letter-spacing: 0; color: var(--text-primary); }
.hbr-fremad p { margin: 0 0 8px; font-size: 12.5px; color: var(--text-secondary); }
.hbr-fremad p b { color: var(--text-primary); }
.hbr-fremad-lister { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px 18px; }
.hbr-fremad h4 { margin: 0 0 5px; font-size: 12.5px; display: flex; align-items: center; gap: 6px; }
.hbr-fremad h4 .hbr-antal { background: var(--grid); color: var(--text-secondary); }
.hbr-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.hbr-chip { all: unset; cursor: pointer; font-size: 12px; border: 1px solid var(--border); border-radius: 999px; padding: 1px 9px; color: var(--link); background: var(--surface-1); }
.hbr-chip span { color: var(--muted); margin-left: 5px; }
.hbr-chip:hover, .hbr-chip:focus-visible { border-color: var(--link); }
/* Metoden */
.hbr-metode { margin-top: 10px; border-top: 1px solid var(--border); padding-top: 6px; }
.hbr-metode summary { cursor: pointer; color: var(--link); font-size: 13px; padding: 4px 0; }
.hbr-metode ul { margin: 4px 0 0; padding-left: 18px; font-size: 12.5px; line-height: 1.5; color: var(--text-secondary); }
.hbr-metode li { margin-bottom: 4px; }
@media (max-width: 760px) {
  .hbr-raekke { grid-template-columns: 1fr auto; gap: 4px 10px; }
  .hbr-tekst { grid-column: 1 / -1; }
  .hbr-seg-navn { font-size: 11px; padding: 0 4px; }
}
@media (prefers-color-scheme: dark) {
  :root:where(:not([data-theme="light"])) .viz-root :is(.hbr-top, .hbr-spand, .hbr-tom, .hbr-hop, .hbr-fremad, .hbr-forklaring, .hbr-q) {
    --hbr-ja: #9461d6; --hbr-nej: #b02a6e; --hbr-plan-bg: rgba(169, 138, 216, 0.22); --hbr-plan-tekst: #d9c8f5; --hbr-ukendt: #3d3947;
  }
  :root:where(:not([data-theme="light"])) .viz-root .hbr-q-ukendt { color: #c3c2b7; }
  :root:where(:not([data-theme="light"])) .viz-root .hbr-saetning b { color: #f0a59c; }
}

/* ---- udvidelse: månedsrapport ---- */
.mr-top { display: flex; align-items: center; gap: 12px; margin: 6px 0 2px; }
.mr-top .sort { margin: 0; font-size: 13px; }
.mr-top .sort select { font-size: 13px; padding: 3px 6px; }
.mr-periode { margin-top: 4px; }
.mr-info { border: 1px solid var(--grid); background: var(--page); border-radius: 10px; padding: 10px 12px; margin: 10px 0 4px; font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; }
.mr-info b { color: var(--text-primary); }
.mr-hoejde { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 10px; align-items: start; }
.mr-hoejde > div { display: grid; gap: 10px; }
.mr-fod { margin: 2px 0 6px; }
.mr-kort { border: 1px solid var(--border); border-radius: 10px; padding: 8px 12px 6px; background: var(--page); border-top: 3px solid var(--axis); }
.mr-kort.ned { border-top-color: var(--critical); }
.mr-kort.op { border-top-color: #0ca30c; }
.mr-kort h4 { margin: 0 0 4px; font-size: 13px; display: flex; align-items: center; gap: 6px; }
.mr-antal { font-size: 11px; font-weight: 600; background: var(--grid); color: var(--text-secondary); border-radius: 999px; padding: 0 7px; }
.mr-kort ul { list-style: none; margin: 0; padding: 0; font-size: 12.5px; }
.mr-kort li { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; padding: 4px 0; border-top: 1px solid var(--grid); }
.mr-kort li:first-child { border-top: 0; }
.mr-kort .empty { margin: 2px 0 6px; font-size: 12.5px; }
.mr-sub { color: var(--muted); font-size: 12px; }
.mr-skift { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.mr-skift-tekst { color: var(--text-secondary); font-size: 12px; margin-left: 2px; }
.mr-pil { color: var(--muted); font-size: 11px; }
.mr-prik, .mr-hb { display: inline-block; width: 10px; height: 10px; border: 1px solid var(--border); flex: none; }
.mr-prik { border-radius: 50%; }
.mr-hb { border-radius: 2px; }
.mr-prik.tom, .mr-hb.tom { background: transparent; border: 1px dashed var(--axis); }
.mr-hb-skift { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-size: 12px; }
.mr-tabel td.tal.nul { color: var(--muted); }
.mr-tabel td.mr-celle { text-align: left; }
.mr-tabel td.mr-celle.ned .mr-skift-tekst { color: var(--critical); font-weight: 600; }
.mr-tabel td.mr-celle.op .mr-skift-tekst { color: #0a8a0a; font-weight: 600; }
.mr-tabel tr.har-detaljer td { border-bottom: 0; }
.mr-tabel tr.mr-detaljer td { border-top: 0; padding: 0 2px 7px 10px; white-space: normal; text-align: left; font-size: 11.5px; line-height: 1.6; color: var(--text-secondary); }
.mr-ev { display: inline-block; margin-right: 12px; }
.mr-ev b { font-weight: 600; color: var(--text-primary); }
.mr-ev em { font-style: normal; color: var(--muted); }
.mr-ev.aflyst em { color: var(--critical); }
.mr-ev.ny em { color: var(--link); }
/* To sektioner: Fremad (øverst, det man skal handle på) og Bagud */
.mr-sektion { margin-top: 16px; }
.mr-sektion + .mr-sektion { margin-top: 30px; }
.mr-sektion-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; padding: 8px 12px; border-radius: 8px; border-left: 4px solid var(--axis); background: var(--page); margin-bottom: 6px; }
.mr-fremad .mr-sektion-head { border-left-color: var(--accent); }
.ana-body .mr-sektion-head h3 { margin: 0; font-size: 17px; letter-spacing: 0; text-transform: none; color: var(--text-primary); }
.mr-sektion-head span { color: var(--text-secondary); font-size: 13px; }
.mr-sektion .note { margin: 4px 0; }
.mr-sektion .empty { margin: 2px 0 6px; font-size: 12.5px; }
.mr-fremad-tal { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; font-size: 13px; color: var(--text-secondary); margin: 10px 0 2px; }
.mr-fremad-tal b { color: var(--text-primary); font-size: 15px; }
.mr-tal-risiko { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; color: var(--text-primary); }
.mr-niv { display: inline-block; font-size: 10.5px; font-weight: 700; line-height: 16px; padding: 0 6px; border-radius: 4px; white-space: nowrap; background: #f3d98b; color: #0b0b0b; }
.mr-niv.kritisk { background: #d03b3b; color: #fff; }
.mr-niv.advarsel { background: #fab219; }
ul.mr-risici { list-style: none; margin: 0; padding: 0; font-size: 12.5px; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.mr-risiko { display: grid; grid-template-columns: 130px 1fr; gap: 10px; padding: 7px 12px; border-top: 1px solid var(--grid); border-left: 3px solid #f3d98b; }
.mr-risiko:first-child { border-top: 0; }
.mr-risiko.kritisk { border-left-color: #d03b3b; }
.mr-risiko.advarsel { border-left-color: #fab219; }
.mr-risiko-navn { font-weight: 600; padding-top: 1px; }
.mr-risiko-punkt { display: grid; grid-template-columns: 66px 1fr; column-gap: 8px; align-items: baseline; }
.mr-risiko-punkt + .mr-risiko-punkt { margin-top: 5px; }
.mr-risiko-punkt .mr-niv { grid-row: span 2; align-self: start; justify-self: start; margin-top: 1px; }
.mr-risiko-tekst { color: var(--text-primary); line-height: 1.45; }
.mr-handling { color: var(--text-secondary); line-height: 1.45; }
.mr-handling::before { content: "→ "; color: var(--muted); }
.mr-fremad-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 18px; align-items: start; }
@media (max-width: 760px) { .mr-fremad-grid { grid-template-columns: 1fr; } .mr-risiko { grid-template-columns: 1fr; gap: 2px; } }
ul.mr-kommende, ul.mr-uden { list-style: none; margin: 0; padding: 0; font-size: 12.5px; }
.mr-kommende li { display: grid; grid-template-columns: 110px 1fr; gap: 8px; padding: 5px 0; border-top: 1px solid var(--grid); line-height: 1.5; }
.mr-kommende li:first-child, .mr-uden li:first-child { border-top: 0; }
.mr-kommende .mr-ev { display: grid; grid-template-columns: 96px 1fr; gap: 6px; margin: 0; }
.mr-kommende .mr-ev b { font-weight: 600; white-space: nowrap; }
.mr-uden li { display: flex; align-items: center; gap: 7px; padding: 5px 0; border-top: 1px solid var(--grid); }
.mr-uden .mr-sub { margin-left: auto; white-space: nowrap; }
.mr-sektion code { font-size: 12px; background: var(--grid); border-radius: 4px; padding: 0 4px; }
@media (prefers-color-scheme: dark) {
  :root:where(:not([data-theme="light"])) .viz-root .mr-tabel td.mr-celle.op .mr-skift-tekst { color: #5fd35f; }
}

/* ---- udvidelse: egne analyser (analysebygger) ---- */
.ea-trin { display: grid; grid-template-columns: 26px 1fr; gap: 10px; padding: 10px 0; border-top: 1px solid var(--grid); }
.ea-trin:first-child { border-top: 0; padding-top: 0; }
.ea-nr { width: 22px; height: 22px; border-radius: 50%; background: #0e7c86; color: #fff; font-weight: 700; font-size: 12px; display: grid; place-items: center; }
.ea-knapper { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.ea-filter { display: inline-flex; align-items: center; border: 1px solid var(--axis); border-radius: 999px; background: var(--page); font-size: 12px; }
.ea-filter.aaben { border-color: #0e7c86; box-shadow: 0 0 0 1px #0e7c86; }
.ea-filter-tekst, .ea-fjern { border: 0; background: none; color: var(--text-primary); cursor: pointer; font: inherit; padding: 3px 4px 3px 10px; }
.ea-fjern { padding: 3px 9px 3px 4px; color: var(--muted); font-size: 14px; line-height: 1; }
.ea-fjern:hover { color: var(--critical); }
.ea select, .ea input[type="number"], .ea input[type="date"], .ea input[type="text"] {
  font: inherit; font-size: 13px; padding: 4px 6px; border-radius: 6px; border: 1px solid var(--axis); background: var(--page); color: var(--text-primary);
}
.ea-raekke { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-top: 6px; }
.ea-raekke label { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--text-secondary); }
.ea-editor { margin-top: 8px; padding: 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--page); }
.ea-editor-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.ea-vaerdier { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2px 14px; max-height: 190px; overflow-y: auto; margin-top: 6px; }
.ea-vaerdier label { display: flex; align-items: center; gap: 6px; font-size: 12.5px; cursor: pointer; padding: 2px 0; }
.ea-vaerdier label span:nth-of-type(1) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ea-n { color: var(--muted); font-variant-numeric: tabular-nums; font-size: 11.5px; }
.ea-diagram .chart { max-width: 100%; }
.ea-handlinger { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 4px; }
.ea-tabel td { text-align: left; white-space: normal; }
.ea-tabel tr[data-f] { cursor: pointer; }
.ea-tabel tr[data-f]:hover { background: var(--page); }
.ea-gem input[type="text"] { min-width: 240px; }
.ea-saet { padding: 6px 0 8px; }
.ea-saet + .ea-saet { border-top: 1px dashed var(--grid); }
.ea-saet-top { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.ea-pil { color: #0e7c86; font-weight: 700; }
.ea-saet-top .muted { color: var(--muted); }
.ea-filter.ea-link { border-style: dashed; }
.ea-linkfilter { margin: 8px 0 2px 12px; padding: 6px 10px; border-left: 3px solid #0e7c86; background: var(--page); border-radius: 0 8px 8px 0; }
.ea-linkfilter-top { display: flex; align-items: center; gap: 6px; font-size: 12.5px; }
.ea-hjaelp { margin: 2px 0 0; font-size: 12px; color: var(--text-secondary); }
.ea-trin b .muted, .ea-around .muted { color: var(--muted); font-weight: 400; }
.ea-around { margin-top: 12px; padding-top: 8px; border-top: 1px dashed var(--grid); font-size: 12px; color: var(--text-secondary); }
.ea-opsummering { margin: 4px 0 10px; padding: 8px 12px; border-left: 3px solid #0e7c86; background: var(--page); border-radius: 0 8px 8px 0; font-size: 13.5px; }
.ea-eksempler { margin: 0 0 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--page); font-size: 13px; }
.ea-eksempler .muted { color: var(--muted); font-weight: 400; font-size: 12px; }
.chart .ea-gitter { stroke: var(--grid); stroke-width: 1; }
.chart .ea-snit { stroke: var(--muted); stroke-width: 1.2; stroke-dasharray: 5 4; }
.chart .ea-punkt { fill-opacity: 0.8; stroke: #fff; stroke-width: 1.3; cursor: pointer; }
.chart .ea-punkt:hover { fill-opacity: 1; stroke: var(--text-primary); }
.chart .ea-punktnavn { pointer-events: none; }
.ea-diagram .ea-tabel { margin-top: 10px; }

/* ---- udviklingsudvalget (udvidelser/udvikling.js) ---- */
.udv-intro { padding: 8px 10px; border: 1px dashed var(--axis); border-radius: 8px; }
.udv-fremdrift { margin: 10px 0 8px; }
.udv-bar { height: 8px; border-radius: 4px; background: var(--grid); overflow: hidden; }
.udv-bar span { display: block; height: 100%; background: #0ca30c; }
.udv-fremdrift .note { margin: 4px 0 0; }
.udv-filtre { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0 8px; }
.udv-liste, .udv-opf, .udv-historik, .udv-fakta { list-style: none; margin: 0; padding: 0; }
.udv-raekke + .udv-raekke { border-top: 1px solid var(--grid); }
.udv-aabn {
  display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; width: 100%; text-align: left; border: 0; background: none;
  padding: 7px 4px; cursor: pointer; color: inherit; font-size: 13px; border-radius: 4px;
}
.udv-aabn:hover, .udv-aabn:focus-visible { background: var(--page); outline: none; }
.udv-navn { font-weight: 600; display: flex; align-items: center; gap: 6px; }
.udv-meta { grid-column: 1 / -1; color: var(--text-secondary); font-size: 12px; }
.udv-pill { font-size: 11px; border-radius: 10px; padding: 1px 8px; white-space: nowrap; align-self: center; }
.udv-pill.kontaktet { background: #e3f4e5; color: #17672a; }
.udv-pill.mangler { background: #fdf3d8; color: #7a5800; }
.udv-pill.snart { background: #fbe3e1; color: #9e2a1f; }
.udv-prik { display: inline-block; width: 9px; height: 9px; border-radius: 50%; flex: none; margin-right: 4px; vertical-align: 0; }
.udv-prik.godt { background: #0ca30c; }
.udv-prik.ok { background: #e3c22b; }
.udv-prik.svaert { background: #d03b3b; }
.udv-overskredet { color: var(--critical); font-weight: 600; }
.udv-opf li { padding: 5px 0; border-top: 1px solid var(--grid); font-size: 13px; }
.udv-opf li:first-child { border-top: 0; }
.udv-opf label { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; }
.udv-opf input { margin-top: 3px; }
.udv-opf .udv-meta { display: block; margin-left: 22px; }
.udv-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.udv-top .sort { margin: 0; }
.udv-status { margin: 8px 0 4px; padding: 6px 10px; border-radius: 8px; font-size: 13px; font-weight: 500; }
.udv-status.kontaktet { background: #e3f4e5; color: #17672a; }
.udv-status.mangler { background: #fdf3d8; color: #6b4d00; }
.udv-status.snart { background: #fbe3e1; color: #9e2a1f; }
.udv-status .udv-meta { display: block; font-weight: 400; }
.udv-seneste { margin: 4px 0; font-size: 13px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.udv-tags { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.udv-tag { font-size: 11px; padding: 1px 7px; border-radius: 10px; background: var(--grid); color: var(--text-primary); }
.udv-form { display: flex; flex-direction: column; gap: 8px; margin: 8px 0; padding: 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--page); }
.udv-form label { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--text-secondary); }
.udv-form label.opt { flex-direction: row; align-items: center; color: var(--text-primary); padding: 2px; }
.udv-form input[type="text"], .udv-form input[type="date"], .udv-form select, .udv-form textarea, .udv-medlem input[type="text"], .udv-medlem select,
.udv-fordeling select, .stamdata-raekke input {
  font: inherit; font-size: 13px; padding: 4px 6px; border: 1px solid var(--axis); border-radius: 6px; background: var(--surface-1); color: var(--text-primary);
  min-width: 0;
}
.udv-form textarea { resize: vertical; }
.udv-felter { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 6px; }
.udv-felter .udv-bred { grid-column: span 2; }
.udv-valg { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 10px; }
.udv-valg legend { font-size: 12px; color: var(--text-secondary); padding: 0; margin-bottom: 2px; }
.udv-forbered, .udv-hist { margin-top: 8px; }
.udv-forbered summary, .udv-hist summary { cursor: pointer; font-size: 13px; font-weight: 600; }
.udv-fakta li { font-size: 13px; padding: 2px 0; }
.udv-label { font-size: 12px; font-weight: 600; color: var(--text-secondary); margin: 10px 0 2px; }
.udv-kontakt { font-size: 13px; margin: 6px 0; }
.udv-spm { margin: 0 0 4px; padding-left: 20px; font-size: 13px; }
.udv-historik li { padding: 8px 0; border-top: 1px solid var(--grid); font-size: 13px; }
.udv-hist-top { display: flex; flex-wrap: wrap; align-items: center; gap: 0 4px; }
.udv-knapper { margin-left: auto; display: inline-flex; gap: 8px; }
.udv-knapper .linkbtn { font-size: 12px; }
.udv-tekst { margin: 4px 0; white-space: pre-wrap; }
.udv-historik .udv-meta { display: block; margin: 2px 0 0; }
.udv-admin { margin-top: 18px; border-top: 1px solid var(--border); padding-top: 4px; }
.udv-admin > summary { cursor: pointer; }
.udv-admin > summary h2 { display: inline; }
.udv-admin h3 { font-size: 13px; margin: 12px 0 6px; }
.udv-udvalg { display: flex; flex-direction: column; gap: 6px; }
.udv-medlem { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 6px; align-items: center; }
.udv-medlem.udv-ny { grid-template-columns: 1fr; }
.udv-medlem .opt { padding: 0; }
.udv-medlem .udv-meta { grid-column: auto; white-space: nowrap; }
.udv-fordeling { display: grid; grid-template-columns: 1fr; gap: 4px; margin-bottom: 6px; }
.udv-fordeling label { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 8px; align-items: center; font-size: 13px; }
.stamdata-form { display: flex; flex-direction: column; gap: 6px; }
.stamdata-raekke { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) auto; gap: 6px; align-items: center; }
@media (prefers-color-scheme: dark) {
  :root:where(:not([data-theme="light"])) :is(.udv-pill, .udv-status).kontaktet { background: #17371e; color: #a6e3b3; }
  :root:where(:not([data-theme="light"])) :is(.udv-pill, .udv-status).mangler { background: #3a3218; color: #f2dc6b; }
  :root:where(:not([data-theme="light"])) :is(.udv-pill, .udv-status).snart { background: #3e1a17; color: #f4aaa3; }
}

/* ---- konto, brugere og kørsler (LAU-serveren) ---- */
.konto-boks { margin-top: 12px; }
.konto-boks > summary { cursor: pointer; }
.konto-boks > summary h2 { display: inline; }
.brugere, .koersler, .historik { list-style: none; margin: 0 0 8px; padding: 0; }
.brugere li, .koersler li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; padding: 6px 0; border-top: 1px solid var(--grid); font-size: 13px; }
.brugere li.inaktiv { opacity: .55; }
.brugere-knapper { display: flex; gap: 8px; align-items: center; }
.brugere select, .brugere-ny input, .brugere-ny select, .konto-link input, .koersler input {
  font: inherit; font-size: 13px; padding: 3px 6px; border: 1px solid var(--axis); border-radius: 6px; background: var(--surface-1); color: var(--text-primary); min-width: 0;
}
.brugere-ny { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; align-items: center; }
.brugere-ny .chip, .brugere-ny .note-status { grid-column: 1 / -1; justify-self: start; }
.konto-link { display: flex; gap: 6px; align-items: center; font-size: 13px; flex-wrap: wrap; }
.konto-link input { flex: 1; min-width: 200px; }
.historik li { font-size: 12px; padding: 3px 0; border-top: 1px solid var(--grid); }
.koersel-log { max-height: 260px; overflow: auto; font-size: 11px; background: var(--page); border: 1px solid var(--border); border-radius: 6px; padding: 8px; white-space: pre-wrap; }
