/* /Components/Layout/EmbedLayout.razor.rz.scp.css */
.embed-shell[b-1i2g4qmje7] {
    padding: 1rem;
    background-color: var(--theme-body-bg);
    color: var(--theme-body-color);
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-14pjdz8uq4] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-14pjdz8uq4] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Pages/Dashboard/Bookings.razor.rz.scp.css */
.timeline-container[b-ekvcfnjc5c] {
    container-type: inline-size;
}

.timeline-legend-top[b-ekvcfnjc5c] {
    padding: 0.5rem 1rem;
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
    flex-wrap: wrap;
}

.timeline-scroll[b-ekvcfnjc5c] {
    overflow-x: auto;
}

/* Wide layout (the 28-day table) is the default; narrow (per-unit 7-day-wide cards) takes
   over once the card itself is too narrow for the table to be usable, mirroring the
   cal-wide-only/cal-narrow-only container-query pattern used by AvailabilityCalendar. */
.timeline-narrow-only[b-ekvcfnjc5c] {
    display: none;
}

@container (max-width: 575.98px) {
    .timeline-wide-only[b-ekvcfnjc5c] {
        display: none;
    }

    .timeline-narrow-only[b-ekvcfnjc5c] {
        display: block;
    }
}

.timeline-table[b-ekvcfnjc5c] {
    border-collapse: collapse;
    width: 100%;
}

