.sbk-booking {
    max-width: 680px;
    padding: 24px;
    border: 1px solid #dcdcde;
    border-radius: 10px;
    background: #fff;
}

.sbk-step,
.sbk-form {
    margin-bottom: 24px;
}

.sbk-booking label,
.sbk-booking strong {
    display: block;
    margin-bottom: 8px;
}

.sbk-booking input[type="date"],
.sbk-booking input[type="text"],
.sbk-booking input[type="email"],
.sbk-booking input[type="tel"],
.sbk-booking input[type="number"],
.sbk-booking textarea,
.sbk-booking select {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid #8c8f94;
    border-radius: 5px;
    font: inherit;
}

.sbk-booking textarea {
    min-height: 110px;
    resize: vertical;
}

.sbk-field {
    margin-top: 16px;
}

.sbk-help {
    margin: 7px 0 0;
    color: #646970;
    font-size: 0.92em;
}

.sbk-times {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.sbk-time,
.sbk-submit {
    padding: 10px 16px;
    border: 1px solid #2271b1;
    border-radius: 5px;
    background: #fff;
    color: #2271b1;
    cursor: pointer;
    font: inherit;
}

.sbk-time:hover,
.sbk-time.is-selected,
.sbk-submit {
    background: #2271b1;
    color: #fff;
}

.sbk-submit {
    margin-top: 18px;
}

.sbk-submit[disabled] {
    opacity: 0.6;
    cursor: wait;
}

.sbk-terms label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.sbk-terms input {
    margin-top: 4px;
}

.sbk-message {
    margin-top: 14px;
    font-weight: 600;
}

.sbk-message.is-success {
    color: #008a20;
}

.sbk-message.is-error {
    color: #b32d2e;
}

@media (max-width: 600px) {
    .sbk-booking {
        padding: 18px;
    }

    .sbk-time {
        flex: 1 1 calc(50% - 10px);
    }
}


.sbk-date-message {
    margin-top: 8px;
    font-weight: 600;
}

.sbk-date-message.is-error {
    color: #b32d2e;
}

.sbk-date-message {
    margin-top: 10px;
    font-weight: 600;
}
.sbk-date-message.is-success { color: #008a20; }
.sbk-date-message.is-error { color: #b32d2e; }
.sbk-date-message.is-warning { color: #996800; }


/* Eigen kalender */
.sbk-calendar { margin-top: 12px; width: 100%; max-width: 100%; box-sizing: border-box; border: 1px solid #dcdcde; border-radius: 8px; padding: 14px; background: #fff; }
.sbk-calendar-head { display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; margin-bottom: 10px; }
.sbk-calendar-head strong { margin: 0; text-align: center; text-transform: capitalize; }
.sbk-cal-prev, .sbk-cal-next { border: 0; background: transparent; font-size: 30px; line-height: 1; cursor: pointer; padding: 4px; }
.sbk-cal-prev:disabled, .sbk-cal-next:disabled { opacity: .25; cursor: default; }
.sbk-cal-weekdays, .sbk-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(34px, 1fr)); gap: 5px; }
.sbk-cal-weekdays span { text-align: center; font-size: 13px; font-weight: 600; padding: 5px 0; }
.sbk-cal-day { min-height: 42px; border: 1px solid #dcdcde; border-radius: 5px; background: #fff; color: #1d2327; cursor: pointer; font: inherit; }
.sbk-cal-day:not(:disabled):hover { border-color: #2271b1; box-shadow: inset 0 0 0 1px #2271b1; }
.sbk-cal-day.is-selected { background: #2271b1; border-color: #2271b1; color: #fff; font-weight: 700; }
.sbk-cal-day.is-closed { background: #eceff1; border-color: #e0e3e5; color: #8c8f94; cursor: not-allowed; }
.sbk-cal-day.is-booked { background: #f8d7da; border-color: #e6a7ad; color: #9f1c25; font-weight: 700; cursor: not-allowed; }
.sbk-cal-day.is-other-month { opacity: .45; }
.sbk-cal-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; color: #646970; font-size: 13px; }
.sbk-cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.sbk-cal-legend i { width: 15px; height: 15px; display: inline-block; border-radius: 3px; border: 1px solid #dcdcde; }
.sbk-cal-legend i.is-closed { background: #eceff1; }
.sbk-cal-legend i.is-booked { background: #f8d7da; border-color: #e6a7ad; }
@media (max-width: 480px) { .sbk-calendar { padding: 10px; } .sbk-cal-day { min-height: 38px; } .sbk-cal-weekdays, .sbk-cal-grid { gap: 3px; } }
