/* Shared booking dialogs: one column, natural height, one scrolling surface. */
.booking-dialog{box-sizing:border-box;width:min(560px,calc(100% - 24px));max-width:none;max-height:calc(100dvh - 24px);height:fit-content;overflow:auto;overscroll-behavior:contain;padding:24px;border:1px solid #dedbd3;border-radius:14px;background:#faf9f6;color:#222;box-shadow:0 18px 70px #0003}
.booking-dialog::backdrop{background:#0009}
.booking-dialog h2{font-size:1.65rem;line-height:1.2;margin:0 44px 18px 0;letter-spacing:-.025em}
.booking-dialog h3{font-size:1.18rem;line-height:1.35;margin:16px 0 8px}
.booking-dialog p{line-height:1.5;margin:10px 0;overflow-wrap:anywhere}
.booking-dialog form,.booking-dialog [data-player-fields]{display:flex;flex-direction:column;gap:14px;margin:0;min-width:0}
.booking-dialog form>*{min-width:0;grid-column:auto;width:auto}
.booking-dialog label,.partner-form label{display:flex;flex-direction:column;gap:6px;margin:0;font-size:.94rem}
.booking-dialog input,.booking-dialog select,.booking-dialog textarea,.partner-form input:not([type=checkbox]),.partner-form select,.partner-form textarea{width:100%;min-width:0;box-sizing:border-box;border:1px solid #bdbab2;border-radius:6px;padding:10px;background:#fff;color:#222;font:inherit;font-size:16px}
.booking-dialog textarea,.partner-form textarea{min-height:72px;resize:vertical}
.booking-dialog button,.booking-dialog .button{min-height:44px;font-size:.9rem;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.booking-dialog .dialog-actions,.booking-dialog .actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:10px;margin:8px 0 0}
.booking-dialog .dialog-actions>*{flex:1 1 0;min-width:0;width:auto;margin:0;padding:10px 12px;text-align:center}
.booking-dialog .partner-close,.booking-dialog .close{position:absolute;top:12px;right:12px;width:36px;min-height:36px;padding:0;border:0;background:transparent;font-size:24px;line-height:1}
.booking-dialog [hidden],.partner-form [hidden]{display:none!important}
.booking-dialog [role=status]:empty{display:none}
.partner-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.partner-tabs button,.partner-card button{min-height:44px}
.partner-list{max-width:1040px;margin:auto}.partner-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.partner-card{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid #dedbd3;border-radius:12px;padding:20px;margin:14px 0}.partner-card h3{margin:10px 0 6px;font-size:1.2rem}.partner-card p{overflow-wrap:anywhere;margin:6px 0}.partner-card>div{min-width:0}
.partner-badge{display:inline-block;font-size:13px;font-weight:700;background:#fff0dc;color:#754009;padding:4px 10px;border-radius:16px}
/* Overlay keeps the normal tile's size, padding, price and orange background. */
.booking-calendar .slot.partner-conditional{position:relative}
.booking-calendar .slot.partner-conditional::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(90deg,#000 0 4px,transparent 4px 7px) top left/100% 4px no-repeat,repeating-linear-gradient(90deg,#000 0 4px,transparent 4px 7px) bottom left/100% 4px no-repeat,repeating-linear-gradient(0deg,#000 0 4px,transparent 4px 7px) top left/4px 100% no-repeat,repeating-linear-gradient(0deg,#000 0 4px,transparent 4px 7px) top right/4px 100% no-repeat}
/* Conditional slots are identified by their existing dashed frame only. */
.booking-calendar .partner-slot-marker{display:none}
.partner-form{display:block;border:0;border-top:1px solid #dedbd3;padding:14px 0 0;margin:0;min-width:0}
.partner-form .partner-checkbox{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;font-weight:700;line-height:1.4}
.partner-checkbox input{appearance:auto;width:20px!important;height:20px;flex:0 0 20px;margin:0;padding:0}
.partner-info{padding:10px 12px;background:#fff0dc;border-left:3px solid #ff951c;font-size:.9rem}
.partner-form [data-partner-fields]>label{margin-top:14px}
.partner-application{padding:12px 0;border-bottom:1px solid #dedbd3}.partner-application .actions{display:flex;gap:8px}.partner-application .actions button{flex:1 1 0;padding:10px}
.partner-list[hidden]{display:none}.partner-dialog [data-result]{color:#804000;overflow-wrap:anywhere}
.partner-decision-page{margin:40px auto;max-height:none}.partner-decision-page h1{font-size:1.8rem;line-height:1.2}
@media(max-width:600px){.booking-dialog{padding:20px 16px}.partner-card{display:block;padding:16px}.partner-card button{margin-top:10px;width:100%}.partner-tabs button{flex:1 1 auto}}

/* Calendar first; partner searches are the next section on the guest booking page. */
.booking .section-title{margin-bottom:0}
.booking .section-title>div{width:100%;min-width:0}
.booking .section-title .booking-heading{margin:0 0 12px}
.booking .section-title .partner-activity{display:inline-block;max-width:100%;margin:0;color:#625d54;font-size:1.05rem;line-height:1.5;text-decoration:none}
.partner-activity:hover,.partner-activity:focus-visible{color:#9b4c0a}
.partner-list--inline{max-width:none;padding-top:24px;margin-top:24px;border-top:1px solid #dedbd3;scroll-margin-top:132px}
.partner-list--inline .partner-list-heading{gap:8px;margin-bottom:8px}.partner-list--inline .partner-list-heading h2{font-size:1.6rem;line-height:1.25;margin:0;letter-spacing:-.025em}
.partner-list--inline .partner-list-heading p{font-size:.84rem;color:#625d54;margin:0}
.partner-list--inline>p{font-size:.9rem;margin:8px 0 12px;color:#625d54}
.partner-list--inline .partner-card{gap:16px;padding:14px 16px;margin:10px 0;border-radius:9px}
.partner-list--inline .partner-card h3{font-size:1.08rem;margin:6px 0}.partner-list--inline .partner-card p{font-size:.92rem;line-height:1.45;margin:4px 0}.partner-list--inline .partner-card p:empty{display:none}
.partner-list--inline .partner-card button{flex-shrink:0;padding:10px 16px}
@media(max-width:600px){.partner-list--inline .partner-card{padding:12px 14px}.partner-list--inline .partner-card button{width:auto;min-width:128px;margin-top:10px}}

.partner-status:empty{display:none}

.booking-layout--single{grid-template-columns:minmax(0,1fr);margin-top:16px}

.partner-note-count{font-size:.78rem;color:#625d54;font-weight:400;text-align:right}.partner-cancel-players{border:0;padding:0;margin:12px 0}.partner-cancel-players legend{font-weight:700;margin-bottom:10px}.booking-dialog .partner-cancel-players label{flex-direction:row;align-items:center;margin:8px 0}.partner-cancel-players input[type=radio]{width:18px;height:18px;flex:none;margin:0}.reception-match-details{margin:12px 0}.reception-match-details p{margin:6px 0}

.partner-form[hidden]{display:none!important}
.booking-dialog .primary{background:#ff951c;border-color:#ff951c;color:#171717}
.booking-dialog [data-cancel-match-form]{gap:8px}
.booking-dialog .partner-cancel-players{margin:8px 0 0}
.booking-dialog .partner-cancel-players legend{margin-bottom:4px}
.booking-dialog .partner-cancel-players label{gap:8px;min-height:32px;margin:4px 0}
.booking-dialog .partner-cancel-players input[type=radio]{min-width:18px;min-height:18px;width:18px;height:18px;padding:0;border:0;background:transparent;appearance:auto;accent-color:#ff951c}
.booking-dialog .partner-cancel-players input:focus-visible{outline:2px solid #171717;outline-offset:3px}
.booking-dialog [data-cancel-match-form] p{margin:4px 0}
.booking-dialog [data-cancel-match-form] .dialog-actions{margin-top:4px}

.player-profile-dialog .consent-check{display:block;line-height:1.5}.player-profile-dialog .consent-check input[type=checkbox]{width:20px;height:20px;margin:3px 10px 0 0;padding:0;vertical-align:top;appearance:auto}

.player-profile-dialog .consent-check>span{display:inline}

/* Completed match notifications have a separate per-person dismiss action. */
.partner-match-card .partner-match-time{font-weight:400}
.partner-match-card .partner-match-contact strong{font-weight:700}
.partner-match-card>div{flex:1 1 auto}
