/* GRiDS UI: schermen (portfolio, overzicht, verkenner, instellingen, api-dekking) en de opstart. */

/* ---------------------------------------------------------------- opstart en woordmerk */
.opstart { position: fixed; inset: 0; display: grid; place-content: center; justify-items: center; gap: 14px; color: var(--g-merk); font-weight: 600; font-size: var(--g-f-md); background: var(--g-achtergrond); }
.opstart span { color: var(--g-tekst-3); }
.opstart svg { animation: puls 1.4s ease-in-out infinite; }
.opstart--fout { color: var(--g-fout-tekst); padding: 24px; text-align: center; }
@keyframes puls { 50% { opacity: 0.45; transform: scale(0.96); } }
.woordmerk { font-weight: 750; font-size: 19px; letter-spacing: 0.06em; color: #fff; line-height: 1; white-space: nowrap; }
.woordmerk__i { position: relative; display: inline-block; }
.woordmerk__stip { position: absolute; left: 50%; top: -1px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: #E5484D; }
.beeldmerk { color: #fff; }

/* ---------------------------------------------------------------- pagina */
.scherm { min-height: 100%; }
.scherm--vol { height: 100%; }
.werkvlak:has(> .scherm--vol) { overflow: hidden; }
.pagina { max-width: 1320px; margin: 0 auto; padding: 28px 32px 56px; display: flex; flex-direction: column; gap: 20px; }
.pagina--breed { max-width: 1480px; }
.pagina--smal { max-width: 860px; }
.pagina--midden { min-height: 70vh; justify-content: center; }
.paginakop { display: flex; align-items: flex-end; gap: 16px; }
.paginakop__titel { font-size: var(--g-f-3xl); font-weight: 700; letter-spacing: -0.025em; color: var(--g-tekst); }
:root:not([data-theme='donker']) .paginakop__titel { color: var(--g-merk); }
@media (prefers-color-scheme: dark) { :root:not([data-theme]) .paginakop__titel { color: var(--g-tekst); } }
.paginakop__sub { color: var(--g-tekst-3); margin-top: 4px; font-size: var(--g-f-md); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.paginakop__acties { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.paginakop--project { align-items: center; }
.paginakop__beeldmerk { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; flex: none; color: #fff;
  background: linear-gradient(140deg, #204163 0%, #152A40 60%, #0F1D2D 100%); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06), var(--g-schaduw-2); position: relative; }
.paginakop__beeldmerk::after { content: ''; position: absolute; right: 9px; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: #E5484D; box-shadow: 0 0 0 3px #152A40; }
.paginakop__tekst { min-width: 0; }
.paginakop--project .paginakop__titel { font-size: var(--g-f-2xl); }
.sectiekop { font-size: var(--g-f-md); font-weight: 650; color: var(--g-tekst-2); margin: 8px 0 10px; }

.werkbalk { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.werkbalk__zoek { width: min(360px, 100%); }
.keuze--klein { height: 28px; font-size: var(--g-f-sm); padding: 0 6px; width: auto; }
.invoer--klein { height: 28px; font-size: var(--g-f-sm); }
.melding-inline { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: var(--g-hoek); background: var(--g-letop-zacht); color: var(--g-letop-tekst); font-size: var(--g-f-sm); }
.formulier { display: flex; flex-direction: column; gap: 16px; }
.veld__fout { font-size: var(--g-f-xs); color: var(--g-fout-tekst); font-weight: 600; }
.invoer[aria-invalid='true'] { border-color: var(--g-fout); }

/* ---------------------------------------------------------------- portfolio */
.kerncijfers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; background: var(--g-vlak); border: 1px solid var(--g-lijn); border-radius: var(--g-hoek-l); box-shadow: var(--g-schaduw-1); }
.kerncijfers .kengetal { padding: 14px 18px; border-left: 1px solid var(--g-lijn-zacht); }
.kerncijfers .kengetal:first-child { border-left: 0; }
.projectraster { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; }
.projectkaart { position: relative; display: flex; flex-direction: column; overflow: hidden; color: inherit; text-decoration: none; }
.projectkaart:hover { text-decoration: none; }
.projectkaart__beeld {
  position: relative; height: 112px; border-bottom: 1px solid var(--g-lijn-zacht);
  background: radial-gradient(120% 140% at 80% 0%, var(--g-merk-zacht) 0%, var(--g-vlak-2) 60%);
  --beeld-raster: color-mix(in srgb, var(--g-merk) 7%, transparent);
  --beeld-vlak: var(--g-vlak); --beeld-dak: color-mix(in srgb, var(--g-merk) 10%, var(--g-vlak));
  --beeld-lijn: color-mix(in srgb, var(--g-merk) 45%, transparent); --beeld-raam: color-mix(in srgb, var(--g-merk) 22%, transparent);
  --beeld-accent: var(--g-teal); --beeld-schaduw: color-mix(in srgb, var(--g-merk) 10%, transparent);
}
:root[data-theme='donker'] .projectkaart__beeld { --beeld-vlak: #1B2B3B; --beeld-dak: #24384C; --beeld-lijn: rgba(150, 185, 220, 0.4); --beeld-raam: rgba(150, 185, 220, 0.25); --beeld-raster: rgba(150, 185, 220, 0.06); }
@media (prefers-color-scheme: dark) { :root:not([data-theme]) .projectkaart__beeld { --beeld-vlak: #1B2B3B; --beeld-dak: #24384C; --beeld-lijn: rgba(150, 185, 220, 0.4); --beeld-raam: rgba(150, 185, 220, 0.25); --beeld-raster: rgba(150, 185, 220, 0.06); } }
.projectbeeld { width: 100%; height: 100%; transition: transform var(--g-middel) var(--g-curve); }
.projectkaart:hover .projectbeeld { transform: scale(1.03); }
.projectkaart--archief .projectbeeld { filter: grayscale(1); opacity: 0.6; }
.projectkaart__label { position: absolute; left: 12px; top: 12px; background: var(--g-vlak); }
.projectkaart__demo { position: absolute; left: 12px; bottom: 10px; background: var(--g-vlak); font-size: 10.5px; }
.projectkaart__fav { position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  background: var(--g-vlak); border: 1px solid var(--g-lijn); color: var(--g-tekst-3); box-shadow: var(--g-schaduw-1); opacity: 0; transition: opacity var(--g-snel), color var(--g-snel); }
.projectkaart:hover .projectkaart__fav, .projectkaart__fav:focus-visible, .projectkaart__fav.is-fav { opacity: 1; }
.projectkaart__fav.is-fav, .projectlijst__fav.is-fav { color: #D69E2E; }
.projectkaart__fav.is-fav .icoon, .projectlijst__fav.is-fav .icoon { fill: currentColor; }
.projectkaart__inhoud { padding: 14px 16px 6px; flex: 1; }
.projectkaart__naam { font-size: var(--g-f-lg); font-weight: 650; letter-spacing: -0.01em; }
.projectkaart__omschrijving { margin-top: 4px; font-size: var(--g-f-md); color: var(--g-tekst-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.9em; }
.projectkaart__cijfers { display: flex; align-items: center; gap: 14px; padding: 10px 16px 14px; font-size: var(--g-f-sm); color: var(--g-tekst-3); }
.projectkaart__cijfers span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.projectkaart__cijfers strong { color: var(--g-tekst); font-weight: 650; font-variant-numeric: tabular-nums; }
.projectkaart__tijd { margin-left: auto; }
.projectkaart--skelet .projectkaart__inhoud { padding-bottom: 16px; }
.projectlijst tr { cursor: pointer; }
.projectlijst__naam { font-weight: 650; color: var(--g-tekst); }

/* ---------------------------------------------------------------- overzicht */
.tegels { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.tegel { padding: 14px 16px 16px; }
.tegel__kop { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.tegel__icoon { width: 26px; height: 26px; border-radius: 7px; display: grid; place-items: center; background: var(--g-vlak-2); color: var(--g-tekst-3); }
.vakken { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.vak--5 { grid-column: span 5; } .vak--6 { grid-column: span 6; } .vak--7 { grid-column: span 7; } .vak--12 { grid-column: span 12; }
@media (max-width: 1180px) { .vak--5, .vak--6, .vak--7 { grid-column: span 12; } .tegels { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.modellijst { display: flex; flex-direction: column; }
.modelrij { display: grid; grid-template-columns: 4px minmax(140px, 1.2fr) minmax(80px, 1fr) 64px 92px; gap: 14px; align-items: center; width: 100%; padding: 9px 8px; border-radius: var(--g-hoek); text-align: left; }
.modelrij:hover { background: var(--g-vlak-2); }
.modellijst li + li .modelrij { border-top: 1px solid var(--g-lijn-zacht); border-radius: 0; }
.modelrij__kleur { width: 4px; height: 28px; border-radius: 2px; }
.modelrij__naam { display: flex; flex-direction: column; min-width: 0; }
.modelrij__naam strong { font-weight: 650; }
.modelrij__naam .zachter { font-size: var(--g-f-xs); }
.modelrij__tal { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.modelrij__status { display: flex; justify-content: flex-end; align-items: center; gap: 6px; font-size: var(--g-f-xs); }
.dekking { display: flex; gap: 22px; align-items: flex-start; }
.dekking__rechts { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.dekking__codes { display: flex; flex-direction: column; gap: 2px; }
.codeknop { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 4px 6px; margin: 0 -6px; border-radius: var(--g-hoek-s); text-align: left; font-size: var(--g-f-sm); color: var(--g-tekst-2); }
.codeknop:hover { background: var(--g-vlak-2); color: var(--g-tekst); }
.insp__sublabel { font-size: var(--g-f-2xs); font-weight: 650; text-transform: uppercase; letter-spacing: 0.07em; color: var(--g-tekst-3); margin-bottom: 6px; }
.doorsnede { display: flex; flex-direction: column; gap: 3px; }
.doorsnede__rij { display: grid; grid-template-columns: 70px 1fr 54px; gap: 10px; align-items: center; width: 100%; text-align: left; padding: 2px 4px; border-radius: 5px; }
button.doorsnede__rij:hover { background: var(--g-vlak-2); }
button.doorsnede__rij:hover .doorsnede__vak { background: var(--g-teal); }
.doorsnede__peil { font-size: var(--g-f-xs); color: var(--g-tekst-3); font-variant-numeric: tabular-nums; text-align: right; font-family: var(--g-mono); }
.doorsnede__vloer { position: relative; height: 24px; border-bottom: 2px solid var(--g-merk); display: flex; align-items: center; }
:root[data-theme='donker'] .doorsnede__vloer { border-bottom-color: var(--g-lijn-sterk); }
.doorsnede__vloer--onder { border-bottom-style: dashed; }
.doorsnede__vak { position: absolute; left: 0; top: 3px; bottom: 0; background: color-mix(in srgb, var(--g-teal) 38%, transparent); border-top: 2px solid var(--g-teal); border-radius: 3px 3px 0 0; transform-origin: left; animation: groei 600ms var(--g-curve) both; transition: background var(--g-snel); }
.doorsnede__naam { position: relative; padding-left: 8px; font-size: var(--g-f-sm); color: var(--g-tekst); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.doorsnede__tal { font-size: var(--g-f-sm); font-variant-numeric: tabular-nums; font-weight: 600; text-align: right; }
.kwaliteit-kort { display: grid; grid-template-columns: auto 1fr; gap: 16px 24px; align-items: center; }
.kwaliteit-kort__score { display: flex; align-items: center; gap: 14px; }
.kwaliteit-kort__feiten { display: flex; flex-direction: column; gap: 6px; font-size: var(--g-f-md); }
.kwaliteit-kort__feiten div { display: flex; align-items: center; gap: 8px; }
.kwaliteit-kort__feiten strong { margin-left: auto; }
.kwaliteit-kort__vul { grid-column: 1 / -1; }
.lejavak { border-color: color-mix(in srgb, #0c6980 30%, var(--g-lijn)); background: linear-gradient(180deg, color-mix(in srgb, #0c6980 5%, var(--g-vlak)) 0%, var(--g-vlak) 50%); }
.lejavak .kaart__titel { display: flex; align-items: center; gap: 8px; }
.lejavak__merk { width: 22px; height: 22px; border-radius: 6px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #0c6980, #0a5567); box-shadow: inset 0 -2px 0 #e0a526; }
.lejavak__slot { min-height: 150px; }
.lejablok { display: grid; gap: 10px; }
.lejablok__koppeling { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--g-lijn); border-radius: var(--g-hoek); background: var(--g-vlak); font-size: var(--g-f-md); }
.lejablok__icoon { width: 24px; height: 24px; border-radius: 6px; display: grid; place-items: center; flex: none; background: var(--g-teal-zacht); color: var(--g-teal-sterk); }
.lejablok__taken { list-style: none; margin: 0; padding: 0; display: grid; }
.lejablok__taken li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 7px 2px; border-bottom: 1px solid var(--g-lijn-zacht); font-size: var(--g-f-md); }
.lejablok__taken li:last-child { border-bottom: 0; }
.lejablok__taken a { color: var(--g-tekst); text-decoration: none; }
.lejablok__taken a:hover { color: var(--g-teal); text-decoration: underline; }
.lejablok__wanneer { font-size: var(--g-f-sm); white-space: nowrap; }
.lejablok__leeg { margin: 0; font-size: var(--g-f-sm); }
.lejablok__noot { display: inline-flex; align-items: center; gap: 5px; font-size: var(--g-f-sm); }
.lejablok .knoprij { flex-wrap: wrap; }
.snelraster { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.snel { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--g-hoek-l); background: var(--g-vlak); border: 1px solid var(--g-lijn); color: var(--g-tekst); transition: border-color var(--g-snel), box-shadow var(--g-snel); }
.snel:hover { text-decoration: none; border-color: var(--g-lijn-sterk); box-shadow: var(--g-schaduw-2); }
.snel__icoon { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: var(--g-merk-zacht); color: var(--g-merk); flex: none; }
:root[data-theme='donker'] .snel__icoon { color: var(--g-merk-licht); }
.snel__tekst { display: flex; flex-direction: column; min-width: 0; font-size: var(--g-f-md); }
.snel__tekst span { font-size: var(--g-f-xs); color: var(--g-tekst-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.snel__pijl { margin-left: auto; color: var(--g-tekst-3); opacity: 0; transition: opacity var(--g-snel); }
.snel:hover .snel__pijl { opacity: 1; }
.inbouw { position: relative; padding: 40px 0; }
.inbouw__raster { position: absolute; inset: -40px 10%; background-image: linear-gradient(var(--g-lijn-zacht) 1px, transparent 1px), linear-gradient(90deg, var(--g-lijn-zacht) 1px, transparent 1px); background-size: 28px 28px; mask-image: radial-gradient(closest-side, #000 30%, transparent); -webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent); z-index: -1; }

/* ---------------------------------------------------------------- verkenner */
.verkenner {
  --vk-links: 280px; --vk-rechts: 360px; --vk-split: 0.58;
  height: 100%; display: grid; grid-template-columns: var(--vk-links) 1px minmax(0, 1fr) 1px var(--vk-rechts);
  background: var(--g-vlak);
}
.verkenner[data-links='dicht'] { grid-template-columns: 0 0 minmax(0, 1fr) 1px var(--vk-rechts); }
.verkenner[data-rechts='dicht'] { grid-template-columns: var(--vk-links) 1px minmax(0, 1fr) 0 0; }
.verkenner[data-links='dicht'][data-rechts='dicht'] { grid-template-columns: 0 0 minmax(0, 1fr) 0 0; }
.verkenner[data-links='dicht'] .vk-links, .verkenner[data-links='dicht'] .vk-split--links,
.verkenner[data-rechts='dicht'] .vk-rechts, .verkenner[data-rechts='dicht'] .vk-split--rechts { visibility: hidden; overflow: hidden; }
.vk-split { display: flex; }
.vk-split > .splitter { width: 1px; height: 100%; }
.vk-links { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--g-vlak); }
.vk-links__tabs .tabs { padding: 0 4px; overflow-x: auto; scrollbar-width: none; }
.vk-links__tabs .tabs button { padding: 0 7px; }
.vk-links__tabs .tabs button[aria-selected='true']::after { left: 5px; right: 5px; }
.vk-links__zoek { padding: 8px 10px 4px; }
.vk-links__zoek:empty { display: none; }
.vk-links__boom { flex: 1; overflow: auto; min-height: 0; }
.vk-midden { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--g-achtergrond); }
.vk-balk { flex: none; border-bottom: 1px solid var(--g-lijn); background: var(--g-vlak); }
.vk-balk__rij { display: flex; align-items: flex-start; gap: 6px; padding: 8px 10px; }
.vk-balk__rij > .filterbalk { flex: 1; min-width: 0; }
.filterbalk { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.filterbalk__zoek { width: clamp(180px, 22vw, 300px); }
.filterbalk__zoek .invoer { height: 28px; font-size: var(--g-f-sm); padding-right: 30px; }
.filterbalk__toets { position: absolute; right: 6px; }
.filterbalk__rechts { margin-left: auto; }
.filter--actief { border-color: var(--g-teal-rand) !important; background: var(--g-teal-zacht) !important; color: var(--g-teal-sterk); }
.filter__tel { display: inline-grid; place-items: center; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--g-teal); color: #fff; font-size: 10.5px; font-variant-numeric: tabular-nums; }
.filter__waarde { max-width: 140px; font-weight: 500; }
.vk-balk__label { }
@media (max-width: 1500px) { .vk-balk__label { display: none; } }
.vk-weergave { flex: 1; min-height: 0; display: grid; position: relative; grid-template-rows: 1fr; }
.vk-paneel { position: relative; min-height: 0; min-width: 0; overflow: hidden; }
.vk-3d, .vk-tabel, .vk-graph, .vk-split-h { display: none; }
.verkenner[data-weergave='3d'] .vk-3d,
.verkenner[data-weergave='tabel'] .vk-tabel,
.verkenner[data-weergave='graph'] .vk-graph { display: block; }
.verkenner[data-weergave='split'] .vk-weergave { grid-template-rows: calc(var(--vk-split) * 100%) 1px minmax(0, 1fr); }
.verkenner[data-weergave='split'] .vk-3d, .verkenner[data-weergave='split'] .vk-tabel { display: block; }
.verkenner[data-weergave='split'] .vk-split-h { display: flex; }
.vk-split-h > .splitter { width: 100%; }
.vk-tabel > .tabel { height: 100%; }
.vk-3d { background: var(--g-vlak-2); }
.vk-3d__host, .vk-graph__host { position: absolute; inset: 0; }
.vk-graph { background: var(--g-vlak); }
.vk-laag { position: absolute; inset: 0; display: grid; place-items: center; z-index: 2; background: var(--g-vlak-2); }
.vk-graph .vk-laag { background: var(--g-vlak); }
.vk-laag > .leeg { position: relative; z-index: 1; background: color-mix(in srgb, var(--g-vlak) 88%, transparent); border-radius: var(--g-hoek-xl); }
.vk-laag--zacht { background: color-mix(in srgb, var(--g-vlak-2) 70%, transparent); pointer-events: none; place-items: start center; padding-top: 16px; }
.vk-laag--zacht .laadregel { background: var(--g-vlak); border: 1px solid var(--g-lijn); border-radius: 999px; padding: 6px 14px; box-shadow: var(--g-schaduw-2); }
.vk-laag--onder { background: transparent; pointer-events: none; place-items: end center; padding-bottom: 18px; }
.vk-laag--onder .laadregel { background: var(--g-vlak); border: 1px solid var(--g-lijn); border-radius: 999px; padding: 6px 14px; box-shadow: var(--g-schaduw-2); }
.vk-graphhint {
  position: absolute; left: 14px; top: 14px; z-index: 2; max-width: 340px; display: grid; gap: 2px;
  padding: 10px 12px; border: 1px solid var(--g-lijn); border-radius: var(--g-hoek-l); background: color-mix(in srgb, var(--g-vlak) 92%, transparent);
  box-shadow: var(--g-schaduw-2); font-size: var(--g-f-sm); color: var(--g-tekst-2); pointer-events: none;
}
.vk-graphhint strong { color: var(--g-tekst); font-size: var(--g-f-md); }
.vk-plaatshouder { position: absolute; inset: 0; width: 100%; height: 100%; }
.vk-rechts { min-width: 0; min-height: 0; overflow: auto; background: var(--g-vlak); }
.celklasse { display: inline-flex; align-items: center; gap: 6px; color: var(--g-tekst-2); }
.celklasse .icoon { color: var(--g-tekst-3); }
.modellen-lijst { padding: 6px; display: flex; flex-direction: column; gap: 2px; }
.modellen-lijst__rij { display: flex; align-items: center; gap: 8px; padding: 4px 8px; border-radius: var(--g-hoek); }
.modellen-lijst__rij:hover { background: var(--g-vlak-2); }
.modellen-lijst__rij.is-gekozen { background: var(--g-teal-zacht); }
.modellen-lijst__naam { flex: 1; min-width: 0; display: flex; flex-direction: column; text-align: left; font-size: var(--g-f-md); }
.modellen-lijst__naam .zachter { font-size: var(--g-f-xs); }

/* Inspecteur */
.insp { display: flex; flex-direction: column; min-height: 100%; }
.insp__leeg { flex: 1; display: grid; place-items: center; padding: 24px 12px; }
.insp__kop { padding: 16px 16px 14px; border-bottom: 1px solid var(--g-lijn-zacht); position: sticky; top: 0; background: var(--g-vlak); z-index: 1; }
.insp__klasse { display: flex; align-items: center; gap: 6px; font-size: var(--g-f-xs); font-weight: 650; text-transform: uppercase; letter-spacing: 0.06em; color: var(--g-tekst-3); }
.insp__klasse .pil { margin-left: auto; text-transform: none; letter-spacing: 0; }
.insp__naam { font-size: var(--g-f-lg); font-weight: 650; margin-top: 6px; line-height: 1.3; overflow-wrap: anywhere; }
.insp__gid { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 2px 6px; margin-left: -6px; border-radius: 5px; color: var(--g-tekst-3); font-size: 11.5px; }
.insp__gid:hover { background: var(--g-vlak-2); color: var(--g-tekst); }
.insp__acties { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.insp__leja { color: var(--g-teal); }
.insp__meer { padding: 12px 16px; border-bottom: 1px solid var(--g-lijn-zacht); background: var(--g-vlak-2); }
.insp__meerlijst { display: flex; flex-wrap: wrap; gap: 4px; }
.insp__meerlijst .pil { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.insp__blok { padding: 14px 16px; border-bottom: 1px solid var(--g-lijn-zacht); }
.insp__titel { font-size: var(--g-f-xs); font-weight: 650; text-transform: uppercase; letter-spacing: 0.07em; color: var(--g-tekst-3); margin-bottom: 8px; display: flex; gap: 6px; }
.insp__klein { font-size: var(--g-f-sm); }
.insp__zoek { margin-bottom: 8px; }
.insp__zoek .invoer { height: 28px; font-size: var(--g-f-sm); }
.insp__plek { display: flex; flex-direction: column; gap: 2px; }
.insp__plek li { padding-left: calc(var(--d) * 14px); position: relative; }
.insp__plek li + li::before { content: ''; position: absolute; left: calc(var(--d) * 14px - 7px); top: -2px; height: 15px; width: 6px; border-left: 1px solid var(--g-lijn-sterk); border-bottom: 1px solid var(--g-lijn-sterk); border-bottom-left-radius: 4px; }
.insp__plekknop { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 3px 6px; border-radius: 5px; font-size: var(--g-f-sm); color: var(--g-tekst-2); }
button.insp__plekknop:hover { background: var(--g-vlak-2); color: var(--g-teal); }
.insp__plekknop--hier { color: var(--g-tekst); font-weight: 600; }
.insp__codes { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.insp__code { display: flex; align-items: center; gap: 8px; width: 100%; padding: 4px 6px; margin: 0 -6px; border-radius: 5px; text-align: left; font-size: var(--g-f-sm); }
.insp__code:hover { background: var(--g-vlak-2); }
.insp__stelsel { margin-left: auto; font-size: var(--g-f-xs); white-space: nowrap; }
.insp__datasetkaart { display: flex; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--g-lijn); border-radius: var(--g-hoek); font-size: var(--g-f-sm); }
.insp__datasetkaart > .icoon { color: var(--g-goed); }
.insp__datasetkaart .pil { margin-left: auto; }
.pset { border: 1px solid var(--g-lijn-zacht); border-radius: var(--g-hoek); margin-bottom: 6px; overflow: hidden; }
.pset__kop { display: flex; align-items: center; gap: 6px; width: 100%; padding: 6px 8px; background: var(--g-vlak-2); text-align: left; font-size: var(--g-f-sm); font-weight: 600; }
.pset__kop:hover { background: var(--g-vlak-3); }
.pset__naam { flex: 1; }
.pset__tel { font-size: var(--g-f-xs); color: var(--g-tekst-3); font-variant-numeric: tabular-nums; font-weight: 500; }
.pset__inhoud { padding: 2px 10px 4px; }
.pset__inhoud dt:last-of-type, .pset__inhoud dd:last-of-type { border-bottom: 0; }

/* ---------------------------------------------------------------- instellingen */
.instelling { padding: 4px 0; }
.instelling__kop { padding: 14px 20px 4px; }
.instelling__kop h2 { font-size: var(--g-f-lg); }
.instelling__regel { display: flex; align-items: center; gap: 24px; padding: 14px 20px; }
.instelling__regel + .instelling__regel { border-top: 1px solid var(--g-lijn-zacht); }
.instelling__regel > div:first-child { flex: 1; font-size: var(--g-f-md); }
.instelling__label { font-weight: 600; }
.instelling__lijst { padding: 6px 20px 14px; grid-template-columns: 160px 1fr; font-size: var(--g-f-md); }
.themakeuze { display: flex; gap: 10px; }
.themakaart { display: flex; flex-direction: column; gap: 6px; padding: 6px; border-radius: var(--g-hoek-l); border: 1px solid var(--g-lijn); background: var(--g-vlak); width: 108px; }
.themakaart[aria-checked='true'] { border-color: var(--g-teal); box-shadow: 0 0 0 2px var(--g-teal-zacht); }
.themakaart__beeld { height: 56px; border-radius: 6px; display: grid; grid-template-columns: 22px 1fr; grid-template-rows: 12px 1fr; gap: 3px; padding: 4px; background: #F6F8F9; border: 1px solid #DEE1E3; }
.themakaart__beeld span:nth-child(1) { grid-row: 1 / 3; background: #152A40; border-radius: 3px; }
.themakaart__beeld span:nth-child(2) { background: #fff; border-radius: 2px; }
.themakaart__beeld span:nth-child(3) { background: #fff; border-radius: 2px; box-shadow: inset 0 0 0 1px #DEE1E3; }
.themakaart--donker .themakaart__beeld { background: #0A121B; border-color: #213245; }
.themakaart--donker .themakaart__beeld span:nth-child(1) { background: #08101A; }
.themakaart--donker .themakaart__beeld span:nth-child(2), .themakaart--donker .themakaart__beeld span:nth-child(3) { background: #0F1A25; box-shadow: none; }
.themakaart--systeem .themakaart__beeld { background: linear-gradient(135deg, #F6F8F9 50%, #0A121B 50%); }
.themakaart__label { display: flex; align-items: center; gap: 6px; font-size: var(--g-f-sm); font-weight: 600; padding: 0 4px 2px; }
.koppelingen { padding: 6px 20px 14px; display: flex; flex-direction: column; }
.koppelingen li { display: flex; align-items: center; gap: 12px; padding: 10px 0; font-size: var(--g-f-md); }
.koppelingen li + li { border-top: 1px solid var(--g-lijn-zacht); }
.koppelingen li .pil { margin-left: auto; }
.koppelingen__icoon { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: var(--g-merk-zacht); color: var(--g-merk); }
.koppelingen__icoon--leja { color: #fff; background: linear-gradient(135deg, #0c6980, #0a5567); }
.toetsenlijst { display: grid; grid-template-columns: 160px 1fr; gap: 8px 16px; padding: 8px 20px 18px; font-size: var(--g-f-md); align-items: center; }
.toetsenlijst dt { display: flex; gap: 4px; }

/* ---------------------------------------------------------------- api-dekking */
.dekkingskop { display: flex; gap: 32px; align-items: center; padding: 18px 20px; }
.dekkingskop__getal { display: flex; flex-direction: column; }
.dekkingskop__balk { flex: 1; display: flex; flex-direction: column; gap: 10px; }
.dekkingskop__balk .stapel { height: 12px; }
.dekkingskop__legenda { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: var(--g-f-sm); }
.bronknop { display: inline-flex; align-items: center; gap: 7px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--g-lijn); color: var(--g-tekst-2); }
.bronknop strong { color: var(--g-tekst); font-variant-numeric: tabular-nums; }
.bronknop:hover, .bronknop.is-actief { border-color: var(--g-teal-rand); background: var(--g-teal-zacht); }
.routes { overflow: hidden; }
.route { cursor: pointer; }
.route__id { font-weight: 600; }
.route__pad { font-size: 12px; color: var(--g-tekst-3); overflow-wrap: anywhere; }
.route__gebruik { display: flex; flex-wrap: wrap; gap: 4px; }
.route.is-open td { border-bottom-color: transparent; background: var(--g-vlak-2); }
.route__detail td { background: var(--g-vlak-2); padding-top: 0; }
.methode { display: inline-block; font-family: var(--g-mono); font-size: 11px; font-weight: 600; padding: 2px 6px; border-radius: 4px; background: var(--g-vlak-3); color: var(--g-tekst-2); }
.methode--get { background: var(--g-teal-zacht); color: var(--g-teal-sterk); }
.methode--post { background: var(--g-merk-zacht); color: var(--g-merk); }
.methode--put { background: var(--g-letop-zacht); color: var(--g-letop-tekst); }
:root[data-theme='donker'] .methode--post { color: var(--g-merk-licht); }

@media (max-width: 1279px) {
  .pagina { padding: 20px 20px 40px; }
  .kerncijfers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .verkenner { --vk-rechts: 320px; }
}
