/* /Pages/Bookings/BookingDetailPanel.razor.rz.scp.css */
.booking-detail-panel[b-2l1taa8gvq] {
    box-sizing: border-box;
    position: sticky;
    inset-inline-start: 0;
    width: var(--booking-detail-inline-size, 100cqi);
    max-width: var(--booking-detail-inline-size, 100cqi);
    min-width: 0;
    color: var(--mud-palette-text-primary);
    background: var(--mud-palette-background-gray);
    overflow-wrap: anywhere;
    white-space: normal;
}

/* Values that need action use the same warning treatment as the grid. */
.booking-detail-panel[b-2l1taa8gvq]  .booking-detail-warning {
    color: var(--mud-palette-warning-darken);
    font-weight: 600;
}

.booking-detail-section[b-2l1taa8gvq] {
    min-width: 0;
    border-top: 1px solid var(--mud-palette-divider);
}

/* A fixed table layout lets long charge values wrap inside the scrollport. */
.booking-detail-panel[b-2l1taa8gvq]  .booking-charge-table table {
    table-layout: fixed;
}

/* MudSimpleTable has no numeric alignment parameter for its native cells. */
.booking-detail-panel[b-2l1taa8gvq]  .booking-charge-number {
    text-align: end;
    font-variant-numeric: tabular-nums;
}

.booking-detail-panel[b-2l1taa8gvq]  .booking-charge-table th,
.booking-detail-panel[b-2l1taa8gvq]  .booking-charge-table td {
    vertical-align: top;
}
/* /Pages/Bookings/Bookings.razor.rz.scp.css */
/* AP2-T48: the dense grid owns the page; app bar and container padding account for 6rem. */
.bookings-page[b-lqume3okgv] {
    width: 100%;
    height: calc(100dvh - 6rem);
    min-height: 0;
    overflow: hidden;
}

.bookings-page[b-lqume3okgv]  .bookings-results {
    flex: 1 1 0;
    min-height: 0;
    padding: 0.375rem 0.5rem 0;
}

.bookings-summary[b-lqume3okgv] {
    padding: 0 0.25rem 0.25rem;
    font-size: 0.8125rem;
    line-height: 1.25rem;
}

.bookings-summary-row[b-lqume3okgv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.125rem 1rem;
    min-width: 0;
    min-height: 1.25rem;
}

.bookings-summary-empty[b-lqume3okgv] {
    color: var(--mud-palette-text-secondary);
}

.bookings-summary-warning[b-lqume3okgv] {
    color: var(--mud-palette-warning-darken);
}

.bookings-sync-summary[b-lqume3okgv] {
    margin-inline-start: auto;
    color: var(--mud-palette-text-secondary);
}

.bookings-page[b-lqume3okgv]  .bookings-summary-alert {
    padding-block: 0;
}

.bookings-grid-viewport[b-lqume3okgv] {
    position: relative;
    display: flex;
    flex: 1 1 0;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    container-name: bookings-grid;
    container-type: inline-size;
}

