/* /Components/Common/ContractorKindMarker.razor.rz.scp.css */
.contractor-kind-marker[b-f6hxsnotmy] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-inline-end: 0.3em;
    font-size: 0.95em;
    line-height: 1;
    vertical-align: -0.05em;
}
/* /Components/Common/Navigation/PageTutorial.razor.rz.scp.css */
.page-tutorial-launcher[b-4trojc4kfy] {
    position: sticky;
    top: 0;
    z-index: 850;
    display: flex;
    justify-content: flex-end;
    margin: 0 0 10px;
    padding: 6px 0 2px;
    pointer-events: none;
}

.page-tutorial-launcher-inline[b-4trojc4kfy] {
    position: static;
    z-index: auto;
    align-items: center;
    height: 38px;
    min-height: 38px;
    margin: 0;
    padding: 0;
    pointer-events: auto;
}

.page-tutorial-icon[b-4trojc4kfy] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--sp-color-brand-strong);
}

.page-tutorial-hero-icon[b-4trojc4kfy] {
    width: 3rem;
    height: 3rem;
}

.page-tutorial-eyebrow[b-4trojc4kfy] {
    letter-spacing: 0.09em;
}

.page-tutorial-header p[b-4trojc4kfy] {
    max-width: 48rem;
    line-height: 1.55;
}

.page-tutorial-steps[b-4trojc4kfy] {
    overflow: hidden;
    border-radius: var(--bs-border-radius-lg);
}

.page-tutorial-step[b-4trojc4kfy] {
    border-color: var(--bs-border-color);
    background: var(--bs-body-bg);
}

.page-tutorial-step-number[b-4trojc4kfy] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    font-size: 0.875rem;
    line-height: 1;
}

.page-tutorial-step-number[b-4trojc4kfy],
.page-tutorial-count-badge[b-4trojc4kfy] {
    background: var(--sp-color-brand-button);
    color: var(--sp-color-white);
}

.page-tutorial-step h4[b-4trojc4kfy] {
    color: var(--bs-emphasis-color);
    font-weight: 700;
}

.page-tutorial-step p[b-4trojc4kfy],
.page-tutorial-tip-list[b-4trojc4kfy] {
    font-size: 0.9rem;
    line-height: 1.55;
}

.page-tutorial-tips[b-4trojc4kfy] {
    position: sticky;
    top: 0;
    overflow: hidden;
    background: var(--bs-body-bg);
}

.page-tutorial-tip-icon[b-4trojc4kfy] {
    width: 2.5rem;
    height: 2.5rem;
}

.page-tutorial-tip-list .list-group-item:last-child[b-4trojc4kfy] {
    padding-bottom: 0 !important;
    border-bottom: 0;
}

.page-tutorial-check[b-4trojc4kfy] {
    margin-top: 0.05rem;
}

.min-w-0[b-4trojc4kfy] {
    min-width: 0;
}

@media (max-width: 767.98px) {
    .page-tutorial-launcher[b-4trojc4kfy] {
        margin-bottom: 7px;
        padding: 4px 0 0;
    }

    /* The inline launcher box matches its 44px touch button so neighbours keep their spacing. */
    .page-tutorial-launcher-inline[b-4trojc4kfy] {
        width: var(--sp-control-height-touch);
        min-width: var(--sp-control-height-touch);
        height: var(--sp-control-height-touch);
        min-height: var(--sp-control-height-touch);
        margin: 0;
        padding: 0;
    }

    .page-tutorial-button-label[b-4trojc4kfy] {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .page-tutorial-hero-icon[b-4trojc4kfy] {
        width: 2.5rem;
        height: 2.5rem;
    }

    .page-tutorial-header p[b-4trojc4kfy] {
        font-size: 0.875rem;
    }
}
/* /Components/Common/Navigation/RedirectToLogin.razor.rz.scp.css */
.redirect-login-panel[b-i4296licnp] {
    width: min(620px, 100%);
    margin: 2.5rem auto;
}
/* /Components/Common/Navigation/StormEventHubContext.razor.rz.scp.css */
.storm-event-hub-context[b-nvmk563tdt] {
    display: flex;
    margin-block: 0 0.5rem;
}

.storm-event-hub-context a[b-nvmk563tdt] {
    display: inline-flex;
    min-width: 0;
    max-width: 100%;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--sp-color-border);
    border-radius: var(--sp-radius-sm);
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-brand-strong);
    font-size: 0.8125rem;
    font-weight: 750;
    line-height: 1.25;
    text-decoration: none;
}

/* A storm name is user-entered; one unbroken token must wrap inside the link, not run past its card. */
.storm-event-hub-context-label[b-nvmk563tdt] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.storm-event-hub-context a:hover[b-nvmk563tdt] {
    border-color: var(--sp-color-border-strong);
    background: var(--sp-color-surface-info);
}

.storm-event-hub-context a:focus-visible[b-nvmk563tdt] {
    outline: 2px solid var(--sp-color-brand);
    outline-offset: 2px;
}

@media (max-width: 575.98px) {
    .storm-event-hub-context a[b-nvmk563tdt] {
        width: 100%;
    }
}
/* /Components/Common/Navigation/UserAccountMenu.razor.rz.scp.css */
.account-menu[b-bs27ilivvi] {
    position: relative;
    display: inline-flex;
}

/* The trigger is a UiButton, so it is reached through ::deep. Hover, keyboard
   focus and the open menu share one raised state in both themes. */
.account-menu[b-bs27ilivvi]  .account-menu-trigger {
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
}

.account-menu[b-bs27ilivvi]  .account-menu-trigger:is(:hover, :focus-visible, .is-open) {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-brand-soft);
    color: var(--sp-color-ink);
    outline: none;
    box-shadow: var(--sp-focus-ring);
}

.account-menu-avatar[b-bs27ilivvi] {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: var(--sp-color-ink);
    color: var(--sp-color-white);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

.account-menu-label[b-bs27ilivvi] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.2;
    max-width: 160px;
}

.account-menu-name[b-bs27ilivvi] {
    font-size: 12px;
    font-weight: 800;
    color: var(--sp-color-ink);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    max-width: 100%;
}

.account-menu-role[b-bs27ilivvi] {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.account-menu-chevron[b-bs27ilivvi] {
    font-size: 10px;
    color: var(--sp-color-ink-muted);
    transition: var(--sp-motion-transition-transform);
}

.account-menu-chevron.is-open[b-bs27ilivvi] {
    transform: rotate(180deg);
}

.account-menu-overlay[b-bs27ilivvi] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: transparent;
    visibility: visible;
    pointer-events: auto;
}

.account-menu-overlay.is-closed[b-bs27ilivvi] {
    visibility: hidden;
    pointer-events: none;
}

/* The panel takes focus only so clicks on its text keep focus inside the open menu. */
.account-menu-panel:focus[b-bs27ilivvi] {
    outline: none;
}

.account-menu-panel[b-bs27ilivvi] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 1201;
    min-width: 220px;
    border: 1px solid var(--sp-color-border-strong);
    border-radius: 12px;
    background: var(--sp-color-surface);
    box-shadow: 0 12px 28px rgb(var(--sp-rgb-ink) / 0.18);
    overflow: hidden;
    transform-origin: top right;
}

.account-menu-panel-header[b-bs27ilivvi] {
    padding: 12px 14px;
    border-bottom: 1px solid var(--sp-color-border);
}

.account-menu-panel-name[b-bs27ilivvi] {
    font-size: 13px;
    font-weight: 800;
    color: var(--sp-color-ink);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.account-menu-panel-email[b-bs27ilivvi] {
    margin-top: 2px;
    font-size: 11.5px;
    color: var(--sp-color-ink-muted);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.role-badge[b-bs27ilivvi] {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 9px;
    border-radius: var(--sp-radius-pill);
    font-size: var(--sp-font-size-xs);
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    vertical-align: middle;
}

.account-menu-panel-header .role-badge[b-bs27ilivvi] {
    margin-left: 0;
    margin-top: 6px;
}

.role-badge-owner[b-bs27ilivvi] {
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-warning-strong);
}

.role-badge-administrator[b-bs27ilivvi] {
    background: var(--sp-color-info-soft);
    color: var(--sp-color-info-deep);
}

.role-badge-client[b-bs27ilivvi] {
    background: var(--sp-color-success-soft);
    color: var(--sp-color-success-strong);
}

.account-menu-preferences[b-bs27ilivvi] {
    display: grid;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--sp-color-border);
}

.account-menu-setting[b-bs27ilivvi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 32px;
    color: var(--sp-color-ink-secondary);
    font-size: 12px;
    font-weight: 750;
}

.account-menu-logout[b-bs27ilivvi] {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    font: inherit;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 14px;
    color: var(--sp-color-danger);
    font-weight: 700;
    font-size: 13px;
    text-decoration: none;
}

.account-menu-logout:hover[b-bs27ilivvi],
.account-menu-logout:focus-visible[b-bs27ilivvi] {
    background: var(--sp-color-danger-soft);
    outline: none;
}

.account-menu-logout span:first-child[b-bs27ilivvi] {
    font-size: 15px;
}

.account-menu-phone-actions[b-bs27ilivvi] {
    display: none;
}

.account-menu-phone-actions[b-bs27ilivvi]  .account-menu-action {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 14px;
    border: 0;
    background: transparent;
    color: var(--sp-color-ink);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    text-align: left;
    text-decoration: none;
}

.account-menu-phone-actions[b-bs27ilivvi]  .account-menu-action-icon {
    display: inline-flex;
    flex: 0 0 20px;
    align-items: center;
    justify-content: center;
    width: 20px;
}

.account-menu-phone-actions[b-bs27ilivvi]  .account-menu-action-icon svg {
    width: 16px;
    height: 16px;
}

.account-menu-phone-actions[b-bs27ilivvi]  .account-menu-action:hover,
.account-menu-phone-actions[b-bs27ilivvi]  .account-menu-action:focus-visible {
    background: var(--sp-color-brand-soft);
    outline: none;
}

.account-menu-phone-actions[b-bs27ilivvi]  .account-menu-action.is-active {
    color: var(--sp-color-brand-strong);
}

@media (max-width: 1180px) {
    .account-menu-label[b-bs27ilivvi],
    .account-menu-chevron[b-bs27ilivvi] {
        display: none;
    }
}

@media (max-width: 700px), (max-height: 500px) and (pointer: coarse) {
    .account-menu[b-bs27ilivvi] {
        margin-right: 4px;
    }

    .account-menu-phone-actions[b-bs27ilivvi] {
        display: grid;
        padding: 4px 0;
        border-bottom: 1px solid var(--sp-color-border);
    }

    /* The panel hangs from the pinned header, so page scrolling cannot reveal its end; on a short screen such as
       a phone in landscape it scrolls within the viewport instead. */
    .account-menu-panel[b-bs27ilivvi] {
        max-height: calc(100dvh - var(--sp-workspace-sticky-top) - 1rem);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}

/* Dark theme: the open panel sits on the raised surface and role badges
   pick up an outline so they separate from it. */
html[data-theme="dark"] .account-menu-avatar[b-bs27ilivvi] {
    background: var(--sp-color-brand-button);
    color: var(--sp-color-white);
}

html[data-theme="dark"] .account-menu-panel[b-bs27ilivvi] {
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink);
    box-shadow: var(--sp-shadow-md);
}

html[data-theme="dark"] :is(.account-menu-panel-header, .account-menu-preferences)[b-bs27ilivvi] {
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface-raised);
}

html[data-theme="dark"] :is(.account-menu-panel-name, .account-menu-setting)[b-bs27ilivvi] {
    color: var(--sp-color-ink);
}

html[data-theme="dark"] :is(.role-badge-owner, .role-badge-administrator, .role-badge-client)[b-bs27ilivvi] {
    border: 1px solid var(--sp-color-border);
}

html[data-theme="dark"] .role-badge-owner[b-bs27ilivvi] {
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-warning);
}

html[data-theme="dark"] .role-badge-administrator[b-bs27ilivvi] {
    background: var(--sp-color-brand-soft);
    color: var(--sp-color-brand-strong);
}

html[data-theme="dark"] .role-badge-client[b-bs27ilivvi] {
    background: var(--sp-color-success-soft);
    color: var(--sp-color-success);
}
/* /Components/Common/Navigation/WorkspaceHeader.razor.rz.scp.css */
/* Workspace header: breadcrumb context on the left, a fixed-size icon action
   rail on the right. Rail buttons are child components (UiButton, PageTutorial,
   UserAccountMenu), so their geometry is set here through ::deep. The desktop
   rules come first; the phone and touch rules below them win the ties. */

.workspace-header-minimal[b-zdbw1j4qrg] {
    border-bottom: 1px solid var(--sp-color-border);
    background: color-mix(in srgb, var(--sp-color-surface) 94%, transparent);
    box-shadow: var(--sp-shadow-sm);
}

html[data-theme="dark"] .workspace-header-minimal[b-zdbw1j4qrg] {
    border-color: var(--sp-color-border);
    background: rgb(var(--sp-rgb-dark) / 0.96);
    color: var(--sp-color-ink);
}

.workspace-header.workspace-header-minimal[b-zdbw1j4qrg] {
    padding-left: 16px;
    gap: var(--sp-space-2);
}

/* The navigation toggle is fixed at the viewport's left edge while the
   sidebar is collapsed, so the header reserves its width. */
.app-layout.navigation-collapsed .workspace-header[b-zdbw1j4qrg] {
    padding-left: 61px;
}

.workspace-header-minimal .workspace-context[b-zdbw1j4qrg] {
    display: flex;
    min-width: 0;
    align-items: center;
    column-gap: 0.75rem;
}

.workspace-header-minimal .workspace-context-group[b-zdbw1j4qrg],
.workspace-header-minimal .workspace-context-title[b-zdbw1j4qrg] {
    white-space: nowrap;
}

.workspace-context-group[b-zdbw1j4qrg] {
    color: var(--sp-color-ink-muted);
}

.workspace-context-title[b-zdbw1j4qrg] {
    color: var(--sp-color-ink);
}

.workspace-context-chevron[b-zdbw1j4qrg] {
    color: var(--sp-color-brand);
}

.workspace-header-minimal .workspace-context-chevron[b-zdbw1j4qrg] {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 0.7rem;
    margin: 0;
}

.workspace-header-minimal .workspace-context-description[b-zdbw1j4qrg] {
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    color: var(--sp-color-ink-muted);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.workspace-header.workspace-header-minimal .workspace-header-actions[b-zdbw1j4qrg] {
    flex: 0 0 auto;
}

.workspace-header-actions[b-zdbw1j4qrg] {
    gap: var(--sp-space-2);
    padding-inline-end: var(--sp-space-2);
}

/* The global search button is an icon-only UiButton; its magnifier carries
   the brand colour so the search entry point reads first in the header. */
.workspace-header-minimal[b-zdbw1j4qrg]  .workspace-global-search > span:first-child {
    color: var(--sp-color-brand-strong);
}

/* Icon action rail: one fixed box per control so labels cannot change a
   button's size. Labels stay available to assistive technology. */
.workspace-header-actions[b-zdbw1j4qrg]  > .workspace-action,
.workspace-header-actions[b-zdbw1j4qrg]  > .account-menu,
.workspace-header-actions[b-zdbw1j4qrg]  > .account-menu > .account-menu-trigger,
.workspace-header-actions[b-zdbw1j4qrg]  > .page-tutorial-launcher,
.workspace-header-actions[b-zdbw1j4qrg]  > .page-tutorial-launcher > .page-tutorial-button {
    display: inline-flex;
    flex: 0 0 38px;
    align-items: center;
    align-self: center;
    justify-content: center;
    box-sizing: border-box;
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
    margin: 0;
    padding: 0;
}

.workspace-header-actions[b-zdbw1j4qrg]  > .workspace-action > span:last-child,
.workspace-header-actions[b-zdbw1j4qrg]  > .page-tutorial-launcher > .page-tutorial-button > span:last-child,
.workspace-header-actions[b-zdbw1j4qrg]  > .account-menu > .account-menu-trigger > .account-menu-label,
.workspace-header-actions[b-zdbw1j4qrg]  > .account-menu > .account-menu-trigger > .account-menu-chevron {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.workspace-header-actions[b-zdbw1j4qrg]  .workspace-action {
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
}

.workspace-header-actions[b-zdbw1j4qrg]  .workspace-action:hover,
.workspace-header-actions[b-zdbw1j4qrg]  .workspace-action:focus-visible {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-brand-soft);
    color: var(--sp-color-ink);
}

/* Toggle states read from colour and fill, not position, in both themes. */
.workspace-header-actions[b-zdbw1j4qrg]  .workspace-operations-mode-action.is-active {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-brand-button);
    color: var(--sp-color-button-on-primary);
}

.workspace-header-actions[b-zdbw1j4qrg]  .workspace-favorite-action.is-favorite {
    border-color: var(--sp-color-warning-border);
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-warning-strong);
}

@media (max-width: 700px), (max-height: 500px) and (pointer: coarse) {
    .app-layout.navigation-collapsed .workspace-header[b-zdbw1j4qrg],
    .app-layout:not(.navigation-collapsed) .workspace-header[b-zdbw1j4qrg] {
        padding-left: 58px;
    }

    .workspace-header-actions[b-zdbw1j4qrg]  > .workspace-action,
    .workspace-header-actions[b-zdbw1j4qrg]  > .account-menu,
    .workspace-header-actions[b-zdbw1j4qrg]  > .account-menu > .account-menu-trigger,
    .workspace-header-actions[b-zdbw1j4qrg]  > .page-tutorial-launcher,
    .workspace-header-actions[b-zdbw1j4qrg]  > .page-tutorial-launcher > .page-tutorial-button {
        flex-basis: 36px;
        width: 36px;
        min-width: 36px;
        height: 36px;
        min-height: 36px;
    }
}

@media (max-width: 700px), (max-height: 500px) and (pointer: coarse) {
    /* Row and padding come from the shared phone header tokens in
       design-tokens.css, which also derive --sp-workspace-sticky-top. */
    .workspace-header.workspace-header-minimal[b-zdbw1j4qrg] {
        --workspace-phone-pad-y: var(--sp-workspace-phone-pad-y);
        --workspace-phone-row: var(--sp-workspace-phone-row);
        position: sticky;
        top: 0;
        /* Bootstrap's sticky layer: above Leaflet's map controls (1000),
           below the navigation drawer (2000+) and dialogs (2500). */
        z-index: 1020;
        padding: var(--workspace-phone-pad-y) 0.5625rem var(--workspace-phone-pad-y) 3.625rem;
        /* The sticky offset below depends on this padding, so it must win
           over the markup's Bootstrap py-2 utility. */
        padding-top: var(--workspace-phone-pad-y);
        padding-bottom: var(--workspace-phone-pad-y);
        /* Opaque while sticky so scrolled content does not show through. */
        background: var(--sp-color-surface);
    }

    html[data-theme="dark"] .workspace-header.workspace-header-minimal[b-zdbw1j4qrg] {
        background: rgb(var(--sp-rgb-dark));
    }

    .workspace-header-minimal .workspace-context[b-zdbw1j4qrg] {
        min-height: var(--workspace-phone-row);
        column-gap: 0.4rem;
    }

    /* The phone row belongs to the page title; the group stays in the desktop
       breadcrumb and the navigation drawer. */
    .workspace-header-minimal .workspace-context-group[b-zdbw1j4qrg],
    .workspace-header-minimal .workspace-context-chevron[b-zdbw1j4qrg] {
        display: none;
    }

    .workspace-header-minimal .workspace-context-title[b-zdbw1j4qrg] {
        min-width: 0;
        overflow: hidden;
        font-size: 0.9375rem;
        text-overflow: ellipsis;
    }

    /* The description is a hover title on desktop; touch has no hover and
       the title row has no room for it. */
    .workspace-header-minimal .workspace-context-description[b-zdbw1j4qrg] {
        display: none;
    }

    /* One phone row: title, search and the account menu. Mode, Needs
       Attention, Favorite and Tutorial are offered inside the account menu. */
    .workspace-header.workspace-header-minimal[b-zdbw1j4qrg] {
        flex-wrap: nowrap;
        column-gap: 0.25rem;
    }

    .workspace-header-minimal .workspace-context[b-zdbw1j4qrg] {
        flex: 1 1 auto;
    }

    .workspace-header-actions[b-zdbw1j4qrg]  > .workspace-action,
    .workspace-header-actions[b-zdbw1j4qrg]  > .page-tutorial-launcher {
        display: none;
    }

    .workspace-header-actions[b-zdbw1j4qrg] {
        padding-inline-end: 0;
    }
}

/* Coarse pointers use the shared 44px target for every header control at every width, including a touch
   tablet whose desktop action rail sits above the phone shell. */
@media (pointer: coarse) {
    .workspace-header-actions[b-zdbw1j4qrg]  .workspace-action,
    .workspace-header-actions[b-zdbw1j4qrg]  .page-tutorial-launcher,
    .workspace-header-actions[b-zdbw1j4qrg]  .page-tutorial-launcher .page-tutorial-button,
    .workspace-header-actions[b-zdbw1j4qrg]  .account-menu,
    .workspace-header-actions[b-zdbw1j4qrg]  .account-menu .account-menu-trigger {
        width: 2.75rem;
        min-width: 2.75rem;
        height: 2.75rem;
        min-height: 2.75rem;
        flex: 0 0 2.75rem;
    }
}

@media (max-width: 700px) and (pointer: coarse), (max-height: 500px) and (pointer: coarse) {
    .workspace-header-actions[b-zdbw1j4qrg] {
        gap: 0.25rem;
    }
}
/* /Components/Common/Patterns/UiChannelChoice.razor.rz.scp.css */
.ui-channel-choice[b-veyap8vsbs] {
    display: grid;
    gap: 0.375rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.ui-channel-choice legend[b-veyap8vsbs] {
    float: none;
    width: auto;
    min-height: 1.25rem;
    margin: 0;
    padding: 0;
    color: var(--sp-color-text, var(--bs-body-color));
    font-size: 0.8125rem;
    font-weight: 650;
    line-height: 1.25rem;
}

.ui-channel-choice .ui-channel-choice-visually-hidden[b-veyap8vsbs] {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.ui-channel-choice-options[b-veyap8vsbs] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.125rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 0.125rem;
    border: 1px solid var(--sp-color-border, var(--bs-border-color));
    border-radius: var(--sp-radius-control, 0.375rem);
    background: var(--sp-color-surface, var(--bs-body-bg));
}

.ui-channel-choice-option[b-veyap8vsbs] {
    position: relative;
    min-width: 0;
}

.ui-channel-choice-option input[b-veyap8vsbs] {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.ui-channel-choice-option label[b-veyap8vsbs] {
    display: grid;
    place-items: center;
    min-width: 0;
    min-height: 2rem;
    padding-inline: 0.5rem;
    overflow: hidden;
    color: var(--sp-color-text-muted, var(--bs-secondary-color));
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    text-overflow: ellipsis;
    cursor: pointer;
    user-select: none;
    border-radius: calc(var(--sp-radius-control, 0.375rem) - 0.125rem);
    transition: var(--sp-motion-transition-control);
}

.ui-channel-choice-option label:hover[b-veyap8vsbs] {
    background: var(--sp-color-surface-hover, var(--bs-tertiary-bg));
    color: var(--sp-color-text, var(--bs-body-color));
}

.ui-channel-choice-option input:checked + label[b-veyap8vsbs] {
    background: var(--sp-color-primary-soft, var(--bs-primary-bg-subtle));
    color: var(--sp-color-primary-strong, var(--bs-primary-text-emphasis));
    box-shadow: inset 0 0 0 1px var(--sp-color-primary-strong, var(--bs-primary-text-emphasis));
}

.ui-channel-choice-option input:focus-visible + label[b-veyap8vsbs] {
    position: relative;
    z-index: 2;
    outline: 2px solid transparent;
    outline-offset: -2px;
    box-shadow: var(--sp-focus-ring, 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25));
}

.ui-channel-choice-option input:checked:focus-visible + label[b-veyap8vsbs] {
    box-shadow:
        var(--sp-focus-ring, 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25)),
        inset 0 0 0 1px var(--sp-color-primary-strong, var(--bs-primary-text-emphasis));
}

.ui-channel-choice-option input:disabled + label[b-veyap8vsbs],
.ui-channel-choice:disabled .ui-channel-choice-option label[b-veyap8vsbs] {
    opacity: 0.55;
    cursor: not-allowed;
}

@media (pointer: coarse) {
    .ui-channel-choice-option label[b-veyap8vsbs] {
        min-height: 2.75rem;
    }
}
/* /Components/Common/Patterns/UiDataTable.razor.rz.scp.css */
/* Component-private layer for UiDataTable.
   The table system itself — frame, toolbar, header, rows, cells, states and the
   responsive card layout — lives in wwwroot/styles/core/ui-data-table.css, because
   wwwroot/js/tableWorkspace.js injects chrome into this markup after render and
   scoped CSS cannot reach elements it creates.

   What stays here is only what depends on markup this component writes itself:
   the dense administrative directory mode and its sticky-cell plumbing. */

.ui-table-frame[b-ydc4hdqt0i] {
    min-width: 0;
}

.ui-data-table-directory-wrap[b-ydc4hdqt0i] {
    max-height: min(68vh, 58rem);
    isolation: isolate;
    overflow: auto;
    border: 1px solid var(--sp-color-border);
    border-radius: var(--sp-radius-md);
    background: var(--sp-color-surface);
}

.ui-data-table-directory[b-ydc4hdqt0i] {
    width: 100%;
    min-width: var(--directory-table-min-width, 0);
}

/* The sticky first column has to repaint whatever surface its row is showing —
   base, zebra or hover — or it turns transparent over the columns sliding under
   it. Each row state publishes its own background through this variable and the
   sticky cell reads it back. */
.ui-data-table-directory[b-ydc4hdqt0i]  > tbody > .ui-data-table-row > td {
    --ui-directory-sticky-cell-background: var(--sp-color-surface);
    vertical-align: top;
}

.ui-data-table-directory.ui-table-zebra[b-ydc4hdqt0i]  > tbody > .ui-data-table-row:nth-of-type(even) > td {
    --ui-directory-sticky-cell-background: color-mix(
        in srgb,
        var(--sp-color-surface-muted) 34%,
        var(--sp-color-surface)
    );
}

.ui-data-table-directory[b-ydc4hdqt0i]  > tbody > .ui-data-table-row:hover > td {
    --ui-directory-sticky-cell-background: color-mix(in srgb, var(--sp-color-brand) 7%, var(--sp-color-surface));
}

.ui-data-table-directory[b-ydc4hdqt0i]  > tbody > .ui-data-table-row.is-selected > td {
    --ui-directory-sticky-cell-background: color-mix(in srgb, var(--sp-color-brand) 13%, var(--sp-color-surface));
}

@media (min-width: 768px) {
    .ui-data-table-directory.ui-table-sticky-column[b-ydc4hdqt0i]  > tbody > .ui-data-table-row > td:first-child,
    .ui-data-table-directory.enhanced-sticky-first-column[b-ydc4hdqt0i]  > tbody > .ui-data-table-row > td:first-child {
        position: sticky;
        left: 0;
        z-index: 5;
        background: var(--ui-directory-sticky-cell-background);
    }

    .ui-data-table-directory.ui-table-sticky-column[b-ydc4hdqt0i]  > thead > tr > th:first-child,
    .ui-data-table-directory.enhanced-sticky-first-column[b-ydc4hdqt0i]  > thead > tr > th:first-child {
        position: sticky;
        left: 0;
        z-index: 9;
    }

    /* Row actions pin to the right edge the same way, so Edit/Delete stay in view
       while the middle columns scroll. A directory's actions column is its last
       cell labelled "Actions" (or "Action"); its header pins with it. */
    .ui-data-table-directory[b-ydc4hdqt0i]
        
        > tbody
        > .ui-data-table-row
        > td:last-child:is([data-label="Actions" i], [data-label="Action" i]) {
        position: sticky;
        right: 0;
        z-index: 5;
        background: var(--ui-directory-sticky-cell-background);
    }

    .ui-data-table-directory:has(
            > tbody > .ui-data-table-row > td:last-child:is([data-label="Actions" i], [data-label="Action" i])
        )[b-ydc4hdqt0i]
        
        > thead
        > tr
        > th:last-child {
        position: sticky;
        right: 0;
        z-index: 9;
        background: var(--uidt-surface-head, var(--sp-color-surface));
    }

    /* The separating edge appears only while columns are hidden under the pinned cell. */
    .ui-table-frame.is-overflow-end
        .ui-data-table-directory[b-ydc4hdqt0i]
        
        > tbody
        > .ui-data-table-row
        > td:last-child:is([data-label="Actions" i], [data-label="Action" i]),
    .ui-table-frame.is-overflow-end
        .ui-data-table-directory:has(
            > tbody > .ui-data-table-row > td:last-child:is([data-label="Actions" i], [data-label="Action" i])
        )[b-ydc4hdqt0i]
        
        > thead
        > tr
        > th:last-child {
        box-shadow: -0.375rem 0 0.5rem -0.375rem rgb(var(--sp-rgb-ink) / 0.35);
        clip-path: inset(0 0 0 -1rem);
    }

    /* A row action can open its dialog inside the pinned cell. While that dialog is
       mounted, the cell must not clip it to the cell box or keep it under the pinned
       header and first column, or the dialog is hidden and its buttons cannot be clicked.
       Declared after the overflow edge rule, which has the same specificity. */
    .ui-data-table-directory[b-ydc4hdqt0i]
        
        > tbody
        > .ui-data-table-row
        > td:last-child:is([data-label="Actions" i], [data-label="Action" i]):has(.modal.ui-modal-backdrop) {
        z-index: 2500;
        clip-path: none;
    }
}

@media (max-width: 767.98px) {
    .ui-data-table-directory-wrap[b-ydc4hdqt0i] {
        max-height: none;
        overflow: visible;
        border: 0;
        background: transparent;
    }

    .ui-data-table-directory[b-ydc4hdqt0i] {
        min-width: 0;
    }
}
/* /Components/Common/Patterns/UiDirectoryWorkspace.razor.rz.scp.css */
.directory-workspace[b-hs5g91sqqk] {
    --directory-radius: var(--sp-radius-lg);
    --directory-control-radius: var(--sp-control-radius);
    min-width: 0;
    padding: 0 0 1rem;
    color: var(--bs-body-color);
}

.directory-heading-actions[b-hs5g91sqqk] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.4rem;
    margin-bottom: 0.5rem;
}
.directory-heading-actions:not(:has(*))[b-hs5g91sqqk] {
    display: none;
}
.directory-content[b-hs5g91sqqk] {
    min-width: 0;
}
.directory-content[b-hs5g91sqqk]  .directory-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
}
.directory-content[b-hs5g91sqqk]  .directory-header-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.directory-content[b-hs5g91sqqk]  .card {
    border-radius: var(--directory-radius);
    box-shadow: var(--sp-shadow-sm);
    border: 1px solid var(--bs-border-color);
}
.directory-content[b-hs5g91sqqk]  .card-header {
    padding: 0.65rem 0.85rem !important;
    border-bottom-color: var(--bs-border-color-translucent);
}
.directory-content[b-hs5g91sqqk]  .card-header h2,
.directory-content[b-hs5g91sqqk]  .card-header h4 {
    font-size: 1rem;
    font-weight: 650;
    letter-spacing: -0.02em;
}
.directory-content[b-hs5g91sqqk]  .card-header p {
    font-size: 0.8rem;
    line-height: 1.5;
    max-width: 44rem;
}
.directory-content[b-hs5g91sqqk]  .directory-filter-toolbar {
    padding: 0.65rem 0.85rem;
}
.directory-workspace[b-hs5g91sqqk]  .btn {
    border-radius: var(--directory-control-radius);
    font-weight: 700;
}
.directory-workspace[b-hs5g91sqqk]  .btn-sm {
    font-size: 0.75rem;
    min-height: 2rem;
}
.directory-workspace[b-hs5g91sqqk]  .btn-primary {
    box-shadow: var(--sp-shadow-sm);
}
.directory-workspace[b-hs5g91sqqk]  .form-control,
.directory-workspace[b-hs5g91sqqk]  .form-select {
    border-radius: var(--directory-control-radius);
    min-height: var(--sp-control-height);
    font-size: var(--sp-font-size-sm);
}
.directory-workspace[b-hs5g91sqqk]  .form-label {
    font-size: 0.76rem;
    font-weight: 600;
}
.directory-workspace[b-hs5g91sqqk]  .input-group-text {
    border-radius: var(--directory-control-radius) 0 0 var(--directory-control-radius);
    background: var(--bs-body-bg);
    color: var(--bs-secondary-color);
    font-size: 0.78rem;
}
.directory-content[b-hs5g91sqqk]  .badge {
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
}
.directory-content[b-hs5g91sqqk]  .bg-body-tertiary {
    background-color: color-mix(in srgb, var(--bs-tertiary-bg) 50%, var(--bs-body-bg)) !important;
}
.directory-content[b-hs5g91sqqk]  .directory-row-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    width: max-content;
    min-width: 0;
}
.directory-content[b-hs5g91sqqk]  .directory-row-actions > .btn {
    width: auto;
    white-space: nowrap;
}
.directory-content[b-hs5g91sqqk]  .ui-data-table-directory-wrap {
    border-inline: 0;
    border-radius: 0 0 var(--directory-radius) var(--directory-radius);
    box-shadow: none;
}
.directory-content[b-hs5g91sqqk]  .ui-data-table-directory {
    font-size: 0.81rem;
}
.directory-content[b-hs5g91sqqk]  .ui-data-table-directory td {
    line-height: 1.4;
}
.directory-content[b-hs5g91sqqk]  .ui-data-table-directory td > strong:first-child {
    font-weight: 650;
}
.directory-content[b-hs5g91sqqk]  .btn:focus-visible,
.directory-content[b-hs5g91sqqk]  summary:focus-visible {
    outline: 3px solid var(--bs-primary);
    outline-offset: 3px;
}
.directory-content[b-hs5g91sqqk]  .ui-empty-state {
    padding: 3rem 1.5rem;
}

@media (max-width: 767.98px) {
    .directory-workspace[b-hs5g91sqqk]  .form-control,
    .directory-workspace[b-hs5g91sqqk]  .form-select {
        min-height: var(--sp-control-height-touch);
        font-size: 1rem;
    }
    .directory-heading-actions[b-hs5g91sqqk]  .btn {
        flex: 1;
    }
    .directory-content[b-hs5g91sqqk]  .directory-header-actions {
        width: 100%;
    }
    .directory-content[b-hs5g91sqqk]  .directory-row-actions {
        max-width: none;
    }
}

