:root{
  --blauw:#1f3a5f; --blauw-licht:#2e5a8f; --grijs:#f4f6f9;
  --rand:#dde3ec; --tekst:#1c2530; --groen:#1f7a4d; --rood:#b3261e;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--tekst);background:var(--grijs);line-height:1.5}
.topbar{background:var(--blauw);color:#fff;display:flex;justify-content:space-between;
  align-items:center;padding:.8rem 1.4rem;flex-wrap:wrap;gap:.6rem}
.brand{font-weight:700;font-size:1.05rem}
.brand span{font-weight:400;opacity:.8}
nav{display:flex;gap:.4rem;flex-wrap:wrap}
nav a{color:#dce6f4;text-decoration:none;padding:.35rem .6rem;border-radius:6px;font-size:.92rem}
nav a:hover{background:var(--blauw-licht);color:#fff}
nav a.logout{color:#ffd9d6}
.container{max-width:860px;margin:1.6rem auto;padding:0 1.2rem}
h1{font-size:1.45rem;margin:.2rem 0 1rem}
h2{font-size:1.1rem;margin:1.4rem 0 .6rem}
.card{background:#fff;border:1px solid var(--rand);border-radius:10px;padding:1.1rem 1.2rem;
  margin-bottom:1rem;box-shadow:0 1px 2px rgba(20,30,50,.04)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}
.tile{background:#fff;border:1px solid var(--rand);border-radius:10px;padding:1.1rem;
  text-decoration:none;color:var(--tekst);display:block}
.tile:hover{border-color:var(--blauw-licht)}
.tile .big{font-size:1.8rem;font-weight:700;color:var(--blauw)}
.tile .lbl{font-size:.95rem;margin-top:.2rem}
.badge{display:inline-block;font-size:.78rem;padding:.12rem .5rem;border-radius:20px}
.badge.wacht{background:#fff3cd;color:#7a5b00}
.badge.akkoord{background:#d8f0e2;color:var(--groen)}
.badge.afgewezen{background:#fbdcda;color:var(--rood)}
.badge.open{background:#fff3cd;color:#7a5b00}
.badge.beantwoord{background:#d8f0e2;color:var(--groen)}
label{display:block;font-size:.9rem;font-weight:600;margin:.6rem 0 .25rem}
input[type=text],input[type=email],input[type=password],textarea,select{
  width:100%;padding:.6rem;border:1px solid var(--rand);border-radius:7px;font-size:1rem;font-family:inherit}
textarea{min-height:90px;resize:vertical}
.btn{display:inline-block;background:var(--blauw);color:#fff;border:none;padding:.6rem 1.1rem;
  border-radius:7px;font-size:.95rem;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--blauw-licht)}
.btn.groen{background:var(--groen)}
.btn.rood{background:var(--rood)}
.btn.ghost{background:#fff;color:var(--blauw);border:1px solid var(--rand)}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.flash{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem}
.flash.ok{background:#d8f0e2;color:var(--groen)}
.flash.error{background:#fbdcda;color:var(--rood)}
.muted{color:#6b7787;font-size:.88rem}
.center{max-width:420px;margin:3rem auto}
.qr{display:block;margin:1rem auto;width:200px;height:200px;border:1px solid var(--rand);border-radius:8px}
.codebox{font-family:monospace;background:var(--grijs);padding:.5rem .7rem;border-radius:6px;
  word-break:break-all;font-size:.9rem}
.msg{padding:.6rem .9rem;border-radius:10px;margin:.4rem 0;max-width:80%}
.msg.klant{background:#e8f0fb;margin-left:auto}
.msg.kantoor{background:#fff;border:1px solid var(--rand)}
.msg .who{font-size:.75rem;color:#6b7787;margin-bottom:.2rem}
.foot{text-align:center;color:#8895a6;font-size:.82rem;padding:1.5rem 1rem 2.5rem}
ul.clean{list-style:none;padding:0;margin:0}
ul.clean li{padding:.5rem 0;border-bottom:1px solid var(--rand)}
ul.clean li:last-child{border-bottom:none}

/* Aanleveren: sleepzone */
.dropzone{position:relative;border:2px dashed var(--rand);border-radius:10px;
  background:#fff;padding:1.6rem 1rem;text-align:center;cursor:pointer;
  transition:border-color .15s,background .15s;margin:.3rem 0 .6rem}
.dropzone:hover,.dropzone:focus{border-color:var(--blauw-licht);outline:none}
.dropzone.dragover{border-color:var(--blauw);background:#eef4fb}
.dropzone .dz-tekst{margin:0;color:var(--tekst);font-weight:600}
.dropzone .dz-tekst .muted{font-weight:400}
/* Het echte input-veld over de hele zone, onzichtbaar maar klikbaar */
.dropzone .dz-input{position:absolute;inset:0;width:100%;height:100%;
  opacity:0;cursor:pointer}
.dz-lijst{margin:.2rem 0 .6rem}
.dz-lijst li{padding:.3rem 0;border-bottom:1px dashed var(--rand);font-size:.9rem;color:#43505f}
