:root {
    --booking-border: rgba(20, 35, 60, 0.12);
    --booking-muted: #5b6472;
    --booking-soft: #f6f8fb;
    --booking-accent-soft: rgba(38, 93, 152, 0.08);
    --booking-danger-soft: rgba(180, 35, 24, 0.08);
    --booking-ok-soft: rgba(25, 120, 70, 0.08);
}
.booking-body .hero {
    margin-bottom: 1.25rem;
}
.booking-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.9fr);
    gap: 1.25rem;
    align-items: start;
}
.booking-section + .booking-section {
    margin-top: 1rem;
}
.booking-card, .booking-sidecard, .booking-slot, .admin-card, .admin-table-wrap {
    background: #fff;
    border: 1px solid var(--booking-border);
    border-radius: 22px;
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.06);
}
.booking-card, .admin-card, .admin-table-wrap {
    padding: 1.1rem 1.15rem;
}
.booking-type-grid, .booking-info-grid, .booking-summary-grid, .admin-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.booking-type-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.8rem;
    min-height: 88px;
    padding: 1rem 1.1rem;
    cursor: pointer;
}
.booking-type-card input {
    position: static;
    width: 20px;
    height: 20px;
    margin: 0;
    flex-shrink: 0;
}
.booking-type-card.is-active, .booking-slot.is-selected {
    border-color: rgba(38, 93, 152, 0.35);
    background: var(--booking-accent-soft);
}
.booking-type-card h3, .booking-sidecard h3, .booking-card h2, .admin-card h2, .admin-card h3 {
    margin-bottom: 0.45rem;
}
.booking-type-card h3 {
    margin: 0;
    font-size: clamp(1.15rem, 1.55vw, 1.45rem);
    line-height: 1.2;
}
.booking-note, .booking-muted, .slot-help, .admin-help, .inline-note {
    color: var(--booking-muted);
    font-size: 0.96rem;
}
.field-note {
    color: var(--booking-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}
.booking-alert, .form-status {
    border-radius: 18px;
    padding: 0.9rem 1rem;
    margin-bottom: 1rem;
}
.booking-alert {
    background: var(--booking-accent-soft);
    border: 1px solid rgba(38, 93, 152, 0.15);
}
.booking-alert--warning {
    background: var(--booking-danger-soft);
    border-color: rgba(180, 35, 24, 0.18);
}
.booking-alert--success, .form-status.is-success {
    background: var(--booking-ok-soft);
    border-color: rgba(25, 120, 70, 0.18);
}
.booking-alert--expanded {
    display: grid;
    gap: 0.35rem;
    align-items: start;
}
.booking-alert-detail {
    color: var(--booking-muted);
    font-size: 0.96rem;
    line-height: 1.5;
}
.form-status.is-error {
    background: var(--booking-danger-soft);
    border-color: rgba(180, 35, 24, 0.18);
}
.booking-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.95rem 1rem;
}
.booking-fields .field, .admin-fields .field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.booking-fields .field--full, .admin-fields .field--full, .admin-card form .btn-row, .admin-table-wrap + .admin-table-wrap {
    grid-column: 1 / -1;
}
.booking-fields input, .booking-fields textarea, .admin-fields input, .admin-fields textarea, .admin-fields select, .booking-fields select {
    width: 100%;
    min-height: 48px;
    border-radius: 14px;
    border: 1px solid var(--booking-border);
    padding: 0.8rem 0.9rem;
    background: #fff;
}
.booking-fields textarea, .admin-fields textarea {
    min-height: 108px;
    resize: vertical;
}
.booking-sidecard {
    position: sticky;
    top: calc(var(--header-offset, 0px) + 1rem);
    padding: 1.1rem 1.15rem;
}
.booking-slot-groups {
    display: grid;
    gap: 0.95rem;
}
.booking-slot-group {
    display: grid;
    gap: 0.75rem;
}
.booking-slot-date {
    font-weight: 700;
    padding: 0 0.15rem;
}
.booking-slot-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}
.booking-slot {
    display: block;
    position: relative;
    min-height: 120px;
    padding: 0.95rem 0.95rem 0.95rem 2.8rem;
    cursor: pointer;
}
.booking-slot input {
    position: absolute;
    inset: 0.95rem auto auto 0.95rem;
    width: 18px;
    height: 18px;
}
.slot-time {
    display: block;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.25;
    margin-top: 0.2rem;
}
.slot-meta {
    display: none;
}
.hidden {
    display: none !important;
}
.consent-stack {
    display: grid;
    gap: 0.7rem;
    margin-top: 1rem;
}
.consent-stack .consent-wrap {
    margin: 0;
}
.summary-list {
    display: grid;
    gap: 0.75rem;
}
.summary-item {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
}
.summary-item strong {
    min-width: 86px;
}
.success-panel {
    max-width: 900px;
    margin: 0 auto;
}
.success-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 1rem;
}
.link-box {
    word-break: break-word;
    padding: 0.9rem 1rem;
    background: var(--booking-soft);
    border-radius: 14px;
    border: 1px solid var(--booking-border);
}
.admin-layout {
    display: grid;
    gap: 1.1rem;
}
.admin-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem 1rem;
}
.admin-stats .stat {
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid var(--booking-border);
    background: var(--booking-soft);
}
.admin-stats .stat strong {
    display: block;
    font-size: 1.8rem;
    line-height: 1.1;
}
.admin-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 940px;
}
.admin-table th, .admin-table td {
    text-align: left;
    vertical-align: top;
    padding: 0.8rem 0.7rem;
    border-bottom: 1px solid rgba(20, 35, 60, 0.09);
    font-size: 0.95rem;
}
.admin-table th {
    font-size: 0.88rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--booking-muted);
}
.admin-badge {
    display: inline-flex;
    padding: 0.34rem 0.58rem;
    border-radius: 999px;
    background: var(--booking-soft);
    border: 1px solid var(--booking-border);
    font-size: 0.82rem;
    font-weight: 700;
}
.admin-badge--success {
    background: var(--booking-ok-soft);
}
.admin-badge--warning {
    background: var(--booking-danger-soft);
}
.admin-badge--info {
    background: var(--booking-accent-soft);
}
.inline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.inline-actions form {
    margin: 0;
}
.inline-btn, .inline-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    border: 1px solid var(--booking-border);
    background: #fff;
    color: inherit;
    text-decoration: none;
    font-size: 0.88rem;
}
.inline-btn {
    cursor: pointer;
}
.inline-btn--danger {
    border-color: rgba(180, 35, 24, 0.18);
    background: var(--booking-danger-soft);
}
.inline-btn--success {
    border-color: rgba(25, 120, 70, 0.18);
    background: var(--booking-ok-soft);
}
.login-shell {
    max-width: 520px;
    margin: 0 auto;
}
.hero-kpis {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
}
.hero-kpi {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 0.75rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--booking-border);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}
.booking-info-section {
    margin-top: 2.5rem;
}
@media (max-width: 1120px) {
    .booking-grid,   .booking-type-grid,   .booking-info-grid,   .booking-summary-grid,   .admin-stats,   .booking-slot-list,   .booking-fields,   .admin-fields,   .zone-editor-grid {
        grid-template-columns: 1fr 1fr;
    }
    .booking-grid {
        grid-template-columns: 1fr;
    }
    .booking-sidecard {
        position: static;
    }
    .booking-slot-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 760px) {
    .booking-type-grid,   .booking-info-grid,   .booking-summary-grid,   .booking-fields,   .admin-fields,   .admin-stats,   .booking-slot-list,   .zone-editor-grid {
        grid-template-columns: 1fr;
    }
    .booking-card,   .booking-sidecard,   .admin-card,   .admin-table-wrap {
        padding: 1rem;
        border-radius: 18px;
    }
    .booking-type-card,   .booking-slot {
        padding-left: 2.75rem;
    }
    .hero-kpis,   .success-actions,   .inline-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .inline-link,   .inline-btn {
        width: 100%;
    }
}
.btn-danger {
    background: #8f3a46;
    color: #fff;
    border-color: #8f3a46;
}
.btn-small {
    padding: 0.72rem 0.95rem;
    font-size: 0.92rem;
}
.admin-headline-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.8rem;
}
.admin-date-section + .admin-date-section {
    margin-top: 1rem;
}
.admin-date-accordion {
    border: 1px solid var(--booking-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(33, 43, 54, 0.06);
    overflow: hidden;
}
.admin-date-accordion + .admin-date-accordion {
    margin-top: 1rem;
}
.admin-date-accordion__summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.9rem 1rem;
    background: linear-gradient(180deg, #fff, #fbf7f3);
}
.admin-date-accordion__summary::-webkit-details-marker {
    display: none;
}
.admin-date-accordion__body {
    padding: 0.15rem 1rem 1rem;
    border-top: 1px solid rgba(20, 35, 60, 0.09);
}
.admin-date-summary-meta {
    color: var(--booking-muted);
    font-weight: 700;
}
.admin-date-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.8rem;
}
.admin-date-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}
.admin-date-action-form {
    margin: 0;
}
.admin-date-header .admin-date-heading {
    margin: 0;
}
.admin-date-heading {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 800;
    color: var(--booking-ink);
    background: #fff;
    border: 1px solid var(--booking-border);
    border-radius: 14px;
    padding: 0.8rem 1rem;
    margin: 0 0 0.8rem;
    box-shadow: 0 8px 22px rgba(33, 43, 54, 0.06);
}
.admin-day-lock {
    margin: -0.1rem 0 0.85rem;
}
.admin-day-lock strong {
    color: var(--booking-ink);
}
.zone-editor-card-shell {
    margin-bottom: 1.1rem;
}
.zone-editor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.zone-editor-card {
    border: 1px solid var(--booking-border);
    background: #fff;
    border-radius: 18px;
    padding: 1rem;
    box-shadow: 0 10px 26px rgba(33, 43, 54, 0.06);
}
.zone-editor-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}
.zone-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: var(--booking-accent-soft);
    border: 1px solid var(--booking-border);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}