.directory-content[b-hs5g91sqqk]  .card-header:has(> .ui-toolbar-directory) {
    padding: 0 !important;
    border-bottom: 0;
}
/* /Components/Common/Patterns/UiDisclosure.razor.rz.scp.css */
.ui-disclosure-heading[b-joezu96o7k] {
    margin: 0;
    font: inherit;
}

.ui-disclosure-toggle[b-joezu96o7k] {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-space-3);
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.ui-disclosure-toggle:focus-visible[b-joezu96o7k] {
    position: relative;
    z-index: 1;
    outline: 3px solid rgb(var(--sp-rgb-info) / 0.36);
    outline-offset: -3px;
}

.ui-disclosure-title[b-joezu96o7k] {
    min-width: 0;
}

.ui-disclosure-icon[b-joezu96o7k] {
    position: relative;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}

.ui-disclosure-icon[b-joezu96o7k]::before,
.ui-disclosure-icon[b-joezu96o7k]::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 2px;
    border-radius: 999px;
    background: currentcolor;
    content: "";
    transform: translate(-50%, -50%);
    transition: var(--sp-motion-transition-transform);
}

.ui-disclosure-icon[b-joezu96o7k]::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.ui-disclosure.is-open .ui-disclosure-icon[b-joezu96o7k]::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

@media (pointer: coarse), (max-width: 767.98px) {
    .ui-disclosure-toggle[b-joezu96o7k] {
        min-height: 2.75rem;
    }
}
/* /Components/Common/Patterns/UiFormSection.razor.rz.scp.css */
.ui-form-section[b-mkfo106v7s] {
    margin-bottom: var(--sp-space-4);
}

.ui-form-section-icon[b-mkfo106v7s] {
    display: grid;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: var(--sp-radius-md);
    background: var(--sp-color-brand-soft);
    color: var(--sp-color-brand-strong);
}

.ui-form-section-copy[b-mkfo106v7s] {
    flex: 1 1 auto;
    min-width: 0;
}

.ui-form-section-title[b-mkfo106v7s] {
    margin: 0;
}

.ui-form-section-description[b-mkfo106v7s] {
    margin: 3px 0 0;
    color: var(--sp-color-ink-muted);
    font-size: 0.78rem;
    line-height: 1.4;
}

.ui-form-section-actions[b-mkfo106v7s] {
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: var(--sp-space-2);
}

.ui-form-section-header-extra[b-mkfo106v7s] {
    margin-top: var(--sp-space-2);
}

@media (max-width: 700px) {
    .ui-step-heading[b-mkfo106v7s] {
        flex-wrap: wrap;
    }
    .ui-form-section-copy[b-mkfo106v7s] {
        flex-basis: calc(100% - var(--sp-control-height) - var(--sp-space-3));
    }
    .ui-form-section-actions[b-mkfo106v7s] {
        flex-basis: 100%;
        margin-left: 0;
    }
}
/* /Components/Common/Patterns/UiMetric.razor.rz.scp.css */
.workflow-metric[b-q2hapywjqy] {
    margin: 0;
    padding: 1rem;
    border: 1px solid var(--sp-color-border);
    border-radius: var(--sp-control-radius);
    background: var(--sp-color-surface);
}
dt[b-q2hapywjqy] {
    font-size: 0.75rem;
    color: var(--sp-color-ink-secondary);
    font-weight: 600;
}
dd[b-q2hapywjqy] {
    margin: 0.25rem 0 0;
    color: var(--sp-color-ink-strong);
    font-size: 1.375rem;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}
.metric-description[b-q2hapywjqy] {
    font-size: 0.8125rem;
    color: var(--sp-color-ink-secondary);
    font-weight: 400;
}
/* /Components/Common/Patterns/UiPhoneActionMenu.razor.rz.scp.css */
/* Above the phone width the menu is invisible to layout: the actions sit in the caller's row as before. */
.ui-phone-action-menu[b-v3ne2wpvm6],
.ui-phone-action-menu-panel[b-v3ne2wpvm6] {
    display: contents;
}
.ui-phone-action-menu-toggle[b-v3ne2wpvm6],
.ui-phone-action-menu-overlay[b-v3ne2wpvm6],
.ui-phone-action-menu-panel[b-v3ne2wpvm6]  .ui-phone-action-menu-separator {
    display: none;
}

@media (max-width: 700px) {
    .ui-phone-action-menu[b-v3ne2wpvm6] {
        position: relative;
        display: inline-flex;
    }
    .ui-phone-action-menu-toggle[b-v3ne2wpvm6] {
        display: inline-flex;
    }
    .ui-phone-action-menu-toggle[b-v3ne2wpvm6]  .ui-phone-action-menu-trigger {
        min-height: var(--sp-control-height-touch);
        white-space: nowrap;
    }
    .ui-phone-action-menu-glyph[b-v3ne2wpvm6] {
        font-size: 1.25em;
        line-height: 1;
    }
    /* Closed, the panel is a hidden 1px box. A fixed dialog opened by an action inside opts back into
       visibility below; absolute positioning without z-index, opacity or transform creates no stacking
       context, so that dialog still layers above the page (a fixed panel would trap it). */
    .ui-phone-action-menu-panel[b-v3ne2wpvm6] {
        position: absolute;
        top: 0;
        left: 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0.25rem;
        width: 1px;
        height: 1px;
        overflow: hidden;
        visibility: hidden;
    }
    .ui-phone-action-menu-panel[b-v3ne2wpvm6]  .modal {
        visibility: visible;
    }
    /* Open, it is a bottom sheet, so it never depends on where the trigger sits in its row. */
    .is-open > .ui-phone-action-menu-panel[b-v3ne2wpvm6] {
        position: fixed;
        top: auto;
        right: 0.75rem;
        bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
        left: 0.75rem;
        z-index: 1201;
        width: auto;
        height: auto;
        max-height: 70vh;
        max-height: 70dvh;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0.5rem;
        border: 1px solid var(--sp-color-border-strong);
        border-radius: var(--sp-control-radius);
        background: var(--sp-color-surface);
        box-shadow: var(--sp-shadow-md);
        visibility: visible;
    }
    .is-open > .ui-phone-action-menu-overlay[b-v3ne2wpvm6] {
        position: fixed;
        inset: 0;
        z-index: 1200;
        display: block;
        background: rgb(var(--sp-rgb-ink) / 0.24);
    }
    /* Nested caller rows (a lifecycle panel inside the menu) stack like the menu itself. */
    .ui-phone-action-menu-panel[b-v3ne2wpvm6]  > div:not(.modal) {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0.25rem;
    }
    .ui-phone-action-menu-panel[b-v3ne2wpvm6]  .btn:not(.modal .btn) {
        justify-content: flex-start;
        width: 100%;
        min-height: var(--sp-control-height-touch);
        text-align: start;
        white-space: normal;
    }
    .ui-phone-action-menu-panel[b-v3ne2wpvm6]  .ui-phone-action-menu-separator {
        display: block;
        flex: 0 0 auto;
        height: 0;
        margin: 0.25rem 0;
        border-top: 1px solid var(--sp-color-border);
    }
}
/* /Components/Common/Patterns/UiPhoneFilters.razor.rz.scp.css */
/* Wide screens: the filters sit in the caller's row as if unwrapped. The toggle is
   hidden through its own slot, because UiButton's icon layout sets a Bootstrap
   display utility on the button itself. */
.ui-phone-filters[b-b0lezxxdaa],
.ui-phone-filters-panel[b-b0lezxxdaa] {
    display: contents;
}
.ui-phone-filters-toggle-slot[b-b0lezxxdaa] {
    display: none;
}

@media (max-width: 700px) {
    .ui-phone-filters-toggle-slot[b-b0lezxxdaa] {
        display: contents;
    }
    .ui-phone-filters[b-b0lezxxdaa]  .ui-phone-filters-toggle {
        flex: 0 0 auto;
        min-height: var(--sp-control-height-touch);
    }
    .ui-phone-filters-count[b-b0lezxxdaa] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 1.25rem;
        padding: 0 0.3125rem;
        border-radius: 999px;
        background: var(--sp-color-brand-soft);
        color: var(--sp-color-ink-muted);
        font-size: 0.75rem;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
    }
    .ui-phone-filters-panel[b-b0lezxxdaa] {
        display: none;
    }
    /* The open panel follows the caller's controls row (order 1) instead of
       splitting it, and lays its filters out as an even two-column grid. */
    .ui-phone-filters[data-open="true"] > .ui-phone-filters-panel[b-b0lezxxdaa] {
        order: 1;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex: 1 0 100%;
        gap: 0.5rem;
        align-items: end;
        min-width: 0;
    }
    .ui-phone-filters-panel[b-b0lezxxdaa]  > * {
        min-width: 0;
        max-width: none;
        margin: 0;
    }
}
/* /Components/Common/Patterns/UiPhoneMenu.razor.rz.scp.css */
/* Wide screens: the actions sit in the caller's row as if unwrapped. The toggle is
   hidden through its own slot, because UiButton's icon layout sets a Bootstrap
   display utility on the button itself. */
.ui-phone-menu[b-9684td27b9],
.ui-phone-menu-items[b-9684td27b9] {
    display: contents;
}
.ui-phone-menu-toggle-slot[b-9684td27b9] {
    display: none;
}
.ui-phone-menu-backdrop[b-9684td27b9] {
    display: none;
}

@media (max-width: 700px) {
    .ui-phone-menu[b-9684td27b9] {
        position: relative;
        display: inline-flex;
        flex: 0 0 auto;
    }
    .ui-phone-menu-toggle-slot[b-9684td27b9] {
        display: contents;
    }
    .ui-phone-menu[b-9684td27b9]  .ui-phone-menu-toggle {
        min-height: var(--sp-control-height-touch);
    }
    .ui-phone-menu[data-open="true"][b-9684td27b9]  .ui-phone-menu-toggle svg {
        transform: rotate(180deg);
    }
    .ui-phone-menu-backdrop[b-9684td27b9] {
        position: fixed;
        inset: 0;
        z-index: 1040;
        display: block;
    }
    .ui-phone-menu-items[b-9684td27b9] {
        display: none;
    }
    .ui-phone-menu[data-open="true"] > .ui-phone-menu-items[b-9684td27b9] {
        position: absolute;
        inset-block-start: calc(100% + 0.25rem);
        inset-inline-start: 0;
        z-index: 1041;
        display: grid;
        gap: 0.25rem;
        width: max-content;
        min-width: 13rem;
        max-width: calc(100vw - 2rem);
        padding: 0.375rem;
        border: 1px solid var(--bs-border-color);
        border-radius: var(--sp-control-radius);
        background: var(--sp-color-surface);
        box-shadow: var(--bs-box-shadow);
    }
    /* Menu entries read as a list: start-aligned labels on full-width rows,
       outranking toolbar button centring. */
    .ui-phone-menu[data-open="true"] > .ui-phone-menu-items[b-9684td27b9]  .btn,
    .ui-phone-menu[data-open="true"] > .ui-phone-menu-items[b-9684td27b9]  details > summary {
        justify-content: flex-start;
        width: 100%;
        min-height: var(--sp-control-height-touch);
        text-align: start;
    }
    /* A dialog opened from a menu action renders inside the closed menu; the
       menu then drops its own box so the dialog stays on screen. */
    .ui-phone-menu-items:has(.ui-modal-backdrop)[b-9684td27b9] {
        display: contents;
    }
}
/* /Components/Common/Patterns/UiSegmentedControl.razor.rz.scp.css */
/* Geometry and state belong here; consumers choose a typed variant, density and width. */
.ui-segmented[b-l2dk5o836a] {
    --segment-height: 1.75rem;
    --segment-padding: 0.65rem;
    --segment-font: 0.8125rem;
    --segment-track: var(--sp-color-surface);
    --segment-selected: var(--sp-color-surface-raised);
    --segment-selected-ink: var(--sp-color-ink-strong);
    --segment-selected-border: var(--sp-color-border);
    --segment-selected-shadow: var(--sp-shadow-sm);
    position: relative;
    display: inline-grid;
    min-width: 0;
    max-width: 100%;
    padding: 0;
    isolation: isolate;
    border: 1px solid var(--sp-color-border);
    border-radius: calc(var(--sp-control-radius) + 0.1875rem);
    background: var(--segment-track);
    vertical-align: middle;
}

.ui-segmented[data-size="comfortable"][b-l2dk5o836a] {
    --segment-height: 2rem;
    --segment-padding: 0.875rem;
    --segment-font: 0.875rem;
}

/* Inline adopts the former form-header radio geometry: inherited typography,
   1em icon in place of the radio, normal word spacing and the same outer padding. */
.ui-segmented[data-size="inline"][b-l2dk5o836a] {
    --segment-height: 0;
    border-radius: var(--bs-border-radius-sm);
    font: inherit;
}
.ui-segmented[data-size="inline"] .ui-segmented-track[b-l2dk5o836a] {
    padding: 0;
    gap: 1px;
}
.ui-segmented[data-size="inline"] .ui-segmented-option[b-l2dk5o836a] {
    display: inline-block;
    min-height: 0;
    padding: 0.25rem 0.65rem;
    border: 0;
    border-radius: var(--bs-border-radius-sm);
    font: inherit;
    vertical-align: middle;
}
.ui-segmented[data-size="inline"] .ui-segmented-selection[b-l2dk5o836a] {
    border-radius: var(--bs-border-radius-sm);
}
.ui-segmented[data-size="inline"] .ui-segmented-icon[b-l2dk5o836a] {
    display: inline-block;
    width: 1em;
    height: 1em;
    font-size: inherit;
    vertical-align: -0.125em;
}
.ui-segmented-icon[b-l2dk5o836a]  svg {
    display: block;
    width: 100%;
    height: 100%;
}

.ui-segmented[data-variant="accent"][b-l2dk5o836a] {
    --segment-selected: var(--sp-color-button-primary);
    --segment-selected-ink: var(--sp-color-button-on-primary);
    --segment-selected-border: transparent;
    --segment-selected-shadow: 0 1px 3px color-mix(in srgb, var(--sp-color-button-primary) 25%, transparent);
}

.ui-segmented[data-variant="flat"][b-l2dk5o836a] {
    --segment-track: var(--sp-color-surface);
    --segment-selected: color-mix(in srgb, var(--sp-color-brand) 10%, var(--sp-color-surface));
    --segment-selected-border: color-mix(in srgb, var(--sp-color-brand) 45%, var(--sp-color-border));
    --segment-selected-shadow: none;
}

.ui-segmented-viewport[b-l2dk5o836a] {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: 1.25rem;
    scrollbar-width: thin;
    scrollbar-color: var(--sp-color-border-strong) transparent;
    border-radius: inherit;
}

.ui-segmented-track[b-l2dk5o836a] {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0.125rem;
    width: max-content;
    min-width: 100%;
    padding: 0.1875rem;
    box-sizing: border-box;
}

.ui-segmented[data-width="equal"] .ui-segmented-track[b-l2dk5o836a],
.ui-segmented[data-width="full"] .ui-segmented-track[b-l2dk5o836a] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(max-content, 1fr);
}

.ui-segmented[data-width="full"][b-l2dk5o836a] {
    width: 100%;
}
.ui-segmented[data-width="full"] .ui-segmented-track[b-l2dk5o836a] {
    width: 100%;
}

.ui-segmented-selection[b-l2dk5o836a] {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    pointer-events: none;
    visibility: hidden;
    transform-origin: left top;
    border: 1px solid var(--segment-selected-border);
    border-radius: var(--sp-control-radius);
    background: var(--segment-selected);
    box-shadow: var(--segment-selected-shadow);
    box-sizing: border-box;
}

.ui-segmented[data-selection-visible="true"] .ui-segmented-selection[b-l2dk5o836a] {
    visibility: visible;
    /* Motion decorates selection; the selected button owns its readable fill. */
    background: transparent;
}

.ui-segmented-option[b-l2dk5o836a] {
    position: relative;
    z-index: 1;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    min-height: var(--segment-height);
    margin: 0;
    padding: 0.375rem var(--segment-padding);
    border: 1px solid transparent;
    border-radius: var(--sp-control-radius);
    background: transparent;
    color: var(--sp-color-ink-secondary);
    font-family: inherit;
    font-size: var(--segment-font);
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    text-decoration: none;
    touch-action: manipulation;
    cursor: pointer;
    /* Keep readable ink/fill pairs atomic while retaining decorative control motion. */
    transition:
        border-color var(--sp-motion-duration-fast) var(--sp-motion-ease-standard),
        box-shadow var(--sp-motion-duration-fast) var(--sp-motion-ease-standard),
        outline-color var(--sp-motion-duration-fast) var(--sp-motion-ease-standard),
        opacity var(--sp-motion-duration-fast) var(--sp-motion-ease-standard),
        transform var(--sp-motion-duration-fast) var(--sp-motion-ease-standard);
}

/* CSS fallback is complete before JS loads and if enhancement is unavailable. */
.ui-segmented-option.active[b-l2dk5o836a] {
    color: var(--segment-selected-ink);
    background: var(--segment-selected);
    border-color: var(--segment-selected-border);
    box-shadow: var(--segment-selected-shadow);
}

.ui-segmented[data-selection-visible="true"] .ui-segmented-option.active[b-l2dk5o836a] {
    border-color: transparent;
    box-shadow: none;
}

@media (hover: hover) {
    .ui-segmented-option:hover:not(:disabled):not(.active)[b-l2dk5o836a] {
        color: var(--sp-color-ink-strong);
        background: color-mix(in srgb, var(--sp-color-ink-strong) 6%, transparent);
    }
}

.ui-segmented-option:active:not(:disabled) .ui-segmented-label[b-l2dk5o836a] {
    transform: translateY(0.5px);
}
.ui-segmented-option:focus-visible[b-l2dk5o836a] {
    outline: 2px solid var(--sp-color-brand);
    outline-offset: -2px;
}
.ui-segmented[data-variant="accent"] .ui-segmented-option.active:focus-visible[b-l2dk5o836a] {
    outline-color: var(--sp-color-button-on-primary);
    outline-offset: -4px;
}
.ui-segmented-option:disabled[b-l2dk5o836a] {
    opacity: 0.5;
    cursor: not-allowed;
}
.ui-segmented-icon[b-l2dk5o836a] {
    flex: 0 0 auto;
    width: 1em;
    height: 1em;
    font-size: 1rem;
    text-align: center;
}

.ui-segmented-badge[b-l2dk5o836a] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: calc(3ch + 0.75rem);
    padding: 0.125rem 0.375rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: color-mix(in srgb, var(--sp-color-ink-strong) 8%, transparent);
    color: inherit;
    font-size: 0.75rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
}

.ui-segmented-badge[data-tone="info"][b-l2dk5o836a] {
    background: var(--sp-color-surface-info);
    color: var(--sp-color-info-text);
}
.ui-segmented-badge[data-tone="success"][b-l2dk5o836a] {
    background: var(--sp-color-surface-success);
    color: var(--sp-color-success-text);
}
.ui-segmented-badge[data-tone="warning"][b-l2dk5o836a] {
    background: var(--sp-color-surface-warning);
    color: var(--sp-color-warning-text);
}
.ui-segmented-badge[data-tone="danger"][b-l2dk5o836a] {
    background: var(--sp-color-surface-danger);
    color: var(--sp-color-danger-text);
}
.ui-segmented[data-variant="accent"] .active .ui-segmented-badge[data-tone="neutral"][b-l2dk5o836a] {
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink-strong);
}
.ui-segmented-badge[data-loading="true"][b-l2dk5o836a] {
    opacity: 0.6;
}

.ui-segmented-indicator[b-l2dk5o836a] {
    width: 0.5rem;
    height: 0.5rem;
    flex: 0 0 0.5rem;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent);
}
.ui-segmented-indicator.yes[b-l2dk5o836a],
.ui-segmented-indicator.done[b-l2dk5o836a] {
    background: var(--sp-color-success);
}
.ui-segmented-indicator.partial[b-l2dk5o836a] {
    border: 1px solid var(--sp-color-success);
    background: linear-gradient(90deg, var(--sp-color-success) 50%, transparent 50%);
}
.ui-segmented-indicator.wait[b-l2dk5o836a] {
    background: var(--sp-color-warning);
}
.ui-segmented-indicator.scheduled[b-l2dk5o836a] {
    background: var(--sp-color-info);
}
.ui-segmented-indicator.no[b-l2dk5o836a] {
    background: var(--sp-color-danger);
}
.ui-segmented-indicator.out[b-l2dk5o836a] {
    background: var(--sp-color-ink-secondary);
}

/* Absolute pending affordance never adds width or replaces the label/count. */
.ui-segmented-pending[b-l2dk5o836a] {
    position: absolute;
    inset-inline: 0.5rem;
    bottom: 0.125rem;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    opacity: 0;
    transform: scaleX(0.35);
}
.ui-segmented-option[data-pending="true"] .ui-segmented-pending[b-l2dk5o836a] {
    animation: segmented-pending-b-l2dk5o836a 900ms var(--sp-motion-ease-standard) var(--sp-motion-duration-base) infinite alternate;
}
@keyframes segmented-pending-b-l2dk5o836a {
    from {
        opacity: 0.3;
        transform: scaleX(0.35);
    }
    to {
        opacity: 0.85;
        transform: scaleX(1);
    }
}

.ui-segmented-edge[b-l2dk5o836a] {
    position: absolute;
    top: 0.25rem;
    bottom: 0.25rem;
    z-index: 2;
    display: grid;
    align-items: center;
    width: 1rem;
    opacity: 0;
    pointer-events: none;
    font-size: 1rem;
    color: var(--sp-color-ink-strong);
}
.ui-segmented-edge-start[b-l2dk5o836a] {
    left: 0;
    background: linear-gradient(to right, var(--segment-track) 35%, transparent);
    border-radius: inherit;
}
.ui-segmented-edge-end[b-l2dk5o836a] {
    right: 0;
    text-align: right;
    background: linear-gradient(to left, var(--segment-track) 35%, transparent);
    border-radius: inherit;
}
.ui-segmented[data-overflow-left="true"] .ui-segmented-edge-start[b-l2dk5o836a],
.ui-segmented[data-overflow-right="true"] .ui-segmented-edge-end[b-l2dk5o836a] {
    opacity: 1;
}

/* Phones follow the shared 44px tab target as well as coarse pointers; the
   inline form-header variant keeps its typography but grows to the target. */
@media (max-width: 767.98px), (pointer: coarse) {
    .ui-segmented[b-l2dk5o836a] {
        --segment-height: 2.75rem;
    }
    .ui-segmented[data-size="inline"] .ui-segmented-option[b-l2dk5o836a] {
        display: inline-flex;
        align-items: center;
        min-height: 2.75rem;
    }
    .ui-segmented[data-size="comfortable"][b-l2dk5o836a] {
        --segment-height: 2.75rem;
    }
}
@media (max-width: 575.98px) {
    .ui-segmented[data-mobile-full="true"][b-l2dk5o836a] {
        width: 100%;
    }
    .ui-segmented[data-mobile-full="true"] .ui-segmented-track[b-l2dk5o836a] {
        display: grid;
        width: 100%;
        grid-auto-flow: column;
        grid-auto-columns: minmax(max-content, 1fr);
    }
}
@media (prefers-reduced-motion: reduce) {
    .ui-segmented-option:active:not(:disabled) .ui-segmented-label[b-l2dk5o836a] {
        transform: none;
    }
    .ui-segmented-option[data-pending="true"] .ui-segmented-pending[b-l2dk5o836a] {
        transform: none;
        opacity: 0.7;
    }
}

/* Opt in when a filter set must remain fully exposed even in narrow toolbars.
   The selection surface follows both axes; wrapping never animates layout.
   ScrollOnPhone wraps the same way above the 700px phone width and keeps the
   default one-row scroll strip with edge cues at or below it. */
.ui-segmented[data-overflow="wrap"] .ui-segmented-viewport[b-l2dk5o836a] {
    overflow: visible;
}
.ui-segmented[data-overflow="wrap"] .ui-segmented-track[b-l2dk5o836a] {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    min-width: 0;
}
.ui-segmented[data-overflow="wrap"] .ui-segmented-option[b-l2dk5o836a] {
    max-width: 100%;
    min-width: 0;
    white-space: normal;
}
.ui-segmented[data-overflow="wrap"] .ui-segmented-label[b-l2dk5o836a] {
    min-width: 0;
    overflow-wrap: anywhere;
}
.ui-segmented[data-overflow="wrap"][data-width="full"] .ui-segmented-option[b-l2dk5o836a] {
    flex: 1 1 auto;
}
@media (min-width: 700.02px) {
    .ui-segmented[data-overflow="scrollonphone"] .ui-segmented-viewport[b-l2dk5o836a] {
        overflow: visible;
    }
    .ui-segmented[data-overflow="scrollonphone"] .ui-segmented-track[b-l2dk5o836a] {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        min-width: 0;
    }
    .ui-segmented[data-overflow="scrollonphone"] .ui-segmented-option[b-l2dk5o836a] {
        max-width: 100%;
        min-width: 0;
        white-space: normal;
    }
    .ui-segmented[data-overflow="scrollonphone"] .ui-segmented-label[b-l2dk5o836a] {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    .ui-segmented[data-overflow="scrollonphone"][data-width="full"] .ui-segmented-option[b-l2dk5o836a] {
        flex: 1 1 auto;
    }
}
@media (forced-colors: active) {
    .ui-segmented[b-l2dk5o836a] {
        border-color: ButtonText;
    }
    .ui-segmented-selection[b-l2dk5o836a] {
        display: none;
    }
    .ui-segmented .ui-segmented-option.active[b-l2dk5o836a],
    .ui-segmented[data-selection-visible="true"] .ui-segmented-option.active[b-l2dk5o836a] {
        border: 2px solid Highlight;
        background: Canvas;
        color: CanvasText;
    }
    .ui-segmented-option[b-l2dk5o836a] {
        border-width: 2px;
    }
    .ui-segmented-option:focus-visible[b-l2dk5o836a],
    .ui-segmented[data-variant="accent"] .ui-segmented-option.active:focus-visible[b-l2dk5o836a] {
        outline: 2px dashed Highlight;
    }
    .ui-segmented-badge[b-l2dk5o836a] {
        border-color: ButtonText;
    }
    .ui-segmented-option:disabled[b-l2dk5o836a] {
        color: GrayText;
        opacity: 1;
    }
}
/* /Components/Common/Patterns/UiSegmentedPanel.razor.rz.scp.css */
.ui-segmented-panel[b-tzrfqhhqdv] {
    min-width: 0;
}
.ui-segmented-panel[hidden][b-tzrfqhhqdv] {
    display: none !important;
}
.ui-segmented-panel:focus-visible[b-tzrfqhhqdv] {
    outline: 2px solid var(--sp-color-brand);
    outline-offset: 2px;
    border-radius: var(--sp-control-radius);
}
.ui-segmented-panel-state[b-tzrfqhhqdv] {
    display: grid;
    gap: 1rem;
    justify-items: start;
    padding: 1.5rem;
    min-height: 12rem;
    background: var(--sp-color-surface);
    border-radius: var(--sp-radius-sm);
}
/* /Components/Common/Patterns/UiTabs.razor.rz.scp.css */
/*
   UiTabs is the shared segmented selector used by every page-level tab strip.
   Keep the visual contract here instead of relying on Bootstrap's `.nav` and
   `.nav-pills` defaults: those defaults make labels and badges compete for
   space at narrow widths and vary between themes.
*/
.ui-tabs[b-z0unqp0vbi] {
    display: block;
    width: 100%;
    min-width: 0;
}

.ui-tabs-nav[b-z0unqp0vbi] {
    display: flex;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    gap: 0.25rem;
    padding: 0.25rem;
    flex-wrap: wrap;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-lg);
    background: var(--sp-color-surface);
}

.ui-tabs-tab[b-z0unqp0vbi] {
    flex: 0 1 auto;
    min-width: 0;
    min-height: var(--sp-control-height);
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.625rem;
    padding: 0.375rem 0.75rem;
    border: 1px solid transparent;
    border-radius: calc(var(--bs-border-radius-lg) - 0.125rem);
    background: transparent;
    color: var(--sp-color-ink);
    font-size: var(--sp-font-size-sm);
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

/* Labels and count badges are built in code, which Blazor does not scope, so
   they are reached through ::deep from the tab strip. */
.ui-tabs[b-z0unqp0vbi]  .ui-tabs-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ui-tabs[b-z0unqp0vbi]  :is(.ui-tabs-tab.active, .ui-tabs-tab[aria-selected="true"]) .ui-tabs-label {
    color: var(--sp-color-button-on-primary);
}

.ui-tabs-tab:hover:not(:disabled):not(.disabled):not(.active):not([aria-selected="true"])[b-z0unqp0vbi] {
    border-color: var(--bs-border-color-translucent);
    background: var(--bs-body-bg);
    color: var(--bs-emphasis-color);
}

.ui-tabs-tab.active[b-z0unqp0vbi],
.ui-tabs-tab[aria-selected="true"][b-z0unqp0vbi] {
    border-color: var(--bs-primary);
    background: var(--bs-primary);
    color: var(--sp-color-button-on-primary);
    font-weight: 750;
    box-shadow: 0 0.125rem 0.35rem rgba(var(--bs-primary-rgb), 0.22);
}

.ui-tabs-tab:disabled[b-z0unqp0vbi],
.ui-tabs-tab.disabled[b-z0unqp0vbi] {
    opacity: 0.5;
    cursor: not-allowed;
}

.ui-tabs-tab:focus-visible[b-z0unqp0vbi] {
    position: relative;
    z-index: 1;
    outline: 2px solid var(--sp-color-brand-strong, var(--bs-primary));
    outline-offset: 2px;
}

.ui-tabs[b-z0unqp0vbi]  .ui-tabs-badge {
    --bs-badge-color: var(--bs-secondary-text-emphasis);
    flex: 0 0 auto;
    min-width: 1.5rem;
    padding: 0.2rem 0.45rem;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    color: var(--bs-secondary-text-emphasis);
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
    text-align: center;
}

.ui-tabs[b-z0unqp0vbi]  :is(.ui-tabs-tab.active, .ui-tabs-tab[aria-selected="true"]) .ui-tabs-badge {
    --bs-badge-color: var(--sp-color-button-on-primary);
    border-color: rgb(var(--sp-rgb-white) / 0.4);
    background: transparent;
    color: var(--sp-color-button-on-primary);
}

.ui-tabs-panel[b-z0unqp0vbi] {
    min-width: 0;
    margin-top: var(--sp-space-3);
}

@media (pointer: coarse), (max-width: 700px) {
    .ui-tabs-tab[b-z0unqp0vbi] {
        min-height: var(--sp-control-height-touch);
    }
}

.ui-tabs-panel:focus-visible[b-z0unqp0vbi] {
    outline: 2px solid var(--sp-color-brand, var(--bs-primary));
    outline-offset: 2px;
    border-radius: var(--sp-radius-sm, var(--bs-border-radius));
}

@media (max-width: 480px) {
    .ui-tabs-nav[b-z0unqp0vbi] {
        gap: 0.125rem;
        padding: 0.2rem;
    }

    .ui-tabs-tab[b-z0unqp0vbi] {
        flex-basis: 7rem;
        min-height: var(--sp-control-height-touch);
        padding: 0.55rem 0.625rem;
        font-size: 0.9375rem;
    }
}

@media (max-width: 480px) and (pointer: coarse) {
    .ui-tabs-tab[b-z0unqp0vbi] {
        min-height: 2.75rem;
    }
}
/* /Components/Common/Patterns/UiToolbar.razor.rz.scp.css */
.ui-toolbar[b-7gkldegsa4] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 0;
}

.ui-toolbar-left[b-7gkldegsa4] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem;
    min-width: 0;
    flex: 1 1 auto;
}

/* Filter fields share the row's gap; the stacked-form bottom margin that UiField keeps for all but the last field
   would otherwise push the last field below its neighbours under flex-end alignment. */
.ui-toolbar-left[b-7gkldegsa4]  .ui-field {
    margin-bottom: 0;
}

.ui-toolbar-right[b-7gkldegsa4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.ui-toolbar-left[b-7gkldegsa4]  .ui-field:has(> .ui-select) > .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Opt-in directory treatment: one owner for every page's filter/action geometry. */
.ui-toolbar-directory[b-7gkldegsa4] {
    --toolbar-control-height: var(--sp-control-height);
    width: 100%;
    padding: 0.85rem;
    gap: 0.75rem 1rem;
    background: var(--sp-color-surface);
    border-bottom: 1px solid var(--bs-border-color-translucent);
    border-radius: var(--sp-radius-sm) var(--sp-radius-sm) 0 0;
    min-width: 0;
}
.ui-toolbar-directory .ui-toolbar-left[b-7gkldegsa4] {
    flex: 1 1 25rem;
    gap: 0.65rem;
}
.ui-toolbar-directory .ui-toolbar-right[b-7gkldegsa4] {
    flex: 0 1 auto;
    max-width: 100%;
    align-items: flex-end;
    gap: 0.45rem;
}
.ui-toolbar-directory[b-7gkldegsa4]  .ui-field,
.ui-toolbar-directory[b-7gkldegsa4]  .ui-toolbar-field {
    flex: 1 1 9rem;
    min-width: 0;
    margin: 0;
}
.ui-toolbar-directory .ui-toolbar-left[b-7gkldegsa4]  > .ui-field:has(input[type="search"]:not(.ui-select-search)),
.ui-toolbar-directory[b-7gkldegsa4]  .ui-toolbar-search {
    flex: 2 1 14rem;
    min-width: 0;
}
.ui-toolbar-directory[b-7gkldegsa4]  .form-label {
    margin-bottom: 0.3rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--bs-secondary-color);
}
.ui-toolbar-directory[b-7gkldegsa4]  .form-control,
.ui-toolbar-directory[b-7gkldegsa4]  .form-select,
.ui-toolbar-directory[b-7gkldegsa4]  .btn,
.ui-toolbar-directory[b-7gkldegsa4]  summary {
    min-height: var(--toolbar-control-height);
    border-radius: var(--bs-border-radius-sm);
    font-size: 0.8rem;
}
.ui-toolbar-directory[b-7gkldegsa4]  .form-control,
.ui-toolbar-directory[b-7gkldegsa4]  .form-select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}
.ui-toolbar-directory[b-7gkldegsa4]  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.4rem 0.7rem;
    font-weight: 550;
    white-space: normal;
}
.ui-toolbar-directory[b-7gkldegsa4]  .ui-toolbar-action-group {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.45rem;
    min-width: 0;
}
.ui-toolbar-summary[b-7gkldegsa4] {
    display: flex;
    flex: 1 0 100%;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 1rem;
    min-width: 0;
    font-size: 0.74rem;
    color: var(--bs-secondary-color);
}
@media (max-width: 575.98px) {
    .ui-toolbar-directory[b-7gkldegsa4] {
        padding: 0.75rem;
    }
    .ui-toolbar-directory .ui-toolbar-left[b-7gkldegsa4],
    .ui-toolbar-directory .ui-toolbar-right[b-7gkldegsa4] {
        flex-basis: 100%;
        width: 100%;
    }
    .ui-toolbar-directory .ui-toolbar-right[b-7gkldegsa4]  > .btn {
        flex: 1 1 auto;
    }
    .ui-toolbar-directory .ui-toolbar-left[b-7gkldegsa4]  > .ui-field:has(input[type="search"]:not(.ui-select-search)),
    .ui-toolbar-directory[b-7gkldegsa4]  .ui-toolbar-search {
        flex-basis: 100%;
    }
}

