/* NEXD afsprakenplanner-popup — zelfstandige, gescopete styling (prefix .nxa-). */
.nxa-overlay{
  position:fixed;inset:0;z-index:9999;display:none;
  align-items:center;justify-content:center;padding:16px;
  background:rgba(15,23,42,.55);backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0;transition:opacity .18s ease;
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
.nxa-overlay.nxa-open{display:flex;opacity:1}
.nxa-overlay *{box-sizing:border-box}

.nxa-modal{
  --nxa-accent:#059669;--nxa-accent-dark:#047857;--nxa-accent-soft:#ecfdf5;
  --nxa-ink:#0f172a;--nxa-muted:#64748b;--nxa-line:#e5e9f0;
  width:100%;max-width:var(--nxa-modal-width,940px);max-height:var(--nxa-modal-height,calc(100vh - 32px));
  background:#fff;border-radius:20px;overflow:hidden;
  box-shadow:0 30px 80px rgba(15,23,42,.28);
  display:grid;grid-template-columns:var(--nxa-panel-width,312px) 1fr;
  transform:translateY(8px) scale(.99);transition:transform .18s ease;
}
.nxa-overlay.nxa-open .nxa-modal{transform:none}
.nxa-modal.nxa-has-times{grid-template-columns:var(--nxa-panel-width,312px) 1fr 250px}
.nxa-modal.nxa-step-form,.nxa-modal.nxa-step-done{grid-template-columns:var(--nxa-panel-width,312px) 1fr}

/* ---------- Linker infopaneel ---------- */
.nxa-aside{
  position:relative;padding:28px 26px;border-right:1px solid var(--nxa-line);
  background:#fff;display:flex;flex-direction:column;gap:14px;overflow:auto;min-width:0;
}
.nxa-back{
  position:absolute;top:18px;left:16px;width:34px;height:34px;border:0;border-radius:50%;
  background:#f1f5f9;color:#334155;cursor:pointer;display:none;align-items:center;justify-content:center;
}
.nxa-back:hover{background:#e2e8f0}
.nxa-modal.nxa-step-form .nxa-back,.nxa-modal.nxa-step-times .nxa-back{display:flex}
.nxa-host{display:flex;align-items:center;gap:10px;margin-top:14px}
.nxa-host img{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#e2e8f0}
.nxa-host-name{font-size:calc(14px * var(--nxa-panel-scale,1));font-weight:600;color:var(--nxa-panel-color,var(--nxa-muted));line-height:1.2}
.nxa-host-role{font-size:calc(12.5px * var(--nxa-panel-scale,1));color:var(--nxa-panel-color,var(--nxa-muted));opacity:.85}
.nxa-title{font-size:calc(clamp(19px,2vw,22px) * var(--nxa-panel-scale,1));line-height:1.18;font-weight:800;color:var(--nxa-panel-color,var(--nxa-ink));margin:2px 0 0;overflow-wrap:break-word;word-break:break-word;hyphens:auto}
.nxa-subtitle{font-size:calc(14px * var(--nxa-panel-scale,1));color:var(--nxa-panel-color,var(--nxa-muted));margin:0}
.nxa-meta{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.nxa-meta-row{display:flex;align-items:flex-start;gap:10px;font-size:calc(14px * var(--nxa-panel-scale,1));color:var(--nxa-panel-color,#334155);font-weight:600}
.nxa-meta-row svg{width:18px;height:18px;flex:0 0 18px;margin-top:1px;color:var(--nxa-muted)}
.nxa-desc{font-size:calc(13.5px * var(--nxa-panel-scale,1));line-height:1.55;color:var(--nxa-panel-color,var(--nxa-muted));margin-top:6px}
.nxa-trust{margin-top:auto;padding-top:14px;display:flex;flex-wrap:wrap;gap:6px}
.nxa-chip{font-size:calc(11.5px * var(--nxa-panel-scale,1));font-weight:600;color:var(--nxa-accent-dark);background:var(--nxa-accent-soft);border-radius:999px;padding:4px 10px}

/* ---------- Rechterkant / kalender ---------- */
.nxa-main{padding:24px 26px 26px;overflow:auto;min-width:0}
.nxa-close{
  position:absolute;top:14px;right:14px;width:34px;height:34px;border:0;border-radius:50%;
  background:rgba(255,255,255,.9);color:#334155;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;
}
.nxa-close:hover{background:#e2e8f0}
.nxa-main-head{font-size:19px;font-weight:800;color:var(--nxa-ink);margin:2px 0 16px}

.nxa-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.nxa-cal-month{font-size:15px;font-weight:700;color:var(--nxa-ink);text-transform:capitalize}
.nxa-cal-btn{width:34px;height:34px;border:1px solid var(--nxa-line);background:#fff;border-radius:9px;cursor:pointer;color:#334155;display:flex;align-items:center;justify-content:center}
.nxa-cal-btn:hover:not(:disabled){border-color:var(--nxa-accent);color:var(--nxa-accent)}
.nxa-cal-btn:disabled{opacity:.35;cursor:not-allowed}
.nxa-cal-nav-group{display:flex;gap:8px}

.nxa-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}
.nxa-weekdays span{text-align:center;font-size:11.5px;font-weight:700;color:var(--nxa-muted);text-transform:uppercase;letter-spacing:.02em}
.nxa-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.nxa-day{position:relative;aspect-ratio:1/1;border:0;background:transparent;border-radius:50%;font-size:14px;font-weight:600;color:#cbd5e1;cursor:default;display:flex;align-items:center;justify-content:center}
.nxa-day.nxa-avail{background:var(--nxa-accent-soft);color:var(--nxa-accent-dark);cursor:pointer;font-weight:700}
.nxa-day.nxa-avail:hover{background:#d1fae5}
.nxa-day.nxa-avail::after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:var(--nxa-accent)}
.nxa-day.nxa-selected{background:var(--nxa-accent);color:#fff}
.nxa-day.nxa-selected::after{background:#fff}
.nxa-day.nxa-today:not(.nxa-selected){box-shadow:inset 0 0 0 1.5px var(--nxa-accent)}
.nxa-day.nxa-empty{visibility:hidden}
.nxa-tz{margin-top:14px;font-size:12.5px;color:var(--nxa-muted);display:flex;align-items:center;gap:7px}
.nxa-tz svg{width:15px;height:15px}

/* ---------- Tijden ---------- */
.nxa-times{padding:24px 20px 26px;border-left:1px solid var(--nxa-line);overflow:auto;display:none;flex-direction:column;min-width:0}
.nxa-modal.nxa-has-times .nxa-times{display:flex}
.nxa-times-head{font-size:14px;font-weight:700;color:var(--nxa-ink);margin:2px 0 12px;line-height:1.3}
.nxa-times-list{display:flex;flex-direction:column;gap:8px}
.nxa-slot{padding:12px;border:1.5px solid var(--nxa-line);border-radius:10px;background:#fff;color:var(--nxa-accent-dark);font-weight:700;font-size:14.5px;cursor:pointer;text-align:center;transition:border-color .12s}
.nxa-slot:hover{border-color:var(--nxa-accent)}
.nxa-slot.nxa-slot-selected{background:var(--nxa-accent);border-color:var(--nxa-accent);color:#fff}
.nxa-slot-confirm{margin-top:8px;padding:13px;border:0;border-radius:10px;background:var(--nxa-accent);color:#fff;font-weight:800;font-size:14.5px;cursor:pointer;display:none}
.nxa-slot-confirm:hover{background:var(--nxa-accent-dark)}
.nxa-slot-confirm.nxa-show{display:block}
.nxa-times-empty{font-size:13.5px;color:var(--nxa-muted);padding:16px 4px;line-height:1.5}

/* ---------- Formulier ---------- */
.nxa-form-wrap{max-width:460px}
.nxa-summary{display:flex;align-items:center;gap:10px;background:#f8fafc;border:1px solid var(--nxa-line);border-radius:12px;padding:12px 14px;margin-bottom:18px;font-size:14px;color:#334155;font-weight:600}
.nxa-summary svg{width:18px;height:18px;color:var(--nxa-accent);flex:0 0 18px}
.nxa-field{margin-bottom:14px}
.nxa-field label{display:block;font-size:13px;font-weight:700;color:#334155;margin-bottom:6px}
.nxa-field input{width:100%;height:46px;padding:0 14px;border:1.5px solid var(--nxa-line);border-radius:10px;font:inherit;font-size:15px;color:var(--nxa-ink);background:#fff}
.nxa-field input:focus{outline:none;border-color:var(--nxa-accent);box-shadow:0 0 0 3px rgba(5,150,105,.12)}
.nxa-field.nxa-invalid input{border-color:#dc2626}
.nxa-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nxa-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.nxa-submit{width:100%;height:50px;border:0;border-radius:12px;background:var(--nxa-accent);color:#fff;font-weight:800;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px}
.nxa-submit:hover{background:var(--nxa-accent-dark)}
.nxa-submit:disabled{opacity:.7;cursor:progress}
.nxa-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:13.5px;border-radius:10px;padding:10px 12px;margin-bottom:14px;display:none}
.nxa-error.nxa-show{display:block}
.nxa-privacy{font-size:12px;color:var(--nxa-muted);margin-top:12px;text-align:center;line-height:1.5}
.nxa-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:nxa-spin .7s linear infinite}
@keyframes nxa-spin{to{transform:rotate(360deg)}}

/* ---------- Bevestiging ---------- */
.nxa-done{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 10px;max-width:440px;margin:0 auto}
.nxa-done-check{width:66px;height:66px;border-radius:50%;background:var(--nxa-accent-soft);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.nxa-done-check svg{width:34px;height:34px;color:var(--nxa-accent)}
.nxa-done h3{font-size:22px;font-weight:800;color:var(--nxa-ink);margin:0 0 8px}
.nxa-done p{font-size:14.5px;color:var(--nxa-muted);line-height:1.6;margin:0 0 6px}
.nxa-done-card{margin:16px 0 20px;width:100%;background:#f8fafc;border:1px solid var(--nxa-line);border-radius:12px;padding:16px;text-align:left}
.nxa-done-card .nxa-dc-row{display:flex;align-items:center;gap:10px;font-size:14px;color:#334155;font-weight:600;padding:4px 0}
.nxa-done-card svg{width:17px;height:17px;color:var(--nxa-accent);flex:0 0 17px}
.nxa-done-close{padding:13px 26px;border:0;border-radius:12px;background:var(--nxa-accent);color:#fff;font-weight:800;font-size:15px;cursor:pointer}
.nxa-done-close:hover{background:var(--nxa-accent-dark)}

.nxa-loading{display:flex;align-items:center;justify-content:center;min-height:280px;color:var(--nxa-muted);font-size:14px}

/* ---------- Responsive ---------- */
@media(max-width:820px){
  .nxa-modal,.nxa-modal.nxa-has-times,.nxa-modal.nxa-step-form,.nxa-modal.nxa-step-done{
    grid-template-columns:1fr;grid-template-rows:auto 1fr;max-height:calc(100vh - 24px);
  }
  .nxa-aside{border-right:0;border-bottom:1px solid var(--nxa-line);padding:22px 20px 16px}
  .nxa-title{font-size:20px}
  .nxa-desc{display:none}
  .nxa-trust{display:none}
  .nxa-times{border-left:0;border-top:1px solid var(--nxa-line)}
  .nxa-modal.nxa-has-times{grid-template-rows:auto auto auto}
}
@media(max-width:480px){
  .nxa-overlay{padding:0}
  .nxa-modal{border-radius:0;max-width:100%;max-height:100vh;height:100vh}
  .nxa-row2{grid-template-columns:1fr}
  .nxa-main{padding:20px 18px}
}
@media(prefers-reduced-motion:reduce){
  .nxa-overlay,.nxa-modal{transition:none}
  .nxa-spinner{animation:none}
}
