
/* Bricks Builder and general page-builder compatibility. */
.rtbs-bricks-calendar,
.brxe-rtbs-booking-calendar,
.brxe-rtbs-booking-calendar > .rtbs-bricks-calendar {
    display: block;
    width: 100%;
    max-width: none;
    min-width: 0;
    align-self: stretch;
}

.rtbs-app table,
.rtbs-app button,
.rtbs-app input,
.rtbs-app select,
.rtbs-app textarea {
    margin: 0;
    box-shadow: none;
    text-transform: none;
}

.rtbs-app button,
.rtbs-app input,
.rtbs-app select,
.rtbs-app textarea {
    letter-spacing: normal;
}

.rtbs-app img {
    max-width: 100%;
}

.rtbs-toolbar--without-legend {
    justify-content: flex-start;
}

.rtbs-app {
    --rtbs-header-bg: #24292f;
    --rtbs-page-bg: #eef1f4;
    --rtbs-accent: #2f6f9f;
    --rtbs-free-bg: #f8fafb;
    --rtbs-occupied-bg: #5c6670;
    --rtbs-text: #20262c;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    box-sizing: border-box;
    color: var(--rtbs-text);
    background: var(--rtbs-page-bg);
    border: 1px solid #d7dde3;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(18, 28, 38, 0.08);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.rtbs-app *,
.rtbs-app *::before,
.rtbs-app *::after {
    box-sizing: border-box;
}

.rtbs-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 92px;
    padding: 20px 28px;
    color: #fff;
    background: var(--rtbs-header-bg);
}

.rtbs-header__brand,
.rtbs-header__contact {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.rtbs-header__title {
    font-size: clamp(1.25rem, 2.5vw, 1.9rem);
    font-weight: 700;
}

.rtbs-header__subtitle {
    padding: 4px 8px;
    color: #d7dde3;
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 4px;
    font-size: 0.8rem;
}

.rtbs-header__contact a {
    color: #fff;
    text-decoration: none;
    font-weight: 600;
}

.rtbs-header__contact a:hover,
.rtbs-header__contact a:focus-visible {
    text-decoration: underline;
}

.rtbs-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 20px;
    background: #fff;
    border-bottom: 1px solid #d7dde3;
}

.rtbs-toolbar__nav,
.rtbs-legend {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.rtbs-date-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    font-weight: 600;
}

.rtbs-date-input,
.rtbs-field input,
.rtbs-field select,
.rtbs-field textarea {
    width: 100%;
    min-height: 42px;
    padding: 9px 11px;
    color: var(--rtbs-text);
    background: #fff;
    border: 1px solid #aeb8c2;
    border-radius: 4px;
    font: inherit;
}

.rtbs-date-input {
    width: auto;
}

.rtbs-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 15px;
    border: 1px solid transparent;
    border-radius: 4px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.rtbs-button--secondary {
    color: var(--rtbs-text);
    background: #fff;
    border-color: #aeb8c2;
}

.rtbs-button--primary {
    width: 100%;
    color: #fff;
    background: var(--rtbs-accent);
}

.rtbs-button:hover:not(:disabled) {
    filter: brightness(0.95);
}

.rtbs-button:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.rtbs-button:focus-visible,
.rtbs-slot-button:focus-visible,
.rtbs-modal__close:focus-visible,
.rtbs-date-input:focus-visible,
.rtbs-field input:focus-visible,
.rtbs-field select:focus-visible,
.rtbs-field textarea:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--rtbs-accent) 55%, #fff);
    outline-offset: 2px;
}

.rtbs-legend {
    font-size: 0.82rem;
}

.rtbs-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.rtbs-legend__marker {
    width: 14px;
    height: 14px;
    border: 1px solid #aeb8c2;
    border-radius: 2px;
}

.rtbs-legend__marker--free { background: var(--rtbs-free-bg); }
.rtbs-legend__marker--occupied { background: var(--rtbs-occupied-bg); }
.rtbs-legend__marker--closed { background: repeating-linear-gradient(135deg, #eef1f4 0 5px, #d7dde3 5px 10px); }

.rtbs-notice {
    margin: 16px 20px 0;
    padding: 12px 14px;
    border: 1px solid;
    border-radius: 4px;
    background: #fff;
}

.rtbs-notice--success {
    color: #155724;
    border-color: #8fd19e;
    background: #eaf7ed;
}

.rtbs-notice--error {
    color: #842029;
    border-color: #f1aeb5;
    background: #f8d7da;
}

.rtbs-calendar {
    min-height: 280px;
    padding: 20px;
}

.rtbs-table-wrap {
    width: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid #cfd6dd;
    border-radius: 6px;
}

.rtbs-grid {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: clamp(0.66rem, 0.78vw, 0.82rem);
}

.rtbs-grid__time-col {
    width: 86px;
}

.rtbs-grid th,
.rtbs-grid td {
    min-width: 0;
    border: 1px solid #d7dde3;
    text-align: center;
    vertical-align: middle;
}

.rtbs-grid thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.rtbs-grid__time-head {
    width: 86px;
    padding: 8px 4px;
    background: var(--rtbs-time-background, #fff) !important;
    font-size: 0.82rem;
}

.rtbs-grid__day-head {
    padding: 9px 5px;
    color: #fff;
    background: var(--rtbs-day-background, var(--rtbs-accent)) !important;
    border-left-width: 3px !important;
}

.rtbs-grid__day-head strong,
.rtbs-grid__day-head span {
    display: block;
}

.rtbs-grid__day-head strong {
    font-size: 1.02em;
    line-height: 1.2;
}

.rtbs-grid__day-head span {
    margin-top: 2px;
    font-size: 0.9em;
    font-weight: 500;
}

.rtbs-grid__resource-head {
    padding: 7px 4px;
}

.rtbs-grid__day-start {
    border-left-width: 3px !important;
    border-left-color: var(--rtbs-color-border, var(--rtbs-border, #d7dde3)) !important;
}

.rtbs-grid__time-cell {
    width: 86px;
    padding: 6px 3px;
    background: #f2f4f6;
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
    white-space: nowrap;
}

.rtbs-grid__time-cell strong {
    display: inline-block;
    font-size: 1.08em;
    line-height: 1.1;
}

.rtbs-grid__time-cell span {
    display: inline-block;
    margin-top: 2px;
    color: #5c6670;
    font-size: 0.88em;
    font-weight: 400;
}

.rtbs-resource-name {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
    hyphens: auto;
    font-weight: 700;
    line-height: 1.18;
}

.rtbs-grid__resource-head small {
    display: block;
    margin-top: 3px;
    overflow-wrap: anywhere;
    color: #5c6670;
    font-size: 0.88em;
    font-weight: 400;
    line-height: 1.15;
}

.rtbs-slot {
    height: 42px;
    padding: 0;
}

.rtbs-slot--free {
    background: var(--rtbs-free-bg);
}

.rtbs-slot--occupied {
    color: #fff;
    background: var(--rtbs-occupied-bg);
    font-weight: 700;
}

.rtbs-slot--closed {
    color: #7a858f;
    background: repeating-linear-gradient(135deg, #eef1f4 0 5px, #d7dde3 5px 10px);
}

.rtbs-slot-button {
    width: 100%;
    height: 100%;
    min-height: 42px;
    padding: 3px;
    overflow-wrap: anywhere;
    color: var(--rtbs-text);
    background: transparent;
    border: 0;
    font: inherit;
    font-weight: 700;
    line-height: 1.1;
    cursor: pointer;
}

.rtbs-slot-button:hover {
    color: #fff;
    background: var(--rtbs-accent);
}

.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.rtbs-loading,
.rtbs-empty {
    padding: 40px 20px;
    text-align: center;
    background: #fff;
    border: 1px solid #d7dde3;
    border-radius: 6px;
}

.rtbs-modal[hidden] { display: none; }

.rtbs-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: grid;
    place-items: center;
    padding: 20px;
}

.rtbs-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 31, 0.72);
}

.rtbs-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 580px);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    padding: 24px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 24px 80px rgba(0,0,0,0.28);
}

.rtbs-modal__dialog h2 {
    margin: 0 44px 8px 0;
    font-size: 1.5rem;
}

.rtbs-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 38px;
    height: 38px;
    border: 1px solid #aeb8c2;
    border-radius: 50%;
    background: #fff;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.rtbs-selection-summary {
    margin-bottom: 18px;
    padding: 10px 12px;
    background: #eef4f8;
    border-left: 4px solid var(--rtbs-accent);
}

.rtbs-field {
    margin-bottom: 14px;
}

.rtbs-field label {
    display: block;
    margin-bottom: 5px;
    font-weight: 700;
}

.rtbs-price-box,
.rtbs-payment-box {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin: 14px 0;
    padding: 12px;
    border: 1px solid #cfd6dd;
    border-radius: 4px;
    background: #f8fafb;
}

.rtbs-price-box strong {
    white-space: nowrap;
    font-size: 1.15rem;
}

.rtbs-payment-box {
    flex-direction: column;
    gap: 4px;
}

.rtbs-checkbox {
    display: grid;
    grid-template-columns: 20px 1fr;
    gap: 10px;
    align-items: start;
    margin: 16px 0;
}

.rtbs-checkbox input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.rtbs-form-error {
    margin-bottom: 14px;
    padding: 10px 12px;
    color: #842029;
    background: #f8d7da;
    border: 1px solid #f1aeb5;
    border-radius: 4px;
}

.rtbs-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

body.rtbs-modal-open {
    overflow: hidden;
}