.ui-toolbar-directory[b-7gkldegsa4]  .form-control,
.ui-toolbar-directory[b-7gkldegsa4]  .form-select {
    font-weight: 400;
}
.ui-toolbar-directory[b-7gkldegsa4]  .form-control::placeholder {
    color: var(--bs-secondary-color);
    font-weight: 400;
    opacity: 1;
}

.ui-toolbar-directory[b-7gkldegsa4]  .ui-select {
    --uis-height: var(--toolbar-control-height);
    --uis-compact-height: var(--toolbar-control-height);
    font-size: 0.8rem;
}

/* A segmented view switcher in a directory toolbar takes the toolbar control
   height as its outer box (option = height - track padding - border), so it
   lines up with the search field, selects and buttons beside it. Phones and
   coarse pointers keep the segmented control's own 44px options. */
@media (min-width: 768px) and (pointer: fine) {
    .ui-toolbar-directory[b-7gkldegsa4]  .ui-segmented:not([data-size="inline"]) {
        --segment-height: calc(var(--toolbar-control-height) - 0.375rem - 2px);
    }
    .ui-toolbar-directory[b-7gkldegsa4]  .ui-segmented:not([data-size="inline"]) .ui-segmented-option {
        padding-block: 0;
    }
}

/* Touch: directory toolbar controls (search, selects, buttons) share the
   44px touch target through the one token they all read. */
@media (pointer: coarse) {
    .ui-toolbar-directory[b-7gkldegsa4] {
        --toolbar-control-height: 2.75rem;
    }
}

/* Phones with folded secondary filters/actions: the full-width search leads,
   then the Filters toggle, More toggle and primary action share one row; an
   open filter panel (order 1) follows that row and the summary comes last. */
@media (max-width: 700px) {
    .ui-toolbar-phone-overflow.ui-toolbar-directory .ui-toolbar-right[b-7gkldegsa4] {
        flex: 1 1 auto;
        width: auto;
        flex-basis: auto;
        margin-inline-start: 0;
    }
    .ui-toolbar-phone-overflow .ui-toolbar-right[b-7gkldegsa4]  > .btn {
        flex: 1 1 auto;
    }
    .ui-toolbar-phone-overflow .ui-toolbar-summary[b-7gkldegsa4] {
        order: 2;
    }
}
/* /Components/Common/Patterns/UiWorkflowActions.razor.rz.scp.css */
.workflow-actions[b-w0nt4pjvsz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem var(--sp-panel-padding);
    border: 1px solid var(--sp-color-border);
    border-radius: var(--sp-control-radius);
    background: var(--sp-color-surface);
}
.workflow-status[b-w0nt4pjvsz] {
    color: var(--sp-color-ink-secondary);
    font-size: 0.8125rem;
}
.workflow-buttons[b-w0nt4pjvsz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
@media (max-width: 575.98px) {
    .workflow-buttons[b-w0nt4pjvsz] {
        width: 100%;
    }
    .workflow-buttons[b-w0nt4pjvsz]  .btn {
        flex: 1 1 auto;
    }
}
@media print {
    .workflow-actions[b-w0nt4pjvsz] {
        display: none;
    }
}
/* /Components/Common/Patterns/UiWorkflowLayout.razor.rz.scp.css */
.workflow-layout[b-9qdshf15o9] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 21rem);
    align-items: start;
    gap: var(--sp-panel-padding);
}
.workflow-single[b-9qdshf15o9] {
    grid-template-columns: minmax(0, 1fr);
}
.workflow-main[b-9qdshf15o9],
.workflow-aside[b-9qdshf15o9] {
    min-width: 0;
    display: grid;
    gap: var(--sp-panel-padding);
}
.workflow-layout[b-9qdshf15o9]  h2,
.workflow-layout[b-9qdshf15o9]  h3 {
    font-size: 1rem;
    margin-block-end: 0.5rem;
}
.workflow-layout[b-9qdshf15o9]  fieldset {
    min-width: 0;
}
.workflow-layout[b-9qdshf15o9]  .card {
    margin-bottom: 0;
}
.workflow-layout[b-9qdshf15o9]  .card-header p {
    margin-bottom: 0;
    color: var(--sp-color-ink-secondary);
    font-size: 0.875rem;
}
.workflow-layout[b-9qdshf15o9]  .card-body > :last-child {
    margin-bottom: 0;
}
.workflow-layout[b-9qdshf15o9]  .ui-empty-state {
    min-height: 6rem;
    padding: 1rem;
    font-size: 0.875rem;
}
@media (max-width: 991.98px) {
    .workflow-layout[b-9qdshf15o9] {
        grid-template-columns: minmax(0, 1fr);
    }
}
@media print {
    .workflow-layout[b-9qdshf15o9] {
        display: block;
    }
}
/* /Components/Common/Primitives/Controls/BackgroundImageToggle.razor.rz.scp.css */
.background-image-toggle[b-62bkt6tihn] {
    min-width: 58px;
    /* Matches the theme toggle beside it in the account menu. */
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 0;
    padding: 0 8px;
    border: 1px solid var(--sp-color-border);
    border-radius: 8px;
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
    font: 800 11px/1 var(--sp-font-sans);
    cursor: pointer;
}

.background-image-toggle:hover[b-62bkt6tihn],
.background-image-toggle:focus-visible[b-62bkt6tihn] {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-brand-soft);
    outline: none;
}

.background-image-toggle-icon[b-62bkt6tihn],
.background-image-toggle-icon svg[b-62bkt6tihn] {
    display: block;
    flex: 0 0 auto;
}

.background-image-toggle-label[b-62bkt6tihn] {
    min-width: 17px;
    text-align: center;
}

/* Touch screens and narrow windows: the shared 44px target, level with the theme toggle. */
@media (pointer: coarse), (max-width: 700px) {
    .background-image-toggle[b-62bkt6tihn] {
        height: var(--sp-control-height-touch);
    }
}
/* /Components/Common/Primitives/Controls/ThemeToggle.razor.rz.scp.css */
.theme-toggle[b-7u500fjuph] {
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--sp-color-border);
    border-radius: 9px;
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
    font: 800 12px/1 var(--sp-font-sans);
    cursor: pointer;
}

.theme-toggle-label[b-7u500fjuph] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.theme-toggle:hover[b-7u500fjuph],
.theme-toggle:focus-visible[b-7u500fjuph] {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-brand-soft);
    outline: none;
}

.theme-toggle-icon[b-7u500fjuph],
.theme-toggle-icon svg[b-7u500fjuph] {
    display: block;
    flex: 0 0 auto;
}

/* Touch screens and narrow windows: the shared 44px target. */
@media (pointer: coarse), (max-width: 700px) {
    .theme-toggle[b-7u500fjuph] {
        width: var(--sp-control-height-touch);
        min-width: var(--sp-control-height-touch);
        height: var(--sp-control-height-touch);
        min-height: var(--sp-control-height-touch);
    }
}
/* /Components/Common/Primitives/Controls/UiButton.razor.rz.scp.css */
/* "ghost" has no Bootstrap equivalent in this app (no existing usage found),
   so it gets a small component-private style built from design tokens
   rather than a new shared class. */
.ui-btn-ghost[b-wa1wda5jb2] {
    border-color: transparent;
    background-color: transparent;
    color: var(--sp-color-ink);
}

.ui-btn-ghost:hover:not(:disabled)[b-wa1wda5jb2] {
    border-color: var(--sp-color-border);
    background-color: var(--sp-color-surface-muted);
}

.ui-btn-ghost:disabled[b-wa1wda5jb2] {
    color: var(--sp-color-ink-faint);
}

.ui-btn-icon[b-wa1wda5jb2] {
    display: inline-flex;
    align-items: center;
}

.ui-button[b-wa1wda5jb2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: var(--sp-control-height);
    padding: 0.375rem 0.75rem;
    font-weight: 500;
    line-height: 1.25;
    vertical-align: middle;
    text-decoration: none;
}

.ui-button.btn-sm[b-wa1wda5jb2] {
    min-height: var(--toolbar-control-height, var(--sp-control-height-sm));
    padding: 0.3rem 0.6rem;
    font-size: 0.8125rem;
}

/* The 18px icon would push a small text button 1.6px past the shared small control height, so a small
   button with an icon stood taller than a plain one beside it; the icon overlaps the padding instead. */
.ui-button.btn-sm:not(.ui-button-icon-only)[b-wa1wda5jb2]  .ui-btn-icon {
    margin-block: -0.1rem;
}

.ui-button.btn-link[b-wa1wda5jb2] {
    min-height: 0;
}

.ui-button.btn-lg[b-wa1wda5jb2] {
    min-height: var(--sp-control-height-touch);
    padding: 0.625rem 1rem;
}

/* Touch phones: every command, link-styled ones included, meets the shared
   44px touch target (icon-only buttons already do, in ui-system.css); a link
   button keeps its padding and text, only its line box grows. The header rail
   keeps its own square geometry. */
@media (max-width: 767.98px), (pointer: coarse) {
    .ui-button:not(.workspace-action)[b-wa1wda5jb2] {
        min-height: var(--sp-control-height-touch);
    }
}

.ui-button:focus-visible[b-wa1wda5jb2] {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.ui-button[aria-disabled="true"][b-wa1wda5jb2] {
    opacity: 0.5;
    cursor: default;
}

/* A busy command keeps focus and its visible label; it reads as working, not
   unavailable, and ignores activation until the operation finishes. */
.ui-button[aria-busy="true"][b-wa1wda5jb2] {
    opacity: 0.75;
    cursor: progress;
}

.ui-btn-icon[b-wa1wda5jb2] {
    flex: 0 0 auto;
    justify-content: center;
    line-height: 1;
}
/* /Components/Common/Primitives/Feedback/UiBadge.razor.rz.scp.css */
.ui-badge-dot[b-3j2bksjeu3] {
    display: inline-block;
    width: 0.4em;
    height: 0.4em;
    margin-right: 0.35em;
    border-radius: 50%;
    background: currentcolor;
    vertical-align: middle;
}

.ui-badge-purple[b-3j2bksjeu3] {
    color: var(--sp-color-violet-strong);
    background: var(--sp-color-violet-soft);
}

/* Filled orange, apart from the yellow warning tone: white text keeps 4.5:1 in both themes. */
.ui-badge-orange[b-3j2bksjeu3] {
    color: var(--sp-color-white);
    background: var(--sp-color-orange-button);
}
/* /Components/Common/Primitives/Fields/UiDateField.razor.rz.scp.css */
.ui-date-picker[b-r6qt96ls9w] {
    position: relative;
    min-width: 0;
    /* A host that preserves whitespace (a dialog body or a pre-line/pre-wrap cell) would turn the
       markup whitespace around the input into blank line boxes, making the control taller than its
       input and pushing the centred calendar icon below it. */
    white-space: normal;
}
.ui-date-picker-control[b-r6qt96ls9w] {
    position: relative;
}
/* Reserve the end of the field for the icons actually shown. The workspace
   density input rule (specificity 0,6,1) and feature toolbars set their own
   padding shorthand and load after component styles, so these selectors match
   the input's own type and role attributes to outrank them (0,7,1 with the
   scope attribute); otherwise the value runs underneath the calendar icon and
   clear button. */
.ui-date-picker > .ui-date-picker-control > input.form-control[readonly][type="text"][role="combobox"][b-r6qt96ls9w] {
    cursor: pointer;
    padding-inline-end: 2.6rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    /* Read-only only opens the calendar; it uses the field surface, not the page canvas, so it matches neighbouring inputs. */
    background-color: var(--sp-color-surface);
}
.ui-date-picker
    > .ui-date-picker-control:has(.ui-date-picker-clear)
    > input.form-control[readonly][type="text"][role="combobox"][b-r6qt96ls9w] {
    padding-inline-end: 4.6rem;
}
.ui-date-picker-control input:disabled[b-r6qt96ls9w] {
    cursor: not-allowed;
}
.ui-date-picker-icon[b-r6qt96ls9w] {
    position: absolute;
    right: 0.9rem;
    inset-block: 0;
    display: grid;
    place-items: center;
    color: var(--bs-secondary-color);
    pointer-events: none;
}
.ui-date-picker-icon svg[b-r6qt96ls9w] {
    width: 1.15rem;
    height: 1.15rem;
    display: block;
}
.ui-date-picker-control:has(.ui-date-picker-clear) .ui-date-picker-icon[b-r6qt96ls9w] {
    right: 2.8rem;
}
.ui-date-picker-clear[b-r6qt96ls9w] {
    position: absolute;
    right: 0.5rem;
    top: 0;
    bottom: 0;
    margin-block: auto;
    display: grid;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--bs-secondary-color);
    border-radius: 0.4rem;
    width: 1.7rem;
    height: 1.7rem;
    padding: 0;
}
.ui-date-picker-clear svg[b-r6qt96ls9w],
.ui-date-picker-dismiss svg[b-r6qt96ls9w] {
    width: 1rem;
    height: 1rem;
    display: block;
}
.ui-date-picker-clear:hover[b-r6qt96ls9w],
.ui-date-picker-clear:focus-visible[b-r6qt96ls9w] {
    color: var(--bs-body-color);
    background: var(--bs-tertiary-bg);
}
/* Keep layout measurable, but never paint the fixed popover at its initial
   origin while the server render is waiting for positioning interop. */
.ui-date-picker-popover:not([data-positioned])[b-r6qt96ls9w] {
    visibility: hidden;
    pointer-events: none;
    animation: none;
}

.ui-date-picker-popover[b-r6qt96ls9w] {
    position: fixed;
    z-index: 1100;
    /* Override the [popover] user-agent centering; the module sets top and left. */
    inset: auto;
    top: 0;
    left: 0;
    margin: 0;
    width: min(21rem, calc(100vw - 1.5rem));
    max-height: calc(100dvh - 1.5rem);
    /* Only the body scrolls, so the heading and the Today/Apply footer stay inside the visible popover. */
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0.8rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.85rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
}
.ui-date-picker-body[b-r6qt96ls9w] {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.ui-date-picker-heading[b-r6qt96ls9w],
.ui-date-picker-footer[b-r6qt96ls9w] {
    flex: none;
}
.ui-date-picker-heading[b-r6qt96ls9w] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.3rem 0.7rem;
}
.ui-date-picker-heading > div:first-child[b-r6qt96ls9w] {
    display: grid;
    flex: 1 1 auto;
    min-width: 0;
    gap: 0.1rem;
}
.ui-date-picker-heading strong[b-r6qt96ls9w],
.ui-date-picker-eyebrow[b-r6qt96ls9w] {
    white-space: nowrap;
}
.ui-date-picker-dismiss[b-r6qt96ls9w] {
    display: grid;
    place-items: center;
    flex: none;
    width: 2rem;
    height: 2rem;
    /* Feature styles that widen buttons on phones must not stretch the corner close. */
    min-width: 0;
    max-width: 2.75rem;
    margin-inline-start: 0.25rem;
    padding: 0;
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    color: var(--bs-secondary-color);
    cursor: pointer;
}
.ui-date-picker-dismiss:hover[b-r6qt96ls9w],
.ui-date-picker-dismiss:focus-visible[b-r6qt96ls9w] {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
}
.ui-date-picker-heading strong[b-r6qt96ls9w] {
    font-size: 1.12rem;
    letter-spacing: -0.025em;
}
.ui-date-picker-eyebrow[b-r6qt96ls9w] {
    font-size: 0.63rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    color: var(--bs-secondary-color);
}
.ui-date-picker-navigation[b-r6qt96ls9w] {
    display: flex;
    gap: 0.2rem;
}
.ui-date-picker-navigation button[b-r6qt96ls9w],
.ui-date-picker-footer button[b-r6qt96ls9w] {
    border: 0;
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
    border-radius: 0.55rem;
    min-width: 2rem;
    height: 2rem;
    font-weight: 700;
}
.ui-date-picker-navigation button[b-r6qt96ls9w] {
    font-size: 1.4rem;
    line-height: 1;
}
.ui-date-picker-navigation button:hover[b-r6qt96ls9w],
.ui-date-picker-footer button:hover[b-r6qt96ls9w] {
    background: var(--bs-secondary-bg);
}
.ui-date-picker-jump[b-r6qt96ls9w] {
    display: flex;
    gap: 0.45rem;
    margin-bottom: 0.7rem;
}
.ui-date-picker-jump[b-r6qt96ls9w]  .ui-field {
    min-width: 0;
    flex: 1;
    margin: 0;
}
.ui-date-picker-jump[b-r6qt96ls9w]  .ui-date-picker-year {
    flex: 0 0 6rem;
}
.ui-date-picker-jump[b-r6qt96ls9w]  .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.ui-date-picker-jump[b-r6qt96ls9w]  .ui-select {
    width: 100%;
}
.ui-date-picker-grid[b-r6qt96ls9w] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.15rem;
}
/* Rows and gridcells carry the grid semantics only; the days stay items of the seven-column layout. */
.ui-date-picker-row[b-r6qt96ls9w],
.ui-date-picker-cell[b-r6qt96ls9w] {
    display: contents;
}
.ui-date-picker-weekday[b-r6qt96ls9w] {
    text-align: center;
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--bs-secondary-color);
    padding: 0.35rem 0;
}
.ui-date-picker-day[b-r6qt96ls9w] {
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    color: var(--bs-body-color);
    aspect-ratio: 1;
    font-size: 0.82rem;
    font-variant-numeric: tabular-nums;
    transition: var(--sp-motion-transition-control);
}
.ui-date-picker-day:hover:not(:disabled)[b-r6qt96ls9w] {
    background: var(--bs-tertiary-bg);
    transform: scale(1.08);
}
.ui-date-picker-day.is-outside[b-r6qt96ls9w] {
    color: var(--bs-secondary-color);
    opacity: 0.6;
}
.ui-date-picker-day.is-today[b-r6qt96ls9w] {
    outline: 1px solid var(--bs-primary);
    outline-offset: -2px;
    font-weight: 700;
}
.ui-date-picker-day.is-selected[b-r6qt96ls9w],
.ui-date-picker-day.is-selected:hover[b-r6qt96ls9w] {
    background: var(--bs-primary);
    color: white;
    font-weight: 700;
}
.ui-date-picker-day:disabled[b-r6qt96ls9w] {
    opacity: 0.26;
    cursor: not-allowed;
}
.ui-date-picker-day:focus-visible[b-r6qt96ls9w],
.ui-date-picker-navigation button:focus-visible[b-r6qt96ls9w],
.ui-date-picker-footer button:focus-visible[b-r6qt96ls9w] {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}
.ui-date-picker-time[b-r6qt96ls9w] {
    padding: 0.65rem 0.2rem 0.1rem;
}
.ui-date-picker-footer .ui-date-picker-apply[b-r6qt96ls9w] {
    background: var(--bs-primary);
    color: white;
    margin-left: auto;
}
.ui-date-picker-footer button:disabled[b-r6qt96ls9w] {
    opacity: 0.4;
    cursor: not-allowed;
}
.ui-date-picker-footer[b-r6qt96ls9w] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.65rem;
    padding: 0.65rem 0.2rem 0.05rem;
    border-top: 1px solid var(--bs-border-color);
}
.ui-date-picker-footer button[b-r6qt96ls9w] {
    padding: 0 0.7rem;
    font-size: 0.78rem;
}
.ui-date-picker-footer span[b-r6qt96ls9w] {
    color: var(--bs-secondary-color);
    font-size: 0.7rem;
    text-align: right;
}
/* The input sits inside the picker control, out of reach of the shared
   ".ui-field > .form-control" touch rule, so it takes the touch height and the
   16px no-zoom text itself; the clear button gets a 44px tap box. */
@media (pointer: coarse), (max-width: 700px) {
    .ui-date-picker > .ui-date-picker-control > input.form-control[readonly][type="text"][role="combobox"][b-r6qt96ls9w] {
        min-height: var(--sp-control-height-touch);
        font-size: 16px;
    }
    .ui-date-picker-clear[b-r6qt96ls9w] {
        right: 0;
        width: 2.75rem;
        height: 2.75rem;
    }
    .ui-date-picker-control:has(.ui-date-picker-clear) .ui-date-picker-icon[b-r6qt96ls9w] {
        right: 2.85rem;
    }
}
@media (pointer: coarse) {
    .ui-date-picker-navigation button[b-r6qt96ls9w],
    .ui-date-picker-footer button[b-r6qt96ls9w] {
        min-width: 2.75rem;
        height: 2.75rem;
    }
    .ui-date-picker-day[b-r6qt96ls9w] {
        min-height: 2.5rem;
    }
}
/* Phones, and short touch screens such as a phone in landscape, get a
   full-screen sheet: heading and Today/Apply footer stay pinned and only the
   calendar body scrolls. The browser module skips popover placement under the
   same conditions. */
@media (max-width: 600px), (max-height: 500px) and (pointer: coarse) {
    .ui-date-picker-popover[b-r6qt96ls9w] {
        inset: 0 !important;
        width: 100vw;
        height: 100dvh;
        max-height: 100dvh !important;
        border: 0;
        border-radius: 0;
        padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right))
            max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
        box-shadow: none;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    .ui-date-picker-body[b-r6qt96ls9w] {
        flex: 1 1 auto;
        width: 100%;
        /* A landscape sheet keeps the calendar at phone width instead of stretching the square day cells. */
        max-width: 26rem;
        min-height: 0;
        margin-inline: auto;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .ui-date-picker-heading[b-r6qt96ls9w],
    .ui-date-picker-footer[b-r6qt96ls9w] {
        flex: none;
    }
    .ui-date-picker-heading[b-r6qt96ls9w] {
        padding-block: 0.5rem 1rem;
    }
    .ui-date-picker-heading strong[b-r6qt96ls9w] {
        font-size: 1.35rem;
    }
    .ui-date-picker-dismiss[b-r6qt96ls9w],
    .ui-date-picker-navigation button[b-r6qt96ls9w] {
        width: 2.75rem;
        height: 2.75rem;
    }
    .ui-date-picker-jump[b-r6qt96ls9w] {
        margin-bottom: 1rem;
    }
    .ui-date-picker-grid[b-r6qt96ls9w] {
        gap: 0.25rem;
    }
    .ui-date-picker-day[b-r6qt96ls9w] {
        min-height: 2.75rem;
        font-size: 0.95rem;
    }
    .ui-date-picker-time[b-r6qt96ls9w] {
        margin-top: 0.7rem;
    }
    .ui-date-picker-footer[b-r6qt96ls9w] {
        margin-top: 0;
        padding-top: 1rem;
    }
    .ui-date-picker-footer button[b-r6qt96ls9w] {
        min-height: 2.75rem;
    }
}
@media (prefers-reduced-motion: reduce) {
    .ui-date-picker-day:hover:not(:disabled)[b-r6qt96ls9w] {
        transform: none;
    }
}
/* /Components/Common/Primitives/Fields/UiField.razor.rz.scp.css */
.ui-field[b-kps3gohgfj] {
    display: grid;
    gap: 0.35rem;
    margin-bottom: var(--sp-space-4);
}

.ui-field:last-child[b-kps3gohgfj] {
    margin-bottom: 0;
}

.ui-field-label-help[b-kps3gohgfj] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.ui-field-label-help .form-label[b-kps3gohgfj] {
    margin: 0;
}

.ui-field-help-button[b-kps3gohgfj] {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: 1px solid var(--sp-color-border-strong);
    border-radius: 50%;
    background: var(--sp-color-surface);
    color: var(--sp-color-brand-strong);
    font: inherit;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: help;
    /* The 20px badge overhangs the label line instead of heightening it, so a
       field with a help button keeps its control level with its neighbours. */
    position: relative;
    margin-block: -0.25rem;
}

/* Phones and touch screens get the 44px target without growing the badge. */
@media (max-width: 767.98px), (pointer: coarse) {
    .ui-field-help-button[b-kps3gohgfj]::before {
        content: "";
        position: absolute;
        inset: -0.75rem;
    }
}

.ui-field-help-button:focus-visible[b-kps3gohgfj] {
    outline: 2px solid var(--sp-color-brand);
    outline-offset: 2px;
}
/* /Components/Common/Primitives/Fields/UiFileUpload.razor.rz.scp.css */
.ui-file-upload[b-2o1t89mnrl] {
    display: grid;
    gap: 0.5rem;
    min-width: 0;
}

.ui-file-upload__label[b-2o1t89mnrl] {
    color: var(--sp-text, var(--bs-body-color));
    font-size: 0.875rem;
    font-weight: 650;
}

.ui-file-upload__dropzone[b-2o1t89mnrl] {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 0.3rem;
    min-height: 7.5rem;
    padding: 1.15rem;
    overflow: hidden;
    color: var(--sp-text-muted, var(--bs-secondary-color));
    text-align: center;
    background: var(--sp-surface-subtle, var(--bs-tertiary-bg));
    border: 1px dashed var(--sp-border-strong, var(--bs-border-color));
    border-radius: var(--bs-border-radius-sm);
    transition: var(--sp-motion-transition-control);
}

.ui-file-upload__dropzone:hover[b-2o1t89mnrl],
.ui-file-upload__dropzone:focus-within[b-2o1t89mnrl],
.ui-file-upload.is-dragging .ui-file-upload__dropzone[b-2o1t89mnrl] {
    color: var(--sp-text, var(--bs-body-color));
    background: color-mix(in srgb, var(--bs-primary) 6%, var(--sp-surface, var(--bs-body-bg)));
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--bs-primary) 15%, transparent);
}

.ui-file-upload__icon[b-2o1t89mnrl] {
    width: 1.75rem;
    height: 1.75rem;
    color: var(--bs-primary);
}

.ui-file-upload__icon svg[b-2o1t89mnrl] {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.75;
}

.ui-file-upload__prompt[b-2o1t89mnrl] {
    color: var(--sp-text, var(--bs-body-color));
    font-weight: 650;
}

.ui-file-upload__prompt-touch[b-2o1t89mnrl] {
    display: none;
}

/* Drop and paste are pointer affordances; a touch-only device is told to tap instead. */
@media (hover: none) {
    .ui-file-upload__prompt-pointer[b-2o1t89mnrl] {
        display: none;
    }

    .ui-file-upload__prompt-touch[b-2o1t89mnrl] {
        display: inline;
    }
}

.ui-file-upload__browse[b-2o1t89mnrl] {
    color: var(--bs-link-color);
    font-size: 0.82rem;
    font-weight: 600;
}

.ui-file-upload__hint[b-2o1t89mnrl],
.ui-file-upload__file-size[b-2o1t89mnrl] {
    color: var(--sp-text-muted, var(--bs-secondary-color));
    font-size: 0.78rem;
}

.ui-file-upload__error[b-2o1t89mnrl] {
    color: var(--bs-danger-text-emphasis);
    font-size: 0.82rem;
    font-weight: 600;
}

.ui-file-upload__selection[b-2o1t89mnrl] {
    overflow: hidden;
    border: 1px solid var(--sp-border, var(--bs-border-color));
    border-radius: var(--bs-border-radius-sm);
}

.ui-file-upload__selection-summary[b-2o1t89mnrl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.45rem 0.65rem;
    color: var(--sp-text-muted, var(--bs-secondary-color));
    font-size: 0.78rem;
    background: var(--sp-surface-subtle, var(--bs-tertiary-bg));
}

.ui-file-upload__clear[b-2o1t89mnrl],
.ui-file-upload__remove[b-2o1t89mnrl] {
    padding: 0;
    color: var(--sp-color-brand-text);
    background: transparent;
    border: 0;
    font: inherit;
}

.ui-file-upload__clear:hover[b-2o1t89mnrl],
.ui-file-upload__remove:hover[b-2o1t89mnrl] {
    text-decoration: underline;
}

.ui-file-upload__files[b-2o1t89mnrl] {
    display: grid;
    max-height: 11rem;
    padding: 0;
    margin: 0;
    overflow: auto;
    list-style: none;
}

.ui-file-upload__files li[b-2o1t89mnrl] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto auto auto auto;
    align-items: center;
    gap: 0.5rem;
    min-height: 2.25rem;
    padding: 0.35rem 0.65rem;
    background: var(--sp-surface, var(--bs-body-bg));
}

.ui-file-upload__files li + li[b-2o1t89mnrl] {
    border-top: 1px solid var(--sp-border, var(--bs-border-color));
}

.ui-file-upload__file-icon[b-2o1t89mnrl] {
    color: var(--bs-primary);
}

.ui-file-upload__preview[b-2o1t89mnrl] {
    width: 2rem;
    height: 2rem;
    object-fit: cover;
    border: 1px solid var(--sp-border, var(--bs-border-color));
    border-radius: 0.25rem;
}

.ui-file-upload__preview-link[b-2o1t89mnrl] {
    font-size: 0.78rem;
    font-weight: 600;
}

.ui-file-upload__reorder[b-2o1t89mnrl] {
    display: inline-flex;
    gap: 0.15rem;
}

.ui-file-upload__reorder button[b-2o1t89mnrl] {
    width: 1.45rem;
    height: 1.45rem;
    padding: 0;
    color: var(--sp-text-muted, var(--bs-secondary-color));
    background: transparent;
    border: 1px solid var(--sp-border, var(--bs-border-color));
    border-radius: 0.2rem;
    line-height: 1;
}

.ui-file-upload__reorder button:hover:not(:disabled)[b-2o1t89mnrl] {
    color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.ui-file-upload__reorder button:disabled[b-2o1t89mnrl] {
    opacity: 0.35;
}

.ui-file-upload__file-name[b-2o1t89mnrl] {
    overflow: hidden;
    font-size: 0.84rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ui-file-upload__remove[b-2o1t89mnrl] {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--sp-text-muted, var(--bs-secondary-color));
    font-size: 1.15rem;
    line-height: 1;
}

.ui-file-upload__transfer-action[b-2o1t89mnrl] {
    padding: 0.15rem 0.4rem;
    color: var(--bs-primary);
    background: transparent;
    border: 1px solid currentColor;
    border-radius: 0.25rem;
    font-size: 0.74rem;
    font-weight: 650;
}

.ui-file-upload__progress-row[b-2o1t89mnrl] {
    grid-column: 2 / -1;
    display: grid;
    grid-template-columns: minmax(5rem, 1fr) auto;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    color: var(--sp-text-muted, var(--bs-secondary-color));
    font-size: 0.72rem;
}

.ui-file-upload__progress-row .progress[b-2o1t89mnrl] {
    height: 0.3rem;
}

.ui-file-upload--compact .ui-file-upload__dropzone[b-2o1t89mnrl],
.ui-file-upload--gallery .ui-file-upload__dropzone[b-2o1t89mnrl] {
    grid-template-columns: auto 1fr auto;
    justify-items: start;
    min-height: 3.15rem;
    padding: 0.65rem 0.8rem;
    text-align: left;
}

.ui-file-upload--compact .ui-file-upload__icon[b-2o1t89mnrl],
.ui-file-upload--gallery .ui-file-upload__icon[b-2o1t89mnrl] {
    width: 1.3rem;
    height: 1.3rem;
}

.ui-file-upload.is-disabled[b-2o1t89mnrl] {
    opacity: 0.65;
}

.ui-file-upload.is-disabled .btn[b-2o1t89mnrl] {
    cursor: not-allowed;
}

@media (max-width: 575.98px) {
    .ui-file-upload--compact .ui-file-upload__dropzone[b-2o1t89mnrl],
    .ui-file-upload--gallery .ui-file-upload__dropzone[b-2o1t89mnrl] {
        grid-template-columns: auto 1fr;
    }

    .ui-file-upload--compact .ui-file-upload__browse[b-2o1t89mnrl],
    .ui-file-upload--gallery .ui-file-upload__browse[b-2o1t89mnrl] {
        grid-column: 2;
    }

    .ui-file-upload__files li[b-2o1t89mnrl] {
        grid-template-columns: auto minmax(0, 1fr) auto auto;
    }

    .ui-file-upload__file-size[b-2o1t89mnrl],
    .ui-file-upload__reorder[b-2o1t89mnrl] {
        display: none;
    }
}

.ui-file-upload--button[b-2o1t89mnrl] {
    position: relative;
}

.ui-file-upload--button:focus-within > label[b-2o1t89mnrl] {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

/* Clear and remove keep the shared 44px touch target on phones and coarse pointers. */
@media (max-width: 700px), (pointer: coarse) {
    .ui-file-upload__clear[b-2o1t89mnrl],
    .ui-file-upload__remove[b-2o1t89mnrl] {
        min-width: var(--sp-control-height-touch);
        min-height: var(--sp-control-height-touch);
    }

    .ui-file-upload__preview-link[b-2o1t89mnrl] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: var(--sp-control-height-touch);
        min-height: var(--sp-control-height-touch);
    }
}

/* A button-mode trigger icon sits before its text with the shared button gap. */
.ui-file-upload__trigger-icon[b-2o1t89mnrl] {
    display: inline-flex;
    margin-inline-end: 0.4rem;
    vertical-align: -0.2em;
}
/* /Components/Common/Primitives/Fields/UiTimeField.razor.rz.scp.css */
.ui-time-picker[b-9zytipf97q] {
    position: relative;
    min-width: 0;
}
.ui-time-picker-trigger[b-9zytipf97q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    text-align: start;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
}
.ui-time-picker-trigger span[b-9zytipf97q] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.ui-time-picker-trigger svg[b-9zytipf97q] {
    width: 1.15rem;
    height: 1.15rem;
    flex: none;
    color: var(--bs-secondary-color);
}
.ui-time-picker-trigger[aria-disabled="true"][b-9zytipf97q] {
    cursor: default;
}
.ui-time-picker-popover[b-9zytipf97q] {
    position: fixed;
    z-index: 1100;
    width: min(20rem, calc(100vw - 1.5rem));
    max-height: calc(100dvh - 1.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.8rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--sp-control-radius);
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: var(--bs-box-shadow);
}
.ui-time-picker-actions[b-9zytipf97q] {
    display: flex;
    justify-content: flex-end;
    gap: 0.4rem;
    padding-block-start: 0.7rem;
    margin-block-start: 0.7rem;
    border-top: 1px solid var(--bs-border-color);
}
@media (pointer: coarse) {
    .ui-time-picker-trigger[b-9zytipf97q] {
        min-height: 2.75rem;
    }
    .ui-time-picker-actions[b-9zytipf97q]  .btn {
        min-height: 2.75rem;
    }
}
/* /Components/Common/Primitives/Fields/UiTimeSelector.razor.rz.scp.css */
.ui-time-selector[b-kphnqgufny] {
    min-width: 0;
}
.ui-time-selector-preview[b-kphnqgufny] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-block-end: 0.6rem;
    font-size: 1.45rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.ui-time-selector-preview span[b-kphnqgufny] {
    color: var(--bs-secondary-color);
    font-size: 0.75rem;
    font-weight: 400;
}
.ui-time-selector-columns[b-kphnqgufny] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}
fieldset[b-kphnqgufny] {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
legend[b-kphnqgufny] {
    float: none;
    margin-block-end: 0.3rem;
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
    font-weight: 600;
}
.ui-time-selector-options[b-kphnqgufny] {
    max-height: 10rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 0.2rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--sp-control-radius);
    background: var(--bs-tertiary-bg);
}
.ui-time-selector-option[b-kphnqgufny] {
    display: block;
    position: relative;
    cursor: pointer;
}
.ui-time-selector-option input[b-kphnqgufny] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.ui-time-selector-option span[b-kphnqgufny] {
    display: grid;
    place-items: center;
    min-height: 2.75rem;
    border-radius: var(--sp-control-radius);
    color: var(--bs-body-color);
    font-variant-numeric: tabular-nums;
    transition: var(--sp-motion-transition-control);
}
.ui-time-selector-option:hover span[b-kphnqgufny] {
    background: var(--bs-secondary-bg);
}
.ui-time-selector-option input:checked + span[b-kphnqgufny] {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    font-weight: 700;
    box-shadow: inset 0 0 0 1px var(--bs-primary);
}
.ui-time-selector-option input:focus-visible + span[b-kphnqgufny] {
    outline: 2px solid var(--bs-primary);
    outline-offset: -2px;
}
fieldset:disabled[b-kphnqgufny] {
    opacity: 0.6;
}
fieldset:disabled .ui-time-selector-option[b-kphnqgufny] {
    cursor: default;
}
/* /Components/Features/Assignments/AssignmentResourceDetailModal.razor.rz.scp.css */
/* Identity, window actions and Close share one header grid. The layout
   follows the dialog's own width (a container query), not the viewport, so
   the narrow window and Pop to screen both get the arrangement that fits:
   one row when there is room, otherwise identity + Close above a full-width
   action row. DOM order stays identity, actions, Close for keyboard users. */
