.hd-party-summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; width: 100%; border: 0; background: transparent; text-align: left; color: inherit; padding: .35rem 0; }
.hd-party-summary strong, #hdPartySummaryText { display: block; }
#hdPartySummaryText { font-size: .875rem; margin-top: .25rem; }
.hd-party-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
#hdPartyAdd { min-height: 44px; padding: 10px 16px; border: 1px solid var(--primary, #1e3c72); border-radius: 12px; background: #f1f5fc; color: var(--primary, #1e3c72); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
#hdPartyAdd:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
#hdPartyAdd:hover:not(:disabled) { background: #e4ecf9; }
#hdPartyAdd:focus-visible { outline: 2px solid var(--primary, #1e3c72); outline-offset: 3px; }
#hdPartyAdd:disabled { opacity: .45; cursor: not-allowed; }
#hdPartyEditor[hidden], .hd-party-editing .hd-party-summary,
.hd-party-editing .hd-bp-summary, .hd-party-editing .hd-bp-divider,
.hd-party-editing .hd-bp-calendar, .hd-party-editing .hd-bp-modal__footer { display: none !important; }
#hdPartyEditor { width: 100%; min-width: 0; }
/* The compact calendar's old room layout must not constrain this editor. */
#bookingPopup #hdPartyEditor .hd-bp-room {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch !important;
    gap: 16px !important;
    padding: 16px !important;
    margin: 0 0 12px !important;
    border: 1px solid #dfe5ef !important;
    border-radius: 14px !important;
    background: #f7f9fc !important;
}
#bookingPopup #hdPartyEditor .hd-bp-room:last-child { margin-bottom: 0 !important; }
#bookingPopup #hdPartyEditor .hd-bp-room__info {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-width: 0;
    padding: 0;
}
#bookingPopup #hdPartyEditor .hd-bp-room__name {
    display: block !important;
    font-size: 16px !important;
    font-weight: 700 !important;
}
#bookingPopup #hdPartyEditor .hd-bp-room__counters {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: 100%;
    margin: 0 !important;
}
#bookingPopup #hdPartyEditor .hd-bp-counter {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    min-width: 0 !important;
    padding: 12px;
    border: 1px solid #e3e8f0;
    border-radius: 10px;
    background: #fff;
}
#bookingPopup #hdPartyEditor .hd-bp-counter__label {
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: capitalize;
    color: #4c5870 !important;
}
#bookingPopup #hdPartyEditor .hd-bp-counter__row {
    gap: 4px !important;
    padding: 0 !important;
    background: transparent !important;
    flex-shrink: 0;
}
#bookingPopup #hdPartyEditor .hd-bp-counter__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px !important;
    height: 44px !important;
    padding: 0;
    border: 1px solid #dce3ee !important;
    border-radius: 10px !important;
    background: #f3f6fb !important;
    color: var(--primary, #1e3c72) !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}
#bookingPopup #hdPartyEditor .hd-bp-counter__btn:hover:not(:disabled) {
    background: #e5edf9 !important;
    border-color: var(--primary, #1e3c72) !important;
}
#bookingPopup #hdPartyEditor .hd-bp-counter__btn:disabled { opacity: .35 !important; }
#bookingPopup #hdPartyEditor .hd-bp-counter__val {
    min-width: 24px !important;
    font-size: 18px !important;
    font-variant-numeric: tabular-nums;
    color: var(--primary, #1e3c72) !important;
}
#bookingPopup #hdPartyEditor .hd-bp-room .hd-bp-ages {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 16px 0 0 !important;
    border: 0;
    border-top: 1px solid #dfe5ef;
    border-radius: 0;
    background: transparent;
}
#bookingPopup #hdPartyEditor .hd-bp-room .hd-bp-age-row {
    display: flex !important;
    flex-direction: column;
    align-items: stretch !important;
    gap: 6px !important;
    min-width: 0;
}
#bookingPopup #hdPartyEditor .hd-bp-age-label { font-size: 13px !important; color: #4c5870; }
#bookingPopup #hdPartyEditor .hd-bp-age-select {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 8px 28px 8px 12px !important;
    border: 1px solid #dce3ee !important;
    border-radius: 10px;
    background-color: #fff !important;
    background-position: right 12px center !important;
    font-size: 16px !important;
    text-align: left;
}
#bookingPopup .hd-party-remove {
    flex-shrink: 0;
    min-height: 44px;
    padding: 8px 12px;
    margin: -6px -4px -6px 0;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #b42318;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
#bookingPopup .hd-party-remove:hover { background: #fff0ed; border-color: #f2c8c2; }
#bookingPopup .hd-party-mode {
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid #dce3ee;
    border-radius: 12px;
    background: #fff;
    color: var(--primary, #1e3c72);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
#bookingPopup .hd-party-mode:hover { background: #f3f6fb; }
#bookingPopup #hdPartyEditor button:focus-visible,
#bookingPopup #hdPartyEditor select:focus-visible {
    outline: 2px solid var(--primary, #1e3c72) !important;
    outline-offset: 3px;
}
#hdPartyTotal {
    margin: 16px 0 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: #eef3fa;
    color: var(--primary, #1e3c72);
    font-size: 14px;
    font-weight: 600;
}
#hdPartyDone { width: 100%; }
@media (max-width: 575px) {
    #bookingPopup #hdPartyEditor .hd-bp-room { padding: 12px !important; gap: 12px !important; }
    #bookingPopup #hdPartyEditor .hd-bp-room__counters { grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; }
    #bookingPopup #hdPartyEditor .hd-bp-counter { padding: 8px 12px; }
    #bookingPopup .hd-party-actions > button { width: 100%; }
}
