:root{--bg:#f4f6f8;--tekst:#1b2430;--zacht:#5b6773;--rand:#cfd6dd;--accent:#1f3a4d;--accent-tekst:#fff;--goed:#1d7a46;--fout:#b3261e;--wacht:#9a6b00;--kaart:#fff}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tekst);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
.top{background:var(--accent);color:var(--accent-tekst);padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.top .merk{font-weight:700}
.top nav{display:flex;gap:16px}
.top a{color:var(--accent-tekst);text-decoration:none;font-size:15px}
main{max-width:720px;margin:0 auto;padding:16px}
body.beheer main{max-width:1000px}
h1{font-size:22px;margin:8px 0 4px}
h2{font-size:18px;margin:24px 0 8px}
.meta{color:var(--zacht);font-size:14px}
.kaart{background:var(--kaart);border:1px solid var(--rand);border-radius:10px;padding:14px;margin:12px 0}
label,.label{display:block;margin:12px 0 4px;font-weight:600}
input[type=text],input[type=password],input[type=number],input:not([type]),select,textarea{width:100%;font:inherit;padding:12px;border:1px solid var(--rand);border-radius:8px;background:#fff}
textarea{min-height:90px}
button,.knop{display:inline-block;font:inherit;font-weight:700;padding:14px 18px;border:0;border-radius:10px;background:var(--accent);color:var(--accent-tekst);cursor:pointer;text-decoration:none;text-align:center}
button.groot{width:100%;font-size:18px;padding:16px}
button.licht,.knop.licht{background:#e6ebef;color:var(--tekst)}
button.goed{background:var(--goed)}
button.fout{background:var(--fout)}
button:disabled{opacity:.6}
.fotoknop{display:block;text-align:center;padding:16px;border:2px dashed var(--accent);border-radius:10px;color:var(--accent);font-weight:700;cursor:pointer;margin:14px 0}
.voorbeeld{position:relative;display:inline-block;margin:6px 6px 0 0}
.voorbeeld img{width:96px;height:96px;object-fit:cover;border-radius:8px}
.voorbeeld button{position:absolute;top:-6px;right:-6px;width:36px;height:36px;padding:0;border-radius:50%;background:var(--fout);font-size:16px;line-height:1}
.badge{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:99px;background:#e6ebef}
.badge-ingevuld{background:#fff1cc;color:#7a5200}
.badge-goedgekeurd{background:#d7f0e1;color:var(--goed)}
.badge-afgekeurd{background:#fbdcd9;color:var(--fout)}
.lijst a.punt{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:16px;margin:8px 0;background:var(--kaart);border:1px solid var(--rand);border-radius:10px;color:inherit;text-decoration:none}
.balk{height:8px;background:#e1e6eb;border-radius:99px;overflow:hidden}
.balk span{display:block;height:100%;background:var(--goed)}
.melding{color:var(--fout);font-weight:600;min-height:1.5em}
.ok{background:#d7f0e1;color:var(--goed);padding:10px 14px;border-radius:8px;font-weight:600}
.reg{border-top:1px solid var(--rand);margin-top:10px;padding-top:8px}
.fotos img{width:110px;height:110px;object-fit:cover;border-radius:6px;margin:6px 6px 0 0}
.radio-rij{display:flex;gap:10px}
.radio-rij label{flex:1;margin:0;text-align:center;padding:14px;border:2px solid var(--rand);border-radius:10px;background:#fff}
.radio-rij input{margin-right:6px}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:8px;border-bottom:1px solid var(--rand);vertical-align:top}
.link-blok{word-break:break-all;background:#fff;border:1px solid var(--rand);border-radius:8px;padding:10px;font-family:ui-monospace,monospace;font-size:14px}
.qr img{display:block;margin:10px 0}
.rij{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.rij-omgekeerd{flex-direction:row-reverse;justify-content:flex-end}
@media (min-width:700px){.twee{display:grid;grid-template-columns:1fr 1fr;gap:16px}}