.assignment-resource-detail-header-inner[b-zr6ox5jh8x] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas: "heading toolbar close";
    align-items: center;
    width: 100%;
    gap: 0.5rem 0.75rem;
}

.assignment-resource-detail-heading[b-zr6ox5jh8x] {
    grid-area: heading;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    min-width: 0;
    gap: 0.25rem 0.5rem;
}

.contractor-window-toolbar[b-zr6ox5jh8x] {
    grid-area: toolbar;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
    min-width: 0;
}

.contractor-window-origin[b-zr6ox5jh8x] {
    flex-basis: 100%;
    color: var(--resource-muted);
    font-size: 0.75rem;
}

@container contractor-window-header (max-width: 52rem) {
    .assignment-resource-detail-header-inner[b-zr6ox5jh8x] {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: "heading close" "toolbar toolbar";
    }
    .contractor-window-toolbar[b-zr6ox5jh8x] {
        justify-content: flex-start;
    }
}

.assignment-resource-detail-heading h2[b-zr6ox5jh8x],
.assignment-resource-availability-heading h3[b-zr6ox5jh8x] {
    margin: 0;
    color: var(--resource-text);
}

.assignment-resource-detail-heading h2[b-zr6ox5jh8x] {
    min-width: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.assignment-resource-detail-close[b-zr6ox5jh8x] {
    grid-area: close;
    align-self: start;
    margin: 0.35rem 0 0;
}

.assignment-resource-detail-eyebrow[b-zr6ox5jh8x],
.assignment-resource-summary-label[b-zr6ox5jh8x] {
    color: var(--resource-muted);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.assignment-resource-summary-grid[b-zr6ox5jh8x] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.assignment-resource-summary-card[b-zr6ox5jh8x] {
    display: grid;
    align-content: start;
    gap: 0.18rem;
    min-width: 0;
    padding: 0.75rem 0.8rem;
    border: 1px solid var(--resource-border);
    border-radius: 0.7rem;
    background: var(--resource-surface);
}

.assignment-resource-summary-card strong[b-zr6ox5jh8x],
.assignment-resource-summary-card span:not(.assignment-resource-summary-label)[b-zr6ox5jh8x] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.assignment-resource-summary-card strong[b-zr6ox5jh8x] {
    color: var(--resource-text);
    font-size: 0.87rem;
}
.assignment-resource-summary-card span:not(.assignment-resource-summary-label)[b-zr6ox5jh8x] {
    color: var(--resource-muted);
    font-size: 0.76rem;
}

.assignment-resource-editor-section[b-zr6ox5jh8x],
.assignment-resource-availability-section[b-zr6ox5jh8x] {
    overflow: hidden;
    border: 1px solid var(--resource-border);
    border-radius: 0.75rem;
    background: var(--resource-surface);
}

/* BodyClass is applied inside UiModal, so spacing between the slotted sections
   belongs on the section elements themselves. */
.assignment-resource-editor-section[b-zr6ox5jh8x],
.assignment-resource-availability-section[b-zr6ox5jh8x] {
    margin-top: 0.55rem;
}

.assignment-resource-section-toggle[b-zr6ox5jh8x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 1rem;
    padding: 0.72rem 0.85rem;
    border: 0;
    background: transparent;
    color: var(--resource-text);
    text-align: left;
}

.assignment-resource-section-toggle:hover[b-zr6ox5jh8x] {
    background: color-mix(in srgb, var(--resource-primary) 7%, transparent);
}
.assignment-resource-section-toggle:focus-visible[b-zr6ox5jh8x] {
    outline: 3px solid color-mix(in srgb, var(--resource-primary) 32%, transparent);
    outline-offset: -3px;
}
.assignment-resource-section-toggle > span:first-child[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.12rem;
}
.assignment-resource-section-toggle strong[b-zr6ox5jh8x] {
    font-size: 0.9rem;
}
.assignment-resource-section-toggle small[b-zr6ox5jh8x] {
    color: var(--resource-muted);
    font-size: 0.74rem;
}

/* Drawn chevron rather than a text glyph, so it never depends on font
   fallback; it points right when collapsed and down when expanded. */
.assignment-resource-section-symbol[b-zr6ox5jh8x] {
    display: grid;
    place-items: center;
    flex: 0 0 1rem;
    order: -1;
    width: 1rem;
    height: 1rem;
    color: var(--resource-muted);
}
.assignment-resource-section-symbol[b-zr6ox5jh8x]::before {
    content: "";
    width: 0.42rem;
    height: 0.42rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateX(-0.08rem) rotate(-45deg);
    transition: transform var(--sp-motion-duration-fast) var(--sp-motion-ease-standard);
}
.assignment-resource-section-toggle[aria-expanded="true"] > .assignment-resource-section-symbol[b-zr6ox5jh8x] {
    color: var(--resource-primary);
}
.assignment-resource-section-toggle[aria-expanded="true"] > .assignment-resource-section-symbol[b-zr6ox5jh8x]::before {
    transform: translateY(-0.08rem) rotate(45deg);
}

.assignment-resource-editor-content[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.62rem;
    padding: 0.68rem 0.78rem 0.72rem;
    border-top: 1px solid var(--resource-border);
}

.assignment-resource-form-grid[b-zr6ox5jh8x] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.48rem 0.62rem;
}

.assignment-resource-form-wide[b-zr6ox5jh8x] {
    grid-column: 1 / -1;
}

.assignment-resource-roster-editor[b-zr6ox5jh8x] {
    gap: 0.75rem;
}

.assignment-resource-record[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.65rem;
    padding: 0.7rem;
    border: 1px solid var(--resource-border);
    border-radius: 0.65rem;
    background: color-mix(in srgb, var(--resource-surface) 94%, var(--resource-primary) 6%);
}

.assignment-resource-record.is-focused[b-zr6ox5jh8x] {
    border-color: var(--resource-primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--resource-primary) 22%, transparent);
}

.assignment-resource-record.is-inactive[b-zr6ox5jh8x] {
    opacity: 0.78;
}
.assignment-resource-record.is-new[b-zr6ox5jh8x] {
    border-style: dashed;
}
.assignment-resource-record-form[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px solid var(--resource-border);
}
.assignment-resource-record-heading[b-zr6ox5jh8x],
.assignment-resource-record-actions[b-zr6ox5jh8x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.assignment-resource-record-heading > div:first-child[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.1rem;
}
.assignment-resource-record-heading span[b-zr6ox5jh8x] {
    color: var(--resource-muted);
    font-size: 0.74rem;
}

.assignment-resource-editor-content[b-zr6ox5jh8x]  .ui-field {
    margin-bottom: 0;
}

.assignment-resource-editor-content[b-zr6ox5jh8x]  .form-label {
    margin-bottom: 0.18rem;
    font-size: 0.68rem;
    line-height: 1.15;
}

.assignment-resource-editor-content[b-zr6ox5jh8x]  .form-control,
.assignment-resource-editor-content[b-zr6ox5jh8x]  .form-select {
    min-height: 32px;
    height: 32px;
    padding: 0.27rem 0.52rem;
    font-size: 0.78rem;
    line-height: 1.2;
}

.assignment-resource-editor-actions[b-zr6ox5jh8x],
.assignment-resource-inline-actions[b-zr6ox5jh8x],
.assignment-resource-footer-links[b-zr6ox5jh8x] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.assignment-resource-editor-actions[b-zr6ox5jh8x] {
    justify-content: flex-end;
}

.assignment-resource-operators[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.48rem;
    padding-top: 0.05rem;
}

.assignment-resource-operators-heading[b-zr6ox5jh8x],
.assignment-resource-availability-heading[b-zr6ox5jh8x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.assignment-resource-operators-heading > div[b-zr6ox5jh8x] {
    display: grid;
}
.assignment-resource-operators-heading span[b-zr6ox5jh8x],
.assignment-resource-empty-copy[b-zr6ox5jh8x] {
    color: var(--resource-muted);
    font-size: 0.75rem;
}
.assignment-resource-empty-copy[b-zr6ox5jh8x] {
    margin: 0;
}

.assignment-resource-operator-row[b-zr6ox5jh8x] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr) auto;
    align-items: end;
    gap: 0.48rem;
}

.assignment-resource-operator-row[b-zr6ox5jh8x]  .btn {
    align-self: end;
    min-height: 32px;
    height: 32px;
}

.assignment-resource-availability-section[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.75rem;
    padding: 0.85rem;
}

.assignment-resource-availability-heading h3[b-zr6ox5jh8x] {
    font-size: 0.98rem;
}
.assignment-resource-status[b-zr6ox5jh8x] {
    padding: 0.3rem 0.58rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 800;
}
.assignment-resource-status.is-available[b-zr6ox5jh8x] {
    background: #dcfce7;
    color: #166534;
}
.assignment-resource-status.is-partial[b-zr6ox5jh8x] {
    background: #fef3c7;
    color: #92400e;
}
.assignment-resource-status.is-unavailable[b-zr6ox5jh8x] {
    background: #fee2e2;
    color: #991b1b;
}
.assignment-resource-status.is-unanswered[b-zr6ox5jh8x] {
    background: #e2e8f0;
    color: #334155;
}

.assignment-resource-availability-grid[b-zr6ox5jh8x] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem 0.85rem;
    margin: 0;
}

.assignment-resource-availability-grid > div[b-zr6ox5jh8x] {
    min-width: 0;
    padding: 0.55rem 0.65rem;
    border-radius: 0.55rem;
    background: color-mix(in srgb, var(--resource-text) 4%, transparent);
}
.assignment-resource-availability-grid dt[b-zr6ox5jh8x] {
    color: var(--resource-muted);
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.assignment-resource-availability-grid dd[b-zr6ox5jh8x] {
    margin: 0.15rem 0 0;
    color: var(--resource-text);
    font-size: 0.8rem;
    overflow-wrap: anywhere;
}
.assignment-resource-roster[b-zr6ox5jh8x] {
    padding-top: 0.75rem;
    border-top: 1px solid var(--resource-border);
}
.assignment-resource-footer-links[b-zr6ox5jh8x] {
    padding-top: 0.1rem;
}

@media (max-width: 767px) {
    .assignment-resource-summary-grid[b-zr6ox5jh8x],
    .assignment-resource-form-grid[b-zr6ox5jh8x],
    .assignment-resource-availability-grid[b-zr6ox5jh8x] {
        grid-template-columns: 1fr;
    }
    .assignment-resource-operator-row[b-zr6ox5jh8x] {
        grid-template-columns: 1fr;
    }
    .assignment-resource-operator-row > :last-child[b-zr6ox5jh8x] {
        justify-self: start;
    }
    .assignment-resource-record-heading[b-zr6ox5jh8x] {
        align-items: stretch;
        flex-direction: column;
    }
}

:where(html[data-theme="dark"]) .assignment-resource-status.is-available[b-zr6ox5jh8x] {
    background: rgba(34, 197, 94, 0.18);
    color: #86efac;
}
:where(html[data-theme="dark"]) .assignment-resource-status.is-partial[b-zr6ox5jh8x] {
    background: rgba(245, 158, 11, 0.18);
    color: #fcd34d;
}
:where(html[data-theme="dark"]) .assignment-resource-status.is-unavailable[b-zr6ox5jh8x] {
    background: rgba(239, 68, 68, 0.18);
    color: #fca5a5;
}
:where(html[data-theme="dark"]) .assignment-resource-status.is-unanswered[b-zr6ox5jh8x] {
    background: rgba(148, 163, 184, 0.18);
    color: #cbd5e1;
}

.contractor-workspace-actions[b-zr6ox5jh8x] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}
.contractor-workspace-actions.is-dirty[b-zr6ox5jh8x] {
    background: var(--bs-warning-bg-subtle);
    border-radius: 0.4rem;
    padding: 0.3rem;
}
.contractor-workspace-bottom[b-zr6ox5jh8x] {
    position: sticky;
    bottom: 0;
    padding: 0.7rem;
    background: var(--resource-surface);
    z-index: 2;
}
[b-zr6ox5jh8x] .contractor-workspace-header {
    position: sticky;
    top: 0;
    background: var(--resource-surface);
    z-index: 4;
    container: contractor-window-header / inline-size;
}

.contractor-workspace-sections.is-fullscreen > .contractor-workspace-contact[b-zr6ox5jh8x] {
    grid-area: contact;
}
.contractor-workspace-sections.is-fullscreen > .contractor-workspace-equipment[b-zr6ox5jh8x] {
    grid-area: equipment;
}
.contractor-workspace-sections.is-fullscreen > .contractor-workspace-text[b-zr6ox5jh8x] {
    grid-area: text;
}
.contractor-workspace-sections.is-fullscreen > .contractor-workspace-compliance[b-zr6ox5jh8x] {
    grid-area: compliance;
}
.contractor-workspace-sections.is-fullscreen > .contractor-workspace-pay[b-zr6ox5jh8x] {
    grid-area: pay;
}

.contractor-window-host[b-zr6ox5jh8x]  .contractor-workspace-fullscreen {
    padding: 0;
    place-items: stretch;
}
.contractor-window-host[b-zr6ox5jh8x]  .contractor-workspace-fullscreen > .modal-dialog {
    width: 100vw;
    max-width: none;
    height: 100dvh;
    min-height: 0;
    margin: 0;
}
.contractor-window-host[b-zr6ox5jh8x]  .contractor-workspace-fullscreen .assignment-resource-detail-modal {
    height: 100%;
    max-height: 100%;
    border-radius: 0;
    display: flex;
    flex-direction: column;
}
.contractor-window-host[b-zr6ox5jh8x]  .assignment-resource-detail-body {
    display: block;
    min-height: 0;
    overflow-y: auto;
}
.contractor-window-host[b-zr6ox5jh8x]  .modal-footer {
    flex-shrink: 0;
    background: var(--resource-surface);
}
/* Like the shared UiModal sheet, a phone in landscape gets the full-screen window too. */
@media (max-width: 575.98px), (max-height: 500px) and (pointer: coarse) {
    .contractor-window-host[b-zr6ox5jh8x]  .ui-modal-backdrop {
        padding: 0;
        place-items: stretch;
    }
    .contractor-window-host[b-zr6ox5jh8x]  .modal-dialog {
        height: 100dvh;
        max-width: none;
        min-height: 0;
    }
    .contractor-window-host[b-zr6ox5jh8x]  .assignment-resource-detail-modal {
        height: 100%;
        max-height: 100%;
        border-radius: 0;
    }
}

.contractor-workspace-section-heading[b-zr6ox5jh8x] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-right: 0.75rem;
}
.contractor-workspace-section-heading > .assignment-resource-section-toggle[b-zr6ox5jh8x] {
    min-width: 0;
    flex: 1;
}

.contractor-workspace-sections[b-zr6ox5jh8x] {
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
}
/* The shared window owns its palette on every staff route, including routes
   that do not load assignment feature styles. */
.contractor-window-host[b-zr6ox5jh8x] {
    --resource-border: var(--bs-border-color);
    /* The local tinted surface needs slightly stronger secondary text in both themes. */
    --resource-muted: color-mix(in srgb, var(--bs-secondary-color) 85%, var(--bs-body-color));
    --resource-primary: var(--bs-primary);
    --resource-surface: var(--bs-body-bg);
    --resource-text: var(--bs-body-color);
}
.contractor-window-host[b-zr6ox5jh8x]  .contractor-workspace-window > .modal-dialog {
    width: min(860px, calc(100vw - 32px));
    max-width: 860px;
}
.contractor-window-host[b-zr6ox5jh8x]  .modal-header,
.contractor-window-host[b-zr6ox5jh8x]  .modal-footer {
    padding: 0.55rem 0.75rem;
}
.contractor-window-host[b-zr6ox5jh8x]  .assignment-resource-detail-body {
    padding: 0.5rem 0.75rem;
    background: var(--resource-surface);
}
.contractor-window-code[b-zr6ox5jh8x] {
    font-size: 0.7rem;
    font-weight: 800;
    color: var(--bs-link-color);
    background: var(--bs-primary-bg-subtle);
    border-radius: 0.25rem;
    padding: 0.15rem 0.35rem;
}
.assignment-resource-editor-section[b-zr6ox5jh8x] {
    margin-top: 0.5rem;
    border-radius: 0.5625rem;
}
/* Section headers read left to right like the reference window: chevron,
   blue uppercase title, then the muted one-line summary. */
.assignment-resource-section-toggle[b-zr6ox5jh8x] {
    justify-content: flex-start;
    min-height: 2.5rem;
    padding: 0.45rem 0.75rem;
    gap: 0.5rem;
}
.assignment-resource-section-toggle > span:first-child[b-zr6ox5jh8x] {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.15rem 0.6rem;
    min-width: 0;
}
.assignment-resource-section-toggle strong[b-zr6ox5jh8x] {
    font-size: 0.75rem;
    color: var(--bs-link-color);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}
.assignment-resource-section-toggle small[b-zr6ox5jh8x] {
    min-width: 0;
    font-size: 0.75rem;
    overflow-wrap: anywhere;
}
.assignment-resource-editor-content[b-zr6ox5jh8x] {
    padding: 0.35rem 0.6rem 0.5rem;
    gap: 0.375rem;
}
.contractor-contact-rows[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.25rem;
    font-size: 0.78rem;
}
.contractor-contact-rows > div[b-zr6ox5jh8x] {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr);
    align-items: center;
    gap: 0.5rem;
    min-height: 1.7rem;
}
.contractor-contact-rows > div > span:first-child[b-zr6ox5jh8x] {
    color: var(--resource-muted);
    font-size: 0.72rem;
}
.contractor-inline-contact[b-zr6ox5jh8x] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}
.contractor-inline-contact > *[b-zr6ox5jh8x] {
    min-width: 0;
    overflow-wrap: anywhere;
}
.contractor-inline-contact[b-zr6ox5jh8x]  .ui-field {
    flex: 1 1 9rem;
}
.assignment-resource-record[b-zr6ox5jh8x] {
    padding: 0.4rem 0;
    border: 0;
    border-top: 1px dashed var(--resource-border);
    border-radius: 0;
    background: transparent;
    gap: 0.2rem;
}
.assignment-resource-record.is-focused[b-zr6ox5jh8x] {
    box-shadow: none;
    border-color: var(--resource-primary);
}
.contractor-unit-identity[b-zr6ox5jh8x] {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem !important;
    font-size: 0.78rem;
}
.contractor-unit-summary[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.1rem;
    color: var(--resource-muted);
    font-size: 0.7rem;
    overflow-wrap: anywhere;
}
.contractor-pay-content[b-zr6ox5jh8x],
.contractor-workspace-text > div[b-zr6ox5jh8x] {
    padding: 0.35rem 0.6rem 0.5rem;
}
.contractor-workspace-text[b-zr6ox5jh8x]  .form-check {
    display: inline-flex;
    margin-right: 0.5rem;
    font-size: 0.75rem;
}
.contractor-workspace-text[b-zr6ox5jh8x]  .form-check-label {
    min-height: 0;
}
.contractor-workspace-sections.is-fullscreen[b-zr6ox5jh8x] {
    display: grid;
    align-items: start;
    grid-template-columns: 1fr 1.25fr 1fr;
    grid-template-areas: "contact equipment compliance" "text equipment pay";
    grid-template-rows: auto 1fr;
    gap: 0.5rem;
}
.contractor-workspace-sections.is-fullscreen .contractor-inline-contact[b-zr6ox5jh8x] {
    display: grid;
}
.contractor-workspace-sections.is-fullscreen .assignment-resource-form-grid[b-zr6ox5jh8x] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 1100px) and (min-width: 768px) {
    .contractor-workspace-sections.is-fullscreen[b-zr6ox5jh8x] {
        grid-template-columns: 1fr 1.25fr;
        grid-template-areas: "contact equipment" "text equipment" "compliance pay";
    }
}
@media (max-width: 767.98px) {
    .contractor-workspace-sections.is-fullscreen[b-zr6ox5jh8x] {
        display: flex;
        flex-direction: column;
        gap: 0;
    }
    .contractor-workspace-sections.is-fullscreen > *[b-zr6ox5jh8x] {
        width: 100%;
    }
    .contractor-contact-rows > div[b-zr6ox5jh8x] {
        grid-template-columns: 4rem minmax(0, 1fr);
        gap: 0.35rem;
    }
    .contractor-inline-contact[b-zr6ox5jh8x] {
        display: grid;
    }
    .assignment-resource-section-toggle > span:first-child[b-zr6ox5jh8x] {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.15rem;
    }
    .assignment-resource-operator-row[b-zr6ox5jh8x] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .contractor-window-host[b-zr6ox5jh8x]  .contractor-workspace-window > .modal-dialog {
        width: 100%;
    }
}
@media (pointer: coarse) and (max-width: 767.98px) {
    .assignment-resource-section-toggle[b-zr6ox5jh8x] {
        min-height: 44px;
    }
    .assignment-resource-editor-content[b-zr6ox5jh8x]  .form-control,
    .assignment-resource-editor-content[b-zr6ox5jh8x]  .form-select {
        font-size: 1rem;
        height: auto;
        min-height: 44px;
    }
}
.assignment-resource-unit-fields[b-zr6ox5jh8x] {
    display: grid;
    grid-template-columns: 1fr 1fr 1.3fr;
    gap: 0.35rem;
}
.assignment-resource-record-form[b-zr6ox5jh8x]  .contractor-unit-advanced {
    font-size: 0.72rem;
    color: var(--resource-muted);
}
.assignment-resource-record-form[b-zr6ox5jh8x]  .contractor-unit-advanced > .ui-disclosure-toggle {
    padding: 0.25rem 0;
}
.contractor-unit-advanced .assignment-resource-form-grid[b-zr6ox5jh8x] {
    padding-top: 0.35rem;
}
@media (max-width: 767.98px) {
    .assignment-resource-unit-fields[b-zr6ox5jh8x] {
        grid-template-columns: 1fr 1fr;
    }
    .assignment-resource-unit-fields > :last-child[b-zr6ox5jh8x] {
        grid-column: 1 / -1;
    }
}
.contractor-workspace-sections.is-editing > .assignment-resource-editor-section[b-zr6ox5jh8x] {
    border-color: var(--bs-warning-border-subtle);
}
.contractor-workspace-sections.is-editing[b-zr6ox5jh8x]  :is(.form-control, .ui-select-control) {
    background: var(--bs-primary-bg-subtle);
    border-color: var(--bs-primary-border-subtle);
}
.contractor-workspace-actions[b-zr6ox5jh8x] {
    margin-left: auto;
}
.contractor-section-heading[b-zr6ox5jh8x] {
    margin: 0;
    min-width: 0;
    width: 100%;
    flex: 1;
    font-size: inherit;
}
.contractor-window-identity-edit[b-zr6ox5jh8x] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    min-width: 0;
}
.contractor-window-identity-edit[b-zr6ox5jh8x]  .ui-field {
    margin: 0;
    width: 13rem;
}
.contractor-window-identity-edit[b-zr6ox5jh8x]  .ui-field:first-child {
    width: 7rem;
}
.contractor-window-identity-edit[b-zr6ox5jh8x]  .form-control {
    min-height: 28px;
    height: 28px;
    font-size: 0.8rem;
    padding: 0.2rem 0.4rem;
}
@media (pointer: coarse) and (max-width: 767.98px) {
    .contractor-window-identity-edit[b-zr6ox5jh8x]  .form-control {
        height: auto;
        min-height: 44px;
        font-size: 1rem;
    }
}

.contractor-address-fields[b-zr6ox5jh8x] {
    display: grid;
    /* State keeps room for the enhanced select's value and arrow. */
    grid-template-columns: minmax(0, 2fr) minmax(0, 1.3fr) minmax(5.5rem, 0.6fr) minmax(0, 0.8fr);
    gap: 5px;
}
/* The text-field auto labeller skips the enhanced State select, so its own
   label is styled like the generated captions beside it. */
.contractor-address-fields[b-zr6ox5jh8x]  .form-label {
    margin: 0 0 3px;
    color: var(--sp-color-ink-muted);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.15;
}
.contractor-office-note[b-zr6ox5jh8x] {
    padding: 0 12px 10px;
    font-size: 12px;
}
.contractor-activity-history[b-zr6ox5jh8x] {
    max-height: 9rem;
    overflow-y: auto;
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
    font-size: 11px;
}
.contractor-activity-history li[b-zr6ox5jh8x] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 4px 0;
    border-bottom: 1px dashed var(--bs-border-color);
}
.contractor-activity-history time[b-zr6ox5jh8x] {
    color: var(--resource-muted);
}
.contractor-activity-history:focus-visible[b-zr6ox5jh8x] {
    outline: 2px solid var(--resource-primary);
    outline-offset: 2px;
}
.contractor-window-host[b-zr6ox5jh8x]  .contractor-resource-assignment .text-body-secondary {
    --bs-secondary-color: var(--resource-muted);
}
.contractor-window-host[b-zr6ox5jh8x]  .contractor-unit-advanced .ui-disclosure-title {
    color: var(--resource-muted);
}
/* The shared touch rule sizes the State trigger itself to 44px, which its
   border makes 46px; the whole control keeps the 44px of the inputs beside it. */
@media (max-width: 767.98px), (pointer: coarse) {
    .contractor-address-fields[b-zr6ox5jh8x]  .ui-select-trigger {
        min-height: calc(var(--sp-control-height-touch) - 2px);
    }
}
@media (max-width: 767px) {
    .contractor-address-fields[b-zr6ox5jh8x] {
        grid-template-columns: 1fr 1fr;
    }
    .contractor-address-fields[b-zr6ox5jh8x]  .ui-field:first-child {
        grid-column: 1 / -1;
    }
}

/* Sub-labels inside an equipment record read as field captions, not as
   headings competing with the section titles. */
.assignment-resource-operators > strong[b-zr6ox5jh8x],
.assignment-resource-operators-heading strong[b-zr6ox5jh8x],
.contractor-resource-assignment > strong[b-zr6ox5jh8x] {
    color: var(--resource-muted);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-transform: uppercase;
}
.contractor-resource-assignment[b-zr6ox5jh8x] {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}
.assignment-resource-operators > small[b-zr6ox5jh8x],
.contractor-resource-assignment > small[b-zr6ox5jh8x] {
    font-size: 0.78rem;
    overflow-wrap: anywhere;
}
.assignment-resource-detail-failure[b-zr6ox5jh8x] {
    display: grid;
    justify-items: start;
    gap: 0.5rem;
    padding: 0.5rem 0;
}

.contractor-window-host[b-zr6ox5jh8x]  .contractor-text-group-draft .form-check-input:checked + .form-check-label {
    color: var(--bs-link-color);
}

.contractor-window-header-workspace[b-zr6ox5jh8x],
.contractor-window-popout[b-zr6ox5jh8x] {
    display: contents;
}

/* Pop to screen sits beside the small Edit contractor and Expand all buttons, so it takes their height
   (its group border included) instead of the taller map-tool size. Touch screens keep the touch target. */
@media (pointer: fine) and (min-width: 700.02px) {
    .contractor-window-toolbar[b-zr6ox5jh8x]  .snow-map-tool-button.has-caption {
        height: calc(var(--sp-control-height-sm) - 2px);
    }
}

/* Phones, upright or landscape (full-screen sheet): one header row of identity,
   Expand all and Close. Viewing adds an Edit contractor row; while editing,
   Cancel/Save live only in the always-visible footer, and Pop to screen is
   withheld because the sheet already fills the screen. */
@media (max-width: 575.98px), (max-height: 500px) and (pointer: coarse) {
    .assignment-resource-detail-header-inner[b-zr6ox5jh8x],
    .assignment-resource-detail-header-inner.is-editing[b-zr6ox5jh8x] {
        grid-template-columns: minmax(0, 1fr) auto auto;
        grid-template-areas: "heading expand close";
        align-items: start;
    }
    .assignment-resource-detail-header-inner:not(.is-editing)[b-zr6ox5jh8x] {
        grid-template-areas: "heading expand close" "actions actions actions";
    }
    /* While editing, the name fields take their own full-width row under
       Expand all and Close, so a whole nickname and company name stay readable. */
    .assignment-resource-detail-header-inner.is-editing[b-zr6ox5jh8x] {
        grid-template-areas: ". expand close" "heading heading heading";
    }
    .contractor-window-toolbar[b-zr6ox5jh8x] {
        display: contents;
    }
    .contractor-window-header-workspace[b-zr6ox5jh8x] {
        display: flex;
        grid-area: actions;
        min-width: 0;
    }
    .contractor-window-header-workspace > .contractor-workspace-actions[b-zr6ox5jh8x] {
        margin-left: 0;
    }
    .is-editing .contractor-window-header-workspace[b-zr6ox5jh8x],
    .contractor-window-popout[b-zr6ox5jh8x] {
        display: none;
    }
    .contractor-window-toolbar[b-zr6ox5jh8x]  .contractor-window-expand {
        grid-area: expand;
        white-space: nowrap;
    }
    .contractor-window-identity-edit[b-zr6ox5jh8x] {
        display: grid;
        flex: 1 1 100%;
        grid-template-columns: minmax(4.5rem, 0.4fr) minmax(0, 1fr);
    }
    .contractor-window-identity-edit[b-zr6ox5jh8x]  .ui-field,
    .contractor-window-identity-edit[b-zr6ox5jh8x]  .ui-field:first-child {
        width: auto;
        min-width: 0;
    }
}
/* /Components/Features/Assignments/Availability/AssignmentAvailabilityAdminEditor.razor.rz.scp.css */
.assignment-availability-admin-editor[b-gag7ebwzih] {
    display: grid;
    gap: 0.65rem;
}

.assignment-availability-admin-fieldset[b-gag7ebwzih] {
    display: grid;
    gap: 0.55rem;
    min-width: 0;
    padding: 0;
    border: 0;
}

.assignment-availability-admin-resource[b-gag7ebwzih] {
    display: grid;
    gap: 0.5rem;
    padding: 0.65rem;
    border: 1px solid var(--sp-color-border);
    border-radius: 0.6rem;
    background: var(--sp-color-surface-raised);
}

.assignment-availability-admin-resource.is-focused[b-gag7ebwzih] {
    border-color: var(--sp-color-brand);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--sp-color-brand) 22%, transparent);
}

.assignment-availability-save-state[b-gag7ebwzih] {
    min-height: 1rem;
    color: var(--sp-color-ink-muted);
    font-size: 0.7rem;
    text-align: right;
}

.assignment-availability-save-state.is-saved[b-gag7ebwzih] {
    color: #166534;
}
.assignment-availability-save-state.is-error[b-gag7ebwzih] {
    color: #991b1b;
}

.assignment-availability-admin-resource-heading[b-gag7ebwzih],
.assignment-availability-admin-actions[b-gag7ebwzih] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
}

.assignment-availability-admin-resource-heading > div[b-gag7ebwzih] {
    display: grid;
    min-width: 0;
    gap: 0.08rem;
}

.assignment-availability-admin-resource-heading strong[b-gag7ebwzih] {
    color: var(--sp-color-ink-strong);
    font-size: 0.82rem;
}

.assignment-availability-admin-resource-heading span[b-gag7ebwzih],
.assignment-availability-admin-actions > span[b-gag7ebwzih] {
    color: var(--sp-color-ink-muted);
    font-size: 0.7rem;
}

.assignment-availability-admin-current[b-gag7ebwzih] {
    flex: 0 0 auto;
    padding: 0.24rem 0.48rem;
    border-radius: 999px;
    font-weight: 800;
}

.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-options {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.35rem;
}

