/* Native booking controls, row captions and readiness checklist. Display only. */
.property-booking-map { display: block; margin-bottom: 1.5rem; }
.property-booking-map>.map-card { min-width: 0; overflow: hidden; margin-top: 0; padding: .65rem; }
.property-booking-block { margin: 0; max-width: 100%; }
.property-booking-block fieldset { border: 1px solid #d8d3ca; border-radius: 8px 8px 0 0; background: #faf9f6; padding: .55rem .85rem; min-width: 0; }
.property-booking-block legend { font-weight: 700; padding: 0 .35rem; }
.property-booking-toolbar { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: .4rem .8rem; }
.property-booking-block label { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; }
.property-booking-block input[type=checkbox],.property-booking-layer input[type=checkbox] { width: 22px; height: 22px; accent-color: #276849; flex: 0 0 22px; }
.property-booking-save { min-height: 44px; padding: .55rem 1rem; background: #245d42; color: #fff; border: 1px solid #245d42; border-radius: 7px; font-weight: 700; margin-left: auto; white-space: nowrap; }
.property-booking-readiness { font-size: .8rem; color: #57534e; text-underline-offset: 3px; }
.property-booking-secondary-actions { display: inline-flex; gap: .65rem; justify-content: flex-start; align-items: center; flex-wrap: nowrap; font-size: .8rem; color: #69645d; }
.property-booking-secondary-actions button { background: none; border: 0; text-decoration: underline; min-height: 44px; padding: .3rem; color: #385f4c; font: inherit; }
.property-booking-units { display: grid; gap: .4rem; }
.property-booking-unit { display: flex; align-items: center; gap: .5rem; padding: .25rem; }
.property-booking-details { min-width: 0; }
.property-booking-line { display: block; font-size: 12px; font-weight: 600; line-height: 1.4; }
.property-booking-secondary { display: block; color: #76716a; font-size: 10px; line-height: 1.4; }
.property-booking-secondary .property-booking-id { font: inherit; }
.property-booking-secondary [data-booking-selection] { margin-left: .4rem; border-radius: 4px; padding: 1px 4px; background: #eeece7; }
.property-booking-unit.is-selected [data-booking-selection] { background: #e0eee4; color: #245b3a; }
.property-booking-unit.is-ineligible { color: #85817b; }
.property-booking-unit.is-ineligible .property-booking-line { color: #85817b; font-weight: 400; }
.property-booking-map .map-scroll { position: relative; }
.property-booking-layer { position: absolute; top: 0; left: 0; pointer-events: none; }
.property-booking-unit.is-on-drawing { position: absolute; display: block; padding: 0; pointer-events: none; min-height: 0; }
.property-booking-unit.is-on-drawing input { position: absolute; left: 5px; top: var(--booking-check-y); margin: 11px 0; pointer-events: auto; cursor: pointer; }
.property-booking-unit.is-on-drawing .property-booking-details { position: absolute; left: 36px; right: 4px; top: 3px; background: rgba(250,249,246,.92); border-radius: 3px; padding: 1px 3px; max-width: max-content; }
.property-booking-unit.is-on-drawing .property-booking-line { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.property-booking-block.has-drawing-controls .property-booking-units:empty { display: none; }
.property-booking-block :focus-visible,.property-booking-layer :focus-visible,.property-booking-overview :focus-visible { outline: 3px solid #1675cf; outline-offset: 3px; }
.property-booking-overview { padding: 1rem; margin: 1rem 0; border: 1px solid #d8d3ca; border-radius: .5rem; }
.property-booking-issues { padding-left: 1.4rem; }
.property-booking-issues li { margin: .5rem 0; }
@media(max-width:480px) {
.property-booking-block fieldset { padding: .5rem; }
.property-booking-toolbar { gap: .2rem .65rem; }
.property-booking-save { width: auto; max-width: 100%; font-size: .85rem; margin-left: auto; }
.property-booking-secondary-actions { gap: .5rem; font-size: .8rem; }
.property-booking-secondary-actions>span { width: 100%; text-align: center; }
.property-booking-toolbar>label { flex: 1 1 auto; }
.property-booking-map>.map-card { padding: .35rem; }
.property-booking-overview { padding: .8rem; }
.property-booking-toolbar .property-booking-readiness { flex: 1 1 auto; }
}
.property-booking-unit.is-slot-control .property-booking-details { top: 8px; right: 6px; max-width: none; left: 38px; background: transparent; }
.property-booking-unit.is-slot-control .property-booking-secondary { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11px; margin-top: 6px; }
.property-booking-unit.is-on-drawing:not(.is-slot-control) .property-booking-details { display: contents; }
.property-booking-unit.is-on-drawing:not(.is-slot-control) .property-booking-line { position: absolute; left: 36px; right: 5px; top: 2px; text-align: right; background: transparent; padding: 0; }
.property-booking-unit.is-on-drawing:not(.is-slot-control) .property-booking-secondary { position: absolute; left: 36px; right: 5px; bottom: 2px; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: none; }
.property-booking-line>span+span:before { content: " \00b7  "; }
.property-booking-unit.is-slot-control .property-booking-line,.property-booking-unit.is-slot-control .property-booking-secondary { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.property-booking-unit.is-slot-control .property-booking-line>span { display: block; margin-bottom: 4px; }
.property-booking-unit.is-slot-control .property-booking-line>span:before { content: none; }
.property-booking-unit.is-slot-control [data-booking-selection] { display: block; margin: 4px 0 0; }
.property-booking-occupancy { font-weight: 700; }
.property-booking-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.property-booking-toolbar>label { font-weight: 600; }
.property-booking-toolbar>[data-booking-count] { color: #67625b; font-size: .85rem; }
.property-booking-unoffered>p { margin: .4rem 0; padding: .4rem .85rem; color: #77716a; }
.property-booking-unoffered.has-drawing-controls .property-booking-units:empty { display: none; }
.property-booking-unit.is-on-drawing.is-occupied-row .property-booking-line { display: none; }
.property-booking-row-tag { position: absolute; right: 5px; bottom: 3px; border-radius: 3px; padding: 1px 5px; background: #efede7; color: #77716a; font-size: 11px; line-height: 1.4; }
.property-booking-row-tag[hidden] { display: none; }
.property-booking-unit.is-occupied-row .property-booking-row-tag { background: #eee5dc; color: #71553d; }
.property-booking-overview h2 { margin-top: 0; }
/* T-525: the folded checklist reads as one line: title then status. */
.property-booking-details > summary { cursor: pointer; }
.property-booking-details > summary h2 { display: inline; font-size: 1.05rem; margin: 0; }
.property-booking-summary { margin-left: .4rem; }
.property-booking-overview p { margin: .6rem 0; }
.property-booking-configured { padding-left: 1.4rem; color: #5b574f; }
.property-booking-configured li { margin: .25rem 0; }
#property-booking-readiness:focus-visible { outline: 3px solid #1675cf; outline-offset: 4px; }
/* T1106: the line above a drawing that is wider than its box (property-map-booking.js propertyMapScrollHint). */
.map-scroll-hint { margin: 0 0 .4rem; font-size: .85rem; color: #57534e; }
.map-scroll-hint::after { content: " \2192"; }
.map-scroll-hint[hidden] { display: none; }
@media print { .map-scroll-hint { display: none; } }
/* T1106 (lead input from T-1108): on a unit or slip tile the booking control is only its tick-box, in the tile's
   top-right corner, so the drawing's own text (unit, renter name, status) stays readable. The control's details
   stay in its accessible name and tooltip and in this visually hidden copy. */
.property-booking-unit.is-slot-control input { left: auto; right: 5px; }
.property-booking-unit.is-slot-control .property-booking-details { position: absolute; left: 0; top: 0; right: auto; width: 1px; height: 1px; max-width: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; background: transparent; }
/* T1106: public booking off (data-booking-off): the toolbar and its note stay, the unit list is folded away unless a
   refused save is describing it (aria-describedby). */
.property-booking-block[data-booking-off]:not([aria-describedby]) .property-booking-units { display: none; }
.property-booking-off-note { margin: .4rem 0 0; font-size: .85rem; color: #57534e; }
