/* Portaalstijl. Kleuren en maten komen één op één uit de vastgelegde mockup
   van 16-08 (mockup_portaal_v2.html). Wijzig hier, nergens anders. */

:root{
  --navy:#1B4B9E; --navy-d:#123468; --oranje:#E8590C; --oranje-h:#d14e08;
  --grijs:#f4f6fa; --rand:#dde3ee; --groen:#0f6e56; --groenbg:#e9f6ef;
  --amber:#8a5b00; --amberbg:#fdf6e7; --blauwbg:#eef3fc; --rood:#9b2226; --roodbg:#fdecec;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',Arial,sans-serif;background:#e9edf5;color:#222;font-size:15px;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--navy)}

.kop{background:var(--navy);color:#fff;padding:14px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.kop .logo{font-weight:700;font-size:18px;letter-spacing:.3px}
.kop .logo span{color:#ffb703}
.kop .klant{font-size:13px;opacity:.95;display:flex;align-items:center;gap:14px}
.kop .klant form{margin:0}
.kop .klant button{background:none;border:none;color:#cfe0ff;font-size:13px;cursor:pointer;text-decoration:underline;font-family:inherit;padding:0}

.menu{background:var(--navy-d);padding:0 22px;display:flex;gap:4px;flex-wrap:wrap}
.menu a{color:#cfe0ff;text-decoration:none;font-size:13.5px;padding:10px 14px;border-bottom:3px solid transparent}
.menu a.actief{color:#fff;border-bottom-color:#ffb703;font-weight:600}
.menu a:hover{color:#fff}

.wrap{max-width:880px;margin:26px auto;padding:0 16px;width:100%;flex:1}
.wrap.smal{max-width:460px}
.paneel{background:#fff;border:1px solid var(--rand);border-radius:10px;padding:24px 26px;box-shadow:0 2px 8px rgba(20,40,90,.06);margin-bottom:16px}
h1{font-size:22px;color:var(--navy);margin-bottom:6px}
h2{font-size:16px;color:var(--navy);margin-bottom:10px}
.sub{color:#667;margin-bottom:18px}

label{display:block;font-weight:600;font-size:13.5px;margin:12px 0 5px}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],textarea,select{
  width:100%;padding:10px 12px;border:1px solid #c6cede;border-radius:6px;font-size:14px;font-family:inherit;background:#fff;color:#222}
input:focus,textarea:focus,select:focus{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
.hint{font-size:12.5px;color:#667;margin-top:4px}

.knop{display:inline-block;background:var(--oranje);color:#fff;border:none;border-radius:6px;padding:11px 22px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;font-family:inherit}
.knop:hover{background:var(--oranje-h)}
.knop:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
.knop.blauw{background:var(--navy)} .knop.blauw:hover{background:var(--navy-d)}
.knop.licht{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
.knop.licht:hover{background:var(--blauwbg)}
.knoprij{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:12px}
.badge.bezig{background:var(--amberbg);color:var(--amber)}
.badge.klaar{background:var(--groenbg);color:var(--groen)}
.badge.abo{background:var(--blauwbg);color:var(--navy)}

.stap-kaart{display:flex;align-items:center;gap:18px;border:1px solid var(--rand);border-radius:10px;padding:18px;margin-bottom:14px;background:var(--grijs);flex-wrap:wrap}
.stap-kaart .ring{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--navy);flex:none}
.stap-kaart .ring i{background:#fff;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:13px}

.plan-rij{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--rand);border-radius:8px;padding:14px 16px;margin-bottom:10px;gap:10px;flex-wrap:wrap}
.plan-rij .naam{font-weight:600}
.plan-rij .meta{font-size:12.5px;color:#778}

.tegel-rij{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.tegel-rij.drie{grid-template-columns:1fr 1fr 1fr}
.tegel{border:1px solid var(--rand);border-radius:10px;padding:16px;background:#fff;text-decoration:none;display:block;color:inherit}
.tegel:hover{border-color:var(--navy)}
.tegel h3{font-size:14px;color:var(--navy);margin-bottom:6px}
.tegel p{font-size:13px;color:#556;line-height:1.5}

.voet{color:#98a;font-size:12px;text-align:center;padding:18px}

.melding-groen{background:var(--groenbg);color:var(--groen);border-left:4px solid var(--groen);padding:10px 14px;border-radius:6px;font-size:13.5px;margin-bottom:16px}
.melding-amber{background:var(--amberbg);color:var(--amber);border-left:4px solid #d99a00;padding:12px 14px;border-radius:6px;font-size:13.5px;margin-bottom:16px;line-height:1.55}
.melding-rood{background:var(--roodbg);color:var(--rood);border-left:4px solid var(--rood);padding:12px 14px;border-radius:6px;font-size:13.5px;margin-bottom:16px;line-height:1.55}
.melding-rood ul{margin:6px 0 0 18px}

.kb-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.kb-filter button{font-size:12.5px;padding:6px 14px;border-radius:16px;border:1px solid var(--rand);background:#fff;cursor:pointer;color:#445;font-family:inherit}
.kb-filter button.aan{background:var(--navy);border-color:var(--navy);color:#fff}
.kb-item{display:flex;gap:14px;border:1px solid var(--rand);border-radius:8px;padding:14px;margin-bottom:10px;background:#fff;align-items:center}
.kb-item .mini{width:86px;height:56px;border-radius:6px;background:var(--navy-d);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;flex:none}
.kb-item .mini.art{background:var(--blauwbg);color:var(--navy);font-size:20px}
.kb-item h3{font-size:14px;color:#223;margin-bottom:3px}
.kb-item p{font-size:12.5px;color:#667}
.kb-item .soort{font-size:11px;font-weight:700;color:#889;letter-spacing:.5px}
details{border:1px solid var(--rand);border-radius:8px;padding:12px 16px;margin-bottom:8px;background:#fff;font-size:13.5px}
details summary{font-weight:600;cursor:pointer;color:#334}
details p{margin-top:8px;color:#556;line-height:1.6}

table.gegevens{width:100%;border-collapse:collapse;font-size:14px}
table.gegevens th{text-align:left;font-weight:600;color:#556;padding:8px 0;width:38%;vertical-align:top}
table.gegevens td{padding:8px 0}

@media(max-width:680px){
  .tegel-rij,.tegel-rij.drie{grid-template-columns:1fr}
  .wrap{margin:16px auto}
  .paneel{padding:18px 16px}
}
