:root{--bg:#f2f3ef;--surface:#ffffff;--sunk:#e8eae4;--line:#d6d9d0;--ink:#17221d;--muted:#57635b;--moss:#2f5d45;--moss-soft:#dfeae2;--heather:#7d4f6c;--heather-soft:#f1e6ee;--good:#2f7a4a;--warn:#a2630a;--bad:#b0392f;--f-display:"Young Serif",Georgia,"Times New Roman",serif;--f-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--r:10px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#121815;--surface:#19211d;--sunk:#0f1412;--line:#2b3530;--ink:#e6ebe7;--muted:#9aa79f;--moss:#7fbf98;--moss-soft:#1f3328;--heather:#d19bbd;--heather-soft:#33232e;--good:#6cc48c;--warn:#e2a64a;--bad:#ec8378;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--moss)}:focus-visible{outline:2px solid var(--moss);outline-offset:2px}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.side{align-self:start;background:var(--surface);border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;gap:22px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand b{font-family:var(--f-display);font-weight:400;font-size:1.3rem;letter-spacing:-.01em;display:block}.brand small{display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.nav{display:flex;flex-direction:column;gap:2px}.nav a{text-decoration:none;padding:8px 10px;border-radius:7px;color:var(--muted);font-weight:500}.nav a:hover{background:var(--sunk);color:var(--ink)}.nav a[aria-current=page]{background:var(--moss-soft);color:var(--moss)}.wie{margin-top:auto;font-size:.82rem;color:var(--muted);display:grid;grid-gap:6px;gap:6px}.wie b{color:var(--ink);font-weight:600}main{padding:28px 28px 64px;min-width:0;display:grid;grid-gap:22px;gap:22px;align-content:start}@media (max-width:760px){.app{grid-template-columns:1fr}.side{position:static;height:auto;align-items:center;padding:12px 16px;gap:12px;border-right:0;border-bottom:1px solid var(--line)}.nav,.side{flex-direction:row;flex-wrap:wrap}.wie{margin:0 0 0 auto}main{padding:20px 16px 48px}}h1{font-family:var(--f-display);font-weight:400;font-size:1.9rem;line-height:1.15;margin:0;letter-spacing:-.01em;text-wrap:balance}h2{font-size:1.02rem;margin:0 0 10px}h2,h3{font-weight:600}h3{font-size:.95rem;margin:0}.lead{color:var(--muted);margin:6px 0 0;max-width:70ch}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:var(--heather);font-weight:600;margin-bottom:6px}.head{display:flex;gap:16px;justify-content:space-between;align-items:flex-end;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;min-width:0}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:16px;gap:16px;align-items:start}.btn{cursor:pointer;border:1px solid var(--moss);background:var(--moss);color:var(--surface);padding:8px 14px;border-radius:7px;font-weight:600;font-size:.88rem;text-decoration:none;display:inline-block}.btn.quiet{background:transparent;border-color:var(--line);color:var(--ink);font-weight:500}.btn:disabled{opacity:.45;cursor:not-allowed}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:12px;gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}.kpi span{font-size:.78rem;color:var(--muted);display:block}.kpi b{font-family:var(--f-mono);font-weight:500;font-size:1.45rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi small{display:block;color:var(--muted);font-size:.74rem}.tablewrap{overflow-x:auto;padding:0}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;white-space:nowrap}td,th{padding:10px 14px;border-bottom:1px solid var(--line)}td{vertical-align:top}tr:last-child td{border-bottom:0}td a{font-weight:600;text-decoration:none}td a:hover{text-decoration:underline}.mono{font-family:var(--f-mono);font-size:.82rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip,.muted{color:var(--muted)}.chip{display:inline-block;font-size:.74rem;font-weight:600;padding:2px 9px;border-radius:99px;background:var(--sunk);white-space:nowrap}.chip.klaar{background:var(--heather-soft);color:var(--heather)}.chip.gecontroleerd{background:var(--moss-soft);color:var(--moss)}.chip.live{background:var(--good);color:var(--surface)}.flow{display:flex;gap:6px;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}.flow span.on{color:var(--ink);font-weight:600}dl.velden{display:grid;grid-template-columns:minmax(110px,max-content) 1fr;grid-gap:6px 16px;gap:6px 16px;margin:0}dl.velden dt{color:var(--muted);font-size:.85rem}dl.velden dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.leeg{color:var(--muted);font-style:italic}.kleuren{display:grid;grid-gap:8px;gap:8px}.kleur{display:grid;grid-template-columns:38px 1fr auto;grid-gap:10px;gap:10px;align-items:center}.kleur i{width:38px;height:38px;border-radius:7px;border:1px solid var(--line);display:block}.kleur small{color:var(--muted);display:block}ul.plat{margin:0;padding-left:18px}.log{display:grid;grid-gap:8px;gap:8px;font-size:.88rem;max-height:420px;overflow:auto}.log time{display:block;color:var(--muted);font-size:.76rem}.versie{border-top:1px solid var(--line);padding-top:14px;margin-top:14px;display:grid;grid-gap:10px;gap:10px}.versie:first-of-type{border-top:0;padding-top:0;margin-top:0}.beelden{display:flex;gap:10px;flex-wrap:wrap}.beelden img{max-width:100%;max-height:280px;display:block}.beelden img,iframe.voorbeeld{border:1px solid var(--line);border-radius:7px}iframe.voorbeeld{width:100%;height:520px;background:#fff}.notice{background:var(--heather-soft);color:var(--ink);font-size:.88rem}.fout,.notice{border-radius:7px;padding:10px 12px}.fout{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad);font-size:.9rem}.inlog{min-height:100vh;display:grid;place-items:center;padding:16px}.field{display:grid;grid-gap:5px;gap:5px}.field label{font-size:.84rem;font-weight:600}.field input{padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:var(--bg)}.score{font-family:var(--f-mono);font-weight:600}.score.good{color:var(--good)}.score.mid{color:var(--warn)}.score.poor{color:var(--bad)}.kleur .contrast{text-align:right;font-size:.76rem}@media (max-width:520px){.kleur{grid-template-columns:38px 1fr}.kleur .contrast{grid-column:2;text-align:left}}.stapel{width:min(400px,100%)}.stapel,.stapel-breed{display:grid;grid-gap:14px;gap:14px}.rij2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px}.field select{padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:var(--bg)}fieldset.keuze{border:0;padding:0;margin:0;display:grid;grid-gap:6px;gap:6px}fieldset.keuze legend{font-size:.84rem;font-weight:600;margin-bottom:4px;padding:0}fieldset.keuze label{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;cursor:pointer}fieldset.keuze small{color:var(--muted)}.goed{background:var(--moss-soft);color:var(--ink);border-radius:7px;padding:10px 12px;font-size:.9rem}.kopieer{display:flex;gap:8px;margin-top:8px}.kopieer input{flex:1 1;min-width:0;font-family:var(--f-mono);font-size:.78rem;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}form.inline{display:inline-grid;gap:6px;margin:0 6px 6px 0;vertical-align:top}.btn.klein{padding:5px 10px;font-size:.8rem}.btn.gevaar{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}td.acties{white-space:nowrap}td.acties .fout,td.acties .goed{white-space:normal;max-width:340px}tr.uit td{opacity:.6}details summary{cursor:pointer;color:var(--moss);font-size:.84rem;margin-top:6px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.stap{display:grid;grid-gap:12px;gap:12px}.stapkop{display:flex;gap:10px;align-items:center}.stapkop h2{margin:0}.num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:600;background:var(--sunk);color:var(--muted);flex:none}.num.klaar{background:var(--moss);color:var(--surface)}details.bewerk{border-top:1px solid var(--line);padding-top:10px}details.bewerk>summary{cursor:pointer;color:var(--moss);font-weight:600;font-size:.9rem}.bewerk-inhoud{margin-top:12px}.field textarea{padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:var(--bg);resize:vertical}.field input[type=file]{font-size:.85rem}.field small{font-size:.78rem}.statusbalk{justify-content:space-between;align-items:center;gap:16px}.statusbalk,.statusknoppen{display:flex;flex-wrap:wrap}.statusknoppen{gap:8px;align-items:flex-start}details.terug>summary{list-style:none}details.terug>summary::-webkit-details-marker{display:none}details.terug[open]{flex-basis:100%}details.terug[open]>summary{margin-bottom:10px}pre.opdracht{white-space:pre-wrap;background:var(--sunk);border-radius:7px;padding:14px;font-family:var(--f-mono);font-size:.8rem;max-height:420px;overflow:auto;margin:10px 0 0}fieldset.kleurinvoer{border:0;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}fieldset.kleurinvoer legend{font-size:.84rem;font-weight:600;margin-bottom:4px;padding:0}.kleurrij{display:grid;grid-template-columns:38px 100px minmax(90px,1fr) minmax(120px,2fr) auto;grid-gap:8px;gap:8px;align-items:center}.kleurrij input{padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);min-width:0}.kleurrij input[type=color]{padding:2px;height:36px;width:38px}@media (max-width:620px){.kleurrij{grid-template-columns:38px 1fr auto}.kleurrij input[name=kleurGebruik],.kleurrij input[name=kleurNaam]{grid-column:1/-1}}.verzoek{display:grid;grid-gap:4px;gap:4px;padding-bottom:10px;border-bottom:1px solid var(--line)}.verzoek:last-child{border-bottom:0}form.behandel{display:grid;grid-gap:6px;gap:6px;margin-top:4px}form.behandel input{padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);font-size:.85rem}.label-achtig{font-size:.84rem;font-weight:600}