/* =====================================================
   Polyvalk Reserveringen v2.4.3
   Modernere stijl in lijn met het ZVZ-thema
   ===================================================== */

#pvlk{
  --pvlk-primary:#46748c;
  --pvlk-primary-dark:#2d4e63;
  --pvlk-primary-light:#deeaf0;
  --pvlk-accent:#40a132;
  --pvlk-accent-light:#e7f5e4;
  --pvlk-accent-mid:#cfeecd;
  --pvlk-red:#d85b5b;
  --pvlk-red-dark:#b93f3f;
  --pvlk-red-light:#fde8e8;
  --pvlk-gray-100:#f5f8fa;
  --pvlk-gray-200:#e2eaef;
  --pvlk-gray-300:#c8d8e2;
  --pvlk-gray-500:#7a9aaa;
  --pvlk-gray-700:#4a6070;
  --pvlk-text:#1e2d36;
  --pvlk-white:#ffffff;
  --pvlk-shadow:0 10px 30px rgba(30,51,68,.08);
  --pvlk-shadow-soft:0 4px 16px rgba(30,51,68,.06);
  --pvlk-radius:16px;
  font-family:inherit;
  font-size:15px;
  color:var(--pvlk-text);
  max-width:1020px;
  margin:0 auto;
  padding:0 12px;
  box-sizing:border-box;
  line-height:1.5;
}
#pvlk *,#pvlk *::before,#pvlk *::after{box-sizing:border-box}

.pvlk-kaart{
  background:var(--pvlk-white);
  border:1px solid var(--pvlk-gray-200);
  border-radius:var(--pvlk-radius);
  box-shadow:var(--pvlk-shadow);
  padding:30px;
  margin-bottom:24px;
  position:relative;
  overflow:hidden;
}
.pvlk-kaart-kal{border-top:4px solid var(--pvlk-primary)}
.pvlk-kaart h2{font-size:1.45rem;font-weight:700;color:var(--pvlk-primary-dark);margin:0 0 4px;letter-spacing:-.02em;line-height:1.25}
.pvlk-sub{color:var(--pvlk-gray-700);font-size:.94rem;margin:0 0 20px;font-weight:400}
.pvlk-kal-header{margin-bottom:4px}

