.nd-booking-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d365873;display:flex;align-items:center;justify-content:center;padding:16px;z-index:99999}.nd-booking-modal{--nd-brand-violet: #9b8de0;--nd-brand-pink: #ff96cf;--nd-brand-sky: #4fc4ff;--nd-brand-violet-soft: #f4f2fb;position:relative;width:min(560px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:0 24px 60px #3d36582e;padding:24px}.nd-booking-close{position:absolute;top:12px;right:12px;border:0;background:transparent;font-size:28px;line-height:1;cursor:pointer;color:#8a82a8}.nd-booking-close:hover{color:var(--nd-brand-violet)}.nd-booking-close:disabled,.nd-booking-close.is-disabled{opacity:.35;cursor:not-allowed}.nd-booking-close:disabled:hover,.nd-booking-close.is-disabled:hover{color:#8a82a8}.nd-booking-header{display:flex;gap:16px;align-items:center;margin-bottom:20px}.nd-booking-header:has(+.nd-booking-selection){margin-bottom:12px}.nd-booking-avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px var(--nd-brand-violet-soft)}.nd-booking-kicker{margin:0 0 4px;font-size:13px;color:var(--nd-brand-sky);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.nd-booking-title{margin:0;font-size:22px;color:#2f2850}.nd-booking-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin-bottom:20px;background:var(--nd-brand-violet-soft);border-radius:14px;border:1px solid rgba(155,141,224,.25)}.nd-booking-selection__value{min-width:0}.nd-booking-selection__date{font-weight:600;color:#2f2850}.nd-booking-selection__time{color:#6b6580}.nd-booking-selection__time:before{content:"·";margin:0 6px}.nd-booking-selection__change{flex-shrink:0;border:0;background:transparent;padding:4px 0;font:inherit;font-weight:600;color:var(--nd-brand-violet);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.nd-booking-selection__change:hover{color:#8879d4}.nd-booking-modal button.nd-booking-selection__change:hover,.nd-booking-modal button.nd-booking-selection__change:focus-visible{background:transparent;color:#8879d4}.nd-booking-section h3{margin:0 0 12px;font-size:16px;color:var(--nd-brand-violet)}.nd-booking-dates-wrap{position:relative;margin-bottom:12px}.nd-booking-dates-wrap.is-scrollable:after{content:"";position:absolute;right:0;top:0;bottom:8px;width:32px;background:linear-gradient(to right,transparent,#fff);pointer-events:none;transition:opacity .2s ease}.nd-booking-dates-wrap.is-scrollable.is-at-end:after{opacity:0}.nd-booking-dates{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}.nd-booking-dates::-webkit-scrollbar{display:none}.nd-booking-date,.nd-booking-slot{border:1px solid rgba(155,141,224,.45);background:#fff;color:#3d3658;border-radius:999px;padding:10px 14px;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.nd-booking-date--compact{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;min-height:58px;padding:8px 6px;border-radius:12px;flex-shrink:0;scroll-snap-align:center}.nd-booking-date__day{font-size:18px;font-weight:600;line-height:1.1}.nd-booking-date__weekday{font-size:12px;line-height:1.2;opacity:.8;text-transform:lowercase}.nd-booking-date.is-active .nd-booking-date__weekday{opacity:.9}.nd-booking-date.is-active{border-color:var(--nd-brand-violet);background:var(--nd-brand-violet);color:#fff}.nd-booking-modal button.nd-booking-date:not(.is-active):hover,.nd-booking-modal button.nd-booking-date:not(.is-active):focus-visible{border-color:var(--nd-brand-violet);background:var(--nd-brand-violet-soft);color:#2f2850}.nd-booking-modal button.nd-booking-date.is-active:hover,.nd-booking-modal button.nd-booking-date.is-active:focus-visible{border-color:var(--nd-brand-violet);background:#8879d4;color:#fff}.nd-booking-slots-heading{margin:0 0 12px;font-size:15px;font-weight:600;color:#2f2850}.nd-booking-slot:hover{border-color:var(--nd-brand-violet);background:var(--nd-brand-violet-soft);color:#2f2850}.nd-booking-slots{display:flex;flex-wrap:wrap;gap:8px}.nd-booking-slot-group+.nd-booking-slot-group{margin-top:16px}.nd-booking-field{display:grid;gap:6px;margin-bottom:12px}.nd-booking-field input,.nd-booking-field textarea{width:100%;border:1px solid rgba(155,141,224,.35);border-radius:12px;padding:12px 14px;font:inherit}.nd-booking-field input:focus,.nd-booking-field textarea:focus{outline:none;border-color:var(--nd-brand-violet);box-shadow:0 0 0 3px #9b8de033}.nd-booking-consent{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-size:14px}.nd-booking-consent a{color:var(--nd-brand-violet)}.nd-booking-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.nd-booking-actions--single{justify-content:stretch}.nd-booking-actions--single .nd-booking-primary{width:100%}.nd-booking-primary,.nd-booking-secondary{border-radius:12px;padding:12px 18px;font:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.nd-booking-primary{border:0;background:var(--nd-brand-violet);color:#fff}.nd-booking-primary:hover:not(:disabled){background:#8879d4}.nd-booking-secondary{border:1px solid rgba(155,141,224,.45);background:#fff;color:var(--nd-brand-violet)}.nd-booking-secondary:hover{border-color:var(--nd-brand-violet);background:var(--nd-brand-violet-soft);color:#2f2850}.nd-booking-loading,.nd-booking-empty{color:#6b6580}.nd-booking-error{color:#b91c1c}.nd-booking-result{text-align:center}.nd-booking-submitting{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;padding:24px 0;text-align:center}.nd-booking-submitting__spinner{width:40px;height:40px;border:3px solid var(--nd-brand-violet-soft);border-top-color:var(--nd-brand-violet);border-radius:50%;animation:nd-booking-spin .9s linear infinite;margin-bottom:20px}@keyframes nd-booking-spin{to{transform:rotate(360deg)}}.nd-booking-submitting__phrase{margin:0;font-size:17px;font-weight:600;color:#2f2850;opacity:0;transition:opacity .35s ease}.nd-booking-submitting__phrase.is-visible{opacity:1}.nd-booking-result--success{padding:8px 0 4px}.nd-booking-result__title{margin:0 0 20px;font-size:24px;font-weight:700;color:#2f2850;line-height:1.2}.nd-booking-appointment{padding:20px 24px;margin:0 auto 20px;max-width:320px;background:var(--nd-brand-violet-soft);border-radius:14px;border:1px solid rgba(155,141,224,.25)}.nd-booking-appointment__label{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--nd-brand-violet);text-transform:uppercase;letter-spacing:.04em}.nd-booking-appointment__date{margin:0 0 4px;font-size:15px;color:#6b6580}.nd-booking-appointment__time{margin:0;font-size:28px;font-weight:700;color:#2f2850;line-height:1.2}.nd-booking-result__text{max-width:400px;margin:0 auto 24px;text-align:left}.nd-booking-result__body,.nd-booking-result__closing{margin:0;font-size:15px;color:#6b6580;line-height:1.55}.nd-booking-result__body{margin-bottom:16px}.nd-booking-result__warning{margin:0 0 16px;padding:12px 14px;font-size:14px;font-weight:500;line-height:1.45;color:#7a4a12;background:#fff8e8;border:1px solid rgba(255,150,207,.45);border-radius:12px}.nd-booking-result__closing{font-weight:500;color:#2f2850}.nd-booking-result__phone{margin:16px 0 0;font-size:16px;font-weight:600;color:#2f2850;line-height:1.45}.nd-booking-result--success .nd-booking-primary{margin-top:8px}.nd-booking-result .nd-booking-primary{margin-top:4px}.nd-booking-clinics{margin-bottom:16px}.nd-booking-clinics__hint{margin:0 0 10px;font-size:14px;color:#6b6580}.nd-booking-clinics__list{display:flex;flex-wrap:wrap;gap:8px}.nd-booking-clinic{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(155,141,224,.45);border-radius:999px;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.nd-booking-clinic.is-active{border-color:var(--nd-brand-violet);background:var(--nd-brand-violet-soft)}.nd-booking-clinic input{margin:0}.nd-booking-selection__clinic{display:block;font-size:14px;color:#6b6580;margin-bottom:4px}.nd-booking-appointment__clinic{margin:0 0 8px;font-size:15px;font-weight:600;color:#3d3658}