.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-option {
    min-height: 30px;
    padding: 0.25rem 0.4rem;
    border: 1px solid var(--sp-color-border-strong);
    border-radius: 0.45rem;
    background: var(--sp-color-surface);
    color: var(--sp-color-ink-muted);
    font-size: 0.7rem;
    font-weight: 800;
}

.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-option:hover,
.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-option:focus-visible {
    border-color: var(--sp-color-brand);
    color: var(--sp-color-ink-strong);
}

.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-option.is-selected {
    border-color: currentColor;
    box-shadow: inset 0 0 0 1px currentColor;
}

.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-option.is-available.is-selected,
.assignment-availability-admin-current.is-available[b-gag7ebwzih] {
    background: #dcfce7;
    color: #166534;
}
.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-option.is-partial.is-selected,
.assignment-availability-admin-current.is-partial[b-gag7ebwzih] {
    background: #fef3c7;
    color: #92400e;
}
.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-option.is-unavailable.is-selected,
.assignment-availability-admin-current.is-unavailable[b-gag7ebwzih] {
    background: #fee2e2;
    color: #991b1b;
}
.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-option.is-unanswered.is-selected,
.assignment-availability-admin-current.is-unanswered[b-gag7ebwzih] {
    background: #e2e8f0;
    color: #334155;
}

.assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-partial-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}

.assignment-availability-admin-resource[b-gag7ebwzih]  .ui-field {
    margin-bottom: 0;
}
.assignment-availability-admin-resource[b-gag7ebwzih]  .form-label {
    margin-bottom: 0.16rem;
    font-size: 0.66rem;
    line-height: 1.1;
}
.assignment-availability-admin-resource[b-gag7ebwzih]  .form-control {
    min-height: 32px;
    height: 32px;
    padding: 0.27rem 0.5rem;
    font-size: 0.76rem;
}

.assignment-availability-admin-actions > span[b-gag7ebwzih] {
    max-width: 34rem;
}

@media (max-width: 640px) {
    .assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-status-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .assignment-availability-admin-editor[b-gag7ebwzih]  .assignment-availability-partial-grid {
        grid-template-columns: 1fr;
    }
    .assignment-availability-admin-actions[b-gag7ebwzih] {
        align-items: stretch;
        flex-direction: column;
    }
}

[data-bs-theme="dark"]
    .assignment-availability-admin-editor[b-gag7ebwzih]
    
    .assignment-availability-status-option.is-available.is-selected,
[data-bs-theme="dark"] .assignment-availability-admin-current.is-available[b-gag7ebwzih] {
    background: rgba(34, 197, 94, 0.18);
    color: #86efac;
}
[data-bs-theme="dark"]
    .assignment-availability-admin-editor[b-gag7ebwzih]
    
    .assignment-availability-status-option.is-partial.is-selected,
[data-bs-theme="dark"] .assignment-availability-admin-current.is-partial[b-gag7ebwzih] {
    background: rgba(245, 158, 11, 0.18);
    color: #fcd34d;
}
[data-bs-theme="dark"]
    .assignment-availability-admin-editor[b-gag7ebwzih]
    
    .assignment-availability-status-option.is-unavailable.is-selected,
[data-bs-theme="dark"] .assignment-availability-admin-current.is-unavailable[b-gag7ebwzih] {
    background: rgba(239, 68, 68, 0.18);
    color: #fca5a5;
}
[data-bs-theme="dark"]
    .assignment-availability-admin-editor[b-gag7ebwzih]
    
    .assignment-availability-status-option.is-unanswered.is-selected,
[data-bs-theme="dark"] .assignment-availability-admin-current.is-unanswered[b-gag7ebwzih] {
    background: rgba(148, 163, 184, 0.18);
    color: #cbd5e1;
}
/* /Components/Features/Assignments/Completion/AssignmentCompletionNotification.razor.rz.scp.css */
/* The notice renders before the shell, outside .app-layout. As an unpositioned
   block it would paint below the shell's fixed canvas layer, which would hide it
   and take its clicks, so its layer is lifted above that canvas. */
.assignment-completion-global-notification-layer[b-rkpsh3vgjw] {
    position: relative;
    z-index: 1;
}

.assignment-completion-global-notification span:last-child[b-rkpsh3vgjw] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.15;
}

.assignment-completion-global-notification strong[b-rkpsh3vgjw] {
    font-size: 14px;
    font-weight: 950;
}

.assignment-completion-global-notification small[b-rkpsh3vgjw] {
    color: var(--sp-color-warning-deep);
    font-weight: 800;
    font-size: 11px;
}

.assignment-completion-notification-count[b-rkpsh3vgjw] {
    width: 30px;
    height: 30px;
    min-width: 30px;
    border-radius: 999px;
    background: var(--sp-color-orange);
    color: var(--sp-color-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 950;
    font-size: 14px;
}

/* Phones pin the shell's menu button at the top-left over this in-flow notice.
   The notice starts beside the button and its layer passes taps through, so the
   menu stays reachable while a completion awaits review. */
@media (max-width: 700px) {
    .assignment-completion-global-notification-layer[b-rkpsh3vgjw] {
        padding-inline-start: 3.5rem;
        pointer-events: none;
    }

    .assignment-completion-global-notification-layer[b-rkpsh3vgjw]  .assignment-completion-global-notification {
        pointer-events: auto;
    }
}
/* /Components/Features/Contractors/Details/ContractorAssignedSiteLinks.razor.rz.scp.css */
.contractor-assigned-sites[b-o2qswlems9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem 0.3rem;
    min-width: 0;
}
.contractor-assigned-site[b-o2qswlems9] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 0.05rem 0.4rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    color: var(--bs-info-text-emphasis);
    background: var(--bs-info-bg-subtle);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.35;
    overflow-wrap: anywhere;
    text-align: left;
}
.contractor-assigned-site.is-link[b-o2qswlems9] {
    cursor: pointer;
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, currentcolor 40%, transparent);
    text-underline-offset: 2px;
}
.contractor-assigned-site.is-link:hover[b-o2qswlems9] {
    border-color: var(--bs-info-border-subtle);
    text-decoration-color: currentcolor;
}
.contractor-assigned-site.is-link:focus-visible[b-o2qswlems9] {
    outline: 2px solid var(--bs-focus-ring-color, var(--bs-primary));
    outline-offset: 1px;
}
.contractor-assigned-site-detail[b-o2qswlems9] {
    color: var(--bs-secondary-color);
    font-size: 0.72rem;
}
@media (forced-colors: active) {
    .contractor-assigned-site[b-o2qswlems9] {
        border-color: CanvasText;
    }
    .contractor-assigned-site.is-link[b-o2qswlems9] {
        color: LinkText;
    }
}
/* /Components/Features/Contractors/Details/ContractorDialogDocumentsPanel.razor.rz.scp.css */
.contractor-compliance-content[b-i3rwnbsf9f] {
    padding: 10px 12px;
    font-size: 12.5px;
}

.contractor-compliance-status[b-i3rwnbsf9f] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 8px;
}

.contractor-compliance-rows > div[b-i3rwnbsf9f] {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    align-items: baseline;
    gap: 8px;
    margin: 5px 0;
}

.contractor-compliance-rows > div > span[b-i3rwnbsf9f] {
    color: var(--bs-secondary-color);
}

.contractor-compliance-rows > div > div[b-i3rwnbsf9f] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.contractor-compliance-rows[b-i3rwnbsf9f]  .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}

.contractor-compliance-content > p[b-i3rwnbsf9f] {
    margin: 6px 0;
    font-size: 11.5px;
    color: var(--bs-secondary-color);
}

@media (max-width: 767px) {
    .contractor-compliance-content[b-i3rwnbsf9f] {
        font-size: 13px;
    }
}

/* After an upload without a date, the expiration row is the next required office input. */
.contractor-compliance-rows > div.contractor-compliance-expiration-attention[b-i3rwnbsf9f] {
    margin-inline: -4px;
    padding: 2px 4px;
    border-radius: 4px;
    background: var(--bs-warning-bg-subtle);
}

.contractor-compliance-expiration-attention[b-i3rwnbsf9f]  .badge {
    margin-top: 2px;
}
/* /Components/Features/Contractors/Details/ContractorReferenceTargetsEditor.razor.rz.scp.css */
.contractor-target-picker[b-gehtgzl3xz] {
    min-width: 10rem;
    font-size: 12px;
}

.contractor-target-results[b-gehtgzl3xz] {
    display: grid;
    gap: 4px;
    max-height: 15rem;
    overflow-y: auto;
    margin: 5px 0;
}

.contractor-selected-target[b-gehtgzl3xz] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px;
    margin: 5px 0;
    padding: 5px 0;
    border-top: 1px dashed var(--bs-border-color);
}

.contractor-selected-target > span[b-gehtgzl3xz] {
    overflow-wrap: anywhere;
    color: var(--bs-warning-text-emphasis);
}

.contractor-selected-target[b-gehtgzl3xz]  .ui-field {
    grid-column: 1 / -1;
}
/* /Components/Features/Contractors/Details/ContractorTextGroupsPanel.razor.rz.scp.css */
.contractor-text-group-draft[b-9hwiwtqxhu]  .form-check {
    display: inline-flex;
    position: relative;
    margin: 0 5px 6px 0;
    padding: 0;
}

.contractor-text-group-draft[b-9hwiwtqxhu]  .form-check-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
}

.contractor-text-group-draft[b-9hwiwtqxhu]  .form-check-label {
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
    background: var(--bs-body-bg);
    color: var(--bs-secondary-color);
    padding: 2px 9px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    min-height: 0;
    cursor: pointer;
}

.contractor-text-group-draft[b-9hwiwtqxhu]  .form-check-input:checked + .form-check-label {
    background: var(--bs-primary-bg-subtle);
    border-color: var(--bs-primary-border-subtle);
    color: var(--bs-primary);
}