.pvlk-nav{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.pvlk-week-label{flex:1;text-align:center;font-weight:700;font-size:1.05rem;color:var(--pvlk-primary-dark);letter-spacing:-.01em}
.pvlk-knop{
  appearance:none;border:0;border-radius:999px;background:var(--pvlk-primary);color:#fff;
  font-weight:700;padding:11px 17px;line-height:1;cursor:pointer;text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease,color .15s ease;
  box-shadow:0 6px 16px rgba(70,116,140,.18);
}
.pvlk-knop:hover{background:var(--pvlk-primary-dark);transform:translateY(-1px)}
.pvlk-knop:disabled{opacity:.55;cursor:not-allowed;transform:none}
.pvlk-knop-nav{background:#fff;color:var(--pvlk-primary-dark);border:1px solid var(--pvlk-gray-200);box-shadow:none}
.pvlk-knop-nav:hover{background:var(--pvlk-primary-light);color:var(--pvlk-primary-dark)}
.pvlk-knop-groot{font-size:1rem;padding:14px 22px}
.pvlk-knop-donker{background:var(--pvlk-primary-dark)}.pvlk-knop-donker:hover{background:#1e3344}
.pvlk-knop-uit{background:#c74b4b}.pvlk-knop-uit:hover{background:#af3d3d}
.pvlk-knop-klein{padding:9px 13px;font-size:.9rem}

.pvlk-laden{text-align:center;padding:28px;color:var(--pvlk-gray-700);font-weight:400}
.pvlk-calendar-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px 6px;position:relative}
.pvlk-calendar{
  display:grid;
  grid-template-columns:repeat(7,minmax(120px,1fr));
  gap:8px;
  min-width:860px;
  align-items:stretch;
}
.pvlk-head,.pvlk-cell{display:flex;align-items:center;justify-content:center}
.pvlk-head{
  min-height:62px;
  flex-direction:column;
  background:linear-gradient(180deg,var(--pvlk-primary) 0%,var(--pvlk-primary-dark) 100%);
  color:#fff;
  text-align:center;
  padding:11px 8px 10px;
  font-weight:700;
  font-size:.8rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  border-radius:12px;
  box-shadow:var(--pvlk-shadow-soft);
}
.pvlk-head .pvlk-date{display:block;font-size:.98rem;color:#fff;font-weight:800;margin-top:2px;letter-spacing:-.02em;text-transform:none}
.pvlk-cell{
  width:100%;
  min-height:52px;
  height:52px;
  border-radius:12px;
  border:1px solid var(--pvlk-gray-200);
  padding:0 6px;
  font:inherit;
  color:var(--pvlk-text);
  position:relative;
  transition:all .15s ease;
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset;
}
.pvlk-cell-vrij{background:var(--pvlk-accent-light);border-color:#bfe0ba;cursor:pointer}
.pvlk-cell-vrij:hover{background:var(--pvlk-accent-mid);border-color:var(--pvlk-accent);transform:translateY(-1px);box-shadow:0 6px 14px rgba(64,161,50,.18);z-index:2}
.pvlk-cell-bezet{background:var(--pvlk-red)!important;border-color:var(--pvlk-red-dark);color:#fff;font-weight:800;box-shadow:0 1px 0 rgba(255,255,255,.08) inset}
.pvlk-cell-dicht,.pvlk-cell-buiten{background:var(--pvlk-gray-100);border:1px dashed var(--pvlk-gray-300);color:#8ca1af}
.pvlk-cell-vandaag::after{content:none!important}
.pvlk-slot-label{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:.78rem;line-height:1.08;text-align:center;font-weight:700;white-space:normal}
.pvlk-cell-bezet .pvlk-slot-label{color:#fff}

.pvlk-legenda{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}
.pvlk-leg{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:var(--pvlk-gray-700);font-weight:700}
.pvlk-leg::before{content:"";width:18px;height:18px;border-radius:6px;border:1px solid var(--pvlk-gray-200);display:inline-block;background:#fff}
.pvlk-leg.pvlk-vrij::before{background:var(--pvlk-accent-light);border-color:#bfe0ba}
.pvlk-leg.pvlk-bezet::before{background:var(--pvlk-red);border-color:var(--pvlk-red-dark)}
.pvlk-leg.pvlk-dicht::before{background:var(--pvlk-gray-100);border-style:dashed}

.pvlk-rij{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.pvlk-rij3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pvlk-veld label{display:block;font-weight:700;margin-bottom:7px;color:var(--pvlk-primary-dark)}
.pvlk-veld input,.pvlk-veld select,.pvlk-loginrij input{width:100%;border:1px solid var(--pvlk-gray-200);border-radius:12px;padding:12px 14px;background:#fff;color:var(--pvlk-text);min-height:46px;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.pvlk-veld input:focus,.pvlk-veld select:focus,.pvlk-loginrij input:focus{outline:3px solid rgba(70,116,140,.14);border-color:var(--pvlk-primary)}
.pvlk-check{margin:18px 0 4px;padding:14px 16px;border:1px solid var(--pvlk-gray-200);border-radius:14px;background:var(--pvlk-primary-light);font-weight:700}
.pvlk-check label{display:flex;gap:10px;align-items:center;cursor:pointer}.pvlk-check input{width:19px;height:19px;accent-color:var(--pvlk-primary)}
.pvlk-acties{display:flex;align-items:center;gap:12px;margin-top:18px}
#pvlk-msg,#pvlk-bmsg{display:none;margin:16px 0 0;padding:13px 15px;border-radius:12px;font-weight:700}
.pvlk-msg-ok{display:block!important;background:#e8f7ed;color:#146c2e;border:1px solid #b7e2c3}
.pvlk-msg-err{display:block!important;background:#fdecec;color:#a32018;border:1px solid #f4b8b3}
.pvlk-spin{width:22px;height:22px;border-radius:50%;border:3px solid #cfe4df;border-top-color:var(--pvlk-primary);animation:pvlkspin .7s linear infinite}@keyframes pvlkspin{to{transform:rotate(360deg)}}
.pvlk-loginrij{display:flex;gap:10px}.pvlk-bheader{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:18px 0;flex-wrap:wrap}
.pvlk-tabelwrap{overflow-x:auto}.pvlk-tabel{width:100%;border-collapse:separate;border-spacing:0;min-width:780px}.pvlk-tabel th,.pvlk-tabel td{padding:12px;border-bottom:1px solid var(--pvlk-gray-200);text-align:left}.pvlk-tabel th{background:var(--pvlk-primary-light);font-weight:800}.pvlk-leeg{padding:18px;border-radius:14px;background:var(--pvlk-gray-100);color:var(--pvlk-gray-700);text-align:center}
.pvlk-mobile-only{display:none}

@media (max-width:860px){
  .pvlk-calendar{min-width:760px;grid-template-columns:repeat(7,minmax(100px,1fr))}
}

@media (max-width:760px){
  #pvlk{max-width:100%;padding:0 8px;font-size:14px}
  .pvlk-kaart{padding:16px 12px;border-radius:14px;margin-bottom:20px}
  .pvlk-kaart h2{font-size:1.25rem}
  .pvlk-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
  .pvlk-week-label{grid-column:1/-1;order:-1;min-width:0;padding:6px 0;font-size:.98rem}
  .pvlk-knop{width:100%;padding:12px 13px}
  .pvlk-calendar{display:none}
  .pvlk-mobile-only{display:block}
  .pvlk-calendar-wrap{overflow:visible;margin:0;padding:0}
  .pvlk-mobile-day{display:block;border:1px solid var(--pvlk-gray-200);border-radius:14px;overflow:hidden;margin-bottom:12px;background:#fff;box-shadow:0 2px 10px rgba(27,42,74,.05)}
  .pvlk-mobile-day-title{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:11px 13px;background:linear-gradient(180deg,var(--pvlk-primary) 0%,var(--pvlk-primary-dark) 100%);font-weight:800;color:#fff;font-size:.9rem;text-transform:uppercase;letter-spacing:.02em}
  .pvlk-mobile-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;background:#fff;padding:8px}
  .pvlk-cell{min-height:48px;height:48px;border-radius:10px;justify-content:center;padding:0 6px}
  .pvlk-slot-label{font-size:.76rem;line-height:1.1}
  .pvlk-rij,.pvlk-rij3{grid-template-columns:1fr;gap:12px}
  .pvlk-acties{display:block}.pvlk-acties .pvlk-spin{margin:12px auto 0}
  .pvlk-loginrij{display:grid;grid-template-columns:1fr}
  .pvlk-tabel{min-width:0}.pvlk-tabel thead{display:none}.pvlk-tabel,.pvlk-tabel tbody,.pvlk-tabel tr,.pvlk-tabel td{display:block;width:100%}.pvlk-tabel tr{border:1px solid var(--pvlk-gray-200);border-radius:14px;margin-bottom:12px;overflow:hidden}.pvlk-tabel td{border-bottom:1px solid var(--pvlk-gray-200);padding:10px 12px}.pvlk-tabel td::before{content:attr(data-label);display:block;font-size:.78rem;color:var(--pvlk-gray-700);font-weight:800;text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px}
}

@media (max-width:420px){
  .pvlk-mobile-slots{grid-template-columns:1fr}
  .pvlk-cell{height:44px;min-height:44px}
  .pvlk-slot-label{font-size:.74rem}
}
