.public-bookings-section {
    padding: 0 0 40px;
}

.public-bookings-section .container {
    max-width: 1000px;
}

.public-booking-page .my-bookings {
    margin: 0;
    padding: 28px;
    border: 1px solid #222;
    background: #0a0a0a;
}

.public-booking-page .my-bookings-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
}

.public-booking-page .my-bookings-kicker {
    margin-bottom: 8px;
    color: #aaa;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.public-booking-page .my-bookings-heading h3 {
    margin-bottom: 10px;
    font-size: clamp(20px, 2.2vw, 26px);
    line-height: 1.25;
    font-weight: 800;
}

.public-booking-page .my-bookings-heading > div > p:last-child {
    color: #aaa;
    font-size: 14px;
    line-height: 1.6;
}

.public-booking-page .my-bookings-form {
    min-width: 0;
}

.public-booking-page .my-bookings-form label {
    display: block;
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.public-booking-page .my-bookings-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 12px;
}

.public-booking-page .my-bookings-search input {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 12px;
    border: 1px solid #444;
    border-radius: 0;
    background: #000;
    color: #fff;
    font: inherit;
    font-size: 16px;
}

.public-booking-page .my-bookings-search input::placeholder {
    color: #888;
}

.public-booking-page .my-bookings-search .btn-primary {
    min-height: 48px;
    margin: 0;
    padding: 12px 20px;
    font-size: 12px;
    letter-spacing: 1px;
    cursor: pointer;
}

.public-booking-page .my-bookings-search input:focus-visible,
.public-booking-page .my-bookings-search button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.public-booking-page .my-bookings-search button:disabled {
    opacity: .5;
    cursor: wait;
}

.public-booking-page .my-bookings > .schedule-message {
    margin: 20px 0 0;
    text-align: left;
}

.public-booking-page .my-bookings > .schedule-message:empty {
    display: none;
}

.public-booking-page .my-bookings-results {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 16px;
}

.public-booking-page .my-bookings-results:not(:empty) {
    margin-top: 20px;
}

@media (min-width: 900px) {
    .public-booking-page .my-bookings-heading {
        grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
        align-items: end;
    }
}

@media (max-width: 520px) {
    .public-booking-page .my-bookings {
        padding: 20px;
    }

    .public-booking-page .my-bookings-search {
        grid-template-columns: minmax(0, 1fr);
    }
}

.my-booking-card {
    container-type: inline-size;
    min-width: 0;
    padding: 20px;
    border: 1px solid #333;
    background: #050505;
    color: #fff;
}

.my-booking-date { font-weight: 800; }

.my-booking-actions,
.my-booking-editor {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
    gap: 16px;
    margin-top: 20px;
}

.my-booking-editor {
    padding-top: 20px;
    border-top: 1px solid #333;
}

.my-booking-editor[hidden] { display: none; }

.my-booking-editor label {
    display: grid;
    min-width: 0;
    gap: 8px;
    color: #fff;
    font-size: 10pt;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.my-booking-editor input,
.my-booking-editor select {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 48px;
    padding: 10px 12px;
    border: 1px solid #444;
    border-radius: 0;
    background: #000;
    color: #fff;
    color-scheme: dark;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: normal;
    text-transform: none;
}

.my-booking-card .btn-primary {
    box-sizing: border-box;
    width: 100%;
    min-height: 48px;
    height: 100%;
    margin: 0;
    padding: 12px 16px;
    border-radius: 0;
    font-family: inherit;
    font-size: 12px;
    line-height: 1.5;
    letter-spacing: 1px;
    white-space: normal;
    cursor: pointer;
}

.my-booking-actions button:last-child,
.my-booking-editor button:last-child {
    background: transparent;
    border-color: #555;
    color: #fff;
}

.my-booking-actions button:last-child:hover,
.my-booking-editor button:last-child:hover {
    border-color: #fff;
    background: #161616;
}

.my-booking-editor input:focus,
.my-booking-editor select:focus,
.my-booking-card button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.my-booking-card button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.my-booking-card .schedule-message {
    margin: 16px 0 0;
    text-align: left;
    font-size: 13px;
    line-height: 1.5;
}

.my-booking-card .schedule-message:empty { display: none; }

@container (max-width: 380px) {
    .my-booking-actions,
    .my-booking-editor { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

@media (max-width: 480px) {
    .my-booking-actions,
    .my-booking-editor { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}
