/* HuiswerkHelden - website (PHP) */
:root {
  --blauw: #4f7cff; --donker: #1c2440; --paars: #7b5cff; --groen: #22c26e;
  --geel: #ffd76a; --oranje: #ff9f43; --rood: #e35d5d; --grijs: #5b6483;
}
* { box-sizing: border-box; }
body {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif; margin: 0; color: var(--donker);
  background: linear-gradient(160deg, #eef3ff, #e7edff 55%, #f8f3ff 100%); min-height: 100vh;
}
a { color: var(--blauw); }
.topbar {
  background: linear-gradient(120deg, #2a1e5c, #4f2a86 55%, #1f3c88); color: #fff; padding: 12px 18px;
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
}
.topbar .logo { font-weight: 800; font-size: 1.05rem; display: flex; align-items: center; gap: 8px; }
.topbar .logo .badge { background: #fff2; padding: 4px 8px; border-radius: 10px; }
.topbar nav { display: flex; gap: 6px; flex-wrap: wrap; margin-left: auto; }
.topbar nav a {
  color: #fff; text-decoration: none; padding: 7px 12px; border-radius: 10px; font-size: .92rem;
  background: #ffffff1a;
}
.topbar nav a:hover, .topbar nav a.aan { background: #fff; color: var(--donker); }
.wrap { max-width: 1120px; margin: 0 auto; padding: 20px 16px 60px; }
h1 { font-size: 1.5rem; margin: 6px 0 4px; }
h2 { font-size: 1.1rem; margin: 0 0 10px; }
.klein { font-size: .87rem; color: var(--grijs); }
.mini { font-size: .78rem; color: var(--grijs); }
.muted { color: var(--grijs); }
.card {
  background: #fff; border-radius: 16px; padding: 18px 20px; margin-bottom: 14px;
  box-shadow: 0 10px 26px rgba(28, 36, 64, .08);
}
.grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); }
.tegel { background: #fff; border-radius: 16px; padding: 16px; box-shadow: 0 10px 26px rgba(28, 36, 64, .08); }
.tegel .groot { font-size: 2rem; font-weight: 800; line-height: 1.1; }
.tegel .label { font-size: .85rem; color: var(--grijs); }
.chip {
  display: inline-block; background: #eef3ff; color: #28407e; border-radius: 20px; padding: 4px 11px;
  font-size: .82rem; font-weight: 700; margin: 0 6px 6px 0;
}
.chip.groen { background: #e6fbef; color: #137a48; }
.chip.geel { background: #fff6e0; color: #8a5b06; }
.chip.rood { background: #fdeaea; color: #a32222; }
.chip.paars { background: #f1ecff; color: #5233b8; }
table.tabel { width: 100%; border-collapse: collapse; font-size: .92rem; }
table.tabel th { text-align: left; font-size: .78rem; text-transform: uppercase; letter-spacing: .4px;
  color: var(--grijs); border-bottom: 2px solid #eef1fa; padding: 8px 6px; }
table.tabel td { padding: 8px 6px; border-bottom: 1px solid #f3f5fc; }
table.tabel tr:hover td { background: #fafcff; }
input[type=text], input[type=email], input[type=password], input[type=number], select, textarea {
  width: 100%; padding: 10px 12px; border: 2px solid #dfe6fb; border-radius: 10px; font-size: .98rem;
  background: #fbfcff; font-family: inherit;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--blauw); background: #fff; }
label { display: block; font-weight: 600; font-size: .9rem; margin: 12px 0 4px; }
.btn {
  display: inline-block; background: var(--blauw); color: #fff; border: 0; border-radius: 11px;
  padding: 10px 16px; font-size: .95rem; font-weight: 700; cursor: pointer; text-decoration: none;
}
.btn.groen { background: var(--groen); }
.btn.paars { background: var(--paars); }
.btn.wit { background: #fff; color: var(--donker); border: 2px solid #dfe6fb; }
.btn.rood { background: var(--rood); }
.btn.mini { padding: 6px 10px; font-size: .82rem; border-radius: 9px; }
.rij { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; }
.rij > div { flex: 1 1 190px; }
.balk { background: #eef1fa; border-radius: 20px; height: 10px; overflow: hidden; margin: 6px 0; }
.balk i { display: block; height: 100%; background: linear-gradient(90deg, var(--blauw), var(--paars)); }
.melding { border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; font-size: .95rem; }
.melding.goed { background: #e6fbef; color: #137a48; }
.melding.fout { background: #fdeaea; color: #a32222; }
.melding.info { background: #eef3ff; color: #28407e; }
.melding.let { background: #fff6e0; color: #8a5b06; }
.code {
  font-family: ui-monospace, Menlo, Consolas, monospace; background: #1c2440; color: var(--geel);
  padding: 8px 12px; border-radius: 10px; display: inline-block; word-break: break-all;
}
.voet { text-align: center; color: #77809c; font-size: .84rem; margin-top: 24px; }
.login-doos { max-width: 420px; margin: 6vh auto 0; }
@media (max-width: 620px) { .topbar nav { margin-left: 0; } }