@media (max-width: 780px) {
    .rtbs-header,
    .rtbs-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .rtbs-header {
        padding: 18px;
    }

    .rtbs-toolbar {
        padding: 12px;
    }

    .rtbs-calendar {
        padding: 12px;
    }

    .rtbs-grid {
        font-size: 0.62rem;
    }

    .rtbs-grid__time-col,
    .rtbs-grid__time-head,
    .rtbs-grid__time-cell {
        width: 62px;
    }

    .rtbs-grid__day-head,
    .rtbs-grid__resource-head {
        padding: 6px 2px;
    }

    .rtbs-grid__time-cell {
        padding: 5px 2px;
        white-space: normal;
    }

    .rtbs-slot,
    .rtbs-slot-button {
        min-height: 38px;
        height: 38px;
    }

    .rtbs-date-label {
        width: 100%;
        justify-content: space-between;
    }

    .rtbs-date-input {
        flex: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rtbs-app *,
    .rtbs-app *::before,
    .rtbs-app *::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}

/* Version 0.1.3: drei Kalendertage horizontal, gemeinsame Zeitspalte ganz links */

/* Version 0.1.1: Ressourcenbild und buchbare Extras */
.rtbs-resource-visual {
    margin: -24px -24px 20px;
    overflow: hidden;
    border-radius: 8px 8px 0 0;
    background: #eef1f4;
}

.rtbs-resource-visual[hidden] {
    display: none;
}

.rtbs-resource-image {
    display: block;
    width: 100%;
    max-height: 280px;
    object-fit: cover;
}

.rtbs-resource-description {
    margin: 0 0 14px;
    color: #4b5560;
}

.rtbs-extras-section {
    margin: 18px 0;
    padding-top: 16px;
    border-top: 1px solid #d7dde3;
}

.rtbs-extras-section[hidden] {
    display: none;
}

.rtbs-extras-section h3 {
    margin: 0 0 10px;
    font-size: 1.05rem;
}

.rtbs-extras-list {
    display: grid;
    gap: 10px;
}

.rtbs-extra-option {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 12px;
    border: 1px solid #cfd6dd;
    border-radius: 5px;
    background: #f8fafb;
}

.rtbs-extra-option__choice {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    cursor: pointer;
}

.rtbs-extra-option__choice input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.rtbs-extra-option__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 12px;
}

.rtbs-extra-option__content strong {
    min-width: 0;
}

.rtbs-extra-option__content > span {
    white-space: nowrap;
    font-weight: 700;
}

.rtbs-extra-option__content small {
    grid-column: 1 / -1;
    color: #5c6670;
}

.rtbs-extra-option__quantity {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.86rem;
    font-weight: 700;
}

.rtbs-extra-option__quantity select {
    min-width: 64px;
}

.rtbs-price-box > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.rtbs-price-details {
    color: #5c6670;
    font-size: 0.78rem;
}

@media (max-width: 580px) {
    .rtbs-calendar {
        padding: 8px;
    }

    .rtbs-grid {
        font-size: 0.56rem;
    }

    .rtbs-grid__time-col,
    .rtbs-grid__time-head,
    .rtbs-grid__time-cell {
        width: 54px;
    }

    .rtbs-grid__day-head,
    .rtbs-grid__resource-head {
        padding: 5px 1px;
    }

    .rtbs-grid__resource-head small {
        display: none;
    }

    .rtbs-grid__time-cell span {
        font-size: 0.82em;
    }

    .rtbs-slot,
    .rtbs-slot-button {
        min-height: 36px;
        height: 36px;
    }

    .rtbs-slot-button {
        padding: 0 1px;
        font-size: 0.96em;
    }
}

@media (max-width: 580px) {
    .rtbs-extra-option {
        grid-template-columns: 1fr;
    }

    .rtbs-extra-option__quantity {
        padding-left: 30px;
    }
}

/* Version 0.2.0: Sperrzeiten, Veranstaltungen, Kapazität und Teilnehmer */
.rtbs-app {
    --rtbs-blocked-bg: #b45309;
    --rtbs-event-bg: #2563eb;
}

.rtbs-legend__marker--blocked { background: var(--rtbs-blocked-bg); }
.rtbs-legend__marker--event { background: var(--rtbs-event-bg); }

