:root {
  --tekst: #1c2230;
  --zacht: #5d6677;
  --lijn: #e1e4ea;
  --vlak: #f5f6f8;
  --achtergrond: #ffffff;
  --accent: #4b2c91;
  --goed: #17603c;
  --goed-vlak: #e6f4ec;
  --let-op: #7a4d00;
  --let-op-vlak: #fff4d6;
  --fout: #9b1c20;
  --fout-vlak: #fdeaea;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--achtergrond);
  color: var(--tekst);
  font: 15px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

a { color: var(--accent); }

.kop {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  align-items: baseline;
  padding: 12px 16px;
  border-bottom: 1px solid var(--lijn);
}
.kop a { color: var(--tekst); font-weight: 650; text-decoration: none; }
.kop span { color: var(--zacht); font-size: 13px; }
.kop .wie { margin-left: auto; display: flex; gap: 10px; align-items: baseline; }
.kop .wie a { font-weight: 500; color: var(--accent); }
.smal { max-width: 380px; }
ol.stappen { padding-left: 20px; margin: 8px 0 16px; }
ol.stappen li { margin-bottom: 6px; }
section.boeken .rij { display: flex; flex-wrap: wrap; gap: 0 24px; }
select, input[type="date"] { font: inherit; padding: 8px 10px; border: 1px solid var(--lijn); border-radius: 8px; }
label.vinkje { font-weight: 500; display: flex; gap: 8px; align-items: baseline; margin: 4px 0 16px; }
form.naam { display: flex; gap: 10px; align-items: center; }
form.naam input { max-width: 320px; }
form.plakken { margin-top: 20px; max-width: 640px; }
code { font-size: 13px; background: var(--vlak); padding: 1px 4px; border-radius: 4px; }

main { max-width: 980px; margin: 0 auto; padding: 24px 16px 64px; }
h1 { font-size: 24px; margin: 0 0 4px; }
h2 { font-size: 17px; margin: 0 0 4px; }
section { margin-top: 36px; }
.sub { color: var(--zacht); margin: 0 0 12px; }
.hint { color: var(--zacht); font-size: 13px; margin: 8px 0 0; }
.terug { margin: 0 0 12px; font-size: 14px; }

.melding { border-radius: 8px; padding: 10px 14px; margin: 16px 0 0; }
.goed { background: var(--goed-vlak); color: var(--goed); }
.let-op { background: var(--let-op-vlak); color: var(--let-op); }
.fout { background: var(--fout-vlak); color: var(--fout); }

.tabel { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
th, td { padding: 6px 10px; border-bottom: 1px solid var(--lijn); text-align: left; vertical-align: top; }
thead th { font-size: 13px; font-weight: 600; color: var(--zacht); }
tfoot td { font-weight: 650; border-top: 2px solid var(--tekst); border-bottom: 0; }
tr.blok th { background: var(--vlak); font-size: 13px; font-weight: 600; }
.bedrag { text-align: right; white-space: nowrap; }
.herkomst { color: var(--zacht); font-size: 13px; }

dl.kenmerken { display: flex; flex-wrap: wrap; gap: 8px 32px; margin: 8px 0 12px; }
dl.kenmerken dt { color: var(--zacht); font-size: 13px; }
dl.kenmerken dd { margin: 0; font-weight: 600; }

form .veld { margin: 20px 0; }
label { display: block; font-weight: 600; margin-bottom: 6px; }
input[type="file"] { font: inherit; max-width: 100%; }
input[type="email"], input[type="password"], input:not([type]) {
  font: inherit;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--lijn);
  border-radius: 8px;
}
button.stil { background: none; color: var(--accent); padding: 0; font-weight: 500; }
button {
  font: inherit;
  font-weight: 600;
  color: #fff;
  background: var(--accent);
  border: 0;
  border-radius: 8px;
  padding: 9px 18px;
  cursor: pointer;
}
button:hover { filter: brightness(1.12); }