.zone-editor-fields {
    grid-template-columns: 1fr;
}
.zone-textarea {
    min-height: 124px;
    font-family: inherit;
}
.admin-table--grouped {
    margin-bottom: 0;
}
.bulk-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--booking-border);
    border-radius: 16px;
    background: var(--booking-soft);
}
.bulk-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}
.bulk-count {
    color: var(--booking-muted);
}
.bulk-toolbar.is-empty {
    opacity: 0.92;
}
.bulk-toolbar.is-empty .bulk-count strong {
    color: inherit;
}
.js-slot-select-wrap {
    width: 42px;
}
.js-slot-select-wrap input[type="checkbox"] {
    width: 18px;
    height: 18px;
}
.desktop-table-shell {
    display: block;
}
.slot-mobile-sections, .booking-mobile-sections, .slot-mobile-list, .booking-mobile-list {
    display: none;
}
.slot-mobile-card, .booking-mobile-card {
    border: 1px solid var(--booking-border);
    background: #fff;
    border-radius: 18px;
    padding: 0.95rem;
    box-shadow: 0 10px 26px rgba(33, 43, 54, 0.08);
}
.slot-mobile-list, .booking-mobile-list {
    gap: 0.85rem;
}
.slot-mobile-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.slot-mobile-meta {
    margin-top: 0.45rem;
    color: var(--booking-muted);
    line-height: 1.45;
}
.slot-mobile-actions, .single-slot-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.85rem;
}
.slot-mobile-check {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.8rem;
    font-weight: 700;
}
@media (max-width: 980px) {
    .admin-fields {
        grid-template-columns: 1fr;
    }
    .admin-headline-row,   .bulk-toolbar,   .admin-date-header {
        flex-direction: column;
        align-items: stretch;
    }
    .desktop-table-shell {
        display: none;
    }
    .slot-mobile-sections,   .booking-mobile-sections {
        display: block;
    }
    .slot-mobile-list,   .booking-mobile-list {
        display: grid;
    }
    .admin-table-wrap {
        padding: 1rem;
    }
    .booking-card,   .admin-card,   .admin-table-wrap {
        border-radius: 20px;
    }
    .admin-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .admin-stats {
        grid-template-columns: 1fr 1fr;
    }
    .slot-mobile-row {
        align-items: flex-start;
        flex-direction: column;
    }
    .admin-badge {
        align-self: flex-start;
    }
    .admin-date-heading {
        font-size: 0.98rem;
        padding: 0.72rem 0.9rem;
    }
    .btn,   .btn-small {
        width: 100%;
        justify-content: center;
    }
    .bulk-actions,   .slot-mobile-actions,   .single-slot-actions,   .admin-date-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
}
.booking-mobile-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}
.booking-mobile-actions form {
    margin: 0;
    width: 100%;
}
.booking-mobile-actions .booking-mobile-btn, .booking-mobile-actions .inline-link, .booking-mobile-actions .inline-btn {
    width: 100%;
    min-height: 50px;
    padding: 0.9rem 1rem;
    border-radius: 999px;
    font-size: 1rem;
    font-weight: 700;
    background: #fff;
    border: 1px solid var(--booking-border);
    box-shadow: 0 8px 22px rgba(33, 43, 54, 0.08);
}
.booking-mobile-actions .inline-btn--danger {
    border-color: rgba(180, 35, 24, 0.2);
    background: var(--booking-danger-soft);
}
.booking-mobile-actions .inline-btn--success {
    border-color: rgba(25, 120, 70, 0.2);
    background: var(--booking-ok-soft);
}
.booking-body--admin .wa-float {
    display: none !important;
}
.nav-inner--admin {
    justify-content: center;
}
.admin-hero {
    margin-bottom: 1rem;
}
.admin-section-card + .admin-section-card {
    margin-top: 1.1rem;
}
.admin-consent-line {
    margin: 0;
}
.zone-editor-grid--single {
    grid-template-columns: 1fr;
}
.zone-editor-fields--row {
    grid-template-columns: 1fr 1.3fr;
    align-items: start;
}
.admin-accordion-list {
    display: grid;
    gap: 0.9rem;
}
.admin-selectable-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.85rem;
    align-items: start;
}
.admin-select-box {
    margin: 0;
    min-width: 98px;
    padding-top: 0.8rem;
}
.admin-select-box input {
    width: 18px;
    height: 18px;
}
.admin-accordion-card {
    border: 1px solid var(--booking-border);
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 10px 26px rgba(33, 43, 54, 0.08);
    overflow: hidden;
}
.admin-accordion-summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 1rem 1rem;
}
.admin-accordion-summary::-webkit-details-marker {
    display: none;
}
.admin-accordion-summary__main {
    display: grid;
    gap: 0.2rem;
}
.admin-accordion-summary__main strong {
    font-size: 1.04rem;
}
.admin-accordion-summary__main span {
    color: var(--booking-muted);
}
.admin-accordion-body {
    border-top: 1px solid rgba(20, 35, 60, 0.09);
    padding: 0.95rem 1rem 1rem;
}
.admin-action-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
    margin-top: 0.95rem;
}
.admin-action-list .admin-inline-form {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}
.admin-action-list .booking-mobile-btn, .admin-action-list .inline-link, .admin-action-list .inline-btn {
    width: 100%;
    min-height: 50px;
    padding: 0.9rem 1rem;
    border-radius: 999px;
    font-size: 1rem;
    font-weight: 700;
    background: #fff;
    border: 1px solid var(--booking-border);
    box-shadow: 0 8px 22px rgba(33, 43, 54, 0.08);
}
.admin-action-list .inline-btn--danger {
    border-color: rgba(180, 35, 24, 0.2);
    background: var(--booking-danger-soft);
}
.admin-action-list .inline-btn--success {
    border-color: rgba(25, 120, 70, 0.2);
    background: var(--booking-ok-soft);
}
.admin-action-list--slot {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.admin-inline-form {
    margin: 0;
}
@media (max-width: 900px) {
    .zone-editor-fields--row {
        grid-template-columns: 1fr;
    }
    .admin-selectable-row {
        grid-template-columns: 1fr;
    }
    .admin-date-accordion__summary {
        flex-direction: column;
        align-items: flex-start;
    }
    .admin-select-box {
        padding-top: 0;
    }
    .admin-accordion-summary {
        flex-direction: column;
        align-items: flex-start;
    }
    .admin-action-list--slot {
        grid-template-columns: 1fr;
    }
}
.booking-day-group {
    border: 1px solid rgba(22, 101, 52, 0.12);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}
.booking-day-toggle {
    width: 100%;
    border: 0;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
}
.booking-day-toggle:hover {
    background: rgba(22, 101, 52, 0.04);
}
.booking-day-toggle:focus-visible {
    outline: 3px solid rgba(22, 101, 52, 0.24);
    outline-offset: -3px;
}
.booking-day-title {
    font-weight: 700;
    color: #16331f;
}
.booking-day-count {
    flex-shrink: 0;
    font-size: 0.92rem;
    color: #5b6b60;
    padding-right: 1.4rem;
    position: relative;
}
.booking-day-count::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-52%);
    font-weight: 700;
    font-size: 1.15rem;
    color: #16331f;
}
.booking-day-group.is-open .booking-day-count::after {
    content: "–";
}
.booking-day-content {
    padding: 0 1rem 1rem;
    border-top: 1px solid rgba(22, 101, 52, 0.08);
    background: rgba(248, 250, 248, 0.7);
    display: grid;
    gap: 0.75rem;
}
.booking-day-content[hidden] {
    display: none !important;
}
.booking-slot-option {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(22, 101, 52, 0.1);
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.booking-slot-option:hover {
    border-color: rgba(22, 101, 52, 0.26);
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.05);
    transform: translateY(-1px);
}
.booking-slot-option input[type="radio"] {
    margin-top: 0.2rem;
    flex-shrink: 0;
}
.booking-slot-option-body {
    display: grid;
    gap: 0.2rem;
}
.booking-slot-time {
    font-size: 1rem;
    color: #16331f;
}
@media (max-width: 680px) {
    .booking-day-toggle {
        padding: 0.95rem 0.9rem;
        align-items: flex-start;
        flex-direction: column;
    }
    .booking-day-count {
        padding-right: 1.2rem;
        font-size: 0.88rem;
    }
    .booking-day-content {
        padding: 0 0.75rem 0.75rem;
    }
    .booking-slot-option {
        padding: 0.85rem 0.85rem;
    }
}
