/* Guest availability by configured type and exact rate; exact selected room IDs remain authoritative. */
.guest-entry .guest-type-card,.guest-property-booking .guest-type-card{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:0;padding:12px;border:1px solid #b7c5cf;border-radius:10px;background:#fff;min-width:0}
.guest-type-photo{position:relative;align-self:start;aspect-ratio:4/3;display:grid;place-items:center;background:#eef2f6;border-radius:7px;overflow:hidden;color:#52606d;font-size:13px;text-align:center}
.guest-type-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.guest-type-photo span{padding:6px}.guest-type-photo [hidden]{display:none!important}
.guest-type-content{min-width:0;overflow-wrap:anywhere}.guest-type-content h3,.guest-type-content p{margin:0 0 6px}.guest-type-content label{margin:8px 0 0}.guest-type-content select{width:100%;min-height:44px}
.guest-property-booking[data-type-cards] [data-rooms]{grid-template-columns:minmax(0,1fr)}

.guest-type-photo{width:100%;max-height:280px}.guest-pay-field{display:grid;gap:6px;margin-top:10px}.guest-pay-field>button{width:100%;font-weight:700;min-height:48px}.guest-type-content [data-catalog-quantity]{width:50%;min-width:4rem}

.guest-type-content{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.guest-type-content>h3,.guest-type-content>p{margin:0}.guest-type-content>label{flex:1 1 12rem;min-width:0}.guest-type-content>.guest-pay-field{flex:1 1 12rem;min-width:0}.guest-type-content>[data-catalog-range]{max-width:100%}.guest-type-content>label:has([data-catalog-quantity]){flex:0 1 8rem}
.guest-type-content>.guest-type-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;flex:1 1 100%}.guest-type-heading [data-catalog-rate]{white-space:nowrap}.guest-type-heading .guest-type-unit{font-size:.85em;font-weight:400}

/* Room choice and stay duration share one row, never a room-count field. */
.guest-catalog-choices{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;flex:1 1 100%;min-width:0;align-items:end}
.guest-catalog-choices .guest-room-number{min-width:0;margin:0}.guest-catalog-choices [data-catalog-rooms]{width:100%;text-align:center;text-align-last:center}.guest-catalog-choices [data-catalog-rooms] option{text-align:center}
.guest-stay-duration{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:4px;align-items:center;min-width:0}.guest-stay-duration>span{grid-column:1/-1}.guest-stay-duration>button{min-width:44px;min-height:44px;padding:4px}.guest-type-content .guest-stay-duration [data-catalog-quantity]{width:100%;min-width:0;text-align:center;padding:4px}
.guest-type-content>[data-catalog-availability]{margin:0;white-space:normal}

/* One aggregate payment action in Section 2; cards show subtotals, not Pay. */
[data-guest-functions]>[data-cart-pay]{flex:0 1 auto;width:auto;min-width:0;min-height:48px;max-width:100%;font-weight:700;white-space:normal;overflow-wrap:anywhere}
.guest-cart-top{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;gap:8px;padding:8px;background:#f0f8f8;border:1px solid #b7c5cf;border-radius:8px}
.guest-cart-top>[data-cart-pay]{width:auto;min-height:48px;max-width:100%;font-weight:700;white-space:normal;overflow-wrap:anywhere}
.guest-cart-lines{flex:1 1 100%;display:grid;gap:12px;width:100%;min-width:0}
.guest-cart-line{display:grid;gap:8px;padding:10px;border:1px solid #c5d1db;border-radius:8px;min-width:0;max-width:100%}
.guest-cart-line>[data-catalog-range]{justify-self:start;width:auto;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.guest-cart-line [data-catalog-availability]{margin:0;overflow-wrap:anywhere}
.guest-cart-line [data-catalog-rooms]{min-width:0;width:100%;text-align:center;text-align-last:center}
.guest-cart-line>[data-cart-remove]{justify-self:start;width:auto;max-width:100%}
.guest-cart-extras{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:8px;min-width:0}
.guest-cart-extras input{width:100%;min-width:0}.guest-cart-line [data-cart-line-total],.guest-type-content [data-catalog-subtotal]{overflow-wrap:anywhere}
@media(max-width:360px){.guest-cart-line .guest-catalog-choices{grid-template-columns:minmax(0,1fr) minmax(70px,.45fr)}.guest-cart-line{padding:8px}.guest-type-card{padding:8px}}
.guest-cart-times{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.guest-cart-times>label{flex:1 1 8rem;min-width:0}
.guest-cart-conflict{max-width:min(32rem,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid #b04b4b;border-radius:10px;padding:16px;overflow-wrap:anywhere}.guest-cart-conflict::backdrop{background:#17303766}.guest-cart-conflict button{min-height:44px;max-width:100%;font:inherit}

/* The sole Pay action describes incomplete selections rather than treating them as zero. */
[data-cart-payment-hint]{flex:1 1 100%;min-width:0;max-width:100%;font-size:.9em;overflow-wrap:anywhere}
.guest-cart-extras{display:flex;flex-wrap:wrap;align-items:start;gap:8px}.guest-cart-extra-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:8px;width:100%;min-width:0}.guest-cart-extra-list:empty{display:none}
.guest-cart-extra-item{display:flex;flex-wrap:wrap;gap:6px;align-items:end;min-width:0}.guest-cart-extra-item>label{flex:1 1 8rem;min-width:0;margin:0}.guest-cart-extra-item>button,.guest-cart-extras>[data-cart-extra-add]{width:auto;max-width:100%;min-height:44px;white-space:normal}.guest-cart-extras>[data-cart-extra-picker]{flex:1 1 12rem;min-width:0;max-width:100%;width:auto}.guest-cart-extras [hidden]{display:none!important}

/* History, compact date range and Pay share one row. */
.guest-entry [data-guest-functions]{display:grid;grid-template-columns:max-content max-content max-content;align-items:stretch;justify-content:start;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:thin}
.guest-entry [data-guest-functions]>button{align-self:stretch;display:flex;align-items:center;justify-content:center;box-sizing:border-box;height:48px;min-height:48px;margin:0;line-height:1.25;padding:6px 4px;max-width:none;white-space:nowrap;overflow-wrap:normal}
.guest-entry [data-guest-functions]>[data-my-bookings]{grid-column:1;grid-row:1}
.guest-entry [data-guest-functions]>[data-cart-date-range]{grid-column:2;grid-row:1;width:max-content;min-width:0}
.guest-entry [data-guest-functions]>:is([data-cart-pay],[data-request-pay]){grid-column:3;grid-row:1;justify-self:start;white-space:nowrap;overflow-wrap:normal}
.guest-entry [data-guest-functions]>[data-cart-payment-hint]{grid-column:1/-1;grid-row:2}
.guest-cart-date-summary{margin:0;font-size:.9em}

.guest-cart-top>[data-cart-pay]{flex:0 0 auto;max-width:none;white-space:nowrap;overflow-wrap:normal}.guest-cart-top{overflow-x:auto;flex-wrap:nowrap}

/* Keep room choice and actual stay quantity together, including narrow phones. */
.guest-cart-line .guest-catalog-choices{grid-template-columns:minmax(0,1fr) minmax(70px,.45fr);max-width:24rem;gap:6px}
.guest-cart-line .guest-stay-duration:not(:has(button)){grid-template-columns:minmax(0,1fr)}

/* Enlarge the previous room and duration widths by another 20%; keep Remove beside them. */
.guest-cart-line .guest-catalog-choices{--guest-quantity-width:max(63.36px,calc(22.3448275872% - 1.3406896512px));width:100%;grid-template-columns:minmax(0,calc(72% - 4.32px - var(--guest-quantity-width))) var(--guest-quantity-width) max-content;align-items:end}
.guest-cart-line .guest-catalog-choices>[data-cart-remove]{min-width:44px;min-height:44px;max-width:100%;padding:6px 4px;font-size:14px;white-space:nowrap;align-self:end}
.guest-cart-line [data-catalog-rooms]{padding-inline:4px;font-size:14px}
.guest-cart-line .guest-catalog-choices .guest-room-number,.guest-cart-line .guest-stay-duration>span{font-size:13px;line-height:1.4}
.guest-payment-dialog textarea{font:inherit;min-height:6rem;width:100%;max-width:100%;padding:.6rem;border:1px solid #71808b;border-radius:.4rem}
.guest-payment-dialog{width:min(44rem,calc(100vw - 24px));max-height:calc(var(--rcb-frame-height,100dvh) - 24px);margin:auto;padding:16px;border:1px solid #b7c5cf;border-radius:12px;background:white;color:#18222b;overflow:auto;overscroll-behavior:contain}
.guest-payment-dialog::backdrop{background:#17303766}
.guest-payment-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.guest-payment-heading h2{margin:0;font-size:1.2rem}
.guest-payment-dialog [data-review]{border:0;padding:0}
.guest-entry [data-request-pay]{background:#facc15;color:#342b10;border-color:#a16207}
@media(max-width:360px){.guest-entry [data-guest-functions]>:is([data-my-bookings],[data-cart-date-range]){font-size:14px;padding-inline:3px}}
.guest-entry [data-cart-pay]:disabled,.guest-property-booking [data-cart-pay]:disabled{background:#e5e7eb;color:#6b7280;border-color:#cbd5e1;opacity:1}
.guest-entry [data-cart-pay]:enabled,.guest-property-booking [data-cart-pay]:enabled{background:#facc15;color:#342b10;border-color:#a16207;opacity:1}
