.reservation-details-card {
    overflow: hidden;
    border: 0;
    border-radius: 1.15rem;
    box-shadow: none;
}

.reservation-details-card > .card-body {
    padding: 0;
}

.wm-choice-switch {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .25rem;
    padding: .25rem;
    background: var(--wm-surface);
    border: 1px solid var(--wm-border);
    border-radius: .65rem;
}

.wm-choice-switch > .wm-choice-option {
    border: 0;
    border-radius: .4rem;
    padding: .45rem .75rem;
    color: var(--wm-gray);
    background: transparent;
}

.wm-choice-switch > .wm-choice-option[aria-pressed="true"] {
    color: var(--wm-primary);
    background: white;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .1);
}

.wm-choice-switch > .wm-choice-option:hover {
    color: var(--wm-primary);
}

.wm-choice-switch > .wm-choice-option:focus-visible {
    outline: 2px solid var(--wm-primary);
    outline-offset: 2px;
}

.reservation-details-card .wm-identity-header {
    overflow: visible;
    z-index: var(--bs-dropdown-zindex, 1000);
}

:is(.reservation-details-tab-content, .reservation-modification-modal) :is(.small, small, .form-text, .form-label) {
    font-size: max(.85rem, .875em);
}

:is(.reservation-details-tab-content, .reservation-modification-modal) .badge {
    font-size: max(.85rem, .75em);
}

:is(.reservation-details-tab-content, .reservation-modification-modal) :is(.wm-info-section-header p, .wm-empty-state-description, .wm-data-table-heading, .wm-data-table-total, .list-group-item-header) {
    font-size: .85rem;
}

.reservation-title {
    margin: 0;
    color: var(--bs-body-color);
    letter-spacing: -.035em;
}

.reservation-header-title {
    text-transform: none;
}

.reservation-upload {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .5rem;
}

.reservation-upload form {
    margin: 0;
}

.reservation-upload .btn,
.reservation-primary-action {
    padding: .7rem 1rem;
    border-radius: .65rem;
    white-space: nowrap;
}

.reservation-header-status {
    --reservation-state-accent: var(--wm-primary-ink);
    --reservation-state-background: var(--wm-primary-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1.25rem 1rem;
    background: var(--reservation-state-background);
    border-inline-start: 3px solid var(--reservation-state-accent);
    border-radius: var(--wm-radius-md);
}

.reservation-status-band-container {
    padding: 1.5rem 2rem 0;
}

.reservation-status-band-container > .reservation-header-status {
    border-bottom: 1px solid color-mix(in srgb, var(--reservation-state-accent) 18%, var(--bs-white));
}

.reservation-state-draft {
    --reservation-state-accent: var(--wm-gray);
    --reservation-state-background: var(--wm-surface);
}

.reservation-state-pending {
    --reservation-state-accent: var(--wm-warning-text-aa);
    --reservation-state-background: var(--wm-warning-bg);
}

.reservation-state-cancelled {
    --reservation-state-accent: var(--wm-danger-text);
    --reservation-state-background: var(--wm-danger-bg);
}

.reservation-state-voided {
    --reservation-state-accent: var(--wm-muted);
    --reservation-state-background: var(--wm-surface);
}

.reservation-status-content {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    column-gap: .65rem;
    min-width: 0;
}

.reservation-status-content > i {
    grid-column: 1;
    grid-row: 1 / 3;
    color: var(--reservation-state-accent);
    font-size: 1.25rem;
    line-height: 1;
}

.reservation-status-content > h2,
.reservation-status-content > p {
    grid-column: 2;
}

.reservation-header-status h2 {
    margin: 0;
    color: var(--reservation-state-accent);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
}

.reservation-header-status p {
    margin: .3rem 0 0;
    color: var(--wm-muted);
    font-size: .875rem;
    line-height: 1.5;
}

.reservation-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 1rem;
}

.reservation-header-actions form {
    margin: 0;
}

.reservation-decision-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .6rem;
}

.reservation-decision-actions form {
    margin: 0;
}

