.nkz-sb-wrap { max-width: 560px; margin: 0 auto; font-family: inherit; }
.nkz-sb-title { margin: 0 0 .5em; font-size: 1.4em; }
.nkz-sb-intro { margin: 0 0 1em; }
.nkz-sb-form { display: flex; flex-direction: column; gap: 1em; }
.nkz-sb-field { display: flex; flex-direction: column; gap: .35em; }
.nkz-sb-field span { font-weight: 600; }
.nkz-sb-field select,
.nkz-sb-field input { padding: .55em .7em; font-size: 1em; border: 1px solid #ccc; border-radius: 4px; width: 100%; box-sizing: border-box; }
.nkz-sb-submit,
.nkz-sb-wrap a.nkz-sb-submit { display: inline-block; padding: .8em 1.4em; background: #222 !important; color: #fff !important; border: 0; border-radius: 4px; font-size: 1em; cursor: pointer; text-decoration: none; line-height: 1.2; transition: background-color .15s ease, transform .05s ease; }
.nkz-sb-submit:hover,
.nkz-sb-submit:focus,
.nkz-sb-wrap a.nkz-sb-submit:hover,
.nkz-sb-wrap a.nkz-sb-submit:focus { background: #000 !important; color: #fff !important; outline: 2px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 4px #222; }
.nkz-sb-submit:active { transform: translateY(1px); }
.nkz-sb-submit:visited,
.nkz-sb-wrap a.nkz-sb-submit:visited { color: #fff !important; }
.nkz-sb-refresh { margin-top: .5em; }
.nkz-sb-notice { padding: .8em 1em; border-radius: 4px; margin-bottom: 1em; }
.nkz-sb-success { background: #e6f6ea; color: #1e6b34; border: 1px solid #b6e0c1; }
.nkz-sb-error { background: #fbeaea; color: #8a1f1f; border: 1px solid #e9b6b6; }
.nkz-sb-cancellation { color: #666; }
.nkz-sb-confirmation { border: 1px solid #cfe5d6; background: #f3faf5; border-radius: 8px; padding: 1.5em; margin-bottom: 1.5em; text-align: center; }
.nkz-sb-confirmation__icon { width: 48px; height: 48px; line-height: 48px; background: #2e7d4c; color: #fff; border-radius: 50%; font-size: 1.6em; margin: 0 auto .6em; }
.nkz-sb-confirmation__title { margin: 0 0 .8em; font-size: 1.25em; color: #1e6b34; }
.nkz-sb-confirmation__recap { display: grid; grid-template-columns: auto 1fr; gap: .35em 1em; max-width: 320px; margin: 0 auto 1.2em; text-align: left; }
.nkz-sb-confirmation__recap dt { font-weight: 600; color: #555; }
.nkz-sb-confirmation__recap dd { margin: 0; }
.nkz-sb-confirmation__actions { display: flex; flex-direction: column; gap: .6em; align-items: center; }
.nkz-sb-confirmation__actions .nkz-sb-submit { display: inline-block; text-decoration: none; }
.nkz-sb-link { color: #666; font-size: .9em; text-decoration: underline; }
.nkz-sb-field select option[disabled] { color: #aaa; }

/* Date chips */
.nkz-sb-field--dates .nkz-sb-field__label { display: block; font-weight: 600; margin-bottom: .35em; }
.nkz-sb-dates { display: flex; gap: .5em; overflow-x: auto; padding-bottom: .25em; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.nkz-sb-dates::-webkit-scrollbar { height: 6px; }
.nkz-sb-dates::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }
.nkz-sb-date-chip { position: relative; flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; padding: .55em .8em .65em; min-width: 64px; border: 1px solid #ccc; border-radius: 8px; background: #fff; cursor: pointer; transition: border-color .15s, background-color .15s; }
.nkz-sb-date-chip input { position: absolute; opacity: 0; pointer-events: none; }
.nkz-sb-date-chip:hover { border-color: #222; background: #f6f6f6; }
.nkz-sb-date-chip:has(input:checked) { background: #222; color: #fff; border-color: #222; }
.nkz-sb-date-chip:has(input:focus-visible) { outline: 2px solid #222; outline-offset: 2px; }
.nkz-sb-date-chip__wd { font-size: .72em; text-transform: uppercase; letter-spacing: .05em; opacity: .7; }
.nkz-sb-date-chip__day { font-size: 1.3em; font-weight: 700; line-height: 1; margin: .1em 0; }
.nkz-sb-date-chip__mon { font-size: .72em; opacity: .7; }
.nkz-sb-date-chip__dot { position: absolute; top: 6px; right: 6px; width: 8px; height: 8px; border-radius: 50%; background: #ccc; }
.nkz-sb-date-chip--free .nkz-sb-date-chip__dot { background: #2e7d4c; }
.nkz-sb-date-chip--partial .nkz-sb-date-chip__dot { background: #d68a2a; }
.nkz-sb-date-chip--full .nkz-sb-date-chip__dot { background: #c1392b; }
.nkz-sb-date-chip--disabled { cursor: not-allowed; opacity: .55; background: #f5f5f5; }
.nkz-sb-date-chip--disabled:hover { border-color: #ccc; background: #f5f5f5; }
.nkz-sb-date-chip--disabled .nkz-sb-date-chip__day { text-decoration: line-through; }

/* Number stepper */
.nkz-sb-field--party .nkz-sb-field__label { display: block; font-weight: 600; margin-bottom: .35em; }
.nkz-sb-stepper { display: inline-flex; align-items: stretch; border: 1px solid #ccc; border-radius: 8px; overflow: hidden; background: #fff !important; width: max-content; box-shadow: none !important; }
.nkz-sb-stepper__btn,
.nkz-sb-stepper button.nkz-sb-stepper__btn { width: 38px !important; height: 38px !important; min-width: 0 !important; padding: 0 !important; border: 0 !important; background: #f3f3f3 !important; color: #222 !important; font-size: 1.2em !important; line-height: 1 !important; font-weight: 600 !important; cursor: pointer; border-radius: 0 !important; box-shadow: none !important; text-transform: none !important; letter-spacing: normal !important; transition: background-color .15s, color .15s; }
.nkz-sb-stepper__btn:hover:not(:disabled),
.nkz-sb-stepper button.nkz-sb-stepper__btn:hover:not(:disabled),
.nkz-sb-stepper__btn:focus:not(:disabled),
.nkz-sb-stepper button.nkz-sb-stepper__btn:focus:not(:disabled) { background: #e8e8e8 !important; color: #222 !important; outline: none; }
.nkz-sb-stepper__btn:active,
.nkz-sb-stepper button.nkz-sb-stepper__btn:active { background: #ddd !important; color: #222 !important; }
.nkz-sb-stepper__btn:disabled,
.nkz-sb-stepper button.nkz-sb-stepper__btn:disabled { color: #bbb !important; cursor: not-allowed; background: #f3f3f3 !important; }
.nkz-sb-stepper__input { width: 48px; height: 38px; border: 0; border-left: 1px solid #e5e5e5; border-right: 1px solid #e5e5e5; text-align: center; font-size: 1em; font-weight: 600; background: #fff; color: #222; -moz-appearance: textfield; }
.nkz-sb-stepper__input::-webkit-outer-spin-button,
.nkz-sb-stepper__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Cancellation accordion */
.nkz-sb-cancellation-details { font-size: .9em; color: #666; }
.nkz-sb-cancellation-details summary { cursor: pointer; padding: .5em 0; user-select: none; }
.nkz-sb-cancellation-details summary:hover { color: #222; }
.nkz-sb-cancellation-details p { margin: .25em 0 .75em; padding: .75em 1em; background: #f7f7f7; border-radius: 6px; }

/* Slot button grid */
.nkz-sb-field--slots .nkz-sb-field__label { display: block; font-weight: 600; margin-bottom: .35em; }
.nkz-sb-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .5em; }
.nkz-sb-slots-empty { color: #888; margin: 0; }
.nkz-sb-slot { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: .8em .6em; border: 1px solid #ccc; border-radius: 6px; background: #fff; cursor: pointer; transition: border-color .15s ease, background-color .15s ease; }
.nkz-sb-slot input { position: absolute; opacity: 0; pointer-events: none; }
.nkz-sb-slot:hover:not(.nkz-sb-slot--occupied) { border-color: #222; background: #f6f6f6; }
.nkz-sb-slot:has(input:checked) { background: #222; color: #fff; border-color: #222; }
.nkz-sb-slot:has(input:focus-visible) { outline: 2px solid #222; outline-offset: 2px; }
.nkz-sb-slot__time { font-weight: 600; font-size: .95em; }
.nkz-sb-slot__badge { font-size: .75em; color: #888; margin-top: .25em; }
.nkz-sb-slot--occupied { background: #f5f5f5; color: #999; cursor: not-allowed; }

.nkz-sb-field--gdpr { display: flex !important; flex-direction: row !important; align-items: center !important; gap: .6em; padding: .75em 1em; background: #f7f7f7; border-radius: 6px; }
.nkz-sb-field--gdpr input[type="checkbox"] { flex: 0 0 auto; width: 18px; height: 18px; margin: 0; cursor: pointer; }
.nkz-sb-field--gdpr > span { flex: 1 1 auto; font-size: .92em; line-height: 1.4; }
.nkz-sb-field--gdpr a { text-decoration: underline; color: inherit; }
@media (min-width: 640px) {
	.nkz-sb-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1em 1.2em; align-items: start; }
	.nkz-sb-field--dates,
	.nkz-sb-field--slots,
	.nkz-sb-field--gdpr,
	.nkz-sb-submit,
	.nkz-sb-cancellation,
	.nkz-sb-cancellation-details { grid-column: 1 / -1; }
	.nkz-sb-submit { justify-self: start; }
}