.timeline-unit-col[b-ekvcfnjc5c] {
    position: sticky;
    left: 0;
    z-index: 1;
    background-color: var(--theme-body-bg, #fff);
    min-width: 180px;
    max-width: 180px;
    padding: 0.5rem 0.75rem;
    border-right: 1px solid var(--theme-border-color, #dee2e6);
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.timeline-day-col[b-ekvcfnjc5c] {
    min-width: 30px;
    max-width: 30px;
    text-align: center;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
}

.timeline-day-col--clickable[b-ekvcfnjc5c] {
    cursor: pointer;
}

.timeline-day-col--clickable:hover[b-ekvcfnjc5c] {
    background-color: var(--theme-dark-bg-subtle);
}

.timeline-day-col--today[b-ekvcfnjc5c] {
    background-color: rgba(var(--theme-success-rgb, 26, 188, 156), 0.12);
}

.timeline-day-col--today .timeline-day-num[b-ekvcfnjc5c] {
    color: var(--theme-success);
}

.timeline-day-name[b-ekvcfnjc5c] {
    font-size: 0.65rem;
    color: var(--theme-secondary);
    text-transform: uppercase;
}

.timeline-day-num[b-ekvcfnjc5c] {
    font-size: 0.8rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* Adjacent same-state days form one solid block: a cell only shows rounded corners and a gap
   on the edges of its run (see .timeline-cell--run-start/--run-end), not on every cell, so a
   run of bookings/availability reads as one continuous bar rather than separate chips. */
.timeline-cell[b-ekvcfnjc5c] {
    height: 28px;
    margin: 0;
    border-radius: 0;
}

/* A booked cell is an <a> (see Bookings.razor), not a <div> like the others - it needs display:
   block to fill the same table cell/grid slot, since anchors are inline by default. */
.timeline-cell--link[b-ekvcfnjc5c] {
    display: block;
    cursor: pointer;
}

/* An available (non-Field) cell opens the create-booking/create-promotion choice modal. */
.timeline-cell--clickable[b-ekvcfnjc5c] {
    cursor: pointer;
}

.timeline-cell--run-start[b-ekvcfnjc5c] {
    margin-left: 1px;
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
}

.timeline-cell--run-end[b-ekvcfnjc5c] {
    margin-right: 1px;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
}

.timeline-cell--available[b-ekvcfnjc5c] {
    background-color: var(--theme-dark-bg-subtle);
}

.timeline-cell--partial[b-ekvcfnjc5c] {
    background-color: var(--theme-info);
    color: var(--cal-text-info, var(--cal-text-on-color, #fff));
}

.timeline-cell--booked[b-ekvcfnjc5c] {
    background-color: var(--theme-secondary, #e9ecef);
}

.timeline-cell-label[b-ekvcfnjc5c] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-size: 0.6rem;
    font-variant-numeric: tabular-nums;
}

.timeline-legend-swatch[b-ekvcfnjc5c] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    margin-right: 4px;
    vertical-align: middle;
}

/* --- Narrow layout: one card per unit, 7-day-wide weeks --- */

.timeline-unit-block[b-ekvcfnjc5c] {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
}

.timeline-unit-block:last-child[b-ekvcfnjc5c] {
    border-bottom: none;
}

.timeline-unit-block-header[b-ekvcfnjc5c] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.timeline-week-block[b-ekvcfnjc5c] {
    margin-bottom: 0.75rem;
}

.timeline-week-block:last-child[b-ekvcfnjc5c] {
    margin-bottom: 0;
}

/* Labels keep a small gap between days (they're just text, not a joinable block). */
.timeline-week-labels[b-ekvcfnjc5c] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 2px;
}

.timeline-week-day-label[b-ekvcfnjc5c] {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.1;
}

.timeline-week-day-label--today .timeline-day-num[b-ekvcfnjc5c] {
    color: var(--theme-success);
}

/* No gap here (unlike the labels above) so consecutive same-state cells can sit flush against
   each other - .timeline-cell's own run-start/run-end margin then reproduces the "solid block"
   look from the wide table's timeline row. */
.timeline-week-row[b-ekvcfnjc5c] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0;
}

.timeline-cell--week[b-ekvcfnjc5c] {
    width: 100%;
}
/* /Components/Pages/Dashboard/ChangeOverPlanning.razor.rz.scp.css */
.change-over-planning-swimlane[b-dgbqzuq9v5] {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
}

.change-over-planning-swimlane:last-child[b-dgbqzuq9v5] {
    border-bottom: none;
    padding-bottom: 0;
}

.change-over-planning-swimlane:first-child[b-dgbqzuq9v5] {
    padding-top: 0;
}

.change-over-planning-swimlane-header[b-dgbqzuq9v5] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    margin-bottom: 0.5rem;
}

.change-over-planning-swimlane-track[b-dgbqzuq9v5] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

.change-over-planning-swimlane-card[b-dgbqzuq9v5] {
    flex: 0 0 320px;
    width: 320px;
}
/* /Components/Pages/Dashboard/DailyActivity.razor.rz.scp.css */
.daily-activity-column-header[b-z7xyxnlsvk] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
}
/* /Components/Pages/Dashboard/FieldBookingSummary.razor.rz.scp.css */
.field-summary-top[b-g5hf1hw7r0] {
    padding: 0.5rem 1rem;
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
}

.field-summary-container[b-g5hf1hw7r0] {
    container-type: inline-size;
}

.field-summary-scroll[b-g5hf1hw7r0] {
    overflow-x: auto;
}

.field-summary-table[b-g5hf1hw7r0] {
    border-collapse: collapse;
    width: 100%;
}

.field-summary-info-col[b-g5hf1hw7r0] {
    white-space: nowrap;
    padding: 0.5rem 0.75rem;
    border-right: 1px solid var(--theme-border-color, #dee2e6);
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
}

thead .field-summary-info-col[b-g5hf1hw7r0] {
    position: sticky;
    top: 0;
    background-color: var(--theme-body-bg, #fff);
    z-index: 1;
}

.field-summary-tents-col[b-g5hf1hw7r0] {
    text-align: center;
}

.field-summary-day-col[b-g5hf1hw7r0] {
    min-width: 42px;
    max-width: 42px;
    text-align: center;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
}

thead .field-summary-day-col[b-g5hf1hw7r0] {
    position: sticky;
    top: 0;
    background-color: var(--theme-body-bg, #fff);
    z-index: 1;
}

.field-summary-day-col--today[b-g5hf1hw7r0] {
    background-color: rgba(var(--theme-success-rgb, 26, 188, 156), 0.12);
}

.field-summary-day-col--today .timeline-day-num[b-g5hf1hw7r0] {
    color: var(--theme-success);
}

.timeline-day-name[b-g5hf1hw7r0] {
    font-size: 0.65rem;
    color: var(--theme-secondary);
    text-transform: uppercase;
}

.timeline-day-num[b-g5hf1hw7r0] {
    font-size: 0.8rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* One continuous bar per booking, matching the "solid block" idiom from the main Bookings
   timeline - rounded/gapped only at the ends that are the booking's REAL arrival/departure,
   not just wherever the visible window happens to cut off (see field-summary-bar--start/--end,
   set per-cell in FieldBookingSummary.razor based on the actual booking dates). */
a.field-summary-bar[b-g5hf1hw7r0] {
    display: block;
    height: 28px;
    margin: 0;
    border-radius: 0;
    background-color: var(--theme-info);
    color: var(--cal-text-info, var(--cal-text-on-color, #fff));
    text-decoration: none;
    position: relative;
}

a.field-summary-bar:hover[b-g5hf1hw7r0] {
    filter: brightness(0.92);
}

.field-summary-bar--start[b-g5hf1hw7r0] {
    margin-left: 1px;
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
}

.field-summary-bar--end[b-g5hf1hw7r0] {
    margin-right: 1px;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
}

/* Chevrons mark an edge that's been truncated by the visible window - the booking actually
   continues off-screen in that direction. */
.field-summary-chevron[b-g5hf1hw7r0] {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.85rem;
}

.field-summary-chevron--start[b-g5hf1hw7r0] {
    left: 2px;
}

.field-summary-chevron--end[b-g5hf1hw7r0] {
    right: 2px;
}
/* /Components/Pages/Dashboard/HeatMap/HeatMapCalendar.razor.rz.scp.css */
.heatmap-calendar[b-o13nrq4kch] {
    container-type: inline-size;
}

.heatmap-toolbar[b-o13nrq4kch] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.heatmap-nav[b-o13nrq4kch] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.heatmap-nav-label[b-o13nrq4kch] {
    font-weight: 600;
    min-width: 9ch;
    text-align: center;
}

.heatmap-weekday-row[b-o13nrq4kch] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
    margin-bottom: 4px;
}

.heatmap-weekday-cell[b-o13nrq4kch] {
    text-align: center;
    font-size: 0.7rem;
    color: var(--theme-secondary);
    padding-bottom: 4px;
}

.heatmap-grid[b-o13nrq4kch] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
}

.heatmap-grid--week .heatmap-cell[b-o13nrq4kch] {
    aspect-ratio: 2 / 1;
}

.heatmap-cell[b-o13nrq4kch] {
    all: unset;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    aspect-ratio: 1;
    border-radius: 4px;
    padding: 3px 5px;
    font-size: 0.72rem;
    cursor: pointer;
    background-color: var(--theme-gray-100, #f1f1f1);
    color: var(--theme-secondary);
    transition: filter 0.15s;
}

.heatmap-cell:hover[b-o13nrq4kch] {
    filter: brightness(0.94);
}

.heatmap-cell--faded[b-o13nrq4kch] {
    opacity: 0.45;
}

.heatmap-cell--empty[b-o13nrq4kch] {
    background-image: repeating-linear-gradient(45deg, var(--theme-gray-200, #e9ecef) 0 4px, transparent 4px 8px);
}

.heatmap-cell--closed[b-o13nrq4kch] {
    background-color: var(--theme-gray-300, #dee2e6);
    color: var(--theme-secondary);
    cursor: default;
}

.heatmap-cell--closed:hover[b-o13nrq4kch] {
    filter: none;
}

.heatmap-cell-day[b-o13nrq4kch] {
    font-variant-numeric: tabular-nums;
    align-self: flex-end;
}

.heatmap-cell-value[b-o13nrq4kch] {
    font-size: 0.62rem;
    font-variant-numeric: tabular-nums;
    align-self: flex-start;
    opacity: 0.85;
    white-space: nowrap;
}

.heatmap-cell-value .approx[b-o13nrq4kch] {
    opacity: 0.75;
}

/* --- Year view: 12 mini-months in a responsive grid --- */

.heatmap-year-grid[b-o13nrq4kch] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
}

.heatmap-mini-month[b-o13nrq4kch] {
    min-width: 0;
    cursor: pointer;
    border-radius: 4px;
    padding: 2px;
    margin: -2px;
    transition: background-color 0.15s;
}

.heatmap-mini-month:hover[b-o13nrq4kch],
.heatmap-mini-month:focus-visible[b-o13nrq4kch] {
    background-color: var(--theme-gray-100, #f1f1f1);
    outline: none;
}

.heatmap-mini-month-title[b-o13nrq4kch] {
    font-size: 0.75rem;
    font-weight: 600;
    margin-bottom: 4px;
    color: var(--theme-secondary);
}

.heatmap-grid--mini[b-o13nrq4kch] {
    gap: 1px;
}

.heatmap-grid--mini .heatmap-cell[b-o13nrq4kch] {
    border-radius: 2px;
    padding: 0;
}

@container (max-width: 900px) {
    .heatmap-year-grid[b-o13nrq4kch] {
        grid-template-columns: repeat(3, 1fr);
    }
}

@container (max-width: 620px) {
    .heatmap-year-grid[b-o13nrq4kch] {
        grid-template-columns: repeat(2, 1fr);
    }

    .heatmap-grid[b-o13nrq4kch],
    .heatmap-weekday-row[b-o13nrq4kch] {
        gap: 2px;
    }

    .heatmap-cell[b-o13nrq4kch] {
        font-size: 0.62rem;
        padding: 2px 3px;
    }

    .heatmap-cell-value[b-o13nrq4kch] {
        font-size: 0.52rem;
    }
}
/* /Components/Pages/Dashboard/PriceMappings.razor.rz.scp.css */
/* Bootstrap's table-bordered draws a full-width border on every cell. We want two distinct
   row-separator styles instead: a subtle inset rule between mapping rows belonging to the
   same unit, and a stronger inset rule between different units — both drawn as a gradient
   that fades out near the table edges, so they read as horizontal rules rather than full
   table-grid borders. */
.table-bordered > :not(caption) > * > *[b-yn1ogztsq3] {
    border-width: 0;
}

.table-bordered > :not(caption) > *:not(:first-child) > *[b-yn1ogztsq3] {
    border-top-width: 0;
}

.table-bordered tbody tr[b-yn1ogztsq3] {
    background-image: linear-gradient(
        to right,
        transparent 0%,
        var(--pm-row-rule-color, var(--bs-border-color, #dee2e6)) 5%,
        var(--pm-row-rule-color, var(--bs-border-color, #dee2e6)) 95%,
        transparent 100%
    );
    background-repeat: no-repeat;
    background-position: bottom;
    background-size: 100% 1px;
}

/* Rule between mapping rows within the same unit: subtle. */
.table-bordered tbody tr.pm-row--within-unit[b-yn1ogztsq3] {
    --pm-row-rule-color: var(--bs-border-color, #dee2e6);
}

/* Rule between different units: stronger/darker. */
.table-bordered tbody tr.pm-row--unit-end[b-yn1ogztsq3] {
    --pm-row-rule-color: var(--bs-secondary-color, #6c757d);
}
/* /Components/Pages/Embed/AvailabilityCalendar.razor.rz.scp.css */
.embed-calendar[b-rw7lxc4cea] {
    width: 100%;
    container-type: inline-size;
    background-color: var(--cal-bg, var(--theme-body-bg, transparent));
    color: var(--cal-text, var(--theme-body-color, inherit));
    padding: 0.5rem;
    border-radius: 0.25rem;
}

.calendar-months[b-rw7lxc4cea] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

@container (max-width: 575.98px) {
    .calendar-months[b-rw7lxc4cea] {
        grid-template-columns: 1fr;
    }
}

/* second-month column: hidden when container is narrow */
.cal-wide-only[b-rw7lxc4cea] {
    display: block;
}

@container (max-width: 575.98px) {
    .cal-wide-only[b-rw7lxc4cea] {
        display: none;
    }
}

/* combined month title: shown only when container is narrow */
.cal-narrow-only[b-rw7lxc4cea] {
    display: none;
}

@container (max-width: 575.98px) {
    .cal-narrow-only[b-rw7lxc4cea] {
        display: block;
    }
}

.cal-nav-btn[b-rw7lxc4cea] {
    background-color: var(--cal-navbg, transparent) !important;
    color: var(--cal-navtext, #6c757d) !important;
    border-color: var(--cal-navborder, #6c757d) !important;
}

.calendar-message-bar--info[b-rw7lxc4cea] {
    background-color: var(--cal-msginfobg, #cff4fc);
    color: var(--cal-msgtext, var(--cal-msginfotxt, #055160));
    border: 1px solid color-mix(in srgb, var(--cal-msginfobg, #cff4fc) 60%, #055160);
}

.calendar-message-bar--success[b-rw7lxc4cea] {
    background-color: var(--cal-msgsuccessbg, #d1e7dd);
    color: var(--cal-msgtext, var(--cal-msgsuccesstxt, #0a3622));
    border: 1px solid color-mix(in srgb, var(--cal-msgsuccessbg, #d1e7dd) 60%, #0a3622);
}

.calendar-message-bar--warning[b-rw7lxc4cea] {
    background-color: var(--cal-msgwarnbg, #fff3cd);
    color: var(--cal-msgtext, var(--cal-msgwarntxt, #664d03));
    border: 1px solid color-mix(in srgb, var(--cal-msgwarnbg, #fff3cd) 60%, #664d03);
}

.calendar-message[b-rw7lxc4cea] {
    display: flex;
    align-items: center;
    min-height: 3.0rem;
    padding: 0.25rem 0.25rem;
    margin-bottom: 0.25rem;
    border-radius: 0.25rem;
}

.calendar-message--empty[b-rw7lxc4cea] {
    visibility: hidden;
}

.legend-swatch[b-rw7lxc4cea] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.legend-swatch--closed[b-rw7lxc4cea] {
    background-image: repeating-linear-gradient(
        45deg,
        var(--cal-past-bg, var(--theme-gray-200)),
        var(--cal-past-bg, var(--theme-gray-200)) 3px,
        transparent 3px,
        transparent 6px
    );
    background-color: var(--theme-body-bg, transparent);
    border: 1px solid var(--cal-past-bg, var(--theme-gray-200));
}
/* /Components/Pages/Embed/BookingWizard.razor.rz.scp.css */
.embed-wizard[b-c0lp5pnhvi] {
    max-width: 560px;
    margin: 0 auto;
}

/* Dates step wraps the two-month availability calendar, which needs more than
   560px to actually show two months side by side (see AvailabilityCalendar's
   container-query breakpoint) — let it use the full iframe width on desktop. */
.embed-wizard--wide[b-c0lp5pnhvi] {
    max-width: 900px;
}

.wizard-steps[b-c0lp5pnhvi] {
    display: flex;
    align-items: center;
    /* Step labels are absolutely positioned below their circles (see .step-label), so this
       container's own height no longer accounts for them — pad the bottom to leave room. */
    padding-bottom: 1.2rem;
}

.wizard-step[b-c0lp5pnhvi] {
    /* Width is driven by the circle only — the label is positioned absolutely below it so a
       long label (e.g. "Accommodation") doesn't widen this flex item and push the circle away
       from the connector lines either side of it. */
    position: relative;
    flex-shrink: 0;
}

.wizard-step.clickable[b-c0lp5pnhvi] {
    cursor: pointer;
}

.wizard-step.clickable:hover .step-circle[b-c0lp5pnhvi] {
    filter: brightness(0.92);
}

.wizard-step.clickable:hover .step-label[b-c0lp5pnhvi] {
    text-decoration: underline;
}

.step-circle[b-c0lp5pnhvi] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid var(--theme-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--theme-secondary);
    background: var(--theme-body-bg);
    transition: all 0.2s;
}

.wizard-step.active .step-circle[b-c0lp5pnhvi] {
    border-color: var(--theme-primary);
    background-color: var(--theme-primary);
    color: #fff;
}

.wizard-step.completed .step-circle[b-c0lp5pnhvi] {
    border-color: var(--theme-success);
    background-color: var(--theme-success);
    color: #fff;
}

.step-label[b-c0lp5pnhvi] {
    position: absolute;
    top: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.7rem;
    color: var(--theme-secondary);
    white-space: nowrap;
}

.wizard-step.active .step-label[b-c0lp5pnhvi] {
    color: var(--theme-primary);
    font-weight: 600;
}

.wizard-step.completed .step-label[b-c0lp5pnhvi] {
    color: var(--theme-success);
}

.step-connector[b-c0lp5pnhvi] {
    flex: 1;
    height: 2px;
    background-color: var(--theme-secondary);
    opacity: 0.3;
    transition: background-color 0.2s, opacity 0.2s;
}

.step-connector.completed[b-c0lp5pnhvi] {
    background-color: var(--theme-success);
    opacity: 1;
}

.wizard-info-bar[b-c0lp5pnhvi] {
    display: flex;
    align-items: center;
    min-height: 3rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.25rem;
}

.wizard-info-bar--info[b-c0lp5pnhvi] {
    background-color: var(--cal-msginfobg, #cff4fc);
    color: var(--cal-msgtext, var(--cal-msginfotxt, #055160));
    border: 1px solid color-mix(in srgb, var(--cal-msginfobg, #cff4fc) 60%, #055160);
}

.wizard-info-bar--success[b-c0lp5pnhvi] {
    background-color: var(--cal-msgsuccessbg, #d1e7dd);
    color: var(--cal-msgtext, var(--cal-msgsuccesstxt, #0a3622));
    border: 1px solid color-mix(in srgb, var(--cal-msgsuccessbg, #d1e7dd) 60%, #0a3622);
}

.wizard-info-bar--warning[b-c0lp5pnhvi] {
    background-color: var(--cal-msgwarnbg, #fff3cd);
    color: var(--cal-msgtext, var(--cal-msgwarntxt, #664d03));
    border: 1px solid color-mix(in srgb, var(--cal-msgwarnbg, #fff3cd) 60%, #664d03);
}

.wizard-info-bar--secondary[b-c0lp5pnhvi] {
    background-color: var(--bs-secondary-bg-subtle, #e2e3e5);
    color: var(--bs-secondary-color, #41464b);
    border: 1px solid var(--bs-secondary-border-subtle, #c4c8cb);
}

.wizard-info-bar--empty[b-c0lp5pnhvi] {
    visibility: hidden;
}

.step-content[b-c0lp5pnhvi] {
    animation: fadeIn-b-c0lp5pnhvi 0.2s ease-in-out;
}

@keyframes fadeIn-b-c0lp5pnhvi {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}
/* /Components/Pages/Embed/CalendarMonth.razor.rz.scp.css */
.calendar-grid[b-yl9ajm630k] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}

.calendar-header-cell[b-yl9ajm630k] {
    text-align: center;
    font-size: 0.7rem;
    color: var(--theme-secondary);
    padding-bottom: 4px;
}

.calendar-cell[b-yl9ajm630k] {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.calendar-day[b-yl9ajm630k] {
    all: unset;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90%;
    aspect-ratio: 1;
    border-radius: 50%;
    font-size: 0.75rem;
    cursor: default;
    transition: background-color 0.15s, color 0.15s;
}

.calendar-day.available[b-yl9ajm630k] {
    background-color: var(--theme-success);
    color: var(--cal-text-success, var(--cal-text-on-color, #fff));
    cursor: pointer;
}

.calendar-day.available:hover[b-yl9ajm630k] {
    filter: brightness(0.9);
}

.calendar-day.past[b-yl9ajm630k],
.calendar-day.before-start[b-yl9ajm630k],
.calendar-day.blocked[b-yl9ajm630k] {
    background-color: var(--cal-past-bg, var(--theme-gray-200));
    color: var(--cal-text-past, var(--cal-text-on-light, var(--theme-gray-500)));
    cursor: not-allowed;
}

.calendar-day.booked[b-yl9ajm630k] {
    background-color: var(--theme-dark-bg-subtle);
    color: var(--cal-text-darkbg, var(--cal-text-on-light, var(--theme-dark)));
    cursor: not-allowed;
}

.calendar-day.closed[b-yl9ajm630k] {
    background-image: repeating-linear-gradient(
        45deg,
        var(--cal-past-bg, var(--theme-gray-200)),
        var(--cal-past-bg, var(--theme-gray-200)) 4px,
        transparent 4px,
        transparent 8px
    );
    background-color: var(--theme-body-bg, transparent);
    color: var(--cal-text-past, var(--cal-text-on-light, var(--theme-gray-500)));
    cursor: not-allowed;
}

.calendar-day.range-end--available[b-yl9ajm630k] {
    background: linear-gradient(to bottom right, var(--theme-primary) 50%, var(--theme-success) 50%);
    color: var(--cal-text-primary, var(--cal-text-on-color, #fff));
    cursor: pointer;
}

.calendar-day.range-end--booked[b-yl9ajm630k] {
    background: linear-gradient(to bottom right, var(--theme-primary) 50%, var(--theme-dark-bg-subtle) 50%);
    color: var(--cal-text-primary, var(--cal-text-on-color, #fff));
    cursor: pointer;
}

.calendar-day.range-end--closed[b-yl9ajm630k] {
    background: linear-gradient(to bottom right, var(--theme-primary) 50%, var(--theme-gray-200) 50%);
    color: var(--cal-text-primary, var(--cal-text-on-color, #fff));
    cursor: pointer;
}

.calendar-day.range-end--blocked[b-yl9ajm630k] {
    background: linear-gradient(to bottom right, var(--theme-primary) 50%, var(--theme-gray-200) 50%);
    color: var(--cal-text-past, var(--cal-text-on-light, var(--theme-gray-500)));
    cursor: not-allowed;
}

.calendar-day.range-end--late-start[b-yl9ajm630k] {
    background: linear-gradient(to bottom right, var(--theme-primary) 50%, var(--theme-warning) 50%);
    color: var(--cal-text-warning, var(--cal-text-on-color, #fff));
    cursor: pointer;
}

.calendar-day.range-end--late-start:hover[b-yl9ajm630k] {
    filter: brightness(0.9);
}

.calendar-day.range-end--available:hover[b-yl9ajm630k],
.calendar-day.range-end--booked:hover[b-yl9ajm630k] {
    filter: brightness(0.9);
}

.calendar-day.late-start[b-yl9ajm630k] {
    background-color: var(--theme-warning);
    color: var(--cal-text-warning, var(--cal-text-on-color, #fff));
    cursor: pointer;
}

.calendar-day.late-start:hover[b-yl9ajm630k] {
    filter: brightness(0.9);
}

.calendar-day.arrival[b-yl9ajm630k] {
    background-color: var(--theme-info);
    color: var(--cal-text-info, var(--cal-text-on-color, #fff));
    cursor: pointer;
}

.calendar-day.departure-on-booked[b-yl9ajm630k] {
    background-color: var(--theme-success);
    color: var(--cal-text-success, var(--cal-text-on-color, #fff));
    cursor: pointer;
    outline: 2px dashed var(--theme-dark-bg-subtle);
    outline-offset: -3px;
}

.calendar-day.departure-on-booked:hover[b-yl9ajm630k] {
    filter: brightness(0.9);
}

.calendar-day.night-short[b-yl9ajm630k] {
    background-color: var(--theme-warning);
    color: var(--cal-text-warning, var(--cal-text-on-color, #fff));
    cursor: pointer;
}

.calendar-day.night-valid[b-yl9ajm630k] {
    background-color: var(--theme-primary);
    color: var(--cal-text-primary, var(--cal-text-on-color, #fff));
    cursor: pointer;
}

.calendar-day.arrival:hover[b-yl9ajm630k],
.calendar-day.night-short:hover[b-yl9ajm630k],
.calendar-day.night-valid:hover[b-yl9ajm630k] {
    filter: brightness(0.9);
}

.calendar-day.overflow-day[b-yl9ajm630k] {
    opacity: 0.7;
}

@container (min-width: 576px) {
    .calendar-cell--overflow[b-yl9ajm630k] {
        display: none;
    }
}
/* /Components/Pages/Embed/Steps/StepGuestDetails.razor.rz.scp.css */
/* Browser password managers (LastPass, Bitwarden, etc.) overlay an icon button inside the
   right edge of password fields, which can obscure the last character or two of longer
   passphrases -- pad the field so typed text never sits under it. */
.password-input[b-el1sjeo3kp] {
    padding-right: 2.75rem;
}

.field-check[b-el1sjeo3kp] {
    font-size: 1.25rem;
}
/* /Components/Pages/Embed/Steps/StepUnitSelection.razor.rz.scp.css */
.unit-card[b-rd37djhtpu] {
    all: unset;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--theme-border-color, #dee2e6);
    border-radius: 0.375rem;
    cursor: pointer;
    background-color: var(--theme-body-bg);
    color: var(--theme-body-color);
    transition: border-color 0.15s, background-color 0.15s, color 0.15s;
}

.unit-card:hover[b-rd37djhtpu] {
    border-color: var(--theme-primary);
    background-color: var(--theme-primary-bg-subtle, #e8f4ea);
}

.unit-card--selected[b-rd37djhtpu] {
    border-color: var(--theme-primary);
    background-color: var(--theme-primary);
    color: #fff;
}

.unit-card--selected:hover[b-rd37djhtpu] {
    border-color: var(--theme-primary);
    background-color: var(--theme-primary);
    filter: brightness(0.92);
}

.unit-card--selected .unit-card__desc[b-rd37djhtpu] {
    opacity: 0.85;
}
/* /Components/Pages/Embed/Steps/VerifyCodeModal.razor.rz.scp.css */
/* Bootstrap's own modal backdrop is a separate sibling element added by its JS runtime;
   since this modal is rendered directly by Blazor (no bootstrap.Modal() JS interop), we draw
   the dimmed backdrop ourselves on the modal wrapper instead. */
.verify-modal-backdrop[b-8kaywptz9o] {
    background-color: rgba(0, 0, 0, 0.5);
}
/* /Components/Shared/Dashboard/BookingSummaryCard.razor.rz.scp.css */
.booking-summary-card[b-h7dzzj2k39] {
    border: 1px solid var(--theme-border-color, #dee2e6);
    border-radius: 6px;
    padding: 0.6rem 0.75rem;
}

.booking-summary-card + .booking-summary-card[b-h7dzzj2k39] {
    margin-top: 0.5rem;
}

.booking-summary-card-header[b-h7dzzj2k39] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin: -0.6rem -0.75rem 0.4rem;
    padding: 0.5rem 0.75rem 0.4rem;
    font-size: 0.85rem;
    background-color: var(--booking-summary-card-accent-bg, transparent);
    border-radius: 5px 5px 0 0;
}

.booking-summary-card-banner[b-h7dzzj2k39] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    margin-top: -0.2rem;
    margin-bottom: 0.4rem;
    padding: 0.15rem 0;
    font-size: 0.78rem;
    font-weight: 600;
    border-top: 1px solid var(--booking-summary-card-banner-border, var(--theme-border-color));
    border-bottom: 1px solid var(--booking-summary-card-banner-border, var(--theme-border-color));
}

.booking-summary-card-banner--danger[b-h7dzzj2k39] {
    color: var(--theme-danger);
    --booking-summary-card-banner-border: var(--theme-danger-border-subtle, var(--theme-danger));
}

.booking-summary-card-banner--warning[b-h7dzzj2k39] {
    /* The base warning colour (yellow) is too low-contrast on this pale background - the darker
       "emphasis" shade keeps the same hue family while staying readable in both themes. */
    color: var(--theme-warning-text-emphasis);
    --booking-summary-card-banner-border: var(--theme-warning-border-subtle, var(--theme-warning));
}

.booking-summary-card-body[b-h7dzzj2k39] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.booking-summary-row[b-h7dzzj2k39] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: var(--theme-body-color);
}

.booking-summary-row i[b-h7dzzj2k39] {
    color: var(--theme-secondary);
    font-size: 0.85rem;
    flex-shrink: 0;
}

.booking-summary-row .text-truncate[b-h7dzzj2k39] {
    min-width: 0;
}

.booking-summary-row--dates[b-h7dzzj2k39] {
    align-items: flex-start;
}

.booking-summary-row--dates i[b-h7dzzj2k39] {
    margin-top: 0.1rem;
}

.booking-summary-card-actions[b-h7dzzj2k39] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--theme-border-color, #dee2e6);
}

/* State colours mirror the icon colours used for each section on the Daily Activity page. */
.booking-summary-card--due-to-depart[b-h7dzzj2k39] {
    border-color: var(--theme-primary);
    --booking-summary-card-accent-bg: var(--theme-primary-bg-subtle);
}

.booking-summary-card--departed[b-h7dzzj2k39] {
    border-color: var(--theme-secondary);
    --booking-summary-card-accent-bg: var(--theme-secondary-bg-subtle);
}

.booking-summary-card--due-to-arrive[b-h7dzzj2k39] {
    border-color: var(--theme-warning);
    --booking-summary-card-accent-bg: var(--theme-warning-bg-subtle);
}

.booking-summary-card--arrived[b-h7dzzj2k39] {
    border-color: var(--theme-success);
    --booking-summary-card-accent-bg: var(--theme-success-bg-subtle);
}

.booking-summary-card--staying[b-h7dzzj2k39] {
    border-color: var(--theme-info);
    --booking-summary-card-accent-bg: var(--theme-info-bg-subtle);
}

.booking-summary-card--no-show[b-h7dzzj2k39] {
    border-color: var(--theme-gray);
    --booking-summary-card-accent-bg: color-mix(in srgb, var(--theme-gray) 15%, transparent);
}
/* /Components/Shared/Dashboard/ChangeOverSummaryCard.razor.rz.scp.css */
.change-over-summary-card[b-bg3rjtgzoe] {
    border: 1px solid var(--change-over-summary-card-border, var(--theme-border-color, #dee2e6));
    border-radius: 6px;
    padding: 0.6rem 0.75rem;
}

.change-over-summary-card + .change-over-summary-card[b-bg3rjtgzoe] {
    margin-top: 0.5rem;
}

.change-over-summary-card-header[b-bg3rjtgzoe] {
    margin: -0.6rem -0.75rem 0.4rem;
    padding: 0.5rem 0.75rem 0.4rem;
    font-size: 0.85rem;
    background-color: var(--change-over-summary-card-accent-bg, transparent);
    border-radius: 5px 5px 0 0;
}

.change-over-summary-card-body[b-bg3rjtgzoe] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.change-over-summary-subheading[b-bg3rjtgzoe] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--theme-secondary-color);
    margin-bottom: 0.15rem;
}

.change-over-summary-row[b-bg3rjtgzoe] {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: var(--theme-body-color);
}

.change-over-summary-row i[b-bg3rjtgzoe] {
    color: var(--theme-secondary);
    font-size: 0.85rem;
    flex-shrink: 0;
    margin-top: 0.18rem;
}

.change-over-summary-time-warning[b-bg3rjtgzoe] {
    color: var(--theme-warning-text-emphasis);
    font-weight: 600;
}

.change-over-summary-card-status[b-bg3rjtgzoe] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.5rem;
    padding-bottom: 0.5rem;
    font-weight: 600;
    border-bottom: 1px solid var(--theme-border-color, #dee2e6);
}

.change-over-summary-card-status--info[b-bg3rjtgzoe] {
    color: var(--theme-info-text-emphasis);
}

.change-over-summary-card-status--warning[b-bg3rjtgzoe] {
    color: var(--theme-warning-text-emphasis);
}

.change-over-summary-card-status--success[b-bg3rjtgzoe] {
    color: var(--theme-success-text-emphasis);
}

.change-over-summary-card-checklist[b-bg3rjtgzoe] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--theme-border-color, #dee2e6);
    font-size: 0.8rem;
}

/* Five time-based urgency tiers, tightest to most relaxed. Success (below) is reserved
   exclusively for "ready for check-in" and overrides these once every checklist item is done. */
.change-over-summary-card--danger[b-bg3rjtgzoe] {
    --change-over-summary-card-border: var(--theme-danger);
    --change-over-summary-card-accent-bg: var(--theme-danger-bg-subtle);
}

.change-over-summary-card--warning[b-bg3rjtgzoe] {
    --change-over-summary-card-border: var(--theme-warning);
    --change-over-summary-card-accent-bg: var(--theme-warning-bg-subtle);
}

.change-over-summary-card--secondary[b-bg3rjtgzoe] {
    --change-over-summary-card-border: var(--theme-secondary);
    --change-over-summary-card-accent-bg: var(--theme-secondary-bg-subtle);
}

.change-over-summary-card--info[b-bg3rjtgzoe] {
    --change-over-summary-card-border: var(--theme-info);
    --change-over-summary-card-accent-bg: var(--theme-info-bg-subtle);
}

.change-over-summary-card--grey[b-bg3rjtgzoe] {
    --change-over-summary-card-border: var(--theme-gray);
    --change-over-summary-card-accent-bg: color-mix(in srgb, var(--theme-gray) 15%, transparent);
}

.change-over-summary-card--success[b-bg3rjtgzoe] {
    --change-over-summary-card-border: var(--theme-success);
    --change-over-summary-card-accent-bg: var(--theme-success-bg-subtle);
}