@media (max-width: 991.98px) {
    .reservation-identity-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .reservation-header-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

.reservation-general-info {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 0;
    margin: 0;
}

.reservation-general-info > .col-md-6,
.reservation-general-info > .col-xl-3 {
    width: auto;
    min-width: 0;
    padding-right: clamp(1.25rem, 2vw, 2rem);
    padding-left: 0;
}

.reservation-general-info > .reservation-summary-number {
    order: 1;
}

.reservation-general-info > .reservation-summary-date {
    order: 2;
}

.reservation-general-info > .reservation-summary-service-level {
    order: 3;
}

.reservation-general-info > .reservation-summary-created-on {
    order: 4;
}

.reservation-general-info > .reservation-summary-location {
    order: 5;
}

.reservation-general-info > .reservation-summary-client {
    order: 6;
}

.reservation-general-info > .reservation-summary-booker {
    order: 7;
}

.reservation-general-info > .reservation-summary-venue-contact {
    order: 8;
}

.reservation-general-info > .reservation-summary-total {
    order: 9;
}

.reservation-info-item {
    padding-right: 0;
}

.reservation-info-item > div {
    min-width: 0;
}

.reservation-info-label {
    margin-bottom: .28rem;
    color: var(--wm-gray);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .085em;
    line-height: 1.25;
    text-transform: uppercase;
}

.reservation-info-value {
    color: var(--wm-success-text);
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.reservation-summary-section .reservation-summary-total .reservation-info-value {
    font-size: 1.1rem;
}

.reservation-summary-section .reservation-summary-total {
    grid-column: -2;
}

.reservation-info-meta {
    margin-top: .16rem;
    color: var(--wm-gray);
    font-size: .76rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.reservation-contact-details {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
}

.reservation-contact-details a {
    min-width: 0;
    color: inherit;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.reservation-contact-details a:hover {
    color: var(--wm-primary);
    text-decoration: underline;
}

.reservation-contact-details a:focus-visible {
    outline: 2px solid var(--wm-primary);
    outline-offset: 2px;
}

.reservation-summary-section .reservation-info-meta {
    font-size: .85rem;
    line-height: 1.5;
}

.reservation-details-section {
    padding-bottom: 1.5rem;
}

.reservation-page-section {
    display: grid;
    gap: 1.25rem;
    padding: 1.5rem 2rem 1.75rem;
    background: #fff;
}

.reservation-summary-section {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
    padding: .25rem 2rem 1.5rem;
}

.reservation-summary-section .wm-info-section-header h2 {
    font-size: .98rem;
}

.reservation-summary-content {
    padding-inline-start: 3.85rem;
}

.reservation-summary-section .reservation-general-info {
    --bs-gutter-y: 0;
    row-gap: 1.25rem;
}

.reservation-section-content {
    min-width: 0;
    margin-left: 3.05rem;
}

.reservation-details-tab-content .reservation-section-content {
    margin-left: 0;
}

.reservation-documents-empty .wm-empty-state {
    border: 1px dashed var(--wm-border-light);
    border-radius: var(--wm-radius-md);
}

.reservation-details-empty {
    border: 0;
    border-radius: 0;
}

.reservation-details-empty .wm-empty-state {
    border: 1px dashed var(--wm-border-light);
    border-radius: var(--wm-radius-md);
}

.reservation-services-content {
    display: grid;
    gap: 1.375rem;
    overflow: visible;
    border: 0;
    border-radius: 0;
}

.reservation-services-content > .reservation-service-section {
    margin-bottom: 0;
    border: 1px solid var(--wm-border);
    border-radius: .625rem;
    box-shadow: none;
}

.reservation-service-section {
    overflow: hidden;
    padding-block: 0;
    background: #fff;
}

.reservation-service-heading {
    display: flex;
    align-items: stretch;
    flex-wrap: nowrap;
    width: 100%;
    column-gap: 0;
    padding: 0;
    color: var(--bs-body-color);
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.reservation-service-section > .reservation-service-heading {
    padding: 1rem 0;
}

.reservation-service-heading > .caret-icon {
    flex: 0 0 12px;
    align-self: center;
    width: 12px;
    height: 12px;
    margin: 0 .875rem;
    transition: transform 180ms ease, color 180ms ease;
}

@media (hover: hover) {
    .reservation-service-heading:hover > .caret-icon {
        color: var(--wm-primary);
    }
}

@media (prefers-reduced-motion: reduce) {
    .reservation-service-heading > .caret-icon {
        transition: none;
    }
}

.reservation-service-section > .reservation-service-content {
    padding: 0;
}

.reservation-service-identity {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1 1 28%;
    gap: .65rem;
    padding: 0;
}

.reservation-service-header-copy {
    min-width: 0;
}

.reservation-service-title {
    color: var(--bs-body-color);
    font-size: .98rem;
    font-weight: 700;
}

.reservation-service-metric {
    display: grid;
    grid-template-columns: 1.8rem minmax(0, 1fr);
    align-items: center;
    gap: .55rem;
    min-width: 0;
    flex: 1 1 24%;
    padding: 0;
}

.reservation-service-metric > i {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    color: var(--wm-primary);
    font-size: .85rem;
    background: rgba(var(--wm-primary-rgb), .08);
    border-radius: .4rem;
}

.reservation-service-metric-copy {
    min-width: 0;
}

.reservation-service-metric-value {
    display: block;
    overflow-wrap: anywhere;
    color: var(--wm-success-text);
    font-size: .85rem;
    font-weight: 700;
    line-height: 1.25;
}

.reservation-service-metric-label {
    display: block;
    margin-top: .1rem;
    color: var(--wm-gray);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.reservation-service-body {
    display: grid;
    gap: 1.25rem;
    padding: 1.25rem 1.5rem 1.5rem;
}

.reservation-service-group {
    display: grid;
    gap: .45rem;
}

.reservation-package-entry {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: calc(100% - 1.15rem);
    margin-left: 1.15rem;
    overflow: hidden;
    background-color: var(--bs-light);
}

.reservation-package-entry > * {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    min-height: 5.5rem;
    padding: 1rem 1.15rem;
}

.reservation-package-label {
    margin-bottom: .3rem;
    color: #78837c;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.reservation-package-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reservation-package-name,
.reservation-package-value {
    color: var(--bs-body-color);
    font-size: max(.85rem, .875em);
    font-weight: 600;
    line-height: inherit;
}

.reservation-service-items {
    display: grid;
    width: calc(100% - 1.15rem);
    margin-left: 1.15rem;
}

.reservation-items-grid {
    display: grid;
    align-items: center;
    margin: 0;
    grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 2fr) minmax(0, 2fr) minmax(13rem, 1fr);
}

.reservation-items-grid > * {
    width: auto;
    min-width: 0;
    padding-inline: 1rem;
}

.reservation-items-grid > :first-child {
    gap: .5rem;
}

.reservation-service-items .reservation-item-row {
    margin: 0;
    padding-inline: 0;
    border-radius: 0;
}

.reservation-service-items > .wm-data-table-heading {
    padding-inline: 0;
}

.reservation-service-body .badge.border {
    padding: .38rem .55rem;
    border-color: var(--bs-border-color);
    border-radius: .4rem;
}

.overnight-guest-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

.overnight-guest-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    gap: .4rem;
    padding: .28rem .6rem .28rem .3rem;
    color: var(--wm-primary-ink);
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.2;
    background: var(--wm-primary-light);
    border-radius: 999px;
}

.overnight-guest-avatar {
    display: grid;
    flex: 0 0 1.45rem;
    width: 1.45rem;
    height: 1.45rem;
    place-items: center;
    color: var(--wm-primary, #346132);
    font-size: .85rem;
    background: var(--wm-primary-lighter);
    border-radius: 50%;
}

.overnight-guest-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.overnight-guest-empty {
    color: #78837c;
    font-size: .85rem;
    font-style: italic;
}

.overnight-guest-list-soft .overnight-guest-chip {
    font-weight: 500;
}

.overnight-guest-list-soft .overnight-guest-avatar {
    font-size: .72rem;
    font-weight: 600;
}

.overnight-guest-list-soft .overnight-guest-name {
    white-space: normal;
    overflow-wrap: anywhere;
}

@media (max-width: 1199.98px) {
    .reservation-page-section {
        padding-right: 2rem;
        padding-left: 2rem;
    }

    .reservation-general-info {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .reservation-package-entry {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .reservation-status-band-container {
        padding-inline: 1rem;
    }

    .reservation-upload {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .reservation-upload form:only-child {
        grid-column: 1 / -1;
    }

    .reservation-upload .btn {
        width: 100%;
    }

    .reservation-decision-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .reservation-decision-actions .btn {
        width: 100%;
    }

    .reservation-header-actions > .reservation-management-menu {
        width: 100%;
    }

    .reservation-header-actions .reservation-primary-action {
        width: 100%;
    }

    .reservation-general-info {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .reservation-general-info > * {
        padding-right: 0;
        padding-left: 0;
    }

    .reservation-page-section {
        padding: 1rem;
    }

    .reservation-summary-section {
        padding-right: 1.25rem;
        padding-left: 1.25rem;
    }

    .reservation-summary-content {
        padding-inline-start: 3.35rem;
    }

    .reservation-section-content {
        margin-left: 0;
    }

    .reservation-details-section {
        padding-bottom: 1rem;
    }

    .reservation-details-card .tab-content {
        padding: 1rem;
    }

    .reservation-package-entry .text-end {
        margin-top: .75rem;
        text-align: left;
    }
    .reservation-service-items {
        overflow-x: auto;
    }
    .reservation-items-grid {
        min-width: 42rem;
    }
}

@media (max-width: 575.98px) {
    .reservation-package-entry {
        grid-template-columns: 1fr;
    }
}

/* Reservation sections with a compact summary and independent management actions. */
.reservation-editable-section.reservation-service-section {
    --reservation-detail-ink: #162718;
    --reservation-detail-muted: var(--wm-muted);
    --reservation-detail-soft: var(--wm-primary-soft);
    --reservation-detail-surface: #f7f9f7;
    --reservation-detail-border: #dce4dc;
    min-width: 0;
    padding: 0;
    overflow: visible;
    color: var(--reservation-detail-ink);
    background: var(--bs-white);
    border-color: var(--bs-border-color);
    border-width: 1px;
    border-radius: .625rem;
}

.reservation-service-header {
    display: flex;
    align-items: stretch;
}

.reservation-editable-section .reservation-service-heading {
    flex: 1 1 auto;
    align-items: center;
    width: auto;
    min-width: 0;
    padding: 1.4rem 1.5rem;
    gap: 1rem;
}

.reservation-editable-section .reservation-service-heading > .caret-icon {
    margin: 0;
    flex-basis: .65rem;
}

.reservation-editable-section .reservation-service-title {
    display: block;
    margin-bottom: .35rem;
}

.reservation-service-schedule {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .35rem;
    color: var(--wm-muted);
    font-size: .85rem;
    line-height: 1.65;
}

.reservation-service-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
    color: var(--wm-muted);
    font-size: .85rem;
    line-height: 1.65;
}

.reservation-summary-badge {
    display: inline-flex;
    align-items: center;
    padding: .2rem .45rem;
    color: var(--wm-primary-ink);
    background: var(--wm-primary-light);
    border-radius: var(--wm-radius-sm);
}

.reservation-editable-section .reservation-summary-badge {
    padding: .4375rem .5rem;
    color: var(--wm-primary);
    background: var(--reservation-detail-soft);
    border-radius: .25rem;
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.5;
}

.reservation-summary-separator {
    color: var(--wm-border-light);
}

.reservation-summary-price {
    color: var(--wm-success-text);
    font-weight: 600;
}

.reservation-summary-tax {
    color: var(--wm-gray);
    font-weight: 400;
}

.reservation-management-menu {
    flex: 0 0 auto;
    align-self: center;
    margin: 1.4rem 1.5rem 1.4rem 0;
    padding-left: 1.5rem;
    border-left: 1px solid var(--wm-border);
}

.reservation-service-header-compact {
    align-items: center;
    gap: 1.25rem;
    padding: 1.125rem 1.25rem;
    border-radius: inherit;
    background: var(--bs-white);
}

.reservation-service-header-compact .reservation-service-heading {
    display: grid;
    grid-template-columns: .65rem minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    padding: 0;
    border-radius: inherit;
}

.reservation-service-header-compact .reservation-service-title {
    margin-bottom: .45rem;
    font-size: .9375rem;
    font-weight: 500;
    color: var(--reservation-detail-ink);
}

.reservation-service-header-compact .reservation-service-schedule {
    gap: .75rem;
    margin-bottom: 0;
    color: var(--reservation-detail-muted);
    font-size: .85rem;
}

.reservation-service-header-compact .reservation-service-summary {
    margin-bottom: 0;
}

.reservation-service-meta-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    min-width: 0;
}

.reservation-service-header-actions {
    display: flex;
    flex: 0 1 auto;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
    min-width: 0;
    max-width: 55%;
    text-align: right;
}

.reservation-service-header-actions > .reservation-management-menu {
    margin: 0;
    padding: 0;
    border: 0;
    padding-inline-start: 1rem;
    border-inline-start: 1px solid var(--wm-border);
}

.reservation-service-header-total {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem;
    font-size: .85rem;
}

.reservation-service-header-total .reservation-summary-price {
    font-size: 1rem;
}

.reservation-service-header-total .reservation-summary-tax {
    color: var(--reservation-detail-muted);
}

.reservation-manage-button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    padding: .5625rem .6875rem;
    font-size: .85rem;
    font-weight: 500;
    border-radius: var(--wm-radius-sm);
    width: auto;
    min-width: 0;
    color: var(--wm-primary);
    background: var(--bs-white);
    border: 1px solid rgba(var(--wm-primary-rgb), .55);
}

.reservation-manage-button:hover,
.reservation-manage-button.show {
    color: var(--wm-primary);
    background: var(--wm-surface);
    border-color: var(--wm-primary);
}

:is(.reservation-management-menu, .reservation-room-actions) .dropdown-menu {
    min-width: 17rem;
    padding: .4rem;
    background: var(--bs-white);
    border-color: var(--wm-border);
    border-radius: var(--wm-radius-md);
    box-shadow: var(--wm-shadow-md);
}

:is(.reservation-management-menu, .reservation-room-actions) .dropdown-item {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .75rem .7rem;
    color: var(--bs-body-color);
    font-size: .85rem;
    border-radius: var(--wm-radius-sm);
    white-space: normal;
}

:is(.reservation-management-menu, .reservation-room-actions) .dropdown-item i {
    color: var(--wm-primary);
}

:is(.reservation-management-menu, .reservation-room-actions) .dropdown-item:hover,
:is(.reservation-management-menu, .reservation-room-actions) .dropdown-item:focus {
    color: var(--wm-primary-ink);
    background: var(--wm-primary-light);
}

:is(.reservation-management-menu, .reservation-room-actions) .dropdown-item:disabled {
    color: var(--wm-gray);
    background: transparent;
}

:is(.reservation-management-menu, .reservation-room-actions) .dropdown-item:disabled i {
    color: var(--wm-gray);
}

.reservation-editable-section .reservation-service-content {
    min-width: 0;
    border-top: 1px solid var(--reservation-detail-border);
}

.reservation-editable-section .reservation-service-body {
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.125rem;
    padding: 1.375rem;
    color: var(--reservation-detail-ink);
    font-size: .85rem;
}

.reservation-group-heading {
    margin: 0 0 .7rem;
    color: var(--bs-body-color);
    font-size: .85rem;
    font-weight: 600;
    text-transform: uppercase;
}
summary.reservation-group-heading {
    text-transform: none;
}

.reservation-editable-section .reservation-service-group {
    display: block;
    min-width: 0;
}

.reservation-editable-section .reservation-package-entry {
    width: 100%;
    margin: 0;
    border-radius: .4375rem;
    background: var(--reservation-detail-surface);
}

.reservation-editable-section .reservation-meeting-package {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1.7fr) repeat(2, minmax(0, 1fr));
    gap: 1.125rem;
    padding: 1.0625rem;
}

.reservation-editable-section .reservation-meeting-package > * {
    min-height: auto;
    justify-content: flex-start;
    padding: 0;
}

.reservation-editable-section .reservation-package-label {
    margin-bottom: .4375rem;
    color: var(--reservation-detail-muted);
    font-size: .85rem;
    font-weight: 400;
    letter-spacing: normal;
    text-transform: none;
}

.reservation-editable-section .reservation-package-name,
.reservation-editable-section .reservation-package-value {
    color: var(--reservation-detail-ink);
    font-size: .85rem;
    font-weight: 500;
    line-height: 1.6;
    white-space: normal;
}

.reservation-editable-section .reservation-package-entry .badge {
    align-self: flex-start;
    margin-top: .4rem;
}

.reservation-item-name {
    display: block;
    margin-bottom: .35rem;
    color: var(--bs-body-color);
    font-size: .85rem;
    font-weight: 600;
}

.reservation-item-meta {
    display: block;
    color: var(--wm-gray);
    font-size: .85rem;
    line-height: 1.7;
}

.reservation-item-total {
    color: var(--wm-success-text);
    font-size: .85rem;
    font-weight: 600;
    white-space: nowrap;
}

.reservation-editable-section .reservation-service-table {
    border-collapse: collapse;
    font-size: .85rem;
}

.reservation-editable-section .reservation-service-table th {
    padding: .75rem;
}

.reservation-editable-section .reservation-service-table td {
    padding: .875rem .75rem;
    color: var(--reservation-detail-ink);
    line-height: 1.65;
}

.reservation-editable-section .reservation-service-table td:first-child {
    font-weight: 500;
}

.reservation-editable-section .reservation-service-table td:nth-child(2) {
    color: var(--reservation-detail-ink);
}

.reservation-editable-section .reservation-service-table td:last-child {
    color: var(--wm-primary);
    font-weight: 500;
}

.reservation-editable-section .reservation-service-table .reservation-service-row-inactive td {
    color: var(--reservation-detail-muted);
}

.reservation-service-body .reservation-status-text {
    font-size: var(--wm-badge-font-size, .85rem);
    line-height: var(--wm-badge-line-height, 1.5);
}

.reservation-package-status {
    margin-top: .4375rem;
}

.reservation-empty-state {
    padding: 1.25rem .875rem;
    color: var(--reservation-detail-muted);
    font-size: .85rem;
}

.reservation-room-guests .overnight-guest-chip {
    gap: .3125rem;
    padding: .4375rem .625rem;
    color: var(--wm-primary);
    background: var(--reservation-detail-soft);
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.5;
    border-radius: var(--wm-radius-pill);
}

.reservation-room-guests .overnight-guest-avatar {
    display: inline-flex;
    flex: 0 0 auto;
    width: auto;
    height: auto;
    background: transparent;
    border-radius: 0;
    font-size: .85rem;
}

.reservation-editable-section .reservation-service-table thead tr:last-child th {
    color: var(--reservation-detail-muted);
    font-size: .85rem;
    font-weight: 400;
    letter-spacing: normal;
    text-transform: none;
    background: var(--wm-surface);
}

.reservation-service-table th,
.reservation-service-table td {
    vertical-align: middle;
    line-height: 1.7;
}

.reservation-service-table tbody tr + tr td {
    border-top: 0;
}

.reservation-service-table td,
.reservation-item-row {
    color: var(--bs-body-color);
}

.reservation-service-table td:nth-child(2),
.reservation-service-table td:nth-child(3),
.reservation-service-table .reservation-service-quantity,
.reservation-item-row > :nth-child(2),
.reservation-item-row > :nth-child(3) {
    color: var(--wm-gray);
}

.reservation-service-table td:last-child,
.reservation-item-row > :nth-child(4) {
    color: var(--wm-success-text);
    font-weight: 600;
}

.reservation-service-table .reservation-service-row-inactive td,
.reservation-item-row.reservation-service-row-inactive > div {
    color: var(--wm-gray);
}

.reservation-service-table th:last-child,
.reservation-service-table td:last-child {
    white-space: nowrap;
}

.reservation-editable-section .reservation-room-list {
    gap: 1.125rem;
}

.reservation-room-entry {
    min-width: 0;
    border: 1px solid var(--reservation-detail-border, var(--wm-border));
    border-radius: var(--wm-radius-md);
}

.reservation-room-entry + .reservation-room-entry {
    margin-top: 0;
}

.reservation-room-entry .reservation-room-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: .85rem;
    row-gap: .5rem;
    margin-bottom: 0;
    padding: 1rem;
    background: var(--bs-white);
    border: 0;
    border-radius: var(--wm-radius-md);
    cursor: default;
}

.reservation-room-header > .reservation-room-heading {
    display: grid;
    grid-column: 1;
    grid-row: 1;
    grid-template-columns: .75rem minmax(12rem, 1fr) minmax(10rem, .65fr) minmax(6rem, .4fr) minmax(11rem, .65fr);
    align-items: center;
    gap: 1rem;
    cursor: pointer;
    min-width: 0;
    width: 100%;
    padding: 0;
    border: 0;
    color: var(--bs-body-color);
    background: transparent;
    text-align: start;
}

.reservation-room-entry .reservation-room-title-row {
    margin-inline-start: -.5rem;
}

.reservation-room-entry.open > .reservation-room-header > .reservation-room-heading .caret-icon {
    transform: rotate(0deg);
}

.reservation-room-entry .reservation-room-row-status {
    display: flex;
    align-items: center;
    min-width: 0;
    font-size: .85rem;
}

@media (max-width: 767.98px) {
    .reservation-room-entry .reservation-room-header {
        grid-template-columns: minmax(0, 1fr);
    }

    .reservation-room-entry .reservation-room-header-actions {
        grid-column: 1;
        grid-row: 2;
        padding-inline-start: 0;
        padding-block-start: .5rem;
        border-inline-start: 0;
        border-top: 1px solid var(--wm-border);
    }

    .reservation-room-entry .reservation-room-heading {
        grid-template-columns: .75rem minmax(0, 1fr) auto;
        gap: .65rem;
    }

    .reservation-room-entry .reservation-room-title-row {
        grid-column: 2 / -1;
    }

    .reservation-room-entry .reservation-room-date,
    .reservation-room-entry .reservation-room-row-status {
        grid-column: 2;
    }

    .reservation-room-entry .reservation-room-header-total {
        grid-column: 3;
        grid-row: 2 / 4;
        max-width: 11rem;
    }
}

.reservation-room-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
}

.reservation-room-title-row .reservation-item-name {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-width: 0;
    margin-bottom: 0;
    color: var(--reservation-detail-ink);
    font-size: .85rem;
    font-weight: 500;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.reservation-room-toggle {
    padding: 0;
    border: 0;
    background: transparent;
    font-family: inherit;
    cursor: pointer;
}

.reservation-room-title-row .reservation-item-name > i,
.reservation-room-date > i {
    display: inline-flex;
    flex: 0 0 1rem;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    line-height: 1;
}

.reservation-status-text {
    color: var(--bs-body-color);
    display: inline-flex;
    align-items: center;
    font-size: var(--wm-badge-font-size, .85rem);
    line-height: var(--wm-badge-line-height, 1.2);
}

.reservation-status-text i {
    line-height: 1;
}

.reservation-room-date {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
    line-height: 1.5;
}

.reservation-room-date-range {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .25rem;
}

.reservation-room-guests {
    display: flex;
    grid-column: 1;
    align-items: center;
    flex-wrap: wrap;
    min-width: 0;
    gap: .65rem;
}

.reservation-room-header-actions {
    display: flex;
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    justify-content: flex-end;
    align-items: center;
    gap: .55rem;
    padding-inline-start: 1rem;
    border-inline-start: 1px solid var(--wm-border);
    text-align: right;
}

.reservation-room-header-total {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .35rem;
    font-size: .85rem;
    color: var(--wm-gray);
    text-align: right;
}

.reservation-room-header-total strong {
    color: var(--wm-success-text);
    font-size: .9375rem;
    font-weight: 600;
}

.reservation-room-entry-cancelled .reservation-item-name,
.reservation-room-entry-cancelled .reservation-item-total,
.reservation-room-entry-cancelled .reservation-room-header-total strong,
.reservation-room-entry-cancelled .reservation-service-table td,
.reservation-room-entry-cancelled .overnight-guest-chip {
    color: var(--wm-gray);
}

.reservation-room-entry-cancelled .overnight-guest-chip {
    background: var(--bs-secondary-bg);
}

.reservation-room-entry-cancelled .overnight-guest-avatar {
    color: inherit;
}

.reservation-room-action-wrapper {
    display: inline-flex;
}

.reservation-room-actions .reservation-room-action-wrapper {
    display: flex;
}

:is(.reservation-management-menu, .reservation-room-actions) .dropdown-item.text-danger i {
    color: inherit;
}

.reservation-room-action-wrapper[title] {
    cursor: not-allowed;
}

.reservation-management-menu .reservation-room-action-wrapper {
    display: flex;
}

.reservation-room-action-wrapper > .dropdown-item {
    width: 100%;
}

.reservation-room-action-wrapper[title] > .dropdown-item:disabled {
    pointer-events: none;
}

.reservation-editable-section .overnight-guest-list {
    margin-top: .4rem;
}

.reservation-room-guests .overnight-guest-list {
    margin-top: 0;
}

.reservation-room-actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: .375rem;
}

.reservation-manage-button:focus-visible,
.reservation-room-toggle:focus-visible,
.reservation-editable-section .list-item-header:focus-visible {
    outline: 2px solid var(--wm-primary);
    outline-offset: 3px;
}

.reservation-room-entry > .reservation-room-services {
    min-width: 0;
    margin: 0;
    padding: .5rem 1rem 1.125rem;
}

.reservation-details-panel {
    min-width: 0;
    background: var(--bs-white);
    border: 0;
    border-radius: var(--wm-radius-sm);
}

.reservation-details-panel > summary {
    display: flex;
    align-items: center;
    gap: .65rem;
    width: 100%;
    margin: 0;
    padding: .75rem .875rem;
    color: var(--wm-primary);
    font-size: .85rem;
    font-weight: 500;
    background: var(--reservation-detail-surface, var(--wm-surface));
    border-radius: .375rem;
    list-style: none;
}

.reservation-details-panel > summary::-webkit-details-marker {
    display: none;
}

.reservation-details-panel > summary::before {
    content: "";
    flex: 0 0 .4rem;
    width: .4rem;
    height: .4rem;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 160ms ease;
}

.reservation-details-panel[open] > summary::before {
    transform: rotate(45deg);
}

.reservation-room-details-body {
    min-width: 0;
    padding: 0;
    background: transparent;
}

.reservation-details-panel .wm-data-table-scroll {
    border: 0;
    border-radius: 0;
}

.reservation-details-panel .reservation-service-table thead tr:last-child th {
    background: var(--wm-surface);
}

.reservation-room-table .reservation-service-table {
    min-width: 38.75rem;
}

.reservation-room-table .reservation-service-table th {
    padding: .75rem;
}

.reservation-room-table .reservation-service-table td {
    padding: .875rem .75rem;
}

.reservation-room-table .reservation-service-table td:first-child {
    min-width: 10rem;
    font-weight: 500;
}

.reservation-service-body .reservation-package-entry .bi-calendar3,
.reservation-service-body .reservation-package-entry .bi-clock,
.reservation-service-table .bi-clock {
    display: none;
}

.reservation-editable-section.open > .reservation-service-header .caret-icon {
    transform: rotate(0deg);
}

@media (max-width: 1199.98px) {
    .reservation-editable-section .reservation-meeting-package {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (prefers-reduced-motion: reduce) {
    .reservation-details-panel > summary::before {
        transition: none;
    }
}

@media (max-width: 767.98px) {
    .reservation-service-header {
        flex-wrap: wrap;
    }

    .reservation-editable-section .reservation-service-heading {
        flex-basis: 100%;
        padding: 1.25rem;
    }

    .reservation-management-menu {
        margin: 0 1.25rem 1.25rem 2.9rem;
        padding-left: 0;
        border: 0;
    }

    .reservation-service-header-compact .reservation-service-heading {
        padding: 0;
    }

    .reservation-service-header-actions {
        flex-basis: 100%;
        max-width: 100%;
    }

    :is(.reservation-management-menu, .reservation-room-actions) .dropdown-menu {
        min-width: min(17rem, calc(100vw - 5rem));
    }

    .reservation-editable-section .reservation-package-entry {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .reservation-service-table {
        min-width: 34rem;
    }

    .reservation-room-actions {
        flex: 1 1 100%;
        justify-content: flex-start;
    }
}

@media (max-width: 575.98px) {
    .reservation-editable-section .reservation-service-body {
        padding: .8125rem;
    }
    .reservation-editable-section .reservation-meeting-package {
        grid-template-columns: 1fr;
    }
}

/* Reservation modification modals share the reservation card palette and spacing. */
.reservation-modification-modal {
    font-size: .875rem;
}

.reservation-modification-modal .modal-header {
    min-height: 4rem;
    padding: 1rem 1.25rem;
    border-bottom: 0;
}

.reservation-modification-modal .modal-title {
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1.5;
}

.reservation-modification-modal .reservation-modification-search,
.reservation-modification-modal .reservation-modification-context {
    padding: 1rem;
    background: var(--wm-surface);
    border: 1px solid var(--wm-border);
    border-radius: var(--wm-radius-md);
}

.reservation-modification-occupancy,
.reservation-modification-option {
    padding: 1rem;
    border: 1px solid var(--wm-border);
    border-radius: var(--wm-radius-md);
    background: white;
}

.reservation-modification-occupancy {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.reservation-modification-occupancy > i {
    display: grid;
    place-items: center;
    flex: 0 0 2.25rem;
    height: 2.25rem;
    color: var(--wm-primary);
    font-size: 1.15rem;
    background: var(--wm-primary-light);
    border-radius: var(--wm-radius-sm);
}

.reservation-occupancy-menu {
    max-width: calc(100vw - 1.5rem);
    max-height: 20rem;
    overflow-y: auto;
    padding: .25rem .875rem;
    border-color: var(--wm-border);
    border-radius: var(--wm-radius-md);
    box-shadow: var(--wm-shadow-md);
}

.reservation-occupancy-menu .reservation-modification-occupancy {
    padding: .65rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.reservation-occupancy-menu .reservation-modification-occupancy + .reservation-modification-occupancy {
    border-top: 1px solid var(--wm-border-light);
}

.reservation-occupancy-menu .reservation-modification-occupancy > i {
    flex-basis: 2rem;
    height: 2rem;
    background: var(--wm-primary-light);
}

.reservation-occupancy-menu .reservation-modification-counter {
    gap: 0;
    padding: .15rem;
    background: var(--wm-surface);
    border: 1px solid var(--wm-border-light);
    border-radius: var(--wm-radius-sm);
}

.reservation-occupancy-menu .reservation-modification-counter button {
    width: 1.75rem;
    height: 1.75rem;
    border: 0;
    background: transparent;
}

.reservation-modification-counter {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.reservation-modification-counter .form-control {
    width: 2rem;
    text-align: center;
    padding: .25rem 0;
    border: 0;
    background: transparent;
    appearance: textfield;
    font-weight: 600;
}

.reservation-modification-counter input::-webkit-inner-spin-button {
    appearance: none;
}

.reservation-modification-counter button {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid var(--wm-border-light);
    border-radius: var(--wm-radius-sm);
    background: white;
    color: var(--wm-primary);
    font-size: 1rem;
}

.reservation-modification-counter button:hover:enabled {
    background: var(--wm-primary-light);
}

.reservation-modification-counter button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.reservation-modification-option:has(input[type=radio]:checked) {
    border-color: var(--wm-primary);
    background: var(--wm-surface);
}

.reservation-modification-room-option:has(> input[type=radio]:disabled) {
    background: var(--wm-surface);
    cursor: not-allowed;
}

.reservation-modification-pricing {
    border: 1px solid var(--wm-border);
    border-radius: var(--wm-radius-md);
    padding: 1rem;
    background: white;
}

.reservation-modification-pricing strong {
    color: var(--wm-primary-ink);
}

@media (max-width: 575.98px) {
    .reservation-modification-occupancy {
        padding: .75rem;
        gap: .5rem;
    }

    .reservation-modification-occupancy > i {
        display: none;
    }
}

.reservation-modification-room-option {
    display: flex;
    align-items: center;
    gap: .9rem;
    cursor: pointer;
}

.reservation-modification-room-option > input {
    flex-shrink: 0;
    accent-color: var(--wm-primary);
}

.reservation-modification-room-option > i {
    display: grid;
    place-items: center;
    flex: 0 0 2.75rem;
    height: 2.75rem;
    color: var(--wm-primary);
    background: var(--wm-primary-light);
    border-radius: var(--wm-radius-sm);
    font-size: 1.25rem;
}

.reservation-modification-room-copy {
    flex: 1;
    min-width: 0;
}

.reservation-modification-room-price {
    text-align: right;
}

.reservation-modification-room-price > strong {
    color: var(--wm-success-text);
}

.reservation-details-disclosure {
    font-size: .85rem;
    overflow-wrap: anywhere;
}

.reservation-details-disclosure summary {
    color: var(--wm-primary);
    cursor: pointer;
}

.reservation-details-disclosure:not(.reservation-details-panel) > summary {
    width: fit-content;
}

.reservation-details-disclosure summary:focus-visible {
    outline: 2px solid var(--wm-primary);
    outline-offset: 3px;
}

.reservation-modification-modal .modal-body {
    font-size: .875rem;
}

.reservation-modification-modal .reservation-modification-section-title {
    margin: 1.5rem 0 1rem;
    font-size: 1rem;
    font-weight: 600;
}

.reservation-modification-modal .form-label {
    font-weight: 600;
}

.reservation-modification-modal .form-control,
.reservation-modification-modal .form-select {
    min-height: 2.55rem;
    font-size: .875rem;
    border-radius: var(--bs-border-radius);
}

.reservation-modification-modal .btn {
    min-height: 0;
    padding: .5rem .8rem;
    font-size: .875rem;
    border-radius: .45rem;
    font-weight: 400;
    line-height: 1.5;
}

.reservation-modification-modal .wm-range-footer .btn {
    padding: .4rem .65rem;
    font-size: .85rem;
}

.reservation-modification-modal .reservation-modification-counter input {
    min-height: 2rem;
}

.reservation-modification-modal .table th {
    background: var(--wm-surface);
    color: var(--wm-gray);
    font-size: .85rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: normal;
}

.reservation-modification-modal .table td, .reservation-modification-modal .table th {
    padding: .8rem .75rem;
}

.reservation-modification-modal .alert {
    border: 0;
    border-radius: var(--wm-radius-sm);
}

.reservation-modification-guest-card {
    padding: 1rem;
    border: 1px solid var(--wm-border);
    border-radius: var(--wm-radius-md);
    background: white;
}

.reservation-modification-guest-card .row:last-child {
    margin-bottom: 0;
}

.reservation-modification-guest-card input[readonly] {
    background: white;
}

.reservation-modification-modal .reservation-modification-context {
    margin-bottom: 1.25rem;
}

.reservation-modification-selected {
    display: none;
    margin-top: .5rem;
    color: var(--wm-primary);
    font-size: .85rem;
    font-weight: 600;
}

.reservation-modification-room-option:has(> input[type=radio]:checked) .reservation-modification-selected {
    display: block;
}

.reservation-modification-pricing h3 {
    margin: 0 0 .75rem;
}

.reservation-modification-pricing .row strong {
    display: block;
    margin-top: .5rem;
    font-size: 1.05rem;
    color: var(--wm-success-text);
}

.reservation-modification-pricing > .d-flex:last-child {
    color: var(--wm-primary);
}

@media (max-width: 575.98px) {
    .reservation-modification-room-option {
        flex-wrap: wrap;
    }

    .reservation-modification-room-price {
        flex-basis: 100%;
        text-align: left;
        padding-left: 2rem;
    }
}

.reservation-room-choice-card {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    padding: 0;
}

.reservation-room-choice-heading {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr);
    align-items: center;
    align-content: start;
    column-gap: .9rem;
    row-gap: .5rem;
    padding: 1rem;
    cursor: default;
}

.reservation-room-choice-description {
    grid-column: 1 / -1;
    min-width: 0;
    overflow-wrap: anywhere;
}

.reservation-room-choice-options {
    min-width: 0;
    padding: .25rem 1rem;
    border-left: 1px solid var(--wm-border-light);
}

.reservation-room-choice-option {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content max-content;
    align-items: center;
    gap: .75rem;
    margin: 0;
    padding: .75rem 0;
    border-top: 1px solid var(--wm-border-light);
}

.reservation-room-choice-option:first-child {
    border-top: 0;
}

.reservation-room-choice-radio {
    grid-template-columns: 1rem minmax(0, 1fr) max-content;
}

.reservation-room-choice-option .reservation-modification-room-price {
    padding: 0;
}

.reservation-room-choice-option .reservation-modification-selected {
    margin-top: .25rem;
}

.reservation-room-choice-allocation:has(input[readonly]) .reservation-modification-room-price > strong {
    color: var(--wm-gray);
}

@media (max-width: 767.98px) {
    .reservation-room-choice-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .reservation-room-choice-options {
        border-left: 0;
        border-top: 1px solid var(--wm-border-light);
    }
}

@media (max-width: 575.98px) {
    .reservation-room-choice-option {
        grid-template-columns: minmax(0, 1fr) max-content;
    }

    .reservation-room-choice-allocation .reservation-modification-counter {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .reservation-room-choice-option .reservation-modification-room-price {
        grid-column: 1;
        text-align: left;
    }

    .reservation-room-choice-radio {
        grid-template-columns: 1rem minmax(0, 1fr);
    }

    .reservation-room-choice-radio .reservation-modification-room-price {
        grid-column: 2;
    }
}