.rtbs-slot--blocked {
    color: #fff;
    background: var(--rtbs-blocked-bg);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.rtbs-slot--event {
    background: color-mix(in srgb, var(--rtbs-event-bg) 18%, var(--rtbs-free-bg));
    box-shadow: inset 0 3px 0 var(--rtbs-event-bg);
}

.rtbs-slot--readonly {
    color: #4b5563;
    background: #e5e7eb;
    font-weight: 600;
}

.rtbs-form-grid-public {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.rtbs-capacity-note {
    margin: -4px 0 14px;
    color: #5b6570;
    font-size: .88rem;
}

@media (max-width: 620px) {
    .rtbs-form-grid-public {
        grid-template-columns: 1fr;
    }
}
.rtbs-slot--continuation {
    color: #9aa3ad;
    background: #f1f3f5;
}

/* Version 0.3.0: erweitertes Designsystem und Builder-Kompatibilität. */
.rtbs-elementor-calendar,
.rtbs-brizy-calendar,
.widget_rtbs_booking_calendar,
.widget_rtbs_booking_calendar .rtbs-widget-calendar {
    display: block;
    width: 100%;
    max-width: none;
    min-width: 0;
}

.rtbs-app {
    --rtbs-header-text: #fff;
    --rtbs-surface-bg: #fff;
    --rtbs-toolbar-bg: #fff;
    --rtbs-modal-bg: #fff;
    --rtbs-button-text: #fff;
    --rtbs-muted: #5c6670;
    --rtbs-border: #d7dde3;
    --rtbs-free-text: #20262c;
    --rtbs-occupied-text: #fff;
    --rtbs-blocked-text: #fff;
    --rtbs-event-text: #20262c;
    --rtbs-font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --rtbs-font-base: 16px;
    --rtbs-font-small: 13px;
    --rtbs-font-heading: 28px;
    --rtbs-line-height: 1.5;
    --rtbs-radius: 10px;
    --rtbs-cell-height: 48px;
    color: var(--rtbs-text);
    background: var(--rtbs-page-bg);
    border-color: var(--rtbs-border);
    border-radius: var(--rtbs-radius);
    font-family: var(--rtbs-font-family);
    font-size: var(--rtbs-font-base);
    line-height: var(--rtbs-line-height);
}

.rtbs-header {
    color: var(--rtbs-header-text);
    background: var(--rtbs-header-bg);
}

.rtbs-header__title {
    font-size: var(--rtbs-font-heading);
}

.rtbs-header__subtitle,
.rtbs-capacity-note,
.rtbs-price-details,
.rtbs-extra-option__content small,
.rtbs-resource-description,
.rtbs-grid__resource-head small,
.rtbs-grid__time-cell span {
    color: var(--rtbs-muted);
    font-size: var(--rtbs-font-small);
}

.rtbs-header__contact a {
    color: var(--rtbs-header-text);
}

.rtbs-toolbar {
    background: var(--rtbs-toolbar-bg);
    border-color: var(--rtbs-border);
}

.rtbs-calendar,
.rtbs-empty,
.rtbs-table-wrap,
.rtbs-grid,
.rtbs-extra-option,
.rtbs-price-box {
    background-color: var(--rtbs-surface-bg);
}

.rtbs-grid,
.rtbs-grid th,
.rtbs-grid td,
.rtbs-toolbar,
.rtbs-extra-option,
.rtbs-price-box,
.rtbs-selection-summary,
.rtbs-field input,
.rtbs-field select,
.rtbs-field textarea,
.rtbs-date-input,
.rtbs-button--secondary,
.rtbs-modal__dialog {
    border-color: var(--rtbs-border);
}

.rtbs-date-input,
.rtbs-field input,
.rtbs-field select,
.rtbs-field textarea,
.rtbs-button--secondary {
    color: var(--rtbs-text);
    background: var(--rtbs-surface-bg);
}

.rtbs-button--primary {
    color: var(--rtbs-button-text);
    background: var(--rtbs-accent);
}

.rtbs-modal__dialog {
    color: var(--rtbs-text);
    background: var(--rtbs-modal-bg);
    border-radius: var(--rtbs-radius);
}

.rtbs-modal__dialog h2,
.rtbs-extras-section h3 {
    color: var(--rtbs-text);
}

.rtbs-slot,
.rtbs-slot-button {
    min-height: var(--rtbs-cell-height);
    height: var(--rtbs-cell-height);
}

.rtbs-slot--free,
.rtbs-slot-button {
    color: var(--rtbs-free-text);
    background: var(--rtbs-free-bg);
}

.rtbs-slot--occupied {
    color: var(--rtbs-occupied-text);
    background: var(--rtbs-occupied-bg);
}

.rtbs-slot--blocked {
    color: var(--rtbs-blocked-text);
    background: var(--rtbs-blocked-bg);
}

.rtbs-slot--event {
    color: var(--rtbs-event-text);
}

.rtbs-legend__marker--free { background: var(--rtbs-free-bg); }
.rtbs-legend__marker--occupied { background: var(--rtbs-occupied-bg); }
.rtbs-legend__marker--blocked { background: var(--rtbs-blocked-bg); }
.rtbs-legend__marker--event { background: var(--rtbs-event-bg); }

@media (max-width: 580px) {
    .rtbs-slot,
    .rtbs-slot-button {
        min-height: max(36px, var(--rtbs-cell-height));
        height: max(36px, var(--rtbs-cell-height));
    }
}

/* Version 0.4.0: Serien, Gutscheine und Kundenportal */
.rtbs-series-section,
.rtbs-coupon-row {
    margin: 18px 0;
    padding: 16px;
    border: 1px solid var(--rtbs-border);
    border-radius: var(--rtbs-radius);
    background: color-mix(in srgb, var(--rtbs-surface-bg) 94%, var(--rtbs-page-bg));
}
.rtbs-series-toggle { margin: 0; font-weight: 700; }
.rtbs-series-options { margin-top: 16px; }
.rtbs-series-note,
.rtbs-extras-series-note { margin: 9px 0 0; color: var(--rtbs-muted); font-size: var(--rtbs-font-small); }
.rtbs-form-grid-public--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rtbs-weekday-options { margin-top: 14px; }
.rtbs-weekday-options > span { display: block; margin-bottom: 7px; font-weight: 700; }
.rtbs-weekday-options__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.rtbs-weekday-options__grid label { position: relative; }
.rtbs-weekday-options__grid input { position: absolute; opacity: 0; pointer-events: none; }
.rtbs-weekday-options__grid span { display: flex; min-height: 38px; align-items: center; justify-content: center; border: 1px solid var(--rtbs-border); border-radius: calc(var(--rtbs-radius) * .65); background: var(--rtbs-surface-bg); cursor: pointer; font-weight: 700; }
.rtbs-weekday-options__grid input:checked + span { border-color: var(--rtbs-accent); background: var(--rtbs-accent); color: var(--rtbs-button-text); }
.rtbs-inline-input { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.rtbs-coupon-message { display: block; min-height: 1.3em; margin-top: 6px; }
.rtbs-coupon-message--success { color: #18743a; }
.rtbs-coupon-message--error { color: #b42318; }
.rtbs-payment-box { display: grid; gap: 10px; }
.rtbs-payment-option { display: flex; gap: 10px; align-items: flex-start; padding: 11px; border: 1px solid var(--rtbs-border); border-radius: calc(var(--rtbs-radius) * .7); background: var(--rtbs-surface-bg); }
.rtbs-payment-option input { margin-top: 3px; }
.rtbs-payment-option span { display: grid; gap: 2px; }
.rtbs-payment-option small { color: var(--rtbs-muted); }

.rtbs-portal-standalone { margin: 0; background: #eef1f4; color: #20262c; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.rtbs-portal-shell { width: min(1440px, calc(100% - 32px)); margin: 36px auto; }
.rtbs-customer-portal { width: 100%; color: var(--rtbs-text, #20262c); font-family: var(--rtbs-font-family, Inter, sans-serif); }
.rtbs-portal-header { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 28px; border-radius: 14px; background: #24292f; color: #fff; }
.rtbs-portal-header h1 { margin: 3px 0; color: inherit; font-size: clamp(26px, 4vw, 42px); }
.rtbs-portal-header p { margin: 0; opacity: .75; }
.rtbs-portal-eyebrow { font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; opacity: .72; }
.rtbs-portal-header__meta { display: grid; min-width: 150px; text-align: right; }
.rtbs-portal-header__meta strong { font-size: 34px; }
.rtbs-portal-header__meta span { opacity: .76; }
.rtbs-portal-message { margin: 18px 0; padding: 14px 16px; border-radius: 8px; background: #e8f1fa; }
.rtbs-portal-message--success { background: #eaf7ed; color: #155724; }
.rtbs-portal-message--error { background: #f8d7da; color: #842029; }
.rtbs-portal-layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(300px, .8fr); gap: 24px; margin-top: 24px; align-items: start; }
.rtbs-portal-main,
.rtbs-portal-profile { padding: 22px; border: 1px solid #d7dde3; border-radius: 12px; background: #fff; box-shadow: 0 7px 24px rgba(18, 28, 38, .05); }
.rtbs-portal-main > h2,
.rtbs-portal-profile h2 { margin-top: 0; }
.rtbs-portal-booking { margin: 0 0 18px; border: 1px solid #d7dde3; border-radius: 10px; overflow: hidden; }
.rtbs-portal-booking > header { display: flex; justify-content: space-between; gap: 16px; padding: 16px 18px; background: #f8fafb; }
.rtbs-portal-booking h3 { margin: 2px 0 0; font-size: 20px; }
.rtbs-portal-booking__number { color: #5c6670; font-size: 12px; font-weight: 800; letter-spacing: .05em; }
.rtbs-portal-status { align-self: flex-start; padding: 5px 9px; border-radius: 999px; background: #e8f1fa; font-size: 12px; font-weight: 800; }
.rtbs-portal-status--cancelled { background: #f8d7da; color: #842029; }
.rtbs-portal-status--partially_cancelled { background: #fff3cd; color: #664d03; }
.rtbs-portal-status--completed { background: #eaf7ed; color: #155724; }
.rtbs-portal-booking__summary { display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 11px 18px; border-top: 1px solid #e5e9ed; border-bottom: 1px solid #e5e9ed; color: #5c6670; font-size: 13px; }
.rtbs-portal-reservations { display: grid; }
.rtbs-portal-reservation { display: flex; justify-content: space-between; gap: 18px; padding: 13px 18px; border-bottom: 1px solid #e5e9ed; }
.rtbs-portal-reservation:last-child { border-bottom: 0; }
.rtbs-portal-reservation > div:first-child { display: grid; gap: 2px; }
.rtbs-portal-reservation > div:first-child span { color: #5c6670; }
.rtbs-portal-reservation--cancelled { opacity: .58; text-decoration: line-through; }
.rtbs-portal-reservation__right { display: flex; gap: 12px; align-items: flex-start; text-align: right; }
.rtbs-portal-cancel { min-width: 170px; text-align: left; }
.rtbs-portal-cancel summary { cursor: pointer; color: #b42318; font-weight: 700; }
.rtbs-portal-cancel form { display: grid; gap: 9px; margin-top: 10px; padding: 12px; border-radius: 8px; background: #fff7f6; }
.rtbs-portal-cancel textarea { width: 100%; box-sizing: border-box; }
.rtbs-button--danger { background: #b42318; color: #fff; }
.rtbs-portal-profile { display: grid; gap: 13px; position: sticky; top: 32px; }
.rtbs-portal-profile label { display: grid; gap: 5px; font-weight: 700; }
.rtbs-portal-profile input,
.rtbs-portal-profile textarea,
.rtbs-portal-profile select { width: 100%; min-width: 0; box-sizing: border-box; padding: 10px 11px; border: 1px solid #aeb8c2; border-radius: 6px; font: inherit; }
.rtbs-portal-profile input[readonly] { background: #eef1f4; }
.rtbs-portal-profile small { color: #5c6670; font-weight: 400; }
.rtbs-portal-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rtbs-portal-empty { padding: 24px; border: 1px dashed #aeb8c2; border-radius: 8px; text-align: center; color: #5c6670; }
.rtbs-portal-history { margin-top: 24px; }
.rtbs-portal-history > summary { cursor: pointer; font-weight: 800; }
.rtbs-portal-history__content { margin-top: 14px; }

@media (max-width: 900px) {
    .rtbs-form-grid-public--three { grid-template-columns: 1fr 1fr; }
    .rtbs-portal-layout { grid-template-columns: 1fr; }
    .rtbs-portal-profile { position: static; }
}
@media (max-width: 620px) {
    .rtbs-form-grid-public--three,
    .rtbs-portal-two { grid-template-columns: 1fr; }
    .rtbs-weekday-options__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .rtbs-inline-input { grid-template-columns: 1fr; }
    .rtbs-portal-shell { width: min(100% - 20px, 1440px); margin: 10px auto; }
    .rtbs-portal-header { align-items: flex-start; padding: 20px; }
    .rtbs-portal-header__meta { min-width: 0; }
    .rtbs-portal-reservation { display: grid; }
    .rtbs-portal-reservation__right { justify-content: space-between; text-align: left; }
}

/* Version 0.5.0: Designsystem 2.0. All visible components use central tokens. */
.rtbs-app,
.rtbs-customer-portal,
.rtbs-portal-standalone {
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-font-base-desktop);
    font-weight: var(--rtbs-font-weight-normal);
    line-height: var(--rtbs-line-height);
    letter-spacing: var(--rtbs-letter-spacing);
    color: var(--rtbs-color-text);
}

.rtbs-app {
    color: var(--rtbs-color-text);
    background: var(--rtbs-color-page-bg);
    border: var(--rtbs-border-width) solid var(--rtbs-color-border);
    border-radius: var(--rtbs-radius-app);
    box-shadow: var(--rtbs-shadow-app);
}

.rtbs-app a,
.rtbs-customer-portal a {
    color: var(--rtbs-color-link);
}

.rtbs-header {
    gap: var(--rtbs-space-xl);
    min-height: var(--rtbs-header-min-height);
    padding: var(--rtbs-header-padding-y) var(--rtbs-header-padding-x);
    color: var(--rtbs-color-header-text);
    background: var(--rtbs-color-header-bg);
}

.rtbs-header__brand,
.rtbs-header__contact {
    gap: var(--rtbs-space-md);
}

.rtbs-header__title {
    color: var(--rtbs-color-header-text);
    font-family: var(--rtbs-font-heading-family);
    font-size: var(--rtbs-font-header-title-desktop);
    font-weight: var(--rtbs-font-weight-bold);
    line-height: 1.15;
}

.rtbs-header__subtitle {
    padding: var(--rtbs-space-xs) var(--rtbs-space-sm);
    color: var(--rtbs-color-header-muted);
    border: var(--rtbs-border-width) solid color-mix(in srgb, var(--rtbs-color-header-text) 28%, transparent);
    border-radius: var(--rtbs-radius-element);
    font-size: var(--rtbs-font-small-desktop);
}

.rtbs-header__contact a {
    color: var(--rtbs-color-header-text);
    font-size: var(--rtbs-font-toolbar);
    font-weight: var(--rtbs-font-weight-medium);
}

.rtbs-toolbar {
    gap: var(--rtbs-space-lg);
    padding: var(--rtbs-toolbar-padding-y) var(--rtbs-toolbar-padding-x);
    color: var(--rtbs-color-text);
    background: var(--rtbs-color-toolbar-bg);
    border-bottom: var(--rtbs-border-width) solid var(--rtbs-color-border);
}

.rtbs-toolbar__nav,
.rtbs-legend {
    gap: var(--rtbs-space-sm);
}

.rtbs-date-label,
.rtbs-legend {
    color: var(--rtbs-color-text);
    font-size: var(--rtbs-font-toolbar);
}

.rtbs-date-label {
    font-weight: var(--rtbs-font-weight-medium);
}

.rtbs-date-input,
.rtbs-field input,
.rtbs-field select,
.rtbs-field textarea,
.rtbs-portal-profile input,
.rtbs-portal-profile textarea,
.rtbs-portal-profile select {
    min-height: var(--rtbs-input-height);
    padding: var(--rtbs-input-padding-y) var(--rtbs-input-padding-x);
    color: var(--rtbs-color-input-text);
    background: var(--rtbs-color-input-bg);
    border: var(--rtbs-input-border-width) solid var(--rtbs-color-input-border);
    border-radius: var(--rtbs-radius-element);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-font-field-input);
    line-height: var(--rtbs-line-height);
}

.rtbs-field label,
.rtbs-portal-profile label {
    color: var(--rtbs-color-text);
    font-size: var(--rtbs-font-field-label);
    font-weight: var(--rtbs-font-weight-bold);
}

.rtbs-button {
    min-height: var(--rtbs-button-height);
    padding: calc(var(--rtbs-space-sm) + 1px) calc(var(--rtbs-space-md) + 1px);
    border-radius: var(--rtbs-radius-button);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-font-button);
    font-weight: var(--rtbs-font-weight-bold);
    line-height: 1.2;
}

.rtbs-button--primary {
    color: var(--rtbs-color-primary-text);
    background: var(--rtbs-color-primary-bg);
    border-color: var(--rtbs-color-primary-bg);
}

.rtbs-button--primary:hover:not(:disabled) {
    color: var(--rtbs-color-primary-text);
    background: var(--rtbs-color-primary-hover-bg);
    border-color: var(--rtbs-color-primary-hover-bg);
    filter: none;
}

.rtbs-button--secondary {
    color: var(--rtbs-color-secondary-text);
    background: var(--rtbs-color-secondary-bg);
    border-color: var(--rtbs-color-secondary-border);
}

.rtbs-button--danger {
    color: var(--rtbs-color-danger-text);
    background: var(--rtbs-color-danger-bg);
    border-color: var(--rtbs-color-danger-bg);
}

.rtbs-button:focus-visible,
.rtbs-slot-button:focus-visible,
.rtbs-modal__close:focus-visible,
.rtbs-date-input:focus-visible,
.rtbs-field input:focus-visible,
.rtbs-field select:focus-visible,
.rtbs-field textarea:focus-visible,
.rtbs-portal-profile input:focus-visible,
.rtbs-portal-profile textarea:focus-visible,
.rtbs-portal-profile select:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--rtbs-color-focus) 58%, transparent);
    outline-offset: 2px;
}

.rtbs-legend__marker {
    width: var(--rtbs-font-toolbar);
    height: var(--rtbs-font-toolbar);
    border: var(--rtbs-border-width) solid var(--rtbs-color-border);
    border-radius: calc(var(--rtbs-radius-element) * .45);
}

.rtbs-legend__marker--free { background: var(--rtbs-color-free-bg); border-color: var(--rtbs-color-free-border); }
.rtbs-legend__marker--occupied { background: var(--rtbs-color-occupied-bg); border-color: var(--rtbs-color-occupied-border); }
.rtbs-legend__marker--blocked { background: var(--rtbs-color-blocked-bg); border-color: var(--rtbs-color-blocked-border); }
.rtbs-legend__marker--event { background: var(--rtbs-color-event-bg); border-color: var(--rtbs-color-event-border); }
.rtbs-legend__marker--closed { background: repeating-linear-gradient(135deg, var(--rtbs-color-closed-bg) 0 5px, var(--rtbs-color-border) 5px 10px); }

.rtbs-notice,
.rtbs-portal-message {
    border-width: var(--rtbs-border-width);
    border-style: solid;
    border-radius: var(--rtbs-radius-element);
    font-size: var(--rtbs-font-base-desktop);
}

.rtbs-notice--success,
.rtbs-portal-message--success {
    color: var(--rtbs-color-success-text);
    border-color: var(--rtbs-color-success-border);
    background: var(--rtbs-color-success-bg);
}

.rtbs-notice--error,
.rtbs-form-error,
.rtbs-portal-message--error {
    color: var(--rtbs-color-error-text);
    border-color: var(--rtbs-color-error-border);
    background: var(--rtbs-color-error-bg);
}

.rtbs-calendar {
    padding: var(--rtbs-calendar-padding-desktop);
    background: var(--rtbs-color-page-bg);
}

.rtbs-table-wrap,
.rtbs-loading,
.rtbs-empty {
    color: var(--rtbs-color-text);
    background: var(--rtbs-color-surface-bg);
    border: var(--rtbs-border-width) solid var(--rtbs-color-border);
    border-radius: var(--rtbs-radius-element);
}

.rtbs-grid {
    color: var(--rtbs-color-text);
    background: var(--rtbs-color-surface-bg);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-font-slot);
    line-height: var(--rtbs-line-height);
}

.rtbs-grid__time-col,
.rtbs-grid__time-head,
.rtbs-grid__time-cell {
    width: var(--rtbs-time-column-desktop);
}

.rtbs-grid th,
.rtbs-grid td {
    border: var(--rtbs-border-width) solid var(--rtbs-color-border);
}

.rtbs-grid__resource-head {
    color: var(--rtbs-color-resource-text);
    background: var(--rtbs-resource-background, var(--rtbs-color-resource-bg));
}

.rtbs-grid__day-head {
    padding: var(--rtbs-space-sm) var(--rtbs-space-xs);
    color: var(--rtbs-color-day-text);
    background: var(--rtbs-day-background, var(--rtbs-color-day-bg)) !important;
    border-left-color: var(--rtbs-color-border) !important;
    font-family: var(--rtbs-font-heading-family);
    font-size: var(--rtbs-font-day-heading);
    font-weight: var(--rtbs-font-weight-bold);
}

.rtbs-grid__day-head strong,
.rtbs-grid__day-head span {
    font-size: inherit;
}

.rtbs-grid__day-head span {
    color: color-mix(in srgb, var(--rtbs-color-day-text) 82%, transparent);
    font-size: var(--rtbs-font-small-desktop);
    font-weight: var(--rtbs-font-weight-normal);
}

.rtbs-grid__resource-head {
    padding: var(--rtbs-space-sm) var(--rtbs-space-xs);
    font-size: var(--rtbs-font-resource-heading);
}

.rtbs-resource-name {
    color: var(--rtbs-color-resource-text);
    font-family: var(--rtbs-font-heading-family);
    font-size: var(--rtbs-font-resource-heading);
    font-weight: var(--rtbs-font-weight-bold);
}

.rtbs-grid__resource-head small {
    color: var(--rtbs-color-muted);
    font-size: var(--rtbs-font-small-desktop);
}

.rtbs-grid__time-head,
.rtbs-grid__time-cell {
    color: var(--rtbs-color-time-text);
    background: var(--rtbs-time-background, var(--rtbs-color-time-bg)) !important;
    font-size: var(--rtbs-font-time);
}

.rtbs-grid__time-cell strong,
.rtbs-grid__time-cell span {
    color: inherit;
    font-size: inherit;
}

.rtbs-grid__time-cell span {
    color: color-mix(in srgb, var(--rtbs-color-time-text) 72%, transparent);
    font-size: var(--rtbs-font-small-desktop);
}

.rtbs-slot,
.rtbs-slot-button {
    min-height: var(--rtbs-cell-height-desktop);
    height: var(--rtbs-cell-height-desktop);
}

.rtbs-slot-button {
    padding: var(--rtbs-space-xs);
    color: var(--rtbs-color-free-text);
    background: var(--rtbs-color-free-bg);
    border: 0;
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-font-slot);
    font-weight: var(--rtbs-font-weight-bold);
}

.rtbs-slot-button:hover {
    color: var(--rtbs-color-free-hover-text);
    background: var(--rtbs-color-free-hover-bg);
}

.rtbs-slot--free { color: var(--rtbs-color-free-text); background: var(--rtbs-color-free-bg); border-color: var(--rtbs-color-free-border); }
.rtbs-slot--occupied { color: var(--rtbs-color-occupied-text); background: var(--rtbs-color-occupied-bg); border-color: var(--rtbs-color-occupied-border); font-size: var(--rtbs-font-slot); font-weight: var(--rtbs-font-weight-bold); }
.rtbs-slot--blocked { color: var(--rtbs-color-blocked-text); background: var(--rtbs-color-blocked-bg); border-color: var(--rtbs-color-blocked-border); font-size: var(--rtbs-font-slot); font-weight: var(--rtbs-font-weight-bold); }
.rtbs-slot--event { color: var(--rtbs-color-event-text); background: var(--rtbs-color-event-bg); box-shadow: inset 0 3px 0 var(--rtbs-color-event-border); font-size: var(--rtbs-font-slot); }
.rtbs-slot--closed { color: var(--rtbs-color-closed-text); background: repeating-linear-gradient(135deg, var(--rtbs-color-closed-bg) 0 5px, var(--rtbs-color-border) 5px 10px); }
.rtbs-slot--readonly { color: var(--rtbs-color-readonly-text); background: var(--rtbs-color-readonly-bg); }
.rtbs-slot--continuation { color: var(--rtbs-color-muted); background: color-mix(in srgb, var(--rtbs-color-surface-bg) 88%, var(--rtbs-color-page-bg)); }

.rtbs-modal__backdrop {
    background: color-mix(in srgb, var(--rtbs-color-overlay) 76%, transparent);
}

.rtbs-modal__dialog {
    width: min(100%, var(--rtbs-modal-width));
    padding: var(--rtbs-modal-padding-desktop);
    color: var(--rtbs-color-modal-text);
    background: var(--rtbs-color-modal-bg);
    border: var(--rtbs-border-width) solid var(--rtbs-color-border);
    border-radius: var(--rtbs-radius-modal);
    box-shadow: var(--rtbs-shadow-modal);
    font-size: var(--rtbs-font-base-desktop);
}

.rtbs-modal__dialog h2,
.rtbs-extras-section h3 {
    color: var(--rtbs-color-modal-text);
    font-family: var(--rtbs-font-heading-family);
    font-size: var(--rtbs-font-modal-title);
    font-weight: var(--rtbs-font-weight-bold);
}

.rtbs-modal__close {
    color: var(--rtbs-color-secondary-text);
    background: var(--rtbs-color-secondary-bg);
    border: var(--rtbs-border-width) solid var(--rtbs-color-secondary-border);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-font-modal-title);
}

.rtbs-resource-visual {
    margin: calc(var(--rtbs-modal-padding-desktop) * -1) calc(var(--rtbs-modal-padding-desktop) * -1) var(--rtbs-space-lg);
    border-radius: var(--rtbs-radius-modal) var(--rtbs-radius-modal) 0 0;
    background: var(--rtbs-color-page-bg);
}

.rtbs-resource-description,
.rtbs-capacity-note,
.rtbs-price-details,
.rtbs-extra-option__content small,
.rtbs-series-note,
.rtbs-extras-series-note,
.rtbs-payment-option small,
.rtbs-portal-profile small {
    color: var(--rtbs-color-muted);
    font-size: var(--rtbs-font-small-desktop);
}

.rtbs-selection-summary {
    background: color-mix(in srgb, var(--rtbs-color-primary-bg) 10%, var(--rtbs-color-modal-bg));
    border-left: 4px solid var(--rtbs-color-primary-bg);
    border-radius: var(--rtbs-radius-element);
}

.rtbs-price-box,
.rtbs-payment-box,
.rtbs-extra-option,
.rtbs-series-section,
.rtbs-coupon-row,
.rtbs-payment-option {
    color: var(--rtbs-color-modal-text);
    background: color-mix(in srgb, var(--rtbs-color-surface-bg) 94%, var(--rtbs-color-page-bg));
    border: var(--rtbs-border-width) solid var(--rtbs-color-border);
    border-radius: var(--rtbs-radius-element);
}

.rtbs-price-box strong {
    font-size: calc(var(--rtbs-font-base-desktop) * 1.15);
}

.rtbs-extra-option__quantity,
.rtbs-weekday-options > span,
.rtbs-series-toggle {
    font-size: var(--rtbs-font-field-label);
    font-weight: var(--rtbs-font-weight-bold);
}

.rtbs-weekday-options__grid span {
    color: var(--rtbs-color-secondary-text);
    background: var(--rtbs-color-secondary-bg);
    border: var(--rtbs-border-width) solid var(--rtbs-color-secondary-border);
    border-radius: var(--rtbs-radius-element);
    font-size: var(--rtbs-font-button);
}

.rtbs-weekday-options__grid input:checked + span {
    color: var(--rtbs-color-primary-text);
    background: var(--rtbs-color-primary-bg);
    border-color: var(--rtbs-color-primary-bg);
}

.rtbs-coupon-message--success { color: var(--rtbs-color-success-text); }
.rtbs-coupon-message--error { color: var(--rtbs-color-error-text); }

/* Customer portal uses the same profile and component tokens. */
.rtbs-portal-standalone {
    margin: 0;
    color: var(--rtbs-color-text);
    background: var(--rtbs-color-page-bg);
}

.rtbs-portal-shell {
    width: min(var(--rtbs-portal-max-width), calc(100% - 32px));
    margin: var(--rtbs-space-xl) auto;
}

.rtbs-customer-portal {
    color: var(--rtbs-color-text);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-font-base-desktop);
    line-height: var(--rtbs-line-height);
}

.rtbs-portal-header {
    gap: var(--rtbs-space-xl);
    padding: var(--rtbs-space-xl);
    color: var(--rtbs-color-header-text);
    background: var(--rtbs-color-header-bg);
    border-radius: var(--rtbs-radius-app);
    box-shadow: var(--rtbs-shadow-app);
}

.rtbs-portal-header h1 {
    color: var(--rtbs-color-header-text);
    font-family: var(--rtbs-font-heading-family);
    font-size: var(--rtbs-font-portal-title);
    font-weight: var(--rtbs-font-weight-bold);
}

.rtbs-portal-header p,
.rtbs-portal-header__meta span,
.rtbs-portal-eyebrow {
    color: var(--rtbs-color-header-muted);
    font-size: var(--rtbs-font-small-desktop);
}

.rtbs-portal-header__meta strong {
    color: var(--rtbs-color-header-text);
    font-size: var(--rtbs-font-header-title-desktop);
}

.rtbs-portal-layout {
    grid-template-columns: minmax(0, 1.8fr) minmax(300px, .8fr);
    gap: var(--rtbs-space-xl);
    margin-top: var(--rtbs-space-xl);
}

.rtbs-customer-portal[style*="--rtbs-portal-columns:1"] .rtbs-portal-layout {
    grid-template-columns: 1fr;
}

.rtbs-portal-main,
.rtbs-portal-profile {
    padding: var(--rtbs-space-lg);
    color: var(--rtbs-color-text);
    background: var(--rtbs-color-surface-bg);
    border: var(--rtbs-border-width) solid var(--rtbs-color-border);
    border-radius: var(--rtbs-radius-app);
    box-shadow: var(--rtbs-shadow-app);
}

.rtbs-portal-main > h2,
.rtbs-portal-profile h2,
.rtbs-portal-booking h3 {
    color: var(--rtbs-color-text);
    font-family: var(--rtbs-font-heading-family);
    font-weight: var(--rtbs-font-weight-bold);
}

.rtbs-portal-booking h3 {
    font-size: var(--rtbs-font-portal-card-title);
}

.rtbs-portal-booking {
    border: var(--rtbs-border-width) solid var(--rtbs-color-border);
    border-radius: var(--rtbs-radius-element);
    background: var(--rtbs-color-surface-bg);
}

.rtbs-portal-booking > header {
    background: color-mix(in srgb, var(--rtbs-color-surface-bg) 88%, var(--rtbs-color-page-bg));
}

.rtbs-portal-booking__number,
.rtbs-portal-booking__summary,
.rtbs-portal-reservation > div:first-child span,
.rtbs-portal-empty {
    color: var(--rtbs-color-muted);
    font-size: var(--rtbs-font-small-desktop);
}

.rtbs-portal-booking__summary,
.rtbs-portal-reservation {
    border-color: var(--rtbs-color-border);
}

.rtbs-portal-status {
    color: var(--rtbs-color-event-text);
    background: var(--rtbs-color-event-bg);
    border-radius: 999px;
    font-size: var(--rtbs-font-small-desktop);
}

.rtbs-portal-status--cancelled { color: var(--rtbs-color-error-text); background: var(--rtbs-color-error-bg); }
.rtbs-portal-status--partially_cancelled { color: var(--rtbs-color-warning-text); background: var(--rtbs-color-warning-bg); }
.rtbs-portal-status--completed { color: var(--rtbs-color-success-text); background: var(--rtbs-color-success-bg); }
.rtbs-portal-cancel summary { color: var(--rtbs-color-danger-bg); }
.rtbs-portal-cancel form { background: color-mix(in srgb, var(--rtbs-color-error-bg) 40%, var(--rtbs-color-surface-bg)); border-radius: var(--rtbs-radius-element); }
.rtbs-portal-profile input[readonly] { background: var(--rtbs-color-page-bg); }
.rtbs-portal-empty { border-color: var(--rtbs-color-border); border-radius: var(--rtbs-radius-element); }

@media (max-width: 1023px) {
    .rtbs-app,
    .rtbs-customer-portal,
    .rtbs-portal-standalone { font-size: var(--rtbs-font-base-tablet); }
    .rtbs-header__title { font-size: var(--rtbs-font-header-title-tablet); }
    .rtbs-header__subtitle,
    .rtbs-grid__resource-head small,
    .rtbs-grid__time-cell span,
    .rtbs-resource-description,
    .rtbs-capacity-note,
    .rtbs-price-details,
    .rtbs-series-note,
    .rtbs-extras-series-note,
    .rtbs-payment-option small,
    .rtbs-portal-profile small { font-size: var(--rtbs-font-small-tablet); }
    .rtbs-calendar { padding: var(--rtbs-calendar-padding-tablet); }
    .rtbs-grid__time-col,
    .rtbs-grid__time-head,
    .rtbs-grid__time-cell { width: var(--rtbs-time-column-tablet); }
    .rtbs-slot,
    .rtbs-slot-button { min-height: var(--rtbs-cell-height-tablet); height: var(--rtbs-cell-height-tablet); }
}

@media (max-width: 680px) {
    .rtbs-app,
    .rtbs-customer-portal,
    .rtbs-portal-standalone { font-size: var(--rtbs-font-base-mobile); }
    .rtbs-header { padding: var(--rtbs-header-padding-y) var(--rtbs-calendar-padding-mobile); }
    .rtbs-header__title { font-size: var(--rtbs-font-header-title-mobile); }
    .rtbs-header__subtitle,
    .rtbs-grid__resource-head small,
    .rtbs-grid__time-cell span,
    .rtbs-resource-description,
    .rtbs-capacity-note,
    .rtbs-price-details,
    .rtbs-series-note,
    .rtbs-extras-series-note,
    .rtbs-payment-option small,
    .rtbs-portal-profile small { font-size: var(--rtbs-font-small-mobile); }
    .rtbs-toolbar { padding: var(--rtbs-toolbar-padding-y) var(--rtbs-calendar-padding-mobile); }
    .rtbs-calendar { padding: var(--rtbs-calendar-padding-mobile); }
    .rtbs-grid__time-col,
    .rtbs-grid__time-head,
    .rtbs-grid__time-cell { width: var(--rtbs-time-column-mobile); }
    .rtbs-slot,
    .rtbs-slot-button { min-height: var(--rtbs-cell-height-mobile); height: var(--rtbs-cell-height-mobile); }
    .rtbs-modal__dialog { padding: var(--rtbs-modal-padding-mobile); }
    .rtbs-resource-visual { margin: calc(var(--rtbs-modal-padding-mobile) * -1) calc(var(--rtbs-modal-padding-mobile) * -1) var(--rtbs-space-lg); }
    .rtbs-portal-header h1 { font-size: var(--rtbs-font-header-title-mobile); }
    .rtbs-portal-layout { grid-template-columns: 1fr; }
}

/* RT-Booking 0.6.0: PayPal and copyright branding */
.rtbs-paypal-button-container {
    width: 100%;
    min-height: 45px;
    margin-top: var(--rtbs-space-sm);
    position: relative;
    z-index: 2;
}
.rtbs-paypal-button-container[hidden],
.rtbs-paypal-note[hidden] { display: none !important; }
.rtbs-paypal-note {
    margin: 0;
    color: var(--rtbs-color-muted);
    font-size: var(--rtbs-font-small-desktop);
    line-height: var(--rtbs-line-height);
}
.rtbs-copyright {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--rtbs-space-md) var(--rtbs-space-sm);
    color: var(--rtbs-color-muted);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-font-small-desktop);
    line-height: 1.3;
}
.rtbs-copyright a,
.rtbs-copyright__plain {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: inherit;
    text-decoration: none;
}
.rtbs-copyright a:hover,
.rtbs-copyright a:focus-visible {
    color: var(--rtbs-color-link);
    text-decoration: underline;
}
.rtbs-copyright img {
    display: block;
    width: 18px;
    height: 18px;
    border-radius: 3px;
}
.rtbs-copyright--standalone {
    padding-bottom: 0;
}
@media (max-width: 1023px) {
    .rtbs-paypal-note,
    .rtbs-copyright { font-size: var(--rtbs-font-small-tablet); }
}
@media (max-width: 680px) {
    .rtbs-paypal-note,
    .rtbs-copyright { font-size: var(--rtbs-font-small-mobile); }
}

/* RT-Booking 0.7.0 – Designsystem 3.0 component bindings */
.rtbs-app {
    background: var(--rtbs-color-surface-bg);
}

.rtbs-header {
    background: var(--rtbs-header-background);
}

.rtbs-toolbar {
    background: var(--rtbs-toolbar-background);
}

.rtbs-grid__day-head {
    min-height: var(--rtbs-day-cell-min-height);
    padding: var(--rtbs-day-cell-padding-y) var(--rtbs-day-cell-padding-x);
    background: var(--rtbs-day-background);
}

.rtbs-grid__day-head strong {
    color: var(--rtbs-day-weekday-color);
    font-family: var(--rtbs-font-heading-family);
    font-size: var(--rtbs-day-weekday-size-desktop);
    font-weight: var(--rtbs-day-weekday-weight);
    line-height: var(--rtbs-line-height);
    letter-spacing: var(--rtbs-letter-spacing);
    text-transform: var(--rtbs-day-weekday-transform);
}

.rtbs-grid__day-head span {
    color: var(--rtbs-day-date-color);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-day-date-size-desktop);
    font-weight: var(--rtbs-day-date-weight);
    line-height: var(--rtbs-line-height);
}

.rtbs-grid__resource-head {
    min-height: var(--rtbs-resource-cell-min-height);
    padding: var(--rtbs-resource-cell-padding-y) var(--rtbs-resource-cell-padding-x);
    background: var(--rtbs-resource-background);
}

.rtbs-grid__resource-head .rtbs-resource-name {
    color: var(--rtbs-resource-title-color);
    font-family: var(--rtbs-font-heading-family);
    font-size: var(--rtbs-resource-title-size-desktop);
    font-weight: var(--rtbs-resource-title-weight);
    line-height: var(--rtbs-line-height);
}

.rtbs-grid__resource-head small {
    color: var(--rtbs-resource-location-color);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-resource-location-size-desktop);
    font-weight: var(--rtbs-resource-location-weight);
    line-height: var(--rtbs-line-height);
}

.rtbs-grid__time-head,
.rtbs-grid__time-cell {
    padding: var(--rtbs-time-cell-padding-y) var(--rtbs-time-cell-padding-x);
    background: var(--rtbs-time-background);
}

.rtbs-grid__time-cell strong {
    color: var(--rtbs-time-start-color);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-time-start-size-desktop);
    font-weight: var(--rtbs-time-start-weight);
    line-height: var(--rtbs-line-height);
}

.rtbs-grid__time-cell span {
    color: var(--rtbs-time-end-color);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-time-end-size-desktop);
    font-weight: var(--rtbs-time-end-weight);
    line-height: var(--rtbs-line-height);
}

.rtbs-slot {
    min-height: var(--rtbs-cell-height-desktop);
    border-width: var(--rtbs-slot-border-width);
    border-radius: var(--rtbs-slot-radius);
    font-size: var(--rtbs-slot-text-size-desktop);
    font-weight: var(--rtbs-slot-text-weight);
}

.rtbs-slot-button {
    font: inherit;
    color: inherit;
}

.rtbs-slot--free {
    color: var(--rtbs-color-free-text);
    background: var(--rtbs-free-background);
    border-color: var(--rtbs-color-free-border);
}

.rtbs-slot--free:hover,
.rtbs-slot--free:focus-within {
    color: var(--rtbs-color-free-hover-text);
    background: var(--rtbs-color-free-hover-bg);
}

.rtbs-slot--selected,
.rtbs-slot--selected:hover,
.rtbs-slot--selected:focus-within {
    color: var(--rtbs-color-selected-text);
    background: var(--rtbs-selected-background);
    border-color: var(--rtbs-color-selected-border);
}

.rtbs-slot--occupied {
    color: var(--rtbs-color-occupied-text);
    background: var(--rtbs-occupied-background);
    border-color: var(--rtbs-color-occupied-border);
}

.rtbs-slot--blocked {
    color: var(--rtbs-color-blocked-text);
    background: var(--rtbs-blocked-background);
    border-color: var(--rtbs-color-blocked-border);
}

.rtbs-slot--event,
.rtbs-slot--free.rtbs-slot--event {
    color: var(--rtbs-color-event-text);
    background: var(--rtbs-event-background);
    border-color: var(--rtbs-color-event-border);
}

.rtbs-slot--closed {
    color: var(--rtbs-color-closed-text);
    background: var(--rtbs-closed-background);
}

.rtbs-slot--readonly {
    color: var(--rtbs-color-readonly-text);
    background: var(--rtbs-readonly-background);
}

.rtbs-modal__backdrop {
    background: var(--rtbs-color-overlay);
}

.rtbs-modal__dialog {
    background: var(--rtbs-modal-background);
}

.rtbs-modal__dialog > h2 {
    color: var(--rtbs-modal-title-color);
    font-family: var(--rtbs-font-heading-family);
    font-size: var(--rtbs-modal-title-size-desktop);
    font-weight: var(--rtbs-modal-title-weight);
    line-height: var(--rtbs-line-height);
}

.rtbs-resource-description {
    color: var(--rtbs-modal-description-color);
    font-size: var(--rtbs-modal-description-size-desktop);
}

.rtbs-selection-summary {
    padding: var(--rtbs-space-sm) var(--rtbs-space-md);
    color: var(--rtbs-selection-summary-color);
    background: var(--rtbs-selection-summary-bg);
    border-radius: var(--rtbs-radius-element);
    font-size: var(--rtbs-selection-summary-size-desktop);
}

.rtbs-modal__close {
    position: absolute;
    top: var(--rtbs-close-button-offset-y);
    right: var(--rtbs-close-button-offset-x);
    display: grid;
    place-items: center;
    width: var(--rtbs-close-button-size-desktop);
    height: var(--rtbs-close-button-size-desktop);
    min-width: var(--rtbs-close-button-size-desktop);
    min-height: var(--rtbs-close-button-size-desktop);
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    overflow: hidden;
    color: var(--rtbs-close-icon-color);
    background: var(--rtbs-close-button-bg);
    border: var(--rtbs-close-button-border-width) solid var(--rtbs-close-button-border);
    border-radius: var(--rtbs-close-button-radius);
    line-height: 0;
    text-align: center;
    cursor: pointer;
}

.rtbs-modal__close:hover {
    color: var(--rtbs-close-icon-hover-color);
    background: var(--rtbs-close-button-hover-bg);
}

.rtbs-close-icon {
    display: none;
    width: var(--rtbs-close-icon-size-desktop);
    height: var(--rtbs-close-icon-size-desktop);
    line-height: 0;
    pointer-events: none;
}

.rtbs-close-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: var(--rtbs-close-icon-stroke);
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rtbs-app[data-close-icon="x"] .rtbs-close-icon--x,
.rtbs-design-preview-viewport[data-close-icon="x"] .rtbs-close-icon--x,
.rtbs-app[data-close-icon="circle-x"] .rtbs-close-icon--circle-x,
.rtbs-design-preview-viewport[data-close-icon="circle-x"] .rtbs-close-icon--circle-x,
.rtbs-app[data-close-icon="plus"] .rtbs-close-icon--plus,
.rtbs-design-preview-viewport[data-close-icon="plus"] .rtbs-close-icon--plus {
    display: block;
}

.rtbs-app[data-close-icon="plus"] .rtbs-close-icon--plus,
.rtbs-design-preview-viewport[data-close-icon="plus"] .rtbs-close-icon--plus {
    transform: rotate(45deg);
}

.rtbs-booking-form {
    gap: var(--rtbs-form-gap);
}

.rtbs-series-section,
.rtbs-extras-section,
.rtbs-coupon-row,
.rtbs-payment-box {
    padding: var(--rtbs-form-section-padding);
    border: 1px solid var(--rtbs-color-form-section-border);
    border-radius: var(--rtbs-form-section-radius);
    background: var(--rtbs-form-section-background);
}

.rtbs-field > label,
.rtbs-booking-form label {
    color: var(--rtbs-field-label-color);
    font-size: var(--rtbs-field-label-size-desktop);
    font-weight: var(--rtbs-field-label-weight);
}

.rtbs-field input,
.rtbs-field select,
.rtbs-field textarea,
.rtbs-booking-form input,
.rtbs-booking-form select,
.rtbs-booking-form textarea {
    font-size: var(--rtbs-field-input-size-desktop);
}

.rtbs-capacity-note,
.rtbs-series-note,
.rtbs-extras-series-note,
.rtbs-payment-option small,
.rtbs-paypal-note,
.rtbs-field small {
    color: var(--rtbs-field-help-color);
    font-size: var(--rtbs-field-help-size-desktop);
}

.rtbs-checkbox input,
.rtbs-payment-option input,
.rtbs-weekday-options input {
    accent-color: var(--rtbs-checkbox-accent-color);
}

.rtbs-price-box {
    color: var(--rtbs-price-box-text);
    background: var(--rtbs-price-box-bg);
}

.rtbs-price-box strong,
.rtbs-total-price {
    color: var(--rtbs-price-box-total-color);
    font-size: var(--rtbs-price-box-total-size-desktop);
}

.rtbs-coupon-row {
    color: var(--rtbs-coupon-text);
    background: var(--rtbs-coupon-bg);
}

.rtbs-payment-box,
.rtbs-payment-option {
    color: var(--rtbs-payment-text);
    background: var(--rtbs-payment-bg);
}

.rtbs-paypal-button-container {
    padding: var(--rtbs-space-sm);
    background: var(--rtbs-paypal-bg);
    border: 1px solid var(--rtbs-paypal-border);
    border-radius: var(--rtbs-radius-element);
}

.rtbs-copyright,
.rtbs-copyright a {
    color: var(--rtbs-copyright-color);
    font-size: var(--rtbs-copyright-size-desktop);
}

/* RT-Booking 0.7.1 – Kaskadensichere Komponentenbindung.
 * Diese Selektoren sind bewusst spezifischer als die historischen Basisregeln.
 * Dadurch bleiben Komponentenwerte und Verläufe auch bei älteren Themes und
 * bereits gespeicherten Builder-Elementen wirksam.
 */
.rtbs-app .rtbs-grid thead .rtbs-grid__day-head {
    background: var(--rtbs-day-background, var(--rtbs-color-day-bg)) !important;
}

.rtbs-app .rtbs-grid thead .rtbs-grid__resource-head {
    background: var(--rtbs-resource-background, var(--rtbs-color-resource-bg)) !important;
}

.rtbs-app .rtbs-grid thead .rtbs-grid__resource-head small {
    color: var(--rtbs-resource-location-color);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-resource-location-size-desktop);
    font-weight: var(--rtbs-resource-location-weight);
    line-height: var(--rtbs-line-height);
}

.rtbs-app .rtbs-grid thead .rtbs-grid__time-head,
.rtbs-app .rtbs-grid tbody .rtbs-grid__time-cell {
    background: var(--rtbs-time-background, var(--rtbs-color-time-bg)) !important;
}

.rtbs-app .rtbs-grid td.rtbs-slot {
    border-width: var(--rtbs-slot-border-width);
    border-radius: var(--rtbs-slot-radius);
    overflow: hidden;
}

.rtbs-app .rtbs-grid td.rtbs-slot--free { border-color: var(--rtbs-color-free-border); }
.rtbs-app .rtbs-grid td.rtbs-slot--selected { border-color: var(--rtbs-color-selected-border); }
.rtbs-app .rtbs-grid td.rtbs-slot--occupied { border-color: var(--rtbs-color-occupied-border); }
.rtbs-app .rtbs-grid td.rtbs-slot--blocked { border-color: var(--rtbs-color-blocked-border); }
.rtbs-app .rtbs-grid td.rtbs-slot--event { border-color: var(--rtbs-color-event-border); }
.rtbs-app .rtbs-grid td.rtbs-slot--closed,
.rtbs-app .rtbs-grid td.rtbs-slot--readonly { border-color: var(--rtbs-color-border); }

.rtbs-app .rtbs-grid td.rtbs-slot .rtbs-slot-button {
    color: inherit;
    background: transparent;
    border-radius: inherit;
}

.rtbs-app .rtbs-booking-form .rtbs-coupon-row .rtbs-field > label {
    color: var(--rtbs-coupon-text);
}

.rtbs-app .rtbs-booking-form .rtbs-payment-box .rtbs-payment-option,
.rtbs-app .rtbs-booking-form .rtbs-payment-box .rtbs-payment-option b {
    color: var(--rtbs-payment-text);
}

.rtbs-notice--warning {
    color: var(--rtbs-color-warning-text);
    border-color: var(--rtbs-color-warning-border);
    background: var(--rtbs-color-warning-bg);
}

@media (max-width: 1023px) {
    .rtbs-app .rtbs-grid thead .rtbs-grid__resource-head small {
        font-size: var(--rtbs-resource-location-size-tablet);
    }
}

@media (max-width: 680px) {
    .rtbs-app .rtbs-grid thead .rtbs-grid__resource-head small {
        font-size: var(--rtbs-resource-location-size-mobile);
    }
}

@media (max-width: 1023px) {
    .rtbs-grid__day-head strong { font-size: var(--rtbs-day-weekday-size-tablet); }
    .rtbs-grid__day-head span { font-size: var(--rtbs-day-date-size-tablet); }
    .rtbs-grid__resource-head .rtbs-resource-name { font-size: var(--rtbs-resource-title-size-tablet); }
    .rtbs-grid__resource-head small { font-size: var(--rtbs-resource-location-size-tablet); }
    .rtbs-grid__time-cell strong { font-size: var(--rtbs-time-start-size-tablet); }
    .rtbs-grid__time-cell span { font-size: var(--rtbs-time-end-size-tablet); }
    .rtbs-slot { min-height: var(--rtbs-cell-height-tablet); font-size: var(--rtbs-slot-text-size-tablet); }
    .rtbs-modal__dialog > h2 { font-size: var(--rtbs-modal-title-size-tablet); }
    .rtbs-resource-description { font-size: var(--rtbs-modal-description-size-tablet); }
    .rtbs-selection-summary { font-size: var(--rtbs-selection-summary-size-tablet); }
    .rtbs-modal__close { width: var(--rtbs-close-button-size-tablet); height: var(--rtbs-close-button-size-tablet); min-width: var(--rtbs-close-button-size-tablet); min-height: var(--rtbs-close-button-size-tablet); }
    .rtbs-close-icon { width: var(--rtbs-close-icon-size-tablet); height: var(--rtbs-close-icon-size-tablet); }
    .rtbs-field > label, .rtbs-booking-form label { font-size: var(--rtbs-field-label-size-tablet); }
    .rtbs-field input, .rtbs-field select, .rtbs-field textarea, .rtbs-booking-form input, .rtbs-booking-form select, .rtbs-booking-form textarea { font-size: var(--rtbs-field-input-size-tablet); }
    .rtbs-capacity-note, .rtbs-series-note, .rtbs-extras-series-note, .rtbs-payment-option small, .rtbs-paypal-note, .rtbs-field small { font-size: var(--rtbs-field-help-size-tablet); }
    .rtbs-price-box strong, .rtbs-total-price { font-size: var(--rtbs-price-box-total-size-tablet); }
    .rtbs-copyright, .rtbs-copyright a { font-size: var(--rtbs-copyright-size-tablet); }
}

@media (max-width: 680px) {
    .rtbs-grid__day-head strong { font-size: var(--rtbs-day-weekday-size-mobile); }
    .rtbs-grid__day-head span { font-size: var(--rtbs-day-date-size-mobile); }
    .rtbs-grid__resource-head .rtbs-resource-name { font-size: var(--rtbs-resource-title-size-mobile); }
    .rtbs-grid__resource-head small { font-size: var(--rtbs-resource-location-size-mobile); }
    .rtbs-grid__time-cell strong { font-size: var(--rtbs-time-start-size-mobile); }
    .rtbs-grid__time-cell span { font-size: var(--rtbs-time-end-size-mobile); }
    .rtbs-slot { min-height: var(--rtbs-cell-height-mobile); font-size: var(--rtbs-slot-text-size-mobile); }
    .rtbs-modal__dialog > h2 { font-size: var(--rtbs-modal-title-size-mobile); }
    .rtbs-resource-description { font-size: var(--rtbs-modal-description-size-mobile); }
    .rtbs-selection-summary { font-size: var(--rtbs-selection-summary-size-mobile); }
    .rtbs-modal__close { width: var(--rtbs-close-button-size-mobile); height: var(--rtbs-close-button-size-mobile); min-width: var(--rtbs-close-button-size-mobile); min-height: var(--rtbs-close-button-size-mobile); }
    .rtbs-close-icon { width: var(--rtbs-close-icon-size-mobile); height: var(--rtbs-close-icon-size-mobile); }
    .rtbs-field > label, .rtbs-booking-form label { font-size: var(--rtbs-field-label-size-mobile); }
    .rtbs-field input, .rtbs-field select, .rtbs-field textarea, .rtbs-booking-form input, .rtbs-booking-form select, .rtbs-booking-form textarea { font-size: var(--rtbs-field-input-size-mobile); }
    .rtbs-capacity-note, .rtbs-series-note, .rtbs-extras-series-note, .rtbs-payment-option small, .rtbs-paypal-note, .rtbs-field small { font-size: var(--rtbs-field-help-size-mobile); }
    .rtbs-price-box strong, .rtbs-total-price { font-size: var(--rtbs-price-box-total-size-mobile); }
    .rtbs-copyright, .rtbs-copyright a { font-size: var(--rtbs-copyright-size-mobile); }
}


/* Verbindliche Eingabefeld-Komponente seit RT-Booking 0.7.2. */
.rtbs-app .rtbs-booking-form .rtbs-field input:not([type="checkbox"]):not([type="radio"]),
.rtbs-app .rtbs-booking-form .rtbs-field select,
.rtbs-app .rtbs-booking-form .rtbs-field textarea,
.rtbs-app .rtbs-booking-form .rtbs-inline-input input,
.rtbs-customer-portal .rtbs-portal-profile input:not([type="checkbox"]):not([type="radio"]),
.rtbs-customer-portal .rtbs-portal-profile select,
.rtbs-customer-portal .rtbs-portal-profile textarea,
.rtbs-design-preview-viewport .rtbs-field input:not([type="checkbox"]):not([type="radio"]),
.rtbs-design-preview-viewport .rtbs-field select,
.rtbs-design-preview-viewport .rtbs-field textarea,
.rtbs-design-preview-viewport .rtbs-preview-coupon input {
    min-height: var(--rtbs-input-height);
    box-sizing: border-box;
    padding: var(--rtbs-input-padding-y) var(--rtbs-input-padding-x);
    color: var(--rtbs-color-input-text);
    background: var(--rtbs-color-input-bg);
    border-width: var(--rtbs-input-border-width);
    border-style: solid;
    border-color: var(--rtbs-color-input-border);
    border-radius: var(--rtbs-radius-element);
    font-family: var(--rtbs-font-body-family);
    font-size: var(--rtbs-field-input-size-desktop);
    line-height: var(--rtbs-line-height);
}

@media (max-width: 1023px) {
    .rtbs-app .rtbs-booking-form .rtbs-field input:not([type="checkbox"]):not([type="radio"]),
    .rtbs-app .rtbs-booking-form .rtbs-field select,
    .rtbs-app .rtbs-booking-form .rtbs-field textarea,
    .rtbs-app .rtbs-booking-form .rtbs-inline-input input,
    .rtbs-customer-portal .rtbs-portal-profile input:not([type="checkbox"]):not([type="radio"]),
    .rtbs-customer-portal .rtbs-portal-profile select,
    .rtbs-customer-portal .rtbs-portal-profile textarea,
    .rtbs-design-preview-viewport .rtbs-field input:not([type="checkbox"]):not([type="radio"]),
    .rtbs-design-preview-viewport .rtbs-field select,
    .rtbs-design-preview-viewport .rtbs-field textarea,
    .rtbs-design-preview-viewport .rtbs-preview-coupon input {
        font-size: var(--rtbs-field-input-size-tablet);
    }
}

@media (max-width: 680px) {
    .rtbs-app .rtbs-booking-form .rtbs-field input:not([type="checkbox"]):not([type="radio"]),
    .rtbs-app .rtbs-booking-form .rtbs-field select,
    .rtbs-app .rtbs-booking-form .rtbs-field textarea,
    .rtbs-app .rtbs-booking-form .rtbs-inline-input input,
    .rtbs-customer-portal .rtbs-portal-profile input:not([type="checkbox"]):not([type="radio"]),
    .rtbs-customer-portal .rtbs-portal-profile select,
    .rtbs-customer-portal .rtbs-portal-profile textarea,
    .rtbs-design-preview-viewport .rtbs-field input:not([type="checkbox"]):not([type="radio"]),
    .rtbs-design-preview-viewport .rtbs-field select,
    .rtbs-design-preview-viewport .rtbs-field textarea,
    .rtbs-design-preview-viewport .rtbs-preview-coupon input {
        font-size: var(--rtbs-field-input-size-mobile);
    }
}


/* RT-Booking 0.8.0: Konten und Anmeldeoberfläche */
.rtbs-header__right { display: flex; align-items: center; justify-content: flex-end; gap: var(--rtbs-space-sm, 10px); flex-wrap: wrap; }
.rtbs-header__account { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rtbs-account-button,
.rtbs-header__account a { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 7px 12px; border: 1px solid color-mix(in srgb, currentColor 35%, transparent); border-radius: var(--rtbs-radius-button, 6px); background: transparent; color: inherit; font: inherit; font-size: var(--rtbs-font-small-desktop, 13px); line-height: 1.2; text-decoration: none; cursor: pointer; }
.rtbs-account-button:hover,
.rtbs-header__account a:hover { background: color-mix(in srgb, currentColor 10%, transparent); color: inherit; }
.rtbs-auth-panel { padding: var(--rtbs-space-lg, 24px); border: 1px solid var(--rtbs-color-border, #d7dde3); border-radius: var(--rtbs-radius-element, 8px); background: var(--rtbs-color-surface, #fff); color: var(--rtbs-color-text, #20262c); }
.rtbs-auth-panel__intro { margin-bottom: var(--rtbs-space-md, 16px); }
.rtbs-auth-panel__intro h3 { margin: 0 0 6px; color: var(--rtbs-color-text, #20262c); font-size: var(--rtbs-font-dialog-title-desktop, 24px); }
.rtbs-auth-panel__intro p { margin: 0; color: var(--rtbs-color-muted, #5c6670); }
.rtbs-auth-tabs { display: flex; gap: 6px; margin-bottom: 18px; padding: 4px; border-radius: var(--rtbs-radius-element, 8px); background: var(--rtbs-color-toolbar-bg, #f4f6f8); }
.rtbs-auth-tabs button { flex: 1; min-height: 40px; border: 0; border-radius: calc(var(--rtbs-radius-element, 8px) - 2px); background: transparent; color: var(--rtbs-color-text, #20262c); font: inherit; font-weight: 600; cursor: pointer; }
.rtbs-auth-tabs button.is-active { background: var(--rtbs-color-surface, #fff); box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.rtbs-auth-form { display: grid; gap: 14px; }
.rtbs-auth-form .rtbs-field { display: grid; gap: 6px; }
.rtbs-auth-form input[type="text"],
.rtbs-auth-form input[type="email"],
.rtbs-auth-form input[type="password"] { width: 100%; min-height: var(--rtbs-input-height, 44px); box-sizing: border-box; border: var(--rtbs-input-border-width, 1px) solid var(--rtbs-input-border-color, #cbd3da); border-radius: var(--rtbs-input-radius, 6px); background: var(--rtbs-input-bg, #fff); color: var(--rtbs-input-color, #20262c); padding: var(--rtbs-input-padding-y, 10px) var(--rtbs-input-padding-x, 12px); font: inherit; }
.rtbs-auth-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.rtbs-auth-error { padding: 10px 12px; border: 1px solid var(--rtbs-color-error-border, #dc2626); border-radius: var(--rtbs-radius-element, 6px); background: var(--rtbs-color-error-bg, #fef2f2); color: var(--rtbs-color-error-text, #991b1b); }
.rtbs-auth-staff { padding: 18px; border-radius: var(--rtbs-radius-element, 8px); background: var(--rtbs-color-toolbar-bg, #f4f6f8); }
.rtbs-booking-account { display: grid; gap: 3px; margin-bottom: 18px; padding: 14px 16px; border: 1px solid var(--rtbs-color-border, #d7dde3); border-radius: var(--rtbs-radius-element, 8px); background: var(--rtbs-color-toolbar-bg, #f8fafb); }
.rtbs-booking-account span,
.rtbs-booking-account small { color: var(--rtbs-color-muted, #5c6670); }
.rtbs-booking-account a { margin-top: 4px; }
.rtbs-portal-header__actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
@media (max-width: 680px) {
    .rtbs-header__right, .rtbs-header__account { width: 100%; justify-content: flex-start; }
    .rtbs-account-button, .rtbs-header__account a { font-size: var(--rtbs-font-small-mobile, 12px); }
    .rtbs-auth-panel { padding: var(--rtbs-space-md, 16px); }
    .rtbs-auth-panel__intro h3 { font-size: var(--rtbs-font-dialog-title-mobile, 20px); }
    .rtbs-auth-actions { align-items: stretch; flex-direction: column; }
    .rtbs-auth-actions .rtbs-button { width: 100%; }
}