.bookings-page[b-lqume3okgv]  .bookings-data-grid {
    flex: 1 1 0;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-container {
    box-sizing: border-box;
    flex: 1 1 0;
    width: 100%;
    min-height: 0;
    min-width: 0;
    max-height: 100%;
    max-width: 100%;
    container-type: inline-size;
    overflow: auto;
}

/* Toolbar: one wrapping row of compact search, company and grid actions. */
.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-toolbar {
    flex-wrap: wrap;
    height: auto;
    min-height: 2.5rem;
    gap: 0.25rem 0.5rem;
    padding: 0.25rem 0.25rem;
}

.bookings-page[b-lqume3okgv]  .bookings-toolbar-search {
    width: 20rem;
    max-width: 100%;
}

.bookings-page[b-lqume3okgv]  .bookings-toolbar-company {
    width: 10rem;
}

.bookings-grid-footer[b-lqume3okgv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-inline-start: 0.25rem;
}

.bookings-page[b-lqume3okgv]  .bookings-grid-footer .mud-table-pagination {
    flex: 0 1 auto;
}

/* MudSelect's outer wrapper grows by default, which pushes Clear filters away from Company. */
.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-toolbar > .mud-select:has(.bookings-toolbar-company) {
    flex: 0 0 auto;
}

/* Thin single-line rows; the expanded detail row is a plain td and keeps its own layout. */
.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-head .mud-table-cell,
.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-body > .mud-table-row > .mud-table-cell {
    padding: 0.125rem 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.25rem;
    white-space: nowrap;
}

.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-body > .mud-table-row > .mud-table-cell .mud-icon-button {
    padding: 0.125rem;
}

.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-body .mud-checkbox .mud-button-root {
    padding: 0.125rem;
}

/* Unresolved and ambiguous Sage identities stand apart from real account codes. */
.bookings-page[b-lqume3okgv]  .bookings-identity-warning {
    color: var(--mud-palette-warning-darken);
    font-weight: 600;
}

.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-chip.mud-chip-size-small {
    height: 1.25rem;
    margin: 0;
    font-size: 0.75rem;
}

/*
 * MudBlazor pins the filter row below a default 39px header row. Fix the dense header height and
 * pin the filter row to it, otherwise the filter row overlaps the first booking row.
 */
.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-head > tr:first-child > th {
    box-sizing: border-box;
    height: 2rem;
}

.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-head > tr:nth-child(2) > th {
    top: 2rem;
}

/* A subtle tint separates the sticky header and filter row from the striped data rows. */
.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-head > tr > th {
    background-color: #f4f4f5;
}

.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-head > tr:first-child > th {
    color: var(--mud-palette-text-primary);
    font-weight: 600;
}

/* An inset shadow, unlike a border, stays visible on the sticky header while the rows scroll. */
.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-head > tr:last-child > th {
    border-bottom: 0;
    box-shadow: inset 0 -2px 0 #a1a1aa;
}

/* Column filter row: compact outlined inputs that fit the dense header. */
.bookings-page[b-lqume3okgv]  .bookings-filter-input {
    min-width: 8rem;
    margin: 0;
}

.bookings-page[b-lqume3okgv]  .bookings-date-filter {
    width: 9.5rem;
}

/* Match the outlined filter inputs: light input border, darker on hover, same height. */
.bookings-page[b-lqume3okgv]  .bookings-date-filter-button {
    justify-content: space-between;
    height: 1.6875rem;
    min-height: 0;
    padding: 0 0.5rem;
    border-color: var(--mud-palette-lines-inputs);
    font-size: 0.8125rem;
    font-weight: 400;
    white-space: nowrap;
}

.bookings-page[b-lqume3okgv]  .bookings-date-filter-button:hover {
    border-color: var(--mud-palette-text-primary);
    background-color: transparent;
}

.bookings-page[b-lqume3okgv]  .bookings-date-filter-button.bookings-date-filter-empty {
    color: var(--mud-palette-text-secondary);
}

.bookings-page[b-lqume3okgv]  .bookings-filter-input .mud-input.mud-input-outlined input,
.bookings-page[b-lqume3okgv]  .bookings-filter-input .mud-input.mud-input-outlined .mud-select-input,
.bookings-page[b-lqume3okgv]  .bookings-toolbar-search .mud-input.mud-input-outlined input,
.bookings-page[b-lqume3okgv]  .bookings-toolbar-company .mud-input.mud-input-outlined .mud-select-input {
    padding-block: 0.25rem;
    font-size: 0.8125rem;
}

.bookings-page[b-lqume3okgv]  .bookings-data-grid .mud-table-pagination-toolbar {
    min-height: 2.25rem;
    height: auto;
}

@media (max-height: 700px) {
    .bookings-page[b-lqume3okgv] {
        height: auto;
        min-height: calc(100dvh - 6rem);
        overflow: visible;
    }

    .bookings-page[b-lqume3okgv]  .bookings-results {
        flex: 1 0 27rem;
        min-height: 27rem;
    }

    .bookings-grid-viewport[b-lqume3okgv] {
        flex: 1 0 19rem;
        min-height: 19rem;
    }
}

@media (max-width: 700px) {
    .bookings-sync-summary[b-lqume3okgv] {
        margin-inline-start: 0;
    }
}
/* /Pages/Bookings/PreInvoiceChoiceDialog.razor.rz.scp.css */
.grouping-outcome-label[b-4p8m7wasxu] {
    margin-bottom: 10px;
    color: var(--mud-palette-text-secondary);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.grouping-choices[b-4p8m7wasxu] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.grouping-choice[b-4p8m7wasxu] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background: var(--mud-palette-surface);
    cursor: pointer;
}

.grouping-choice:hover[b-4p8m7wasxu] {
    border-color: var(--mud-palette-text-secondary);
}

.grouping-choice:has(input:checked)[b-4p8m7wasxu] {
    border-color: var(--mud-palette-primary);
    box-shadow: inset 0 0 0 1px var(--mud-palette-primary);
    background: var(--mud-palette-primary-hover);
}

.grouping-choice:has(input:focus-visible)[b-4p8m7wasxu] {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: 3px;
}

.grouping-choice input[b-4p8m7wasxu] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.grouping-choice-header[b-4p8m7wasxu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.grouping-choice-icon[b-4p8m7wasxu] {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 6px;
    background: var(--mud-palette-background);
    color: var(--mud-palette-text-secondary);
}

.grouping-choice-icon svg[b-4p8m7wasxu] {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.grouping-choice-radio[b-4p8m7wasxu] {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border: 1.5px solid var(--mud-palette-text-secondary);
    border-radius: 50%;
}

.grouping-choice:has(input:checked) .grouping-choice-radio[b-4p8m7wasxu] {
    border-color: var(--mud-palette-primary);
}

.grouping-choice:has(input:checked) .grouping-choice-radio[b-4p8m7wasxu]::after {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--mud-palette-primary);
}

.grouping-choice-title[b-4p8m7wasxu] {
    font-size: 1rem;
    font-weight: 600;
}

.grouping-choice-description[b-4p8m7wasxu],
.grouping-choice-note[b-4p8m7wasxu] {
    color: var(--mud-palette-text-secondary);
    line-height: 1.5;
}

.grouping-choice-description[b-4p8m7wasxu] {
    font-size: 0.875rem;
}

.grouping-choice-note[b-4p8m7wasxu] {
    margin-top: auto;
    font-size: 0.75rem;
}

@media (max-width: 600px) {
    .grouping-choices[b-4p8m7wasxu] {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* /Pages/PreInvoicing/PreInvoicing.razor.rz.scp.css */
[b-k9ylg00iyz] .pre-invoice-amount {
    text-align: right;
    white-space: nowrap;
}

/* MudDataGrid lays the header title out as a flex row, so text-align alone leaves numeric headers on the left. */
[b-k9ylg00iyz] th.pre-invoice-amount .column-header {
    justify-content: flex-end;
}

[b-k9ylg00iyz] .pre-invoice-batch-row {
    cursor: pointer;
}

[b-k9ylg00iyz] .pre-invoice-batch-selected td {
    background-color: var(--mud-palette-primary-hover);
    font-weight: 600;
}

/* Each invoice group starts with a tinted header bar, like the Bookings grid header, and a gap separates groups
   so it stays clear where one ends when several are expanded. */
[b-k9ylg00iyz] .pre-invoice-groups .mud-expand-panel + .mud-expand-panel {
    margin-top: 8px;
}

[b-k9ylg00iyz] .pre-invoice-groups .mud-expand-panel {
    border-radius: var(--mud-default-borderradius);
}

[b-k9ylg00iyz] .pre-invoice-groups .mud-expand-panel-header {
    background-color: #f4f4f5;
    border-radius: var(--mud-default-borderradius);
}

[b-k9ylg00iyz] .pre-invoice-groups .mud-panel-expanded > .mud-expand-panel-header {
    border-bottom: 1px solid var(--mud-palette-lines-default);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

[b-k9ylg00iyz] .pre-invoice-group-customer {
    font-weight: 600;
}

[b-k9ylg00iyz] .pre-invoice-ap-chip {
    background-color: var(--mud-palette-secondary-darken);
}

[b-k9ylg00iyz] .pre-invoice-created-filter {
    min-width: 240px;
}