/* Drawn check mark, so the selected state never depends on font fallback. */
.contractor-text-group-draft[b-9hwiwtqxhu]  .form-check-input:checked + .form-check-label::before {
    content: "";
    display: inline-block;
    width: 0.3rem;
    height: 0.55rem;
    margin: 0 0.4rem 0.12rem 0.05rem;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.contractor-text-group-draft[b-9hwiwtqxhu]  .form-check-input:focus-visible + .form-check-label {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.contractor-text-group-draft[b-9hwiwtqxhu]  .form-check-input:disabled + .form-check-label {
    cursor: default;
    opacity: 1;
}

.contractor-text-group-draft > p[b-9hwiwtqxhu] {
    font-size: 11px;
    margin: 4px 0;
}

@media (pointer: coarse) {
    .contractor-text-group-draft[b-9hwiwtqxhu]  .form-check-label {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }
}
/* /Components/Features/Location/CombinedCoordinateField.razor.rz.scp.css */
/* The blur boundary must not add a layout box between the host grid and the field. */
.combined-coordinate-input[b-9j1122txts] {
    display: contents;
}
.combined-coordinate-map-action[b-9j1122txts] {
    margin-top: 0.5rem;
}
/* /Components/Features/Location/CoordinateFields.razor.rz.scp.css */
.coordinate-fields-map-action[b-oz3bao88gj] {
    align-self: end;
}
/* /Components/Features/Location/CoordinateMapPicker.razor.rz.scp.css */
/* The UiModal body supplies the padding and is the only scroller. */
.coordinate-map-picker-content[b-526bb93f6s] {
    display: grid;
    gap: 1rem;
}

.coordinate-map-picker-help[b-526bb93f6s] {
    color: var(--bs-secondary-color);
    margin: 0;
}

.coordinate-map-picker-heading[b-526bb93f6s] {
    align-items: start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.coordinate-map-picker-heading span[b-526bb93f6s] {
    color: var(--bs-secondary-color);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.coordinate-map-picker-heading h2[b-526bb93f6s] {
    font-size: 1.35rem;
    margin: 0.15rem 0 0;
}

.coordinate-map-picker-map[b-526bb93f6s] {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    /* Leave part of a short landscape viewport to the fields so the body can
       still be scrolled past the map with one finger. */
    min-height: min(24rem, 50dvh);
    overflow: hidden;
}

.coordinate-map-picker-fields[b-526bb93f6s] {
    align-items: end;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
}

.coordinate-map-picker-actions[b-526bb93f6s] {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

@media (max-width: 767.98px) {
    .coordinate-map-picker-map[b-526bb93f6s] {
        min-height: min(18rem, 50dvh);
    }

    .coordinate-map-picker-fields[b-526bb93f6s] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Features/Payments/Rates/RatesEditor.razor.rz.scp.css */
.reference-rates[b-zhxm8bok74] {
    display: grid;
    gap: 0.65rem;
}
.reference-rates-choice[b-zhxm8bok74] {
    display: flex;
    gap: 1rem;
    align-items: center;
    flex-wrap: wrap;
}
.reference-rates-choice label[b-zhxm8bok74] {
    display: grid;
    gap: 0.2rem;
}
.reference-rates-choice .reference-rates-toggle[b-zhxm8bok74] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.reference-rates[b-zhxm8bok74]  th {
    font-weight: 500;
}
.reference-rates[b-zhxm8bok74]  td {
    white-space: nowrap;
}
.reference-rates[b-zhxm8bok74]  td[data-label="Service"] {
    white-space: normal;
}
.reference-rates[b-zhxm8bok74]  td .form-control {
    min-width: 5rem;
    width: 6.5rem;
}
.reference-rates[b-zhxm8bok74]  .reference-rate-overridden {
    --bs-table-bg: var(--bs-warning-bg-subtle);
}

@media (max-width: 767.98px), (pointer: coarse) {
    /* Touch: the rate-sheet setup link is a 44px target. */
    a[href="/settings/rate-sheets"][b-zhxm8bok74] {
        display: inline-flex;
        align-items: center;
        min-height: var(--sp-control-height-touch);
    }
}

/* Phone cards: one compact row per service line instead of five labelled
   fields. Service and unit share the first line; the sheet rate, override
   (input while editing) and the resulting rate sit side by side below. */
@media (max-width: 767.98px) {
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-areas:
            "service service unit"
            "sheet override result";
        gap: 0.125rem 0.75rem;
        padding: 0.5rem 0.75rem;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row > td {
        display: block;
        min-width: 0;
        padding: 0;
        border-bottom: 0;
        white-space: normal;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row > td::before {
        display: block;
        margin-bottom: 0.125rem;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row > td:nth-child(1) {
        grid-area: service;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row > td:nth-child(2) {
        grid-area: unit;
        color: var(--bs-secondary-color);
        text-align: end;
    }
    .reference-rates[b-zhxm8bok74]
        
        .ui-table-cards
        > tbody
        > tr.ui-data-table-row
        > td:is(:nth-child(1), :nth-child(2))::before {
        content: none;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row > td:nth-child(3) {
        grid-area: sheet;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row > td:nth-child(4) {
        grid-area: override;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row > td:nth-child(5) {
        grid-area: result;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row > td:nth-child(5) small {
        font-size: var(--sp-font-size-xs);
        color: var(--bs-secondary-color);
        overflow-wrap: anywhere;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards td .ui-field {
        margin: 0;
    }
    /* The Override caption above the cell already names the input; the
       generated field label would repeat the service name in a third line. */
    .reference-rates[b-zhxm8bok74]  .ui-table-cards td .auto-field-label {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards > tbody > tr.ui-data-table-row > td:nth-child(1) small {
        display: block;
        font-size: var(--sp-font-size-xs);
    }
    .reference-rates[b-zhxm8bok74]  .ui-table-cards td .form-control {
        width: 100%;
        min-width: 0;
    }
}
/* /Components/Features/Sites/Detail/SiteWorkspace.razor.rz.scp.css */
.site-detail-page[b-4ynju16tl5] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    gap: 14px;
    padding-bottom: 28px;
}

.site-detail-page[b-4ynju16tl5]  > * {
    min-width: 0;
}

.site-detail-loading[b-4ynju16tl5] {
    padding: 42px 18px;
    color: var(--sp-color-ink-subtle);
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-two-column {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(340px, 0.8fr);
    gap: 14px;
    align-items: start;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-panel {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--sp-color-border);
    border-radius: 15px;
    background: var(--sp-color-surface);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-panel-heading h2 {
    margin: 0;
    color: var(--sp-color-ink-strong);
    font-size: 19px;
    font-weight: 900;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-panel-heading p {
    margin: 3px 0 0;
    color: var(--sp-color-ink-subtle);
    font-size: 13px;
    font-weight: 650;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-count {
    min-width: 34px;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--sp-color-surface-muted);
    color: var(--sp-color-ink);
    font-size: 12px;
    font-weight: 900;
    text-align: center;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-empty {
    padding: 17px 12px;
    border: 1px dashed var(--sp-color-border-strong);
    border-radius: 10px;
    color: var(--sp-color-ink-subtle);
    font-weight: 750;
    text-align: center;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-empty-compact {
    padding: 10px;
    text-align: left;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--sp-color-border);
    border-radius: 10px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-table th {
    padding: 8px 9px;
    border-bottom: 1px solid var(--sp-color-border-strong);
    background: var(--sp-color-surface-muted);
    color: var(--sp-color-ink);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.02em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-table td {
    max-width: 320px;
    padding: 8px 9px;
    border-bottom: 1px solid var(--sp-color-border-subtle);
    color: var(--sp-color-ink-strong);
    font-weight: 650;
    vertical-align: top;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-table tbody tr:last-child td {
    border-bottom: 0;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-table tbody tr:hover td {
    background: var(--sp-color-surface-raised);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-long-text {
    min-width: 210px;
    white-space: pre-wrap;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-badge {
    display: inline-flex;
    align-items: center;
    max-width: 220px;
    padding: 3px 7px;
    border-radius: 999px;
    background: var(--sp-color-border-subtle);
    color: var(--sp-color-ink-secondary);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.25;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-badge.pending {
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-warning-strong);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-badge.assigned {
    background: var(--sp-color-brand-soft);
    color: var(--sp-color-brand-strong);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-badge.progress {
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-orange-strong);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-badge.complete {
    background: var(--sp-color-success-soft);
    color: var(--sp-color-success-strong);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-timeline {
    position: relative;
    display: grid;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-timeline::before {
    content: "";
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 158px;
    width: 2px;
    background: var(--sp-color-border);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-timeline-row {
    display: grid;
    grid-template-columns: 145px 14px minmax(0, 1fr);
    gap: 7px;
    min-width: 0;
    padding: 6px 0;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-timeline-date {
    padding-top: 4px;
    color: var(--sp-color-ink-subtle);
    font-size: 12px;
    font-weight: 800;
    text-align: right;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-timeline-marker {
    z-index: 1;
    width: 10px;
    height: 10px;
    margin-top: 6px;
    border: 2px solid var(--sp-color-white);
    border-radius: 50%;
    background: var(--sp-color-ink);
    box-shadow: 0 0 0 2px var(--sp-color-ink);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-timeline-content {
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid var(--sp-color-border-subtle);
    border-radius: 9px;
    background: var(--sp-color-surface-raised);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-timeline-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-timeline-title-row strong {
    color: var(--sp-color-ink-strong);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-category {
    display: block;
    margin-top: 2px;
    color: var(--sp-color-ink-subtle);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-timeline-content p {
    margin: 5px 0 0;
    white-space: pre-wrap;
    color: var(--sp-color-ink-muted);
    font-size: 13px;
    font-weight: 650;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-match-note {
    margin: -2px 0 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink-muted);
    font-size: 12px;
    font-weight: 700;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-compact-list {
    display: grid;
    gap: 6px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-compact-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
    padding: 8px 9px;
    border: 1px solid var(--sp-color-border-subtle);
    border-radius: 9px;
    background: var(--sp-color-surface-raised);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-compact-row > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-compact-row > div:last-child {
    text-align: right;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-compact-row strong {
    color: var(--sp-color-ink-strong);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-compact-row span {
    overflow-wrap: anywhere;
    color: var(--sp-color-ink-subtle);
    font-size: 12px;
    font-weight: 700;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-compact-row.single-line {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-subheading {
    margin: 12px 0 6px;
    color: var(--sp-color-ink-secondary);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-subheading:first-of-type {
    margin-top: 0;
}

@media (max-width: 900px) {
    .site-detail-page[b-4ynju16tl5]  .site-detail-panel-heading {
        align-items: stretch;
        flex-direction: column;
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-two-column {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .site-detail-page[b-4ynju16tl5]  .site-detail-timeline::before {
        left: 5px;
    }

    .site-detail-page[b-4ynju16tl5]  .site-detail-timeline-row {
        grid-template-columns: 14px minmax(0, 1fr);
    }

    .site-detail-page[b-4ynju16tl5]  .site-detail-timeline-date {
        grid-column: 2;
        grid-row: 1;
        padding: 0;
        text-align: left;
    }

    .site-detail-page[b-4ynju16tl5]  .site-detail-timeline-marker {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .site-detail-page[b-4ynju16tl5]  .site-detail-timeline-content {
        grid-column: 2;
        grid-row: 2;
    }

    .site-detail-page[b-4ynju16tl5]  .site-detail-compact-row,
    .site-detail-page[b-4ynju16tl5]  .site-detail-compact-row.single-line {
        grid-template-columns: 1fr;
    }

    .site-detail-page[b-4ynju16tl5]  .site-detail-compact-row > div:last-child {
        text-align: left;
    }
}

.site-detail-page[b-4ynju16tl5]  .site-detail-current-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-column {
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--sp-color-border-subtle);
    border-radius: 9px;
    background: var(--sp-color-surface-raised);
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 5px;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-heading h3 {
    margin: 0;
    color: var(--sp-color-ink);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-heading span {
    min-width: 24px;
    padding: 2px 6px;
    border-radius: 999px;
    background: var(--sp-color-border);
    color: var(--sp-color-ink);
    font-size: 9px;
    font-weight: 900;
    text-align: center;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(85px, 0.45fr);
    align-items: start;
    gap: 6px;
    padding: 5px 6px;
    border-top: 1px solid var(--sp-color-border-subtle);
    color: var(--sp-color-ink-strong);
    text-decoration: none;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row:first-of-type {
    border-top: 0;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row:hover {
    background: var(--sp-color-warning-soft);
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row > div {
    min-width: 0;
    display: grid;
    gap: 1px;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row strong,
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row span,
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row strong {
    color: var(--sp-color-ink);
    font-size: 11px;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row span {
    color: var(--sp-color-ink-muted);
    font-size: 10px;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-current-row small {
    color: var(--sp-color-ink-subtle);
    font-size: 9px;
    text-align: right;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-history-filters {
    margin-bottom: 8px;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-groups {
    display: grid;
    gap: 8px;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-group {
    overflow: hidden;
    border: 1px solid var(--sp-color-border);
    border-radius: 9px;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-group > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 8px;
    background: var(--sp-color-surface-muted);
    color: var(--sp-color-ink);
    font-size: 11px;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-group > header span {
    min-width: 24px;
    padding: 2px 6px;
    border-radius: 999px;
    background: var(--sp-color-border);
    font-size: 9px;
    font-weight: 900;
    text-align: center;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-events {
    display: grid;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-event {
    display: grid;
    grid-template-columns: 70px 105px minmax(0, 1fr);
    gap: 7px;
    padding: 6px 8px;
    border-top: 1px solid var(--sp-color-border-subtle);
    background: var(--sp-color-surface);
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-event:first-child {
    border-top: 0;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-event time {
    color: var(--sp-color-ink-subtle);
    font-size: 10px;
    font-weight: 800;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-event > div {
    min-width: 0;
}
.site-detail-page[b-4ynju16tl5]  .site-detail-date-event p {
    margin: 2px 0 0;
    color: var(--sp-color-ink-muted);
    font-size: 10px;
    line-height: 1.35;
}

@media (max-width: 900px) {
    .site-detail-page[b-4ynju16tl5]  .site-detail-current-grid {
        grid-template-columns: 1fr;
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-date-event {
        grid-template-columns: 65px minmax(0, 1fr);
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-date-event > .site-detail-category {
        grid-column: 2;
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-date-event > div {
        grid-column: 2;
    }
}

/* Shell chrome (sidebar, workspace header) is hidden for print by global rules
   in ui-workspace-base.css: this scoped sheet cannot reach layout elements. */
@media print {
    .site-detail-page[b-4ynju16tl5]  .site-detail-history-filters {
        display: none;
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-history-panel,
    .site-detail-page[b-4ynju16tl5]  .site-detail-history-panel ~ * {
        display: none;
    }
    .site-detail-page[b-4ynju16tl5] {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0;
    }
    .site-detail-page[b-4ynju16tl5] {
        gap: 7px;
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-panel {
        break-inside: avoid;
        box-shadow: none;
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-history-panel,
    .site-detail-page[b-4ynju16tl5]  .site-detail-table-wrap {
        break-inside: auto;
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-table-wrap {
        overflow: visible;
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-table {
        font-size: 9px;
    }
    .site-detail-page[b-4ynju16tl5]  .site-detail-table th,
    .site-detail-page[b-4ynju16tl5]  .site-detail-table td {
        padding: 4px;
    }
    a[b-4ynju16tl5] {
        color: var(--sp-color-ink-strong);
        text-decoration: none;
    }
}

/* Site picture gallery on the site detail page. */
.site-detail-page[b-4ynju16tl5]  .site-detail-photo-heading {
    align-items: center;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    flex-wrap: wrap;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-tools label {
    color: var(--sp-color-ink-subtle);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-tools input[type="date"] {
    width: 158px;
    min-height: 34px;
    padding: 5px 8px;
    font-size: 12px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-name-search {
    width: 190px;
    min-height: 34px;
    padding: 5px 8px;
    font-size: 12px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 10px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--sp-color-border);
    border-radius: 11px;
    background: var(--sp-color-surface);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 2px 8px rgb(var(--sp-rgb-ink) / 0.05);
    transition: var(--sp-motion-transition-control);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-card:hover,
.site-detail-page[b-4ynju16tl5]  .site-detail-photo-card:focus-visible {
    border-color: var(--sp-color-ink-faint);
    box-shadow: 0 7px 18px rgb(var(--sp-rgb-ink) / 0.12);
    transform: translateY(-1px);
    outline: none;
    text-decoration: none;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-image-wrap {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--sp-color-border-subtle);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-image-wrap img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-meta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2px 8px;
    padding: 8px 9px 9px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-meta strong {
    color: var(--sp-color-ink-strong);
    font-size: 12px;
    font-weight: 900;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-meta span {
    color: var(--sp-color-ink-muted);
    font-size: 11px;
    font-weight: 800;
    text-align: right;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-meta small {
    grid-column: 1 / -1;
    min-width: 0;
    overflow: hidden;
    color: var(--sp-color-ink-subtle);
    font-size: 10px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 700px) {
    .site-detail-page[b-4ynju16tl5]  .site-detail-photo-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .site-detail-page[b-4ynju16tl5]  .site-detail-photo-tools {
        width: 100%;
        justify-content: flex-start;
    }

    .site-detail-page[b-4ynju16tl5]  .site-detail-photo-grid {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    }
}

/* Collapsible Site Pictures panel; it starts collapsed. */
.site-detail-page[b-4ynju16tl5]  .site-detail-collapsible-panel {
    padding: 0;
    overflow: hidden;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-summary {
    min-height: 58px;
    gap: 12px;
    box-sizing: border-box;
    padding: 12px 14px;
    user-select: none;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-summary:hover {
    background: var(--sp-color-surface-raised);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-summary .ui-disclosure-title {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-subtitle {
    display: block;
    margin-top: 2px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-content {
    display: grid;
    gap: 10px;
    padding: 0 14px 14px;
    border-top: 1px solid var(--sp-color-border-subtle);
}

.site-detail-page[b-4ynju16tl5]  .site-detail-photo-content > .site-detail-photo-tools {
    padding-top: 10px;
}

@media (max-width: 700px) {
    .site-detail-page[b-4ynju16tl5]  .site-detail-photo-summary .ui-disclosure-title {
        align-items: flex-start;
    }
}

.site-detail-page[b-4ynju16tl5]  .site-detail-client-notes {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-client-notes li {
    border: 1px solid var(--sp-color-border);
    border-radius: 10px;
    padding: 10px 12px;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-client-notes p {
    margin: 0 0 6px;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.site-detail-page[b-4ynju16tl5]  .site-detail-client-note-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: var(--sp-color-ink-subtle);
    font-size: 0.85rem;
}
/* The not-found and load-failure states sit inside the modal body, which has no padding of its own. */
.site-detail-unavailable[b-4ynju16tl5] {
    display: grid;
    justify-items: start;
    gap: 12px;
    padding: 16px;
}
/* /Components/Features/Sites/Detail/SiteWorkspaceEditor.razor.rz.scp.css */
.workspace-editor[b-yjibxcd6pl] {
    color: var(--sp-color-ink);
    font-size: 12.5px;
    min-width: 0;
    padding: 8px 12px;
    background: var(--sp-color-surface);
}
.workspace-editor[b-yjibxcd6pl]  :is(button, input, select, textarea, summary, [tabindex]) {
    scroll-margin-block: 96px;
}

.workspace-columns[b-yjibxcd6pl] {
    columns: 3;
    column-gap: 8px;
    column-fill: auto;
    container-type: inline-size;
    --workspace-column-adjustment: calc((100cqw - 16px) / 63);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section {
    display: block;
    break-inside: avoid;
    margin-bottom: 6px;
}
.is-popped[b-yjibxcd6pl]  .workspace-equipment,
.is-popped[b-yjibxcd6pl]  .workspace-map {
    break-before: column;
}
.is-popped[b-yjibxcd6pl]  .workspace-equipment,
.is-popped[b-yjibxcd6pl]  .workspace-materials {
    width: calc(100% + var(--workspace-column-adjustment));
}
.is-popped[b-yjibxcd6pl]  .workspace-map,
.is-popped[b-yjibxcd6pl]  .workspace-rates {
    width: calc(100% - var(--workspace-column-adjustment));
    margin-left: var(--workspace-column-adjustment);
}
.workspace-actions[b-yjibxcd6pl] {
    position: sticky;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    z-index: 4;
    margin-inline: -12px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--sp-color-border);
    background: var(--sp-color-surface);
}
.workspace-actions-top[b-yjibxcd6pl] {
    top: 0;
    margin-top: -8px;
    margin-bottom: 8px;
}
.workspace-actions-bottom[b-yjibxcd6pl] {
    bottom: 0;
    margin-bottom: -8px;
    margin-top: 8px;
    border-top: 1px solid var(--sp-color-border);
    border-bottom: 0;
    justify-content: flex-end;
}
.workspace-identity[b-yjibxcd6pl] {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.workspace-identity strong[b-yjibxcd6pl] {
    font-size: 16.5px;
    overflow-wrap: anywhere;
}
.workspace-site-code[b-yjibxcd6pl] {
    padding: 1px 5px;
    border-radius: 4px;
    background: var(--sp-color-surface-muted);
    font-size: 11px;
    font-weight: 700;
    color: var(--sp-color-ink-muted);
    font-variant-numeric: tabular-nums;
}
.workspace-save-state[b-yjibxcd6pl] {
    color: var(--sp-color-ink-subtle);
    font-size: 11px;
}
.workspace-primary-actions[b-yjibxcd6pl],
.workspace-view-actions[b-yjibxcd6pl] {
    display: flex;
    align-items: center;
    gap: 6px;
}
.workspace-view-actions[b-yjibxcd6pl] {
    margin-left: auto;
    flex-wrap: wrap;
}
.workspace-footer-status[b-yjibxcd6pl] {
    margin-right: auto;
    color: var(--sp-color-ink-subtle);
}
.workspace-footer-status.workspace-footer-error[b-yjibxcd6pl] {
    color: var(--sp-color-warning-text);
    font-weight: 600;
}
/* Wide screens keep Delete in the bottom bar; phones move it into the top
   bar's "More site actions" menu, away from the sticky thumb-zone footer. */
.workspace-more-actions[b-yjibxcd6pl] {
    display: none;
    position: relative;
}
.workspace-more-actions > summary[b-yjibxcd6pl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--sp-control-height-touch);
    min-height: var(--sp-control-height-touch);
    border: 1px solid var(--sp-color-border-strong);
    border-radius: var(--sp-radius-sm);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink-strong);
    font-weight: 700;
    letter-spacing: 1px;
    list-style: none;
    cursor: pointer;
}
.workspace-more-actions > summary[b-yjibxcd6pl]::-webkit-details-marker {
    display: none;
}
.workspace-more-actions > summary:focus-visible[b-yjibxcd6pl] {
    outline: 2px solid var(--sp-color-brand);
    outline-offset: 2px;
}
.workspace-more-actions > div[b-yjibxcd6pl] {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 6;
    display: grid;
    min-width: 11rem;
    padding: var(--sp-space-1);
    border: 1px solid var(--sp-color-border);
    border-radius: var(--sp-radius-sm);
    background: var(--sp-color-surface);
    box-shadow: var(--sp-shadow-md);
}
.workspace-more-actions > div[b-yjibxcd6pl]  .ui-button {
    justify-content: flex-start;
    min-height: var(--sp-control-height-touch);
    text-decoration: none;
}
@media (max-width: 700px) {
    .workspace-more-actions[b-yjibxcd6pl] {
        display: block;
    }
    .workspace-actions-bottom[b-yjibxcd6pl]  .workspace-footer-delete {
        display: none;
    }
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section {
    border: 1px solid var(--sp-color-border);
    border-radius: 9px;
    background: var(--sp-color-surface);
    min-width: 0;
    overflow: clip;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section.is-expanded {
    border-color: var(--sp-color-brand-border);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-heading {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 4px 10px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-heading h2 {
    flex: 0 0 auto;
    width: 128px;
    margin: 0;
    font-size: 11px;
    font-weight: 700;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-heading h2 button {
    padding: 0;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 6px;
    text-align: left;
    color: var(--sp-color-brand-text);
    font: inherit;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    min-height: 28px;
    text-decoration: none;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-chevron {
    font-size: 11px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-summary {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
    min-width: 0;
    color: var(--sp-color-ink-secondary);
    font-size: 11.5px;
    overflow-wrap: anywhere;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-body {
    padding: 4px 10px 9px 12px;
    border-top: 1px dashed var(--sp-color-border-subtle);
}
.is-windowed[b-yjibxcd6pl]  .workspace-section-body {
    padding-left: 38px;
}
.is-popped[b-yjibxcd6pl]  .workspace-section-heading {
    min-height: 32px;
}
.is-popped[b-yjibxcd6pl]  .workspace-section-body {
    padding: 3px 10px 8px 12px;
}
.is-windowed .workspace-actions[b-yjibxcd6pl] {
    padding: 12px 16px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-body[hidden],
.workspace-editor[b-yjibxcd6pl]  [hidden] {
    display: none;
}
.workspace-editor[b-yjibxcd6pl]  fieldset {
    display: grid;
    gap: 3px;
    padding: 0;
    margin: 0;
    border: 0;
    min-width: 0;
}
.workspace-editor[b-yjibxcd6pl]  fieldset:disabled {
    opacity: 1;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-viewable {
    margin-top: 3px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    min-width: 0;
    min-height: 32px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field-label {
    color: var(--sp-color-ink-muted);
    line-height: 1.3;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field-value {
    display: flex;
    align-items: center;
    min-height: 32px;
    min-width: 0;
    font-weight: 600;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field-control {
    min-width: 0;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field .ui-field {
    margin: 0;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field .form-control,
.workspace-editor[b-yjibxcd6pl]  .workspace-field .form-select,
.workspace-editor[b-yjibxcd6pl]  .workspace-field .ui-select-trigger,
.workspace-editor[b-yjibxcd6pl]  .workspace-field .ui-date-trigger {
    min-height: 32px;
    padding: 3px 7px;
    font-size: 12.5px;
    border-radius: 5px;
}
.workspace-address-parts[b-yjibxcd6pl],
.workspace-area-parts[b-yjibxcd6pl],
.workspace-coordinate-parts[b-yjibxcd6pl] {
    display: grid;
    gap: 6px;
    grid-template-columns: 2fr 0.7fr 1fr;
    min-width: 0;
}
.workspace-area-parts[b-yjibxcd6pl] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
/* One combined latitude, longitude field: it takes the whole row so a five-decimal pair is not clipped. */
.workspace-coordinate-parts[b-yjibxcd6pl] {
    grid-template-columns: minmax(0, 1fr);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-address-parts .workspace-field,
.workspace-editor[b-yjibxcd6pl]  .workspace-area-parts .workspace-field,
.workspace-editor[b-yjibxcd6pl]  .workspace-coordinate-parts .workspace-field {
    grid-template-columns: minmax(0, 1fr);
    gap: 1px;
}
.workspace-manager-toggle[b-yjibxcd6pl] {
    text-align: right;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-manager-toggle .ui-button {
    padding-block: 0;
}
.workspace-manager-fields[b-yjibxcd6pl] {
    display: grid;
    gap: 3px;
}
.workspace-notes-grid[b-yjibxcd6pl] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.workspace-note-audience[b-yjibxcd6pl] {
    color: var(--sp-color-brand-text);
    font-size: 10px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-notes .ui-field {
    margin: 0;
}
.workspace-editor:not(.is-editing)[b-yjibxcd6pl]  .workspace-notes textarea {
    color: var(--sp-color-ink);
    background: var(--sp-color-surface);
    opacity: 1;
    resize: none;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-subheading {
    margin: 8px 0 4px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--sp-color-ink-secondary);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-material-needs > div {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 3px 0;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-heading,
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-row {
    display: grid;
    grid-template-columns: minmax(60px, 0.65fr) minmax(0, 1fr) minmax(65px, 0.8fr) 24px;
    gap: 6px;
    align-items: center;
    padding: 4px 0;
    border-bottom: 1px solid var(--sp-color-border-subtle);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-heading {
    color: var(--sp-color-ink-muted);
    font-size: 11px;
    font-weight: 700;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-row small {
    display: block;
    color: var(--sp-color-ink-subtle);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-row .workspace-field {
    grid-template-columns: minmax(0, 1fr);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-row .workspace-field-label {
    display: none;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-row .workspace-field-value {
    text-align: right;
}
.workspace-assignment-row[b-yjibxcd6pl] {
    padding: 4px 0;
    border-top: 1px dashed var(--sp-color-border-subtle);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-assignment-row .ui-check-field {
    margin: 0;
}
.workspace-editor[b-yjibxcd6pl]  :is(.workspace-operator-contact, .workspace-custom-scheme) {
    border-top: 1px dashed var(--sp-color-border-subtle);
    padding-top: 5px;
    margin-top: 5px;
}
.workspace-editor[b-yjibxcd6pl]  :is(.workspace-operator-contact, .workspace-custom-scheme) > .ui-disclosure-toggle {
    color: var(--sp-color-ink-secondary);
}
.workspace-map-grid[b-yjibxcd6pl] {
    display: grid;
    gap: 6px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-map .site-overhead-view {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 8px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-map .site-overhead-map {
    height: 260px;
    min-height: 260px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-map .site-overhead-header {
    padding: 6px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-map .site-live-map-card {
    margin: 0;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-map .site-overhead-empty {
    padding: 12px;
    min-height: 100px;
}
.workspace-editor[b-yjibxcd6pl]  .reference-rates .table-container,
.workspace-editor[b-yjibxcd6pl]  .reference-rates .ui-table-shell {
    min-width: 0;
}
.workspace-editor[b-yjibxcd6pl]  .reference-rates .ui-table-toolbar {
    display: none;
}
.workspace-editor[b-yjibxcd6pl]  .reference-rates td,
.workspace-editor[b-yjibxcd6pl]  .reference-rates th {
    padding: 4px;
    font-size: 11.5px;
    white-space: normal;
}
.workspace-editor[b-yjibxcd6pl]  .reference-rates td .form-control {
    min-height: 28px;
    width: 72px;
    padding: 3px 5px;
    font-size: 12px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-status .site-detail-panel {
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-status .site-detail-date-groups {
    max-height: 180px;
    overflow-y: auto;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-status .site-detail-panel-heading h2 {
    font-size: 12px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-status .site-detail-panel-heading p {
    font-size: 11px;
}
.is-windowed .workspace-columns[b-yjibxcd6pl] {
    columns: 1;
}
.is-windowed .workspace-map-grid[b-yjibxcd6pl] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.workspace-editor[b-yjibxcd6pl]  .workspace-empty {
    margin: 4px 0;
    color: var(--sp-color-ink-subtle);
}
@media (max-width: 1150px) {
    .is-popped .workspace-columns[b-yjibxcd6pl] {
        columns: 2;
        --workspace-column-adjustment: 0px;
    }
    .is-popped[b-yjibxcd6pl]  .workspace-map,
    .is-popped[b-yjibxcd6pl]  .workspace-rates {
        column-span: all;
        break-before: auto;
    }
    .is-popped .workspace-map-grid[b-yjibxcd6pl] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 700px) {
    .workspace-editor[b-yjibxcd6pl] {
        padding: 6px;
    }
    .workspace-actions[b-yjibxcd6pl] {
        margin-inline: -6px;
        padding: 6px;
        gap: 6px;
    }
    .workspace-actions-top[b-yjibxcd6pl] {
        margin-top: -6px;
    }
    .workspace-actions-bottom[b-yjibxcd6pl] {
        margin-bottom: -6px;
    }
    .workspace-identity[b-yjibxcd6pl] {
        flex: 1 1 calc(100% - 85px);
    }
    .workspace-identity strong[b-yjibxcd6pl] {
        font-size: 15px;
    }
    .workspace-view-actions[b-yjibxcd6pl] {
        margin-left: 0;
    }
    .is-popped .workspace-columns[b-yjibxcd6pl] {
        columns: 1;
    }
    .is-popped[b-yjibxcd6pl]  .workspace-equipment,
    .is-popped[b-yjibxcd6pl]  .workspace-map,
    .is-popped[b-yjibxcd6pl]  .workspace-rates {
        column-span: none;
        break-before: auto;
    }
    .workspace-map-grid[b-yjibxcd6pl],
    .is-popped .workspace-map-grid[b-yjibxcd6pl],
    .is-windowed .workspace-map-grid[b-yjibxcd6pl] {
        grid-template-columns: minmax(0, 1fr);
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-section-heading {
        flex-wrap: wrap;
        gap: 2px 8px;
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-section-heading h2 {
        width: auto;
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-section-summary {
        flex: 1 1 140px;
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-field {
        grid-template-columns: 100px minmax(0, 1fr);
    }
    .workspace-notes-grid[b-yjibxcd6pl] {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* The routed site page scrolls under the pinned phone workspace header, so
   its sticky identity bar starts below that header instead of under it.
   The Site window, windowed or popped, renders outside .app-main and scrolls
   its own body, so it keeps top: 0. */
@media (max-width: 700px) {
    .app-main .is-popped > .workspace-actions-top[b-yjibxcd6pl] {
        top: var(--sp-workspace-sticky-top);
    }
    /* Identity and the primary action share the first row; a long name takes
       two lines at most, and the secondary actions wrap below. */
    .workspace-identity strong[b-yjibxcd6pl] {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
    }
    .workspace-editor:not(.is-editing) .workspace-identity[b-yjibxcd6pl] {
        flex: 1 1 0;
    }
    /* The three secondary actions keep one row; a long caption wraps inside its button. */
    .workspace-view-actions[b-yjibxcd6pl] {
        flex: 1 1 100%;
        flex-wrap: nowrap;
    }
    .workspace-view-actions[b-yjibxcd6pl]  > .btn {
        flex: 1 1 0;
        min-width: 0;
        padding-inline: 0.375rem;
        line-height: 1.15;
        white-space: normal;
    }
}
/* Phone editing: each field stacks under its row label, and grouped address,
   manager and area inputs each take the full width with their own visible
   label, so values and placeholders are not cut to a 100px column. */
@media (max-width: 700px) {
    .workspace-editor.is-editing[b-yjibxcd6pl]  .workspace-field {
        grid-template-columns: minmax(0, 1fr);
        gap: 2px;
    }
    .workspace-editor.is-editing[b-yjibxcd6pl]
        
        :is(.workspace-address-controls, .workspace-manager-controls, .workspace-area-controls) {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }
    .workspace-editor.is-editing[b-yjibxcd6pl]
        
        :is(.workspace-address-controls, .workspace-manager-controls, .workspace-area-controls)
        .form-label {
        position: static;
        width: auto;
        height: auto;
        margin: 0 0 2px;
        overflow: visible;
        clip-path: none;
        white-space: normal;
        color: var(--sp-color-ink-muted);
        font-size: 12px;
        font-weight: 400;
    }
}
@media (pointer: coarse) {
    .workspace-editor[b-yjibxcd6pl]  .workspace-section-heading h2 button,
    .workspace-editor[b-yjibxcd6pl]  summary {
        min-height: 44px;
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-field {
        min-height: 44px;
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-field .form-control,
    .workspace-editor[b-yjibxcd6pl]  .workspace-field .ui-select-trigger {
        min-height: 44px;
        font-size: 16px;
    }
    /* The select's bordered control is the 44px box; its trigger fills the inside so State matches ZIP. */
    .workspace-editor[b-yjibxcd6pl]  .workspace-field .ui-select-trigger {
        min-height: calc(var(--sp-control-height-touch) - 2px);
    }
}

.workspace-identity-view[b-yjibxcd6pl],
.workspace-identity-edit[b-yjibxcd6pl] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.workspace-identity-edit[b-yjibxcd6pl] {
    width: 330px;
    max-width: 100%;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-identity-edit .ui-field {
    margin: 0;
    min-width: 0;
    flex: 1;
}
/* Wide enough for a legacy site number such as SYN-003, not only three digits. */
.workspace-editor[b-yjibxcd6pl]  .workspace-identity-edit .ui-field:first-child {
    flex: 0 0 5.5rem;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-identity-edit .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-identity-edit .form-control {
    min-height: 32px;
    padding: 3px 6px;
    font-size: 13px;
}
/* The editor value column is narrow (about 13rem at desktop widths), so the
   address uses two columns (Street/City, State/ZIP) like the manager and area
   rows; four tracks left State about 20px wide. */
.workspace-editor[b-yjibxcd6pl]  .workspace-address-controls,
.workspace-editor[b-yjibxcd6pl]  .workspace-manager-controls,
.workspace-editor[b-yjibxcd6pl]  .workspace-area-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    min-width: 0;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-manager-hidden {
    color: var(--sp-color-ink-subtle);
    font-size: 11px;
    padding-block: 5px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-contact-details {
    border-top: 1px dashed var(--sp-color-border-subtle);
    margin-top: 3px;
    padding-top: 3px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-contact-details > .ui-disclosure-toggle {
    color: var(--sp-color-ink-subtle);
    font-size: 11px;
}
.workspace-editor:not(.is-editing)[b-yjibxcd6pl]  .workspace-equipment input.ui-number-input {
    border-color: transparent;
    background: transparent;
    color: var(--sp-color-ink);
    font-weight: 700;
    opacity: 1;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-accessories-heading {
    margin: 8px 0 3px;
    color: var(--sp-color-ink-muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-accessory-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    margin-top: 4px;
}
@media (max-width: 700px) {
    .workspace-editor[b-yjibxcd6pl]  .workspace-identity-edit .form-control {
        font-size: 16px;
    }
}
/* On phones the manager's name, phone and email stack instead of sharing one
   row, so each keeps its full width and the phone number never breaks. */
@media (max-width: 700px) {
    .workspace-editor[b-yjibxcd6pl]  .workspace-manager-field .workspace-field-value {
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-manager-field .workspace-field-value a[href^="tel:"] {
        white-space: nowrap;
    }
}

.workspace-editor[b-yjibxcd6pl]  .workspace-stock-add {
    display: grid;
    grid-template-columns: minmax(60px, 0.65fr) minmax(0, 1fr) auto;
    align-items: end;
    gap: 6px;
    margin-top: 4px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-add .ui-field {
    margin: 0;
    min-width: 0;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-add .form-label {
    font-size: 10px;
    margin-bottom: 2px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-add .form-control,
.workspace-editor[b-yjibxcd6pl]  .workspace-stock-add .ui-select-trigger {
    min-height: 30px;
    padding: 3px 6px;
    font-size: 12px;
}

.workspace-editor[b-yjibxcd6pl]  .workspace-planned-row {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-row > .badge {
    margin-right: auto;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-stepper {
    display: flex;
    align-items: center;
    gap: 5px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-stepper > button {
    min-width: 24px;
    min-height: 24px;
    padding: 0 5px;
    border-radius: 6px;
    color: var(--sp-color-brand-text);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-value {
    width: 45px;
    text-align: center;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-value .ui-field {
    margin: 0;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-value .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-value .form-control {
    min-height: 24px;
    padding: 1px 3px;
    text-align: center;
    font-size: 12.5px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-row > small {
    color: var(--sp-color-ink-muted);
    font-size: 10px;
}
.workspace-assignment-row[b-yjibxcd6pl] {
    display: grid;
    grid-template-columns: minmax(6rem, 1fr) minmax(85px, 0.7fr) auto;
    align-items: center;
    gap: 6px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-assignment-unit {
    min-width: 0;
    overflow-wrap: anywhere;
}
/* The collapsed notes field must not widen the auto column and squeeze the unit name under the operator select. */
.workspace-editor[b-yjibxcd6pl]  .workspace-assignment-notes .ui-disclosure-region {
    contain: inline-size;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-assignment-operator {
    display: block;
    min-height: 24px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-assignment-operator .workspace-field-label {
    display: none;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-assignment-operator .workspace-field-value {
    color: var(--sp-color-ink-muted);
    font-size: 11px;
    font-weight: 400;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-assignment-notes {
    min-width: 0;
    color: var(--sp-color-ink-muted);
    font-size: 10px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-assignment-notes.is-open {
    grid-column: 1 / -1;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field,
.workspace-editor[b-yjibxcd6pl]  .workspace-field-value {
    min-height: 24px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field .form-control,
.workspace-editor[b-yjibxcd6pl]  .workspace-field .form-select,
.workspace-editor[b-yjibxcd6pl]  .workspace-field .ui-select-trigger {
    min-height: 24px;
    padding-block: 2px;
}
/* Selects take the same height as the workspace text inputs beside them
   (34px fine pointer, 44px on phones and coarse pointers). */
.workspace-editor[b-yjibxcd6pl]  .workspace-field .ui-select {
    --uis-height: var(--compact-control-height);
}
/* Select text matches the 14px text inputs beside it in the same row. */
.workspace-editor[b-yjibxcd6pl]  .workspace-field .ui-select-trigger {
    font-size: 0.875rem;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-field textarea.form-control {
    min-height: 56px;
}
.is-windowed[b-yjibxcd6pl]  .workspace-manager-controls {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 700px) {
    .is-windowed[b-yjibxcd6pl]  .workspace-manager-controls {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-planned-row {
        flex-wrap: wrap;
    }
}
@media (pointer: coarse) {
    .workspace-editor[b-yjibxcd6pl]  .workspace-field,
    .workspace-editor[b-yjibxcd6pl]  .workspace-field-value,
    .workspace-editor[b-yjibxcd6pl]  .workspace-planned-value .form-control,
    .workspace-editor[b-yjibxcd6pl]  .workspace-field .form-control {
        min-height: 44px;
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-field .ui-select-trigger {
        min-height: calc(var(--sp-control-height-touch) - 2px);
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-field .form-control,
    .workspace-editor[b-yjibxcd6pl]  .workspace-planned-value .form-control {
        font-size: 16px;
    }
}

.workspace-editor[b-yjibxcd6pl]  .workspace-section-summary .badge,
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-row > .badge,
.workspace-editor[b-yjibxcd6pl]  .workspace-accessory-chips .badge {
    padding: 3px 7px;
    font-size: 11px;
    font-weight: 600;
    border-radius: 7px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-summary .text-bg-primary,
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-row > .text-bg-primary {
    color: var(--sp-color-brand-text);
    background: var(--sp-color-brand-soft);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-summary .text-bg-success {
    color: var(--sp-color-success-text);
    background: var(--sp-color-success-soft);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-summary .text-bg-warning,
.workspace-editor[b-yjibxcd6pl]  .workspace-accessory-chips .text-bg-warning {
    color: var(--sp-color-warning-text);
    background: var(--sp-color-warning-soft);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-summary .text-bg-danger {
    color: var(--sp-color-danger-text);
    background: var(--sp-color-danger-soft);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-summary .text-bg-info,
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-row > .text-bg-info {
    color: var(--sp-color-info-text);
    background: var(--sp-color-info-soft);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-section-summary .text-bg-secondary,
.workspace-editor[b-yjibxcd6pl]  .workspace-planned-row > .text-bg-secondary {
    color: var(--sp-color-ink-muted);
    background: var(--sp-color-surface-muted);
}
.workspace-editor[b-yjibxcd6pl]  .workspace-map .site-overhead-title {
    display: none;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-map .site-overhead-heading {
    justify-content: flex-end;
    padding: 4px 0;
    min-height: 28px;
}

.workspace-editor[b-yjibxcd6pl]  .workspace-operational-details {
    margin-top: 5px;
    border-top: 1px dashed var(--sp-color-border-subtle);
    padding-top: 4px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-operational-details > .ui-disclosure-toggle {
    color: var(--sp-color-ink-muted);
    font-size: 11px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-audit-list {
    max-height: 180px;
    overflow-y: auto;
    font-size: 11.5px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-audit-list > div {
    border-bottom: 1px dashed var(--sp-color-border-subtle);
    padding: 5px 0;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-audit-list time,
.workspace-editor[b-yjibxcd6pl]  .workspace-audit-list small {
    color: var(--sp-color-ink-muted);
    font-weight: 400;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-audit-list small {
    display: block;
}

.workspace-editor[b-yjibxcd6pl]  .workspace-coverage-short {
    color: var(--sp-color-danger-text);
}
.workspace-resource-code[b-yjibxcd6pl] {
    display: inline-block;
    padding: 2px 6px;
    border: 1px solid var(--sp-color-border);
    border-left: 3px solid var(--sp-color-brand);
    border-radius: 5px;
    font-size: 11px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-map .site-live-map-card {
    min-height: 260px;
}
.workspace-editor[b-yjibxcd6pl]  .workspace-map .site-live-map-card .site-overhead-empty {
    min-height: 260px;
    display: grid;
    place-items: center;
}

/* Keep the modal's identity and edit controls aligned; window controls live
   in the fixed modal header, independent of the scrolling workspace. */
.is-windowed .workspace-actions-top[b-yjibxcd6pl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--sp-space-2);
}
.is-windowed .workspace-identity[b-yjibxcd6pl] {
    grid-column: 1;
    grid-row: 1;
}
.is-windowed .workspace-primary-actions[b-yjibxcd6pl] {
    grid-column: 2;
    grid-row: 1;
}
.is-windowed .workspace-save-state[b-yjibxcd6pl] {
    grid-column: 1;
    grid-row: 2;
}
.is-windowed .workspace-view-actions[b-yjibxcd6pl] {
    grid-column: 2;
    grid-row: 2;
    justify-content: flex-end;
    margin-left: 0;
}
@media (max-width: 600px) {
    .is-windowed .workspace-actions-top[b-yjibxcd6pl] {
        grid-template-columns: minmax(0, 1fr);
    }
    .is-windowed .workspace-identity[b-yjibxcd6pl],
    .is-windowed .workspace-primary-actions[b-yjibxcd6pl],
    .is-windowed .workspace-save-state[b-yjibxcd6pl],
    .is-windowed .workspace-view-actions[b-yjibxcd6pl] {
        grid-column: 1;
        grid-row: auto;
        justify-content: flex-start;
    }
}

@media (max-width: 767.98px), (pointer: coarse) {
    /* Touch: the planned-count steppers are square 44px targets, and the inline
       Material settings link gets a 44px hit area without moving its line. */
    .workspace-editor[b-yjibxcd6pl]  .workspace-planned-stepper > button {
        min-width: var(--sp-control-height-touch);
        min-height: var(--sp-control-height-touch);
    }
    .workspace-editor[b-yjibxcd6pl]  small > a[href="/equipment/types"] {
        padding-block: 1rem;
    }
    /* The stock editor keeps its compact desktop fields only for fine pointers on wide screens. */
    .workspace-editor[b-yjibxcd6pl]  .workspace-stock-add .form-control,
    .workspace-editor[b-yjibxcd6pl]  .workspace-stock-add .ui-select-trigger {
        min-height: var(--sp-control-height-touch);
        font-size: 16px;
    }
    .workspace-editor[b-yjibxcd6pl]  .workspace-stock-row .ui-button.btn-link {
        min-width: var(--sp-control-height-touch);
    }
}
/* /Components/Features/Sites/Needs/SiteMaterialNeedPlanPanel.razor.rz.scp.css */
.site-material-plan-row[b-b2msbium2b] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.5rem;
    padding-block: 0.5rem;
    border-bottom: 1px solid var(--bs-border-color);
    overflow-wrap: anywhere;
}
.site-material-plan-row small[b-b2msbium2b] {
    display: block;
}
.site-material-plan-evidence[b-b2msbium2b] {
    grid-column: 1 / -1;
}
.site-material-plan-hint[b-b2msbium2b] {
    margin-block: 0.5rem;
    font-size: 0.875rem;
}
.site-material-plan-warning[b-b2msbium2b] {
    color: var(--sp-color-warning-text);
}
/* /Components/Features/Sites/Overhead/SiteLiveMap.razor.rz.scp.css */
/* Leaflet panes and controls use z-index 400-1000; containing them keeps the map below the
   sticky Site window action bar while the window scrolls. */
.site-live-map[b-w33pvbbfhj] {
    isolation: isolate;
    width: 100%;
    min-height: 18rem;
    border: 0;
    border-radius: var(--radius-md, 0.5rem);
}

.site-live-map-touch-hint[b-w33pvbbfhj] {
    display: none;
    margin: 0;
    padding: var(--sp-space-2) var(--sp-space-3);
    color: var(--sp-color-ink-muted);
    font-size: 0.8125rem;
}

@media (pointer: coarse) {
    .site-live-map-touch-hint[b-w33pvbbfhj] {
        display: block;
    }
}
/* /Components/Features/Sites/Overhead/SiteOverheadEditingToolbar.razor.rz.scp.css */
.site-overhead-toolbar[b-bc1wk9l45u] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    padding: 9px 11px;
    border-bottom: 1px solid var(--sp-color-border-strong);
    background: var(--sp-color-surface-raised);
}

.site-overhead-mode-buttons[b-bc1wk9l45u],
.site-overhead-drawing-buttons[b-bc1wk9l45u] {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 0 1 auto;
    flex-wrap: wrap;
}

.site-overhead-icon-tools[b-bc1wk9l45u] {
    display: flex;
    align-items: center;
    flex: 1 1 470px;
    flex-wrap: wrap;
    gap: 8px 14px;
    min-width: 260px;
}

.site-overhead-icon-group[b-bc1wk9l45u],
.site-overhead-icon-actions[b-bc1wk9l45u] {
    display: flex;
    align-items: center;
    flex: 0 1 auto;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}

.site-overhead-accessory-group[b-bc1wk9l45u] {
    padding-left: 14px;
    border-left: 1px solid var(--sp-color-border-strong);
}

.site-overhead-icon-tools-label[b-bc1wk9l45u] {
    color: var(--sp-color-ink-secondary);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.site-overhead-icon-preview[b-bc1wk9l45u] {
    display: grid;
    width: 25px;
    height: 25px;
    place-items: center;
    flex: 0 0 25px;
    border-radius: 7px;
}

.site-overhead-icon-preview svg[b-bc1wk9l45u] {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.site-overhead-icon-preview-dumpster[b-bc1wk9l45u] {
    background: var(--sp-color-accent);
    color: var(--sp-color-ink);
}

.site-overhead-icon-preview-snow[b-bc1wk9l45u] {
    background: var(--sp-color-sidebar);
    color: var(--sp-color-sidebar-text);
}

.site-overhead-icon-preview-snow svg[b-bc1wk9l45u] {
    fill: currentColor;
    stroke: none;
}

.site-overhead-icon-actions[b-bc1wk9l45u]  .site-overhead-icon-action {
    white-space: nowrap;
}

/* Configured accessory icons on a light tile, so they read the same as on the map in both themes. */
.site-overhead-icon-group[b-bc1wk9l45u]  .site-overhead-icon-card-image {
    display: block;
    width: 22px;
    height: 22px;
    padding: 1px;
    border-radius: 5px;
    background: var(--sp-color-white);
    object-fit: contain;
    pointer-events: none;
}

.site-overhead-instructions[b-bc1wk9l45u] {
    min-width: 220px;
    flex: 1 1 320px;
    color: var(--sp-color-ink-muted);
    font-size: 12px;
    font-weight: 750;
}

@media (max-width: 700px) {
    .site-overhead-toolbar[b-bc1wk9l45u] {
        align-items: stretch;
    }

    .site-overhead-mode-buttons[b-bc1wk9l45u],
    .site-overhead-drawing-buttons[b-bc1wk9l45u] {
        flex: 1 1 auto;
    }

    .site-overhead-mode-buttons[b-bc1wk9l45u]  .btn,
    .site-overhead-drawing-buttons[b-bc1wk9l45u]  .btn {
        flex: 1;
    }

    .site-overhead-icon-tools[b-bc1wk9l45u] {
        flex-basis: 100%;
        min-width: 0;
    }

    .site-overhead-icon-group[b-bc1wk9l45u],
    .site-overhead-icon-actions[b-bc1wk9l45u] {
        flex-basis: 100%;
    }

    .site-overhead-accessory-group[b-bc1wk9l45u] {
        padding-top: 8px;
        padding-left: 0;
        border-top: 1px solid var(--sp-color-border-strong);
        border-left: 0;
    }

    .site-overhead-icon-tools-label[b-bc1wk9l45u] {
        width: 100%;
    }

    .site-overhead-icon-actions[b-bc1wk9l45u]  .site-overhead-icon-action {
        flex: 1 1 120px;
    }

    .site-overhead-instructions[b-bc1wk9l45u] {
        flex-basis: 100%;
        min-width: 0;
    }
}

html[data-theme="dark"] .site-overhead-icon-tools-label[b-bc1wk9l45u] {
    color: var(--sp-color-ink);
}

html[data-theme="dark"] .site-overhead-instructions[b-bc1wk9l45u] {
    color: var(--sp-color-ink-muted);
}

.site-overhead-icon-tools[b-bc1wk9l45u]  .site-overhead-count {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
}
.site-overhead-icon-tools[b-bc1wk9l45u]  .site-overhead-count input {
    width: 4rem;
    min-height: 2rem;
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
    border: 1px solid var(--sp-color-border);
    border-radius: var(--sp-radius-sm);
}

/* Touch field contract: 44px tall with 16px text so phones do not zoom. */
@media (pointer: coarse) {
    .site-overhead-icon-tools[b-bc1wk9l45u]  .site-overhead-count input {
        min-height: 2.75rem;
        font-size: 1rem;
    }
}
/* /Components/Features/Sites/Overhead/SiteOverheadHeading.razor.rz.scp.css */
.site-overhead-heading[b-z56jjch7b7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--sp-color-border-strong);
    background: var(--sp-color-surface);
}

.site-overhead-title[b-z56jjch7b7] {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.site-overhead-title strong[b-z56jjch7b7] {
    color: var(--sp-color-ink-strong);
    font-size: 14px;
    font-weight: 900;
}

.site-overhead-title span[b-z56jjch7b7] {
    overflow: hidden;
    color: var(--sp-color-ink-subtle);
    font-size: 12px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-overhead-heading-actions[b-z56jjch7b7] {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
}

@media (max-width: 700px) {
    .site-overhead-heading[b-z56jjch7b7] {
        align-items: flex-start;
        flex-direction: column;
    }

    .site-overhead-title span[b-z56jjch7b7] {
        white-space: normal;
    }

    .site-overhead-heading-actions[b-z56jjch7b7] {
        width: 100%;
    }

    .site-overhead-heading-actions .btn[b-z56jjch7b7] {
        flex: 1;
    }
}

html[data-theme="dark"] .site-overhead-heading[b-z56jjch7b7] {
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink);
}

html[data-theme="dark"] .site-overhead-title strong[b-z56jjch7b7] {
    color: var(--sp-color-ink);
}

html[data-theme="dark"] .site-overhead-title span[b-z56jjch7b7] {
    color: var(--sp-color-ink-muted);
}
/* /Components/Features/Sites/Overhead/SiteOverheadItemList.razor.rz.scp.css */
.site-overhead-items[b-82wwybm042] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    padding-block: 0.5rem;
}
/* /Components/Features/Sites/Overhead/SiteOverheadView.razor.rz.scp.css */
.site-overhead-view[b-uczam4rs1b] {
    grid-column: 1 / -1;
    min-width: 0;
    margin: 2px 0 14px;
    overflow: hidden;
    border: 1px solid var(--sp-color-border-strong);
    border-radius: 13px;
    background: var(--sp-color-surface-raised);
}

.site-overhead-map[b-uczam4rs1b] {
    position: relative;
    width: 100%;
    height: clamp(260px, 34vh, 360px);
    min-height: 260px;
    max-height: 360px;
    overflow: hidden;
    isolation: isolate;
    background: var(--sp-color-border);
    container-type: inline-size;
}

/* Full screen (top left) and the rotation compass (top right) need about 21rem side by side.
   In a narrower map, such as the desktop Site window's map column, Full screen keeps its icon,
   accessible name and tooltip but drops the visible caption, so neither control covers the other
   and no control moves further into the drawing area. Phones move Full screen below the compass
   row instead (see the max-width: 700px rule). */
@container (max-width: 24rem) {
    .site-overhead-map[b-uczam4rs1b]  .snow-map-fullscreen-control .snow-map-tool-caption {
        display: none;
    }

    /* The icon-only control already clears the compass, so it keeps its place instead of the
       shared narrow-map offset (ui-system.css); phones still use the offset below. */
    .site-overhead-map[b-uczam4rs1b]  .snow-map-fullscreen-control {
        margin-top: 0;
    }
}

@media (max-width: 700px) {
    .site-overhead-map[b-uczam4rs1b]  .snow-map-fullscreen-control .snow-map-tool-caption {
        display: revert;
    }
}

.site-overhead-view-square .site-overhead-map[b-uczam4rs1b] {
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: 1;
}

.site-overhead-map-workspace:fullscreen[b-uczam4rs1b],
.site-overhead-map-workspace:-webkit-full-screen[b-uczam4rs1b] {
    display: flex;
    width: 100%;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    background: var(--sp-color-surface-raised);
}

.site-overhead-map-workspace:fullscreen .site-overhead-map[b-uczam4rs1b],
.site-overhead-map-workspace:-webkit-full-screen .site-overhead-map[b-uczam4rs1b] {
    height: auto;
    min-height: 0;
    max-height: none;
    flex: 1 1 auto;
    aspect-ratio: auto;
}

.site-overhead-map.site-overhead-readonly[b-uczam4rs1b] {
    cursor: default;
}

.site-overhead-map.site-overhead-pan-mode[b-uczam4rs1b] {
    cursor: grab;
}

.site-overhead-map.site-overhead-pan-mode:active[b-uczam4rs1b] {
    cursor: grabbing;
}

.site-overhead-map.site-overhead-draw-mode[b-uczam4rs1b] {
    cursor: crosshair;
    touch-action: none;
}

.site-overhead-status[b-uczam4rs1b] {
    padding: 7px 11px;
    border-top: 1px solid var(--sp-color-border-strong);
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink-secondary);
    font-size: 12px;
    font-weight: 800;
}

.site-overhead-empty[b-uczam4rs1b] {
    padding: 34px 16px;
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink-subtle);
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}

.site-overhead-view[b-uczam4rs1b]  .leaflet-control-attribution {
    font-size: 9px;
}

.site-overhead-view[b-uczam4rs1b]  .leaflet-control-zoom a {
    font-weight: 900;
}

@media (max-width: 700px) {
    .site-overhead-view[b-uczam4rs1b]  .snow-map-fullscreen-control {
        margin-top: 58px;
    }

    .site-overhead-map[b-uczam4rs1b] {
        height: 280px;
        min-height: 240px;
        max-height: 320px;
    }
}

.site-overhead-map.site-overhead-icon-mode[b-uczam4rs1b] {
    cursor: copy;
}

.site-overhead-map.site-overhead-drop-target[b-uczam4rs1b]::after {
    position: absolute;
    z-index: 1000;
    inset: 8px;
    border: 3px dashed var(--sp-color-accent);
    border-radius: 10px;
    background: rgb(var(--sp-rgb-accent) / 0.08);
    content: "Drop location icon here";
    display: grid;
    place-items: center;
    color: var(--sp-color-ink);
    font-size: 14px;
    font-weight: 900;
    pointer-events: none;
    text-shadow: 0 1px 2px var(--sp-color-white);
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-location-icon-wrapper {
    border: 0;
    background: transparent;
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-location-marker {
    position: relative;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 3px solid var(--sp-color-white);
    border-radius: 50% 50% 50% 6px;
    box-shadow: 0 2px 7px rgb(var(--sp-rgb-ink) / 0.5);
    transform: rotate(-45deg);
    transition: var(--sp-motion-transition-control);
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-location-marker::after {
    position: absolute;
    right: -4px;
    bottom: -4px;
    width: 11px;
    height: 11px;
    border: 2px solid var(--sp-color-white);
    border-radius: 50%;
    background: var(--sp-color-ink);
    content: "";
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-location-marker svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform: rotate(45deg);
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-location-marker-dumpster {
    background: var(--sp-color-accent);
    color: var(--sp-color-ink);
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-location-marker-snow {
    background: var(--sp-color-sidebar);
    color: var(--sp-color-sidebar-text);
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-location-marker-snow svg {
    fill: currentColor;
    stroke: none;
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-location-icon-wrapper.is-selected .site-overhead-location-marker {
    box-shadow:
        0 0 0 4px var(--sp-color-accent),
        0 3px 10px rgb(var(--sp-rgb-ink) / 0.65);
    transform: rotate(-45deg) scale(1.08);
}

/* A configured catalog icon on a light card, so the artwork stays readable over satellite imagery. */
.site-overhead-view[b-uczam4rs1b]  .site-overhead-accessory-marker {
    position: relative;
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 2px solid var(--sp-color-white);
    border-radius: 9px;
    background: var(--sp-color-white);
    box-shadow:
        0 0 0 1px rgb(var(--sp-rgb-ink) / 0.55),
        0 2px 7px rgb(var(--sp-rgb-ink) / 0.5);
    transition: var(--sp-motion-transition-control);
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-accessory-marker::after {
    position: absolute;
    bottom: -7px;
    left: 50%;
    width: 10px;
    height: 10px;
    border-right: 1px solid rgb(var(--sp-rgb-ink) / 0.55);
    border-bottom: 1px solid rgb(var(--sp-rgb-ink) / 0.55);
    background: var(--sp-color-white);
    content: "";
    transform: translateX(-50%) rotate(45deg);
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-accessory-marker img {
    position: relative;
    z-index: 1;
    width: 32px;
    height: 32px;
    object-fit: contain;
    pointer-events: none;
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-location-icon-wrapper.is-selected .site-overhead-accessory-marker {
    box-shadow:
        0 0 0 4px var(--sp-color-accent),
        0 3px 10px rgb(var(--sp-rgb-ink) / 0.65);
    transform: scale(1.08);
}

.site-overhead-view[b-uczam4rs1b]  .site-overhead-icon-count {
    position: absolute;
    top: -8px;
    right: -10px;
    z-index: 2;
    min-width: 22px;
    padding: 1px 5px;
    border: 2px solid var(--sp-color-white);
    border-radius: 999px;
    background: rgb(var(--sp-rgb-ink) / 0.92);
    color: var(--sp-color-white);
    font-size: 11px;
    font-weight: 900;
    line-height: 16px;
    text-align: center;
    pointer-events: none;
}

.site-overhead-view[b-uczam4rs1b]  .leaflet-tooltip {
    border: 1px solid var(--sp-color-border-strong);
    border-radius: 6px;
    color: var(--sp-color-ink);
    font-size: 11px;
    font-weight: 850;
}

.site-overhead-map[b-uczam4rs1b] .site-overhead-synthetic-canvas,
.site-overhead-synthetic-canvas[b-uczam4rs1b] {
    background-color: var(--surface-muted, #e2e8f0);
    background-image:
        linear-gradient(#94a3b833 1px, transparent 1px), linear-gradient(90deg, #94a3b833 1px, transparent 1px);
    background-size: 32px 32px;
}

.site-overhead-map-workspace.is-unavailable .site-overhead-map[b-uczam4rs1b] {
    display: none;
}
.site-overhead-unavailable[b-uczam4rs1b] {
    display: grid;
    justify-items: center;
    gap: var(--sp-space-2);
    padding: var(--sp-space-5) var(--sp-space-4);
    text-align: center;
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink-muted);
}
.site-overhead-unavailable[b-uczam4rs1b]  svg {
    width: 1.75rem;
    height: 1.75rem;
    color: var(--sp-color-ink-muted);
}
.site-overhead-unavailable strong[b-uczam4rs1b] {
    color: var(--sp-color-ink);
    font-size: 0.875rem;
    font-weight: 600;
}
.site-overhead-unavailable p[b-uczam4rs1b] {
    max-width: 38rem;
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.5;
}
/* /Components/Features/Sites/Overhead/SiteQuickViewPanel.razor.rz.scp.css */
.site-window-host[b-pbvqpml4s6]  .site-quick-window .modal-dialog {
    max-width: 900px;
    width: calc(100% - 32px);
    height: calc(100vh - 32px);
    height: calc(100dvh - 32px);
    min-height: 0;
    margin: 16px auto;
}
.site-window-host[b-pbvqpml4s6]  .site-quick-panel {
    border: 1px solid var(--sp-color-border);
    border-radius: 14px;
    background: var(--sp-color-surface);
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    overflow: hidden;
}
.site-window-host[b-pbvqpml4s6]  .site-quick-body {
    padding: 0;
}
.site-window-host[b-pbvqpml4s6]  .site-quick-fullscreen .modal-dialog {
    width: 100%;
    max-width: none;
    margin: 0;
    height: 100vh;
    height: 100dvh;
}
.site-window-host[b-pbvqpml4s6]  .site-quick-fullscreen .site-quick-panel {
    border: 0;
    border-radius: 0;
    max-height: none;
    height: 100vh;
    height: 100dvh;
}

.site-window-host[b-pbvqpml4s6]  .site-quick-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-space-3);
    flex-shrink: 0;
    padding: var(--sp-space-2) var(--sp-space-3);
    border-bottom: 1px solid var(--sp-color-border);
    background: var(--sp-color-surface);
}
/* The title takes the free width, so Pop to screen and the shared close X stay together on the right. */
.site-quick-title[b-pbvqpml4s6] {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--sp-color-ink-muted);
}
@media (max-width: 600px) {
    .site-window-host[b-pbvqpml4s6]  .site-quick-window .modal-dialog {
        width: calc(100% - 12px);
        height: calc(100dvh - 12px);
        margin: 6px auto;
    }
    .site-window-host[b-pbvqpml4s6]  .site-quick-window .site-quick-panel {
        max-height: calc(100dvh - 12px);
    }
}
/* /Components/Layout/Feedback/AdminSessionExpiryBanner.razor.rz.scp.css */
.admin-session-expiry-banner[b-u73i514w8j] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-space-2) var(--sp-space-3);
    margin: var(--sp-space-2) var(--sp-space-4) 0;
    padding: var(--sp-space-2) var(--sp-space-3);
    border: 1px solid var(--sp-color-warning-strong);
    border-radius: var(--sp-radius-md);
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-warning-strong);
    font-size: var(--sp-font-size-sm);
}

.admin-session-expiry-icon[b-u73i514w8j] {
    display: inline-flex;
}

.admin-session-expiry-text[b-u73i514w8j] {
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 600;
}

.admin-session-expiry-action[b-u73i514w8j] {
    border: 0;
    padding: 0;
    background: none;
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}
/* /Components/Layout/Feedback/MessagingTestModeBanner.razor.rz.scp.css */
.messaging-test-mode-banner[b-limalqcxrn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-space-2) var(--sp-space-3);
    margin: var(--sp-space-2) var(--sp-space-4) 0;
    padding: var(--sp-space-2) var(--sp-space-3);
    border: 1px solid var(--sp-color-warning-strong);
    border-radius: var(--sp-radius-md);
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-warning-strong);
    font-size: var(--sp-font-size-sm);
}

.messaging-test-mode-icon[b-limalqcxrn] {
    display: inline-flex;
}

.messaging-test-mode-lines[b-limalqcxrn] {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: var(--sp-space-1) var(--sp-space-3);
    min-width: 0;
}

.messaging-test-mode-banner a[b-limalqcxrn] {
    color: inherit;
    font-weight: 700;
}
/* /Components/Layout/Feedback/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-8age0pz1a0],
.components-reconnect-repeated-attempt-visible[b-8age0pz1a0],
.components-reconnect-failed-visible[b-8age0pz1a0],
.components-pause-visible[b-8age0pz1a0],
.components-resume-failed-visible[b-8age0pz1a0],
.components-rejoining-animation[b-8age0pz1a0] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-8age0pz1a0],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-8age0pz1a0],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-8age0pz1a0],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-8age0pz1a0],
#components-reconnect-modal.components-reconnect-retrying[b-8age0pz1a0],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-8age0pz1a0],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-8age0pz1a0],
#components-reconnect-modal.components-reconnect-failed[b-8age0pz1a0],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-8age0pz1a0] {
    display: block;
}

#components-reconnect-modal[b-8age0pz1a0] {
    background-color: var(--sp-color-surface);
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgb(var(--sp-rgb-black) / 0.3);
    opacity: 0;
    transition:
        display var(--sp-motion-duration-exit) allow-discrete,
        overlay var(--sp-motion-duration-exit) allow-discrete;
    animation: var(--sp-motion-fade-out);
    /* The entrance animation fills backwards only, so the open dialog needs its own resting opacity; without it the
       dialog fades back to the closed state's opacity 0 while its backdrop keeps blocking the page. */
    &[open] {
        opacity: 1;
        animation: var(--sp-motion-dialog-in);
    }
}

#components-reconnect-modal[b-8age0pz1a0]::backdrop {
    background-color: rgb(var(--sp-rgb-black) / 0.4);
    animation: var(--sp-motion-fade-in);
    opacity: 1;
}

.components-reconnect-container[b-8age0pz1a0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-8age0pz1a0] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-8age0pz1a0] {
    border: 0;
    background-color: var(--sp-color-info);
    color: var(--sp-color-white);
    padding: 4px 24px;
    border-radius: 4px;
}

#components-reconnect-modal button:hover[b-8age0pz1a0] {
    background-color: var(--sp-color-info);
}

#components-reconnect-modal button:active[b-8age0pz1a0] {
    background-color: var(--sp-color-info);
}

.components-rejoining-animation[b-8age0pz1a0] {
    position: relative;
    width: 80px;
    height: 80px;
}

.components-rejoining-animation div[b-8age0pz1a0] {
    position: absolute;
    border: 3px solid var(--sp-color-brand);
    opacity: 1;
    border-radius: 50%;
    animation: components-rejoining-animation-b-8age0pz1a0 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}

.components-rejoining-animation div:nth-child(2)[b-8age0pz1a0] {
    animation-delay: -0.5s;
}

@keyframes components-rejoining-animation-b-8age0pz1a0 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Layout/Feedback/ToastHost.razor.rz.scp.css */
.toast-viewport[b-sa9aw0e6m2] {
    position: fixed;
    right: 18px;
    bottom: calc(18px + var(--sp-fixed-action-bar-height, 0px));
    z-index: 30000;
    display: grid;
    gap: 8px;
    width: min(390px, calc(100vw - 36px));
    pointer-events: none;
}

/* Toasts never cover an open overlay's controls. An open modal keeps them under its backdrop until it closes, and an
   open side drawer moves them beside it on wide screens.
   Page modals render inside the isolated .app-layout, so their backdrop's z-index only counts within the shell; the
   viewport, a sibling of the shell, therefore drops below the whole shell layer rather than just below 2500. */
:root:has(.ui-modal-backdrop) .toast-viewport[b-sa9aw0e6m2] {
    z-index: -1;
}

/* Toasts sit at the bottom right on every screen, clear of the page header and its actions. A page with a fixed
   bottom action bar (marked data-fixed-action-bar) or a sticky one (ui-sticky-action-bar) lifts them above it. */
:root:has([data-fixed-action-bar], .ui-sticky-action-bar) .toast-viewport[b-sa9aw0e6m2] {
    --sp-fixed-action-bar-height: 5.5rem;
}

@media (min-width: 900px) {
    :root:has(.operations-board-drawer) .toast-viewport[b-sa9aw0e6m2] {
        right: calc(430px + 18px);
    }
}

.ui-toast[b-sa9aw0e6m2] {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto 24px;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    padding: 10px 10px 10px 12px;
    border: 1px solid var(--sp-color-border);
    border-left: 4px solid var(--sp-color-brand);
    border-radius: var(--sp-radius-md);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
    box-shadow: var(--sp-shadow-md);
    font-size: var(--sp-font-size-sm);
    font-weight: 650;
    line-height: var(--sp-line-height-body);
    /* A click on a toast lands on the toast, never on a control hidden beneath it. */
    pointer-events: auto;
    overflow-wrap: anywhere;
}

.ui-toast-success[b-sa9aw0e6m2] {
    border-left-color: var(--sp-color-success);
    background: var(--sp-color-success-soft);
    color: var(--sp-color-success);
}

.ui-toast-warning[b-sa9aw0e6m2] {
    border-left-color: var(--sp-color-warning);
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-warning);
}

.ui-toast-error[b-sa9aw0e6m2] {
    border-left-color: var(--sp-color-danger);
    background: var(--sp-color-danger-soft);
    color: var(--sp-color-danger);
}

.ui-toast-info[b-sa9aw0e6m2] {
    border-left-color: var(--sp-color-brand);
    background: var(--sp-color-brand-soft);
    color: var(--sp-color-brand-strong);
}

.ui-toast-icon[b-sa9aw0e6m2] {
    display: inline-grid;
    width: 28px;
    height: 28px;
    place-items: center;
    color: inherit;
}

.ui-toast-icon-svg[b-sa9aw0e6m2] {
    display: block;
    width: 26px;
    height: 26px;
}

.ui-toast-message[b-sa9aw0e6m2] {
    min-width: 0;
}

.ui-toast-action[b-sa9aw0e6m2] {
    min-height: 30px;
    padding: 4px 9px;
    border: 1px solid currentColor;
    border-radius: 6px;
    background: transparent;
    color: inherit;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
    cursor: pointer;
}

.ui-toast-action:hover[b-sa9aw0e6m2],
.ui-toast-action:focus-visible[b-sa9aw0e6m2] {
    background: color-mix(in srgb, currentColor 12%, transparent);
}

.ui-toast-action:focus-visible[b-sa9aw0e6m2],
.ui-toast-dismiss:focus-visible[b-sa9aw0e6m2] {
    outline: 2px solid currentColor;
    outline-offset: 1px;
}

.ui-toast-dismiss[b-sa9aw0e6m2] {
    display: inline-grid;
    width: 24px;
    height: 24px;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: currentColor;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    opacity: 0.72;
}

/* Touch screens get the shared 44px dismiss target; the row grows to hold it. */
@media (pointer: coarse) {
    .ui-toast[b-sa9aw0e6m2] {
        grid-template-columns: 28px minmax(0, 1fr) auto var(--sp-control-height-touch);
    }

    .ui-toast-dismiss[b-sa9aw0e6m2] {
        width: var(--sp-control-height-touch);
        height: var(--sp-control-height-touch);
    }
}

.ui-toast-dismiss:hover[b-sa9aw0e6m2],
.ui-toast-dismiss:focus-visible[b-sa9aw0e6m2] {
    background: color-mix(in srgb, currentColor 12%, transparent);
    opacity: 1;
}

/* Toasts arrive from the viewport edge they are pinned to and leave the same
   way; keyed rendering keeps toasts already on screen from replaying it. */
.ui-toast[b-sa9aw0e6m2] {
    animation: var(--sp-motion-notify-in);
}

.ui-toast.is-closing[b-sa9aw0e6m2] {
    animation: var(--sp-motion-notify-out);
}

.ui-toast.is-closing[b-sa9aw0e6m2],
.ui-toast.is-closing :is(.ui-toast-action, .ui-toast-dismiss)[b-sa9aw0e6m2] {
    pointer-events: none;
}

/* The dismiss button keeps the last column whether or not an action precedes it. */
.ui-toast-dismiss[b-sa9aw0e6m2] {
    grid-column: -2;
}

.toast-more-count[b-sa9aw0e6m2] {
    display: none;
}

/* Phones keep toasts at the bottom edge, in the thumb zone, above the safe area and any fixed bottom action bar. Only
   the newest toast shows; "+n more" counts the ones behind it. */
@media (max-width: 700px), (max-height: 500px) and (pointer: coarse) {
    .toast-viewport[b-sa9aw0e6m2],
    :root:has(.operations-board-drawer) .toast-viewport[b-sa9aw0e6m2] {
        top: auto;
        right: 10px;
        bottom: calc(max(10px, env(safe-area-inset-bottom)) + var(--sp-fixed-action-bar-height, 0px));
        width: min(390px, calc(100vw - 20px));
    }

    .toast-viewport > .ui-toast ~ .ui-toast[b-sa9aw0e6m2] {
        display: none;
    }

    .toast-more-count[b-sa9aw0e6m2] {
        display: block;
        justify-self: end;
        margin: 0;
        padding: 2px 10px;
        border: 1px solid var(--sp-color-border);
        border-radius: var(--sp-radius-pill);
        background: var(--sp-color-surface);
        color: var(--sp-color-ink-muted);
        box-shadow: var(--sp-shadow-md);
        font-size: var(--sp-font-size-sm);
        font-weight: 650;
    }
}

@media (pointer: coarse), (max-width: 700px) {
    .ui-toast[b-sa9aw0e6m2] {
        grid-template-columns: 28px minmax(0, 1fr) auto 2.75rem;
    }

    .ui-toast-action[b-sa9aw0e6m2] {
        min-height: 2.75rem;
    }

    .ui-toast-dismiss[b-sa9aw0e6m2] {
        width: 2.75rem;
        height: 2.75rem;
    }
}
/* /Components/Layout/Navigation/NavMenu.razor.rz.scp.css */
.ops-sidebar-nav[b-6pm7qe48ww] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: min(274px, calc(90vw - 26px));
    min-height: 0;
    height: 100%;
    overflow: hidden;
    color: var(--sp-color-sidebar-text);
    font-family: var(--sp-font-sans);
}

/* The tablet sidebar is 280px wide with 13px side padding (MainLayout.razor.css); the desktop 274px
   minimum would overflow it and clip the filter field and active row on the right. */
@media (min-width: 701px) and (max-width: 1180px) and (min-height: 501px),
    (min-width: 701px) and (max-width: 1180px) and (pointer: fine),
    (min-width: 701px) and (max-width: 1180px) and (pointer: none) {
    .ops-sidebar-nav[b-6pm7qe48ww] {
        min-width: 254px;
    }
}

.ops-sidebar-intro[b-6pm7qe48ww] {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    margin: 0 42px 15px 3px;
    padding: 0 0 14px;
    border-bottom: 1px solid rgb(var(--sp-rgb-white) / 0.14);
}

.ops-sidebar-mark[b-6pm7qe48ww] {
    display: grid;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid rgb(var(--sp-rgb-white) / 0.18);
    border-radius: 10px;
    background: var(--sp-color-brand);
    color: var(--sp-color-white);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: -0.06em;
}

.ops-sidebar-identity[b-6pm7qe48ww] {
    display: grid;
    min-width: 0;
    gap: 3px;
    line-height: 1;
}

.ops-sidebar-identity strong[b-6pm7qe48ww] {
    font-size: 13px;
    letter-spacing: 0.01em;
}

.ops-sidebar-identity small[b-6pm7qe48ww] {
    color: var(--sp-color-sidebar-muted);
    font-size: 10px;
    font-weight: 600;
}

.ops-sidebar-search[b-6pm7qe48ww] {
    --sp-search-surface: var(--sp-color-sidebar-raised);
    --bs-body-bg: var(--sp-color-sidebar-raised);
    --bs-body-color: var(--sp-color-white);
    --bs-border-color: rgb(var(--sp-rgb-white) / 0.26);
    --bs-secondary-color: var(--sp-color-sidebar-muted);
    --bs-primary: rgb(var(--sp-rgb-brand-bright));
    flex: 0 0 auto;
    margin: 0 2px 12px;
}

.ops-sidebar-search[b-6pm7qe48ww]  .ui-search .ui-search-input {
    color: var(--sp-color-white);
}

.ops-sidebar-search[b-6pm7qe48ww]  .ui-search-input::placeholder,
.ops-sidebar-search[b-6pm7qe48ww]  .ui-search-icon {
    color: var(--sp-color-sidebar-muted);
    opacity: 1;
}

.ops-sidebar-search[b-6pm7qe48ww]  .ui-search-input:hover:not(:disabled):not(:focus) {
    border-color: rgb(var(--sp-rgb-brand-bright));
}

.ops-sidebar-search-empty[b-6pm7qe48ww] {
    padding: 16px 12px;
    color: var(--sp-color-sidebar-muted);
    font-size: 12px;
}

.ops-sidebar-menu-scroll[b-6pm7qe48ww] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 5px;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 2px 3px 28px 0;
    scrollbar-color: rgb(var(--sp-rgb-white) / 0.35) transparent;
    scrollbar-width: thin;
}

.ops-home-link[b-6pm7qe48ww],
.ops-nav-link[b-6pm7qe48ww],
.ops-nav-quick-link[b-6pm7qe48ww] {
    display: flex;
    align-items: center;
    min-width: 0;
    border-radius: 8px;
    color: var(--sp-color-sidebar-muted);
    line-height: 1.25;
    text-decoration: none;
    transition: var(--sp-motion-transition-control);
}

.ops-home-link[b-6pm7qe48ww],
.ops-nav-link[b-6pm7qe48ww] {
    gap: 10px;
    min-height: 38px;
    padding: 7px 10px;
    font-size: 12.5px;
    font-weight: 620;
}

.ops-sidebar-home[b-6pm7qe48ww] {
    flex: 0 0 auto;
    margin: 0 3px 9px 0;
    background: rgb(var(--sp-rgb-white) / 0.05);
    color: var(--sp-color-sidebar-text);
}

.ops-nav-icon[b-6pm7qe48ww] {
    display: grid;
    flex: 0 0 21px;
    width: 21px;
    place-items: center;
    color: var(--sp-color-sidebar-muted);
}

[b-6pm7qe48ww] .ops-nav-svg-icon {
    display: block;
    width: 20px;
    height: 20px;
}

.ops-nav-text[b-6pm7qe48ww] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.ops-home-link:hover[b-6pm7qe48ww],
.ops-nav-link:hover[b-6pm7qe48ww],
.ops-nav-quick-link:hover[b-6pm7qe48ww] {
    background: rgb(var(--sp-rgb-white) / 0.1);
    color: var(--sp-color-white);
    text-decoration: none;
}

.ops-home-link.active[b-6pm7qe48ww],
.ops-nav-link.active[b-6pm7qe48ww],
.ops-nav-quick-link.active[b-6pm7qe48ww] {
    background: rgb(var(--sp-rgb-brand-bright) / 0.22);
    color: var(--sp-color-white);
    box-shadow: inset 3px 0 0 rgb(var(--sp-rgb-brand-bright));
}

.ops-home-link.active .ops-nav-icon[b-6pm7qe48ww],
.ops-nav-link.active .ops-nav-icon[b-6pm7qe48ww],
.ops-nav-link:hover .ops-nav-icon[b-6pm7qe48ww] {
    color: var(--sp-color-white);
}

.ops-home-link:focus-visible[b-6pm7qe48ww],
.ops-nav-link:focus-visible[b-6pm7qe48ww],
.ops-nav-heading:focus-visible[b-6pm7qe48ww],
.ops-nav-quick-toggle:focus-visible[b-6pm7qe48ww],
.ops-nav-quick-link:focus-visible[b-6pm7qe48ww] {
    outline: 2px solid rgb(var(--sp-rgb-brand-bright));
    outline-offset: -2px;
}

.ops-nav-section[b-6pm7qe48ww] {
    padding: 4px 0 6px;
    border-bottom: 1px solid rgb(var(--sp-rgb-white) / 0.1);
}

.ops-nav-section-last[b-6pm7qe48ww] {
    border-bottom: 0;
}

.ops-nav-heading[b-6pm7qe48ww] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    min-height: 34px;
    margin: 0;
    padding: 5px 9px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--sp-color-sidebar-muted);
    font-family: inherit;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.095em;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
}

.ops-nav-heading:hover[b-6pm7qe48ww],
.ops-nav-quick-toggle:hover[b-6pm7qe48ww] {
    background: rgb(var(--sp-rgb-white) / 0.07);
    color: var(--sp-color-white);
}

.ops-nav-heading.is-current[b-6pm7qe48ww] {
    color: var(--sp-color-white);
}

.ops-nav-heading-text[b-6pm7qe48ww] {
    min-width: 0;
    text-transform: uppercase;
}

.ops-nav-heading-icon[b-6pm7qe48ww],
.ops-nav-heading-line[b-6pm7qe48ww] {
    display: none;
}

.ops-nav-chevron[b-6pm7qe48ww],
.ops-nav-quick-chevron[b-6pm7qe48ww] {
    margin-left: auto;
    color: var(--sp-color-sidebar-muted);
    font-size: 19px;
    font-weight: 500;
    line-height: 1;
    transform: rotate(0deg);
    transition: var(--sp-motion-transition-transform);
}

.ops-nav-chevron.is-expanded[b-6pm7qe48ww],
.ops-nav-quick-chevron.is-expanded[b-6pm7qe48ww] {
    transform: rotate(90deg);
}

.ops-nav-links[b-6pm7qe48ww],
.ops-nav-quick-links[b-6pm7qe48ww] {
    display: grid;
    gap: 2px;
    padding: 1px 0 2px 5px;
}

/* Collapsible sections use the shared ui-motion-collapse disclosure. Until
   the saved collapsed state has been restored, they switch without motion. */
.ops-sidebar-nav:not(.is-motion-ready) .ops-nav-collapse[b-6pm7qe48ww] {
    transition: none;
}

.ops-nav-link.is-create-link[b-6pm7qe48ww] {
    color: var(--sp-color-sidebar-subtle);
    font-size: 12px;
}

.ops-nav-link.is-create-link .ops-nav-icon[b-6pm7qe48ww] {
    color: var(--sp-color-sidebar-subtle);
}

.ops-nav-link.is-create-link.active[b-6pm7qe48ww],
.ops-nav-link.is-create-link.active .ops-nav-icon[b-6pm7qe48ww] {
    color: var(--sp-color-white);
}

.ops-nav-quick-section[b-6pm7qe48ww] {
    display: grid;
    gap: 3px;
    margin-bottom: 4px;
    padding: 2px 0 9px;
    border-bottom: 1px solid rgb(var(--sp-rgb-white) / 0.1);
}

.ops-nav-quick-heading[b-6pm7qe48ww] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 27px;
    padding: 4px 9px;
    color: var(--sp-color-sidebar-muted);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.095em;
    text-transform: uppercase;
}

.ops-nav-quick-heading-recent[b-6pm7qe48ww] {
    margin-top: 4px;
}

.ops-nav-quick-toggle[b-6pm7qe48ww] {
    width: 100%;
    border: 0;
    border-radius: 7px;
    background: transparent;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.ops-nav-quick-heading-icon[b-6pm7qe48ww],
.ops-nav-quick-link-icon[b-6pm7qe48ww] {
    display: grid;
    place-items: center;
    color: rgb(var(--sp-rgb-brand-bright));
}

.ops-nav-quick-heading-icon[b-6pm7qe48ww]  .ops-nav-svg-icon,
.ops-nav-quick-link-icon[b-6pm7qe48ww]  .ops-nav-svg-icon {
    width: 14px;
    height: 14px;
}

.ops-nav-quick-link[b-6pm7qe48ww] {
    gap: 10px;
    min-height: 32px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 600;
}

.ops-nav-quick-link-icon[b-6pm7qe48ww] {
    flex: 0 0 17px;
}

@media (pointer: coarse) {
    .ops-home-link[b-6pm7qe48ww],
    .ops-nav-link[b-6pm7qe48ww],
    .ops-nav-heading[b-6pm7qe48ww],
    .ops-nav-quick-link[b-6pm7qe48ww],
    .ops-nav-quick-toggle[b-6pm7qe48ww] {
        min-height: 44px;
    }
}
/* /Components/Layout/Navigation/NavWarningBadge.razor.rz.scp.css */
.ops-nav-warning-count[b-3uhhncvvge] {
    margin-left: auto;
    min-width: 18px;
    flex: 0 0 auto;
}
/* /Components/Layout/Shell/AppFatalErrorBanner.razor.rz.scp.css */
#blazor-error-ui[b-ya5ztxwiwc] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgb(var(--sp-rgb-black) / 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 30000;
}

#blazor-error-ui .dismiss[b-ya5ztxwiwc] {
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

html[data-theme="dark"] #blazor-error-ui[b-ya5ztxwiwc] {
    color-scheme: dark;
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-warning-text);
}

@media print {
    #blazor-error-ui[b-ya5ztxwiwc] {
        display: none;
    }
}
/* /Components/Layout/Shell/MainLayout.razor.rz.scp.css */
.app-layout[b-2g7xssvn51] {
    display: flex;
    min-height: 100vh;
    min-height: 100dvh;
    align-items: stretch;
}

.auth-theme-toggle[b-2g7xssvn51] {
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 1000;
}

.app-layout .app-sidebar[b-2g7xssvn51] {
    width: 300px;
    min-width: 300px;
    height: 100vh;
    height: 100dvh;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    box-sizing: border-box;
    padding: 14px 13px 10px;
    overflow: hidden;
    background: var(--sp-color-sidebar);
    border-right: 1px solid rgb(var(--sp-rgb-white) / 0.1);
    box-shadow: 4px 0 18px rgb(var(--sp-rgb-black) / 0.15);
    /* No insertion animation: only explicit navigation state changes transition. */
}

/* The skip link focuses the main region; a programmatic focus target needs no outline. */
.app-main:focus[b-2g7xssvn51] {
    outline: none;
}

.app-main[b-2g7xssvn51] {
    min-width: 0;
    padding: 0;
}

.workspace-body[b-2g7xssvn51] {
    max-width: 100%;
    padding: 14px 16px 22px;
}

.navigation-toggle[b-2g7xssvn51] {
    border: 1px solid rgb(var(--sp-rgb-white) / 0.28);
    border-radius: 8px;
    background: var(--sp-color-sidebar-raised);
    color: var(--sp-color-white);
    font-family: inherit;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
    z-index: 1100;
}

.navigation-toggle:hover[b-2g7xssvn51],
.navigation-toggle:focus-visible[b-2g7xssvn51] {
    background: var(--sp-color-sidebar-raised);
}

/* The toggles change fill only slightly on focus, so keyboard focus also gets
   the brand outline in both themes. */
.navigation-toggle:focus-visible[b-2g7xssvn51] {
    outline: 2px solid var(--sp-color-brand);
    outline-offset: 2px;
}

.navigation-toggle-close[b-2g7xssvn51] {
    position: absolute;
    top: 15px;
    right: 13px;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    padding: 0;
    font-size: 22px;
}

.navigation-toggle-open[b-2g7xssvn51] {
    position: fixed;
    top: 82px;
    left: 11px;
    width: 42px;
    height: 40px;
    border-color: var(--sp-color-border-strong);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
    box-shadow: var(--sp-shadow-md);
    font-size: 19px;
    display: grid;
    place-items: center;
    padding: 0;
}

.navigation-toggle span[b-2g7xssvn51] {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    line-height: 0;
}

.navigation-toggle svg[b-2g7xssvn51] {
    display: block;
    flex: 0 0 auto;
}

.navigation-scrim[b-2g7xssvn51] {
    display: none;
}

.app-layout.navigation-collapsed .app-sidebar[b-2g7xssvn51] {
    width: 0;
    min-width: 0;
    padding: 0;
    border: 0;
    overflow: hidden;
    box-shadow: none;
    transform: translateX(-18px);
    visibility: hidden;
    pointer-events: none;
}

@media (max-width: 1180px) {
    .app-layout .app-sidebar[b-2g7xssvn51] {
        width: 280px;
        min-width: 280px;
    }
}

/* The phone shell (navigation drawer, one-row pinned header) covers narrow windows and short touch screens such
   as a phone in landscape. The same condition is used by WorkspaceHeader.razor.css, UserAccountMenu.razor.css,
   design-tokens.css and ClientScripts/shared/phoneShell.ts; the desktop rules below use its complement. */
@media (max-width: 700px), (max-height: 500px) and (pointer: coarse) {
    .app-layout[b-2g7xssvn51] {
        display: flex;
        flex-direction: row;
        width: 100%;
        min-width: 0;
    }

    .app-layout .app-main[b-2g7xssvn51] {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
    }

    .app-layout .app-sidebar[b-2g7xssvn51] {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 2100;
        width: min(310px, 90vw);
        min-width: min(310px, 90vw);
        height: 100vh;
        height: 100dvh;
        min-height: 100vh;
        min-height: 100dvh;
        overflow: hidden;
        box-shadow: 8px 0 26px rgb(var(--sp-rgb-black) / 0.38);
    }

    .navigation-scrim[b-2g7xssvn51] {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 2000;
        width: 100%;
        height: 100%;
        border: 0;
        background: rgb(var(--sp-rgb-ink) / 0.55);
        cursor: pointer;
        touch-action: none;
        overscroll-behavior: contain;
        animation: var(--sp-motion-fade-in);
    }

    .app-layout.navigation-collapsed .app-sidebar[b-2g7xssvn51] {
        display: flex;
        width: min(310px, 90vw);
        min-width: min(310px, 90vw);
        transform: translateX(-105%);
        visibility: hidden;
        pointer-events: none;
        transition: var(--sp-motion-transition-conceal);
    }

    .app-layout:not(.navigation-collapsed) .app-sidebar[b-2g7xssvn51] {
        visibility: visible;
        pointer-events: auto;
        transition: var(--sp-motion-transition-reveal);
    }

    .app-layout .navigation-toggle-close[b-2g7xssvn51],
    .app-layout .navigation-toggle-open[b-2g7xssvn51] {
        z-index: 2200;
    }
    .workspace-body[b-2g7xssvn51] {
        padding: 10px 9px 18px;
    }

    .navigation-toggle-open[b-2g7xssvn51] {
        display: grid;
        top: 7px;
        left: 9px;
        z-index: 1700;
    }
}
.navigation-toggle-open[b-2g7xssvn51] {
    top: 7px;
}

.navigation-toggle[b-2g7xssvn51] {
    border-radius: 6px;
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
    font-family: var(--sp-font-sans);
    text-shadow: none;
    box-shadow: none;
}

.navigation-toggle:hover[b-2g7xssvn51],
.navigation-toggle:focus-visible[b-2g7xssvn51] {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-brand-soft);
    color: var(--sp-color-ink);
}

@media print {
    /* Matches the specificity of the screen rule that makes the sidebar flex. */
    .app-layout .app-sidebar[b-2g7xssvn51],
    .navigation-toggle[b-2g7xssvn51] {
        display: none;
    }

    .app-layout[b-2g7xssvn51],
    .app-main[b-2g7xssvn51],
    .app-content[b-2g7xssvn51],
    .workspace-body[b-2g7xssvn51] {
        display: block;
        width: 100%;
        max-width: none;
        min-width: 0;
        margin: 0;
        padding: 0;
        overflow: visible;
    }
}

.auth-shell[b-2g7xssvn51] {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--sp-space-8) var(--sp-space-4);
    background: var(--sp-color-canvas);
}

/* The close control sits on the dark navigation surface, so it should read as
   an intentional brand control in both themes rather than a pale utility. */
.app-sidebar .navigation-toggle-close[b-2g7xssvn51] {
    border-color: var(--sp-color-brand-strong);
    background: var(--sp-color-brand-strong);
    color: var(--sp-color-canvas);
    box-shadow: 0 4px 14px rgb(var(--sp-rgb-ink) / 0.34);
}

/* The close control is a direct sidebar child, separate from the only
   scrollable navigation list, and remains visible beside its scrollbar. */
.app-layout .app-sidebar > .navigation-toggle-close[b-2g7xssvn51] {
    right: 13px;
    z-index: 1;
}

.app-sidebar .navigation-toggle-close:hover[b-2g7xssvn51],
.app-sidebar .navigation-toggle-close:focus-visible[b-2g7xssvn51] {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-brand);
    color: var(--sp-color-canvas);
}

/* Keep the sidebar controls on the same 38px hit-area contract as the
   header actions and the inline Tutorial launcher. */
.navigation-toggle-close[b-2g7xssvn51],
.navigation-toggle-open[b-2g7xssvn51] {
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
    box-sizing: border-box;
    display: grid;
    place-items: center;
    padding: 0;
}
.navigation-toggle-open[b-2g7xssvn51] {
    border-color: var(--sp-color-brand-strong);
    background-color: var(--sp-color-brand-strong);
    color: var(--sp-color-canvas);
}

.navigation-toggle-open:hover[b-2g7xssvn51],
.navigation-toggle-open:focus-visible[b-2g7xssvn51] {
    border-color: var(--sp-color-brand);
    background-color: var(--sp-color-brand);
    color: var(--sp-color-canvas);
}
/* Keep the search control visually centred between equal flexible title and
   action rails while giving it room for the full search hint. */

@media (max-width: 700px), (max-height: 500px) and (pointer: coarse) {
    .navigation-toggle-close[b-2g7xssvn51],
    .navigation-toggle-open[b-2g7xssvn51] {
        width: 36px;
        min-width: 36px;
        height: 36px;
        min-height: 36px;
    }
}

/* Phone drawer and menu button. Dynamic viewport units keep the drawer's
   last links above mobile browser toolbars; the open button lines up with
   the first row of the pinned phone header (WorkspaceHeader.razor.css). */
@media (max-width: 700px), (max-height: 500px) and (pointer: coarse) {
    .app-layout .app-sidebar[b-2g7xssvn51] {
        height: 100dvh;
        min-height: 100dvh;
        padding-bottom: max(10px, env(safe-area-inset-bottom));
        overscroll-behavior: contain;
    }

    .app-layout > .navigation-toggle.navigation-toggle-open[b-2g7xssvn51] {
        top: 0.3125rem;
    }
}

@media (max-width: 700px) and (pointer: coarse), (max-height: 500px) and (pointer: coarse) {
    .app-layout > .navigation-toggle.navigation-toggle-open[b-2g7xssvn51],
    .app-layout .app-sidebar > .navigation-toggle.navigation-toggle-close[b-2g7xssvn51] {
        width: 2.75rem;
        min-width: 2.75rem;
        height: 2.75rem;
        min-height: 2.75rem;
    }
}

/* Reserve the locally known desktop geometry before the circuit restores the
   account preference. Phone navigation is an overlay and needs no reservation. */
@media (min-width: 701px) and (min-height: 501px),
    (min-width: 701px) and (pointer: fine),
    (min-width: 701px) and (pointer: none) {
    html:not([data-navigation-collapsed="true"]) .app-layout.navigation-state-loading .app-sidebar[b-2g7xssvn51] {
        width: 300px;
        min-width: 300px;
        padding: 16px 13px 10px;
        transform: none;
        transition: none;
    }
}

@media (min-width: 701px) and (max-width: 1180px) and (min-height: 501px),
    (min-width: 701px) and (max-width: 1180px) and (pointer: fine),
    (min-width: 701px) and (max-width: 1180px) and (pointer: none) {
    html:not([data-navigation-collapsed="true"]) .app-layout.navigation-state-loading .app-sidebar[b-2g7xssvn51] {
        width: 280px;
        min-width: 280px;
    }
}

/* Change the desktop track once, then animate only the composited sidebar.
   Interpolating the track forces every table/map to lay out on every frame. */
@media (min-width: 701px) and (min-height: 501px),
    (min-width: 701px) and (pointer: fine),
    (min-width: 701px) and (pointer: none) {
    .app-layout[b-2g7xssvn51] {
        --navigation-panel-width: 300px;
    }
    .app-layout .app-sidebar[b-2g7xssvn51],
    .app-layout.navigation-collapsed .app-sidebar[b-2g7xssvn51] {
        flex-shrink: 0;
        will-change: transform;
        z-index: 1000;
        width: var(--navigation-panel-width);
        min-width: var(--navigation-panel-width);
        padding: 14px 13px 10px;
        border-right: 1px solid rgb(var(--sp-rgb-white) / 0.1);
        transition: var(--sp-motion-transition-sidebar-open);
    }
    .app-layout:not(.navigation-collapsed) .app-sidebar[b-2g7xssvn51] {
        margin-right: 0;
        transform: translate3d(0, 0, 0);
        opacity: 1;
        visibility: visible;
    }
    .app-layout.navigation-collapsed .app-sidebar[b-2g7xssvn51] {
        margin-right: calc(-1 * var(--navigation-panel-width));
        transform: translate3d(-100%, 0, 0);
        opacity: 0;
        transition: var(--sp-motion-transition-sidebar-close);
    }
    .app-layout.navigation-state-loading .app-sidebar[b-2g7xssvn51] {
        transition: none;
    }
    html:not([data-navigation-collapsed="true"]) .app-layout.navigation-state-loading .app-sidebar[b-2g7xssvn51] {
        margin-right: 0;
        opacity: 1;
    }
}
@media (min-width: 701px) and (max-width: 1180px) and (min-height: 501px),
    (min-width: 701px) and (max-width: 1180px) and (pointer: fine),
    (min-width: 701px) and (max-width: 1180px) and (pointer: none) {
    .app-layout[b-2g7xssvn51] {
        --navigation-panel-width: 280px;
    }
}
@media (max-width: 700px), (max-height: 500px) and (pointer: coarse) {
    .app-layout .app-sidebar[b-2g7xssvn51],
    .app-layout:not(.navigation-collapsed) .app-sidebar[b-2g7xssvn51],
    .app-layout.navigation-collapsed .app-sidebar[b-2g7xssvn51] {
        padding: 14px 13px max(10px, env(safe-area-inset-bottom));
        border-right: 1px solid rgb(var(--sp-rgb-white) / 0.1);
        transition: var(--sp-motion-transition-sidebar-open);
    }
    .app-layout.navigation-collapsed .app-sidebar[b-2g7xssvn51] {
        transition: var(--sp-motion-transition-sidebar-close);
    }
    .app-layout .navigation-scrim[b-2g7xssvn51] {
        animation: none;
        opacity: 1;
        visibility: visible;
        transition: var(--sp-motion-transition-sidebar-open);
    }
    .app-layout.navigation-collapsed .navigation-scrim[b-2g7xssvn51] {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: var(--sp-motion-transition-sidebar-close);
    }
    .app-layout.navigation-state-loading .app-sidebar[b-2g7xssvn51],
    .app-layout.navigation-state-loading .navigation-scrim[b-2g7xssvn51] {
        transition: none;
    }
}

/* A translated workspace must not create a temporary horizontal scrollbar. */
.app-layout[b-2g7xssvn51] {
    overflow-x: clip;
}

/* Sign-in card rendered by the authentication pages inside the auth shell. */
[b-2g7xssvn51] .auth-card {
    width: 100%;
    max-width: 440px;
    margin-inline: auto;
    padding: var(--sp-space-8) var(--sp-space-8) var(--sp-space-6);
    border: 1px solid var(--sp-color-border);
    border-radius: var(--sp-radius-lg);
    background: var(--sp-color-surface);
    box-shadow: var(--sp-shadow-sm);
}

[b-2g7xssvn51] .auth-card .auth-form {
    display: grid;
    gap: var(--sp-space-3);
    margin-bottom: var(--sp-space-3);
}

.auth-shell[b-2g7xssvn51]  .auth-brand {
    display: flex;
    align-items: center;
    gap: var(--sp-space-3);
    margin-bottom: var(--sp-space-5);
}

.auth-shell[b-2g7xssvn51]  .auth-brand-lockup {
    display: grid;
    gap: var(--sp-space-1);
}

.auth-shell[b-2g7xssvn51]  .auth-brand-logo {
    display: block;
    width: min(94px, 100%);
    height: auto;
}

.auth-shell[b-2g7xssvn51]  .auth-brand-subtitle {
    color: var(--sp-color-ink-muted);
    font-size: 0.75rem;
    font-weight: 600;
}

.auth-shell[b-2g7xssvn51]  .auth-card-title {
    margin: 0 0 var(--sp-space-2);
    color: var(--sp-color-ink-strong);
    font-size: 1.375rem;
    font-weight: 700;
}

.auth-shell[b-2g7xssvn51]  .auth-card-subtitle {
    margin: 0 0 var(--sp-space-5);
    color: var(--sp-color-ink-muted);
    font-size: 0.875rem;
    line-height: 1.5;
}

.auth-shell[b-2g7xssvn51]  .form-section {
    margin-bottom: 16px;
}

.auth-shell[b-2g7xssvn51]  .auth-form .form-section label {
    font-size: 0.8125rem;
}

.auth-shell[b-2g7xssvn51]  .auth-card-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-space-3);
    margin-top: var(--sp-space-5);
}

.auth-shell[b-2g7xssvn51]  .auth-card-actions .btn {
    font-size: 0.875rem;
}

.auth-shell[b-2g7xssvn51]  .auth-card-secondary-link {
    color: var(--sp-color-ink-muted);
    font-size: 0.8125rem;
    font-weight: 700;
    text-decoration: none;
}

/* Touch screens and narrow windows: the alternate sign-in actions are 44px
   targets. The vertical padding on the inline link inside an alert widens its
   hit area without changing the line box. */
@media (pointer: coarse), (max-width: 700px) {
    .auth-shell[b-2g7xssvn51]  .auth-card-secondary-link {
        display: inline-flex;
        align-items: center;
        min-height: var(--sp-control-height-touch);
    }

    .auth-shell[b-2g7xssvn51]  .alert a {
        padding-block: 0.9375rem;
    }
}

.auth-shell[b-2g7xssvn51]  .auth-card-secondary-link:hover {
    color: var(--sp-color-ink);
    text-decoration: underline;
}

.auth-shell[b-2g7xssvn51]  .auth-card-footer {
    margin-top: var(--sp-space-5);
    padding-top: var(--sp-space-4);
    border-top: 1px solid var(--sp-color-border-subtle);
    color: var(--sp-color-ink-muted);
    font-size: 0.8125rem;
    text-align: center;
}

.auth-shell[b-2g7xssvn51]  .auth-card-footer a {
    color: var(--sp-color-info-text);
    font-weight: 700;
    text-decoration: none;
}

.auth-shell[b-2g7xssvn51]  .auth-card-footer a:hover {
    text-decoration: underline;
}

/* Final shell adjustments. `:where()` offsets the scope attribute so each
   rule keeps the specificity it had as a global rule, and its place at the
   end of this file lets it win the same ties. */
:where(.app-layout) > .navigation-toggle.navigation-toggle-open[b-2g7xssvn51],
:where(.app-layout) .app-sidebar > .navigation-toggle.navigation-toggle-close[b-2g7xssvn51] {
    line-height: 1;
}

:where(.app-layout) .app-sidebar > .navigation-toggle.navigation-toggle-close[b-2g7xssvn51] {
    top: 10px;
    right: 10px;
}

:where(html[data-theme="dark"]) .navigation-toggle-open[b-2g7xssvn51] {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-brand-button);
    color: var(--sp-color-surface-info);
}

:where(html[data-theme="dark"]) .navigation-toggle-open svg[b-2g7xssvn51] {
    color: var(--sp-color-brand-text);
}

:where(html[data-theme="dark"]) .navigation-toggle[b-2g7xssvn51] {
    border-color: var(--sp-color-ink-muted);
    background: var(--sp-color-sidebar-raised);
}
/* /Components/Layout/Shell/PublicLayout.razor.rz.scp.css */
.public-layout[b-iw77kt9ajk] {
    min-height: 100vh;
    min-height: 100dvh;
    background: var(--sp-color-surface-muted);
    color: var(--sp-color-ink-strong);
}

.public-skip-link[b-iw77kt9ajk] {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 30000;
    transform: translateY(-180%);
    padding: 9px 12px;
    border-radius: 8px;
    background: var(--sp-color-accent);
    color: var(--sp-color-ink);
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    transition: var(--sp-motion-transition-transform);
}

.public-skip-link:focus[b-iw77kt9ajk] {
    transform: translateY(0);
    outline: 3px solid rgb(var(--sp-rgb-brand) / 0.35);
    outline-offset: 2px;
}

.public-header[b-iw77kt9ajk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px clamp(16px, 5vw, 44px);
    background: var(--sp-color-sidebar-raised);
    color: var(--sp-color-white);
    box-shadow: 0 5px 18px rgb(var(--sp-rgb-ink) / 0.22);
}

.public-header[b-iw77kt9ajk]  .page-tutorial-button {
    color: var(--sp-color-white);
}

/* Help shares the theme toggle's 38px box in the header row; touch and
   narrow screens enlarge both below. */
@media (min-width: 768px) and (pointer: fine) {
    .public-header-actions[b-iw77kt9ajk]  .page-tutorial-button {
        min-height: 38px;
    }
}

/* Touch screens keep the 44px header actions apart, outranking the narrow-screen 5px gap below. */
@media (pointer: coarse) {
    .public-layout .public-header-actions[b-iw77kt9ajk] {
        gap: 8px;
    }
}

html[data-theme="light"] .public-layout-contractor-signup[b-iw77kt9ajk] {
    background: var(--sp-color-surface-muted);
}

html[data-theme="light"] .public-layout-contractor-signup .public-header[b-iw77kt9ajk] {
    border-bottom: 1px solid var(--sp-color-border);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink-strong);
    box-shadow: 0 5px 18px rgb(var(--sp-rgb-ink) / 0.1);
}

html[data-theme="light"] .public-layout-contractor-signup .public-brand-subtitle[b-iw77kt9ajk] {
    color: var(--sp-color-ink-muted);
}

html[data-theme="light"] .public-layout-contractor-signup :is(.public-header-link, .public-header-icon-link)[b-iw77kt9ajk] {
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink-strong);
}

html[data-theme="light"]
    .public-layout-contractor-signup
    :is(.public-header-link, .public-header-icon-link):is(:hover, :focus-visible)[b-iw77kt9ajk] {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-surface-info);
    color: var(--sp-color-brand-strong);
}

html[data-theme="light"] .public-layout-contractor-signup[b-iw77kt9ajk]  .theme-toggle,
html[data-theme="light"] .public-layout-contractor-signup[b-iw77kt9ajk]  .page-tutorial-button {
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink-strong);
}

html[data-theme="light"] .public-layout-contractor-signup[b-iw77kt9ajk]  .theme-toggle:hover,
html[data-theme="light"] .public-layout-contractor-signup[b-iw77kt9ajk]  .theme-toggle:focus-visible,
html[data-theme="light"] .public-layout-contractor-signup[b-iw77kt9ajk]  .page-tutorial-button:hover,
html[data-theme="light"] .public-layout-contractor-signup[b-iw77kt9ajk]  .page-tutorial-button:focus-visible {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-surface-info);
    color: var(--sp-color-brand-strong);
}

.public-brand[b-iw77kt9ajk] {
    min-width: 0;
}

[b-iw77kt9ajk] .public-brand-logo {
    width: min(135px, 42vw);
    height: auto;
    padding: 4px 6px;
    border-radius: 8px;
    background: var(--sp-color-surface);
}

.public-brand-subtitle[b-iw77kt9ajk] {
    margin-top: 3px;
    color: var(--sp-color-border-strong);
    font-size: 13px;
    font-weight: 700;
}

.public-header-actions[b-iw77kt9ajk] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.public-header-link[b-iw77kt9ajk],
.public-header-icon-link[b-iw77kt9ajk] {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding: 8px 11px;
    border: 1px solid rgb(var(--sp-rgb-white) / 0.28);
    border-radius: 10px;
    color: var(--sp-color-white);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.public-header-icon-link[b-iw77kt9ajk] {
    width: 40px;
    justify-content: center;
    padding: 8px;
}

.public-header-link:hover[b-iw77kt9ajk],
.public-header-link:focus-visible[b-iw77kt9ajk],
.public-header-icon-link:hover[b-iw77kt9ajk],
.public-header-icon-link:focus-visible[b-iw77kt9ajk] {
    border-color: var(--sp-color-accent);
    background: rgb(var(--sp-rgb-white) / 0.12);
    color: var(--sp-color-white);
}

.public-header-link-secondary[b-iw77kt9ajk] {
    border-color: rgb(var(--sp-rgb-white) / 0.16);
    color: var(--sp-color-white);
}

.public-main[b-iw77kt9ajk] {
    width: min(980px, 100%);
    margin: 0 auto;
    padding: clamp(18px, 4vw, 38px) clamp(12px, 4vw, 28px) 48px;
}

.public-footer[b-iw77kt9ajk] {
    padding: 22px 16px 30px;
    color: var(--sp-color-ink-muted-strong);
    text-align: center;
    font-size: 13px;
    font-weight: 700;
}

.public-main > *[b-iw77kt9ajk] {
    min-width: 0;
}

.public-main:focus[b-iw77kt9ajk] {
    outline: none;
}

@media (max-width: 700px) {
    .public-layout[b-iw77kt9ajk] {
        overflow-x: clip;
    }

    .public-header[b-iw77kt9ajk] {
        position: relative;
        padding: 10px 14px;
    }

    [b-iw77kt9ajk] .public-brand-logo {
        width: min(135px, 42vw);
    }

    .public-brand-subtitle[b-iw77kt9ajk] {
        font-size: 12px;
    }

    .public-header-actions[b-iw77kt9ajk] {
        gap: 5px;
    }

    .public-header-link[b-iw77kt9ajk],
    .public-header-icon-link[b-iw77kt9ajk] {
        min-height: 36px;
        padding: 7px 8px;
        font-size: 11px;
    }

    .public-header-icon-link[b-iw77kt9ajk] {
        width: 36px;
        padding: 7px;
    }

    .public-header-link-secondary[b-iw77kt9ajk] {
        display: none;
    }

    .public-main[b-iw77kt9ajk] {
        width: 100%;
        padding: 20px 10px 32px;
        box-sizing: border-box;
    }

    .public-footer[b-iw77kt9ajk] {
        padding: 18px 12px 24px;
    }
}

@supports (padding: max(0px)) {
    .public-header[b-iw77kt9ajk] {
        padding-top: max(13px, env(safe-area-inset-top));
        padding-left: max(14px, env(safe-area-inset-left));
        padding-right: max(14px, env(safe-area-inset-right));
    }

    .public-main[b-iw77kt9ajk] {
        padding-left: max(10px, env(safe-area-inset-left));
        padding-right: max(10px, env(safe-area-inset-right));
    }

    .public-footer[b-iw77kt9ajk] {
        padding-bottom: max(24px, env(safe-area-inset-bottom));
    }
}

/* Phone header: the tutorial launcher is a 44px icon box like the theme
   toggle beside it; its label stays available to assistive technology. */
@media (max-width: 700px) {
    .public-header-actions[b-iw77kt9ajk] {
        gap: 8px;
    }

    .public-header[b-iw77kt9ajk]  .page-tutorial-button {
        position: relative;
        width: var(--sp-control-height-touch);
        min-width: var(--sp-control-height-touch);
        min-height: var(--sp-control-height-touch);
        justify-content: center;
        padding: 7px;
    }

    .public-header[b-iw77kt9ajk]  .page-tutorial-button > span:last-child {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
}

/* Touch screens get 44px header targets at every width, including landscape
   phones wider than the phone layout. These rules follow the phone rules above
   so they win at equal specificity. */
@media (pointer: coarse) {
    .public-header-link[b-iw77kt9ajk],
    .public-header-icon-link[b-iw77kt9ajk] {
        min-height: 2.75rem;
    }

    .public-header-icon-link[b-iw77kt9ajk],
    .public-header-actions[b-iw77kt9ajk]  .theme-toggle {
        width: 2.75rem;
        min-width: 2.75rem;
        height: 2.75rem;
        min-height: 2.75rem;
    }

    .public-header-actions[b-iw77kt9ajk]  .page-tutorial-button {
        min-width: 2.75rem;
        min-height: 2.75rem;
    }
}

@media (max-width: 700px) and (pointer: coarse) {
    .public-header-actions[b-iw77kt9ajk]  .page-tutorial-button {
        width: 2.75rem;
        height: 2.75rem;
    }
}

/* ---- Dark theme ---------------------------------------------------------- */

html[data-theme="dark"] .public-layout[b-iw77kt9ajk] {
    background:
        radial-gradient(circle at top right, rgb(var(--sp-rgb-info) / 0.1), transparent 34rem),
        linear-gradient(180deg, var(--sp-color-surface) 0%, var(--sp-color-canvas) 100%);
    color: var(--sp-color-ink);
}

html[data-theme="dark"] .public-header[b-iw77kt9ajk] {
    background: var(--sp-color-sidebar);
    color: var(--sp-color-ink);
}

html[data-theme="dark"] :is(.public-brand-subtitle, .public-footer)[b-iw77kt9ajk] {
    color: var(--sp-color-ink-muted);
}

html[data-theme="dark"] .public-skip-link[b-iw77kt9ajk] {
    background: var(--sp-color-warning-border);
    color: var(--sp-color-ink-dark);
}

/* Public page content keeps the specificity these rules had as global rules:
   `:where()` offsets the scope attribute that ::deep adds. */
/* The page header sits on the public canvas in both themes, so dark mode only
   swaps its ink; a surface fill here would paint an unpadded box behind the title. */
:where(html[data-theme="dark"]) .public-main[b-iw77kt9ajk]  .ui-page-header {
    color: var(--sp-color-ink);
}

:where(html[data-theme="dark"]) .public-main[b-iw77kt9ajk]  :is(.card-panel, .certification-box, .signature-box) {
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
}

:where(html[data-theme="dark"])
    .public-main[b-iw77kt9ajk]
    
    :is(.card-panel :is(h1, h2, h3, h4, p, label, small, strong), .ui-page-header :is(h1, p)) {
    color: inherit;
}

:where(html[data-theme="dark"])
    .public-main[b-iw77kt9ajk]
    
    :is(.card-panel p, .card-panel small, .ui-page-header p:not(.ui-eyebrow)) {
    color: var(--sp-color-ink-muted);
}

:where(html[data-theme="dark"]) .public-main[b-iw77kt9ajk]  .alert {
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink);
}

:where(html[data-theme="dark"]) .public-main[b-iw77kt9ajk]  .alert-warning {
    border-color: var(--sp-color-warning);
    background: var(--sp-color-warning-soft);
    color: var(--sp-color-warning);
}

:where(html[data-theme="dark"]) .public-main[b-iw77kt9ajk]  .alert-success {
    border-color: var(--sp-color-success);
    background: var(--sp-color-success-soft);
    color: var(--sp-color-success);
}

/* Failures keep their danger tint so they never read as a neutral card. */
:where(html[data-theme="dark"]) .public-main[b-iw77kt9ajk]  .alert-danger {
    border-color: var(--sp-color-danger-border);
    background: var(--sp-color-danger-soft);
    color: var(--sp-color-danger-strong);
}

:where(html[data-theme="dark"]) .public-main[b-iw77kt9ajk]  :is(input[type="file"], .form-control, .form-select) {
    border-color: var(--sp-color-border-strong);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink);
}

/* Public Sites is a narrow field lookup in the customer reference. Preserve
   the landmark, skip link and theme control without a second masthead. */
.public-layout-sites[b-iw77kt9ajk] {
    background: var(--sp-color-canvas);
}
.public-layout-sites .public-main[b-iw77kt9ajk] {
    width: min(560px, 100%);
    padding: 14px 12px 0;
}
.public-layout-sites .public-header[b-iw77kt9ajk] {
    position: absolute;
    inset: 6px 8px auto auto;
    padding: 0;
    background: transparent;
    box-shadow: none;
}
.public-layout-sites .public-brand[b-iw77kt9ajk],
.public-layout-sites .public-header-icon-link[b-iw77kt9ajk],
.public-layout-sites .public-header[b-iw77kt9ajk]  .page-tutorial-launcher {
    display: none;
}
/* Only the round theme control floats here: the dark header fill would
   otherwise paint a box behind it over the scrolling cards. */
html[data-theme="dark"] .public-layout-sites .public-header[b-iw77kt9ajk] {
    background: transparent;
}
.public-layout-sites .public-footer[b-iw77kt9ajk] {
    padding: 0 12px 40px;
    margin-top: 14px;
    font-size: 12px;
    font-weight: 400;
}

/* Public Sites owns its footer; keep theme access clear of its narrow topbar. */
.public-layout-sites .public-footer[b-iw77kt9ajk] {
    display: none;
}
.public-layout-sites .public-header[b-iw77kt9ajk] {
    position: fixed;
    inset: auto 12px 12px auto;
    z-index: 30;
}
/* Below about 700px the 560px column reaches the fixed theme control, so the
   page ends with room for it (control, its 12px offset and a 12px gap) and the
   last card and footer line scroll clear of it. */
@media (max-width: 700px) {
    .public-layout-sites .public-main[b-iw77kt9ajk] {
        padding-bottom: calc(2.75rem + 24px + env(safe-area-inset-bottom, 0px));
    }
    /* While a camera picture waits, the full-width Upload button scrolls past that
       corner, so the theme control steps aside until it is uploaded or removed. */
    .public-layout-sites:has(.public-site-photo-upload-button) .public-header[b-iw77kt9ajk] {
        display: none;
    }
    /* The site directory scrolls full-width rows under that corner, so a tap there toggled
       the theme instead of opening a site. While the directory shows, the control docks in
       the top row beside the search, which leaves it room, and scrolls away with the page.
       The full-width search card stacks at z-index 30 after the header, so the docked
       control sits one level above it or the card takes its taps. */
    .public-layout-sites:has(.public-site-search-card) .public-header[b-iw77kt9ajk] {
        position: absolute;
        inset: 14px 12px auto auto;
        z-index: 31;
    }
    .public-layout-sites:has(.public-site-search-card) .public-main[b-iw77kt9ajk] {
        padding-bottom: 0;
    }
    .public-layout-sites[b-iw77kt9ajk]  .public-site-search-card .public-site-search-shell {
        margin-right: 52px;
    }
}

/* Contractor, POC and operator field pages follow the customer screens: the
   page starts with its title on the pale canvas, theme and help stay in a small
   corner row, and the administrator link moves to the footer. Page content is
   styled by /styles/features/public/contractor-field.css. */
.public-layout.public-layout-field[b-iw77kt9ajk] {
    background: var(--sp-color-canvas);
}
.public-layout.public-layout-field .public-header[b-iw77kt9ajk] {
    position: static;
    justify-content: flex-end;
    padding: 8px clamp(16px, 4vw, 24px) 0;
    background: transparent;
    color: var(--sp-color-ink-strong);
    box-shadow: none;
}
.public-layout-field .public-brand[b-iw77kt9ajk],
.public-layout-field .public-header-icon-link[b-iw77kt9ajk] {
    display: none;
}
.public-layout-field .public-header[b-iw77kt9ajk]  :is(.theme-toggle, .page-tutorial-button) {
    border: 1px solid var(--sp-color-border);
    background: var(--sp-color-surface);
    color: var(--sp-color-ink-strong);
    box-shadow: var(--sp-shadow-sm);
}
.public-layout-field .public-header[b-iw77kt9ajk]  :is(.theme-toggle, .page-tutorial-button):is(:hover, :focus-visible) {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-surface-info);
    color: var(--sp-color-brand-text);
}
.public-layout.public-layout-field .public-main[b-iw77kt9ajk] {
    width: min(760px, 100%);
    box-sizing: border-box;
    padding: 4px 16px 32px;
}
.public-layout.public-layout-field .public-footer[b-iw77kt9ajk] {
    display: grid;
    justify-items: center;
    gap: 2px;
    padding: 8px 16px max(28px, env(safe-area-inset-bottom));
    color: var(--sp-color-ink-muted);
    font-size: 12px;
    font-weight: 400;
}
.public-footer-admin-link[b-iw77kt9ajk] {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    color: var(--sp-color-ink-muted-strong);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.public-footer-admin-link:is(:hover, :focus-visible)[b-iw77kt9ajk] {
    color: var(--sp-color-brand-text);
}
html[data-theme="dark"] .public-layout.public-layout-field .public-footer[b-iw77kt9ajk],
html[data-theme="dark"] .public-footer-admin-link[b-iw77kt9ajk] {
    color: var(--sp-color-ink-muted);
}
/* Phones: the field footer line and its sign-in link read at 14px. */
@media (max-width: 700px) {
    .public-layout.public-layout-field .public-footer[b-iw77kt9ajk] {
        font-size: 14px;
    }
}
@media (min-width: 640px) {
    .public-layout.public-layout-field .public-main[b-iw77kt9ajk] {
        padding: 8px 24px 40px;
    }
}

/* Published documents retain their brand and contents without portal controls. */
@media print {
    .public-layout[b-iw77kt9ajk],
    html[data-theme] .public-layout[b-iw77kt9ajk] {
        min-height: 0;
        background: white;
        color: black;
        overflow: visible;
    }

    .public-header-actions[b-iw77kt9ajk],
    .public-skip-link[b-iw77kt9ajk],
    .signup-help[b-iw77kt9ajk] {
        display: none;
    }

    .public-header[b-iw77kt9ajk],
    html[data-theme] .public-layout .public-header[b-iw77kt9ajk] {
        padding: 0 0 12px;
        background: white;
        color: black;
        box-shadow: none;
    }

    .public-brand-subtitle[b-iw77kt9ajk],
    .public-footer[b-iw77kt9ajk],
    html[data-theme] .public-layout :is(.public-brand-subtitle, .public-footer)[b-iw77kt9ajk] {
        color: black;
    }

    .public-main[b-iw77kt9ajk] {
        width: 100%;
        max-width: none;
        padding: 0;
        overflow: visible;
    }

    .public-main[b-iw77kt9ajk]  thead {
        display: table-header-group;
    }

    .public-main[b-iw77kt9ajk]  tr {
        break-inside: avoid;
    }
}
/* /Components/Layout/Shell/SkipToMainContentLink.razor.rz.scp.css */
.app-skip-link[b-mtbp8jxcn8] {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 30000;
    transform: translateY(-180%);
    padding: 9px 12px;
    border-radius: 8px;
    background: var(--sp-color-accent);
    color: var(--sp-color-ink);
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    transition: var(--sp-motion-transition-transform);
}

.app-skip-link:focus[b-mtbp8jxcn8] {
    transform: translateY(0);
    outline: 3px solid rgb(var(--sp-rgb-brand) / 0.35);
    outline-offset: 2px;
}

:where(html[data-theme="dark"]) .app-skip-link[b-mtbp8jxcn8] {
    background: var(--sp-color-warning-border);
    color: var(--sp-color-ink-dark);
}
/* /Components/Layout/Shell/SnowReportLayout.razor.rz.scp.css */
/* Wide screens: a fixed corner row above the centred card, below every
   overlay layer so dialogs and their backdrops cover it. */
.snow-report-theme-toggle[b-1me9t0o4eh] {
    position: fixed;
    top: max(12px, env(safe-area-inset-top));
    right: max(12px, env(safe-area-inset-right));
    z-index: 20;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* The sign-in link, tutorial and theme toggle share the toggle's 38px box. */
.snow-report-login-link[b-1me9t0o4eh] {
    display: inline-flex;
    box-sizing: border-box;
    min-height: 38px;
    align-items: center;
    padding: 0 11px;
    border: 1px solid rgb(var(--sp-rgb-ink) / 0.25);
    border-radius: 10px;
    background: rgb(var(--sp-rgb-white) / 0.84);
    color: var(--sp-color-ink);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.snow-report-login-link:hover[b-1me9t0o4eh],
.snow-report-login-link:focus-visible[b-1me9t0o4eh] {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-surface);
}

@media (min-width: 768px) and (pointer: fine) {
    .snow-report-theme-toggle[b-1me9t0o4eh]  .page-tutorial-button {
        min-height: 38px;
    }
}

/* Phones and touch screens: the row scrolls with the page above the card,
   so it never covers the form or the confirmation, and its three controls
   share the 44px touch height with 8px gaps. */
@media (max-width: 700px), (pointer: coarse) {
    .snow-report-theme-toggle[b-1me9t0o4eh] {
        position: static;
        justify-content: flex-end;
        padding: max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 0 10px;
    }

    .snow-report-login-link[b-1me9t0o4eh] {
        min-height: var(--sp-control-height-touch);
        padding: 0 12px;
        font-size: 14px;
    }

    .snow-report-theme-toggle[b-1me9t0o4eh]  .page-tutorial-button {
        min-width: var(--sp-control-height-touch);
        min-height: var(--sp-control-height-touch);
    }
}

html[data-theme="dark"] .snow-report-theme-toggle .snow-report-login-link[b-1me9t0o4eh] {
    border-color: var(--sp-color-border);
    background: var(--sp-color-surface-raised);
    color: var(--sp-color-ink);
}

html[data-theme="dark"] .snow-report-theme-toggle .snow-report-login-link:hover[b-1me9t0o4eh],
html[data-theme="dark"] .snow-report-theme-toggle .snow-report-login-link:focus-visible[b-1me9t0o4eh] {
    border-color: var(--sp-color-brand);
    background: var(--sp-color-brand-soft);
    color: var(--sp-color-ink);
}

/* The skip link moves focus to the report region; it is a target, not a control, so it shows no ring. */
.snow-report-main:focus[b-1me9t0o4eh] {
    outline: none;
}
