.width-mini {
    width: 4rem !important;
    max-width: 4rem !important;
}

.width-small {
    width: 6rem !important;
    max-width: 6rem !important;
}

.width-medium {
    width: 9rem !important;
    max-width: 9rem !important;
}

.width-large {
    width: 13rem !important;
    max-width: 13rem !important;
}

.width-xlarge {
    width: 17rem !important;
    max-width: 17rem !important;
}

.width-xxlarge {
    width: 33rem !important;
    max-width: 33rem !important;
}

:root {
    --icon-spacing: var(--space-1, 0.25rem);
}

.ms-icon {
    margin-inline-start: var(--icon-spacing);
}

.me-icon {
    margin-inline-end: var(--icon-spacing);
}

.ps-icon {
    padding-inline-start: var(--icon-spacing);
}

.pe-icon {
    padding-inline-end: var(--icon-spacing);
}

.badge {
    --badge-spacing: var(--space-2, 0.5rem);

    &.ms-badge {
        margin-inline-start: var(--badge-spacing);
    }

    &.me-badge {
        margin-inline-end: var(--badge-spacing);
    }

    &.ps-badge {
        padding-inline-start: var(--badge-spacing);
    }

    &.pe-badge {
        padding-inline-end: var(--badge-spacing);
    }
}

.progress-bar {
    overflow: visible !important;
}

.card-body > table.table:last-child {
    margin-bottom: 0;
}

.metric {
    .imperial {
        display: none;
    }
}

.imperial {
    .metric {
        display: none;
    }
}

.metric.imperial {
    .metric,
    .imperial {
        display: inline-block;
    }

    .metric + .imperial,
    .imperial + .metric {
        margin-inline-start: var(--space-2, 0.5rem);
    }
}


/* Create-row styling Bootstrap utilities can't express. Kept separate from the
   shared auto_complete_single_select.css. */
.mwu-createRow-54c15f0 {
    cursor: pointer;
    /* Solid background so scrolled results don't show through the sticky row. */
    background-color: var(--bs-body-bg);

    &:hover {
        background-color: var(--bs-tertiary-bg);
    }

    & .mwu-createRowIcon-54c15f0 {
        width: 1.25rem;
        height: 1.25rem;
    }
}


.mwu-searchSelect-ec74073 {
    & input {
        min-width: 15ex;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    & input:focus {
        border-color: var(--bs-primary-bg-subtle) !important;
        box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25) !important;
        outline: 0;
    }

    /* SV: Add bolt icon */
    & .mwu-tt-input-ec74073 {
        background-position: right calc(0.375em + 0.1875rem) center;
        background-repeat: no-repeat;
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='15' height='20' viewBox='0 0 15 20'><path style='opacity:0.15' d='m 10.637752,5.2644253 q 0.216361,0.2404003 0.0842,0.5288405 L 4.2315861,19.69952 Q 4.075386,20 3.7267856,20 q -0.048,0 -0.1682002,-0.024 -0.2043202,-0.0602 -0.3064803,-0.22836 -0.1022001,-0.1682 -0.054,-0.360581 L 5.5658874,9.6755298 0.68608236,10.889471 q -0.048,0.012 -0.1442001,0.012 -0.2163603,0 -0.3726004,-0.1322 -0.2163402,-0.1802 -0.1562002,-0.468761 L 2.4289443,0.38464036 q 0.048,-0.1682001 0.1924001,-0.2764403 Q 2.7655446,-3.5767592e-8 2.9578848,-3.5767592e-8 h 3.942304 q 0.2283602,0 0.3846204,0.150200195767592 0.1562001,0.1502001 0.1562001,0.3545603 0,0.0962 -0.0602,0.2163603 L 5.3255472,6.2860064 10.085152,5.1081252 q 0.0962,-0.024 0.1442,-0.024 0.22836,0 0.40866,0.1802002 z'/></svg>");
    }

    & .mwu-tt-input-ec74073:focus {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='15' height='20' viewBox='0 0 15 20'><path style='opacity:0.3' d='m 10.637752,5.2644253 q 0.216361,0.2404003 0.0842,0.5288405 L 4.2315861,19.69952 Q 4.075386,20 3.7267856,20 q -0.048,0 -0.1682002,-0.024 -0.2043202,-0.0602 -0.3064803,-0.22836 -0.1022001,-0.1682 -0.054,-0.360581 L 5.5658874,9.6755298 0.68608236,10.889471 q -0.048,0.012 -0.1442001,0.012 -0.2163603,0 -0.3726004,-0.1322 -0.2163402,-0.1802 -0.1562002,-0.468761 L 2.4289443,0.38464036 q 0.048,-0.1682001 0.1924001,-0.2764403 Q 2.7655446,-3.5767592e-8 2.9578848,-3.5767592e-8 h 3.942304 q 0.2283602,0 0.3846204,0.150200195767592 0.1562001,0.1502001 0.1562001,0.3545603 0,0.0962 -0.0602,0.2163603 L 5.3255472,6.2860064 10.085152,5.1081252 q 0.0962,-0.024 0.1442,-0.024 0.22836,0 0.40866,0.1802002 z'/></svg>");
    }

    & .mwu-tt-input-ec74073.mwu-loading-ec74073,
    & .mwu-tt-input-ec74073.mwu-loading-ec74073:focus {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 20' style='opacity:0.6' preserveAspectRatio='xMidYMid'><circle cx='10' cy='10' fill='none' stroke='black' stroke-width='2' r='8' stroke-dasharray='17 6'><animateTransform attributeName='transform' type='rotate' repeatCount='indefinite' dur='1s' values='0 10 10;360 10 10' keyTimes='0;1'></animateTransform></circle></svg>");
    }
}

.mwu-menu-ec74073 {
    width: max-content;
    max-width: 90vw;
    max-height: 66vh;
    overflow-y: auto;
    overflow-x: hidden;

    & tr {
        cursor: pointer;
    }
}

.mwu-choiceDisplay-ec74073 {
    padding: 0.5rem 1rem;
    padding-inline-end: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;

    & img {
        flex-shrink: 0;
        max-height: 2rem;
        max-width: 2rem;
    }
}


.mwu-callout-de1a8a2 {
    border-width: var(--bs-border-width, 1px);
    border-inline-start-width: 0.5rem;

    &.mwu-calloutPrimary-de1a8a2 {
        color: var(--bs-primary-text-emphasis) !important;
        border-color: var(--bs-primary-border-subtle) !important;
        border-inline-start-color: var(--bs-primary) !important;
        background-color: var(--bs-primary-bg-subtle) !important;
        --bs-card-color: var(--bs-primary-text-emphasis);
        --bs-card-border-color: var(--bs-primary-border-subtle);
        --bs-card-bg: var(--bs-primary-bg-subtle);
    }

    &.mwu-calloutSecondary-de1a8a2 {
        color: var(--bs-secondary-text-emphasis) !important;
        border-color: var(--bs-secondary-border-subtle) !important;
        border-inline-start-color: var(--bs-secondary) !important;
        background-color: var(--bs-secondary-bg-subtle) !important;
        --bs-card-color: var(--bs-secondary-text-emphasis);
        --bs-card-border-color: var(--bs-secondary-border-subtle);
        --bs-card-bg: var(--bs-secondary-bg-subtle);
    }

    &.mwu-calloutSuccess-de1a8a2 {
        color: var(--bs-success-text-emphasis) !important;
        border-color: var(--bs-success-border-subtle) !important;
        border-inline-start-color: var(--bs-success) !important;
        background-color: var(--bs-success-bg-subtle) !important;
        --bs-card-color: var(--bs-success-text-emphasis);
        --bs-card-border-color: var(--bs-success-border-subtle);
        --bs-card-bg: var(--bs-success-bg-subtle);
    }

    &.mwu-calloutDanger-de1a8a2 {
        color: var(--bs-danger-text-emphasis) !important;
        border-color: var(--bs-danger-border-subtle) !important;
        border-inline-start-color: var(--bs-danger) !important;
        background-color: var(--bs-danger-bg-subtle) !important;
        --bs-card-color: var(--bs-danger-text-emphasis);
        --bs-card-border-color: var(--bs-danger-border-subtle);
        --bs-card-bg: var(--bs-danger-bg-subtle);
    }

    &.mwu-calloutWarning-de1a8a2 {
        color: var(--bs-warning-text-emphasis) !important;
        border-color: var(--bs-warning-border-subtle) !important;
        border-inline-start-color: var(--bs-warning) !important;
        background-color: var(--bs-warning-bg-subtle) !important;
        --bs-card-color: var(--bs-warning-text-emphasis);
        --bs-card-border-color: var(--bs-warning-border-subtle);
        --bs-card-bg: var(--bs-warning-bg-subtle);
    }

    &.mwu-calloutInfo-de1a8a2 {
        color: var(--bs-info-text-emphasis) !important;
        border-color: var(--bs-info-border-subtle) !important;
        border-inline-start-color: var(--bs-info) !important;
        background-color: var(--bs-info-bg-subtle) !important;
        --bs-card-color: var(--bs-info-text-emphasis);
        --bs-card-border-color: var(--bs-info-border-subtle);
        --bs-card-bg: var(--bs-info-bg-subtle);
    }

    &.mwu-calloutLight-de1a8a2 {
        color: var(--bs-light-text-emphasis) !important;
        border-color: var(--bs-light-border-subtle) !important;
        border-inline-start-color: var(--bs-light) !important;
        background-color: var(--bs-light-bg-subtle) !important;
        --bs-card-color: var(--bs-light-text-emphasis);
        --bs-card-border-color: var(--bs-light-border-subtle);
        --bs-card-bg: var(--bs-light-bg-subtle);
    }

    &.mwu-calloutDark-de1a8a2 {
        color: var(--bs-dark-text-emphasis) !important;
        border-color: var(--bs-dark-border-subtle) !important;
        border-inline-start-color: var(--bs-dark) !important;
        background-color: var(--bs-dark-bg-subtle) !important;
        --bs-card-color: var(--bs-dark-text-emphasis);
        --bs-card-border-color: var(--bs-dark-border-subtle);
        --bs-card-bg: var(--bs-dark-bg-subtle);
    }

    &.mwu-calloutCancelled-de1a8a2 {
        color: var(--bs-secondary-text-emphasis) !important;
        border-color: var(--bs-secondary-border-subtle) !important;
        border-inline-start-color: var(--bs-secondary) !important;
        background-color: var(--bs-secondary-bg-subtle) !important;
        --bs-card-color: var(--bs-secondary-text-emphasis);
        --bs-card-border-color: var(--bs-secondary-border-subtle);
        --bs-card-bg: var(--bs-secondary-bg-subtle);
        text-decoration: line-through;
        opacity: 0.5;
    }
}


.mwu-dates-e81eafc {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    grid-auto-rows: minmax(10rem, auto);
    margin-top: 0.5rem;
    border-top: var(--bs-border-width, 1px) solid;
    border-inline-start: var(--bs-border-width, 1px) solid;
    border-color: var(--bs-border-color);
    border-radius: var(--bs-border-radius);

    &.mwu-compact-e81eafc {
        flex: none;

        .mwu-dayItem-e81eafc {
            min-height: unset;
        }

        .mwu-weekRow-e81eafc {
            min-height: unset;
        }
    }

    .mwu-dayItem-e81eafc {
        position: relative;
        border-inline-end: var(--bs-border-width, 1px) solid;
        border-bottom: var(--bs-border-width, 1px) solid;
        border-color: var(--bs-border-color);
        cursor: pointer;
        min-height: 10rem;

        &.mwu-selected-e81eafc {
            color: var(--bs-primary-text-emphasis);
            background-color: var(--bs-primary-bg-subtle) !important;
            border: none;
            outline: solid 2px var(--bs-primary-border-subtle);
            z-index: 2;
        }

        &.mwu-today-e81eafc {
            background-color: var(--bs-dark-bg-subtle);
            border: var(--bs-border-width, 1px) solid
                var(--bs-dark-border-subtle);
            z-index: 1;

            .mwu-dayHeader-e81eafc {
                font-weight: bold;
            }
        }

        &.mwu-otherMonth-e81eafc {
            color: var(--bs-secondary);
            background-color: var(--bs-secondary-bg-subtle) !important;
        }

        .mwu-dayHeader-e81eafc {
            padding: 0.25rem;
        }
    }

    .mwu-weekRow-e81eafc {
        --header-height: 1.75rem;
        --event-height: 2.25rem;
        --footer-height: 0.5rem;
        position: relative;
        display: grid;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        height: calc(
            var(--lanes-count, 1) * var(--event-height) + var(--header-height) +
                var(--footer-height)
        );
        min-height: 10rem;

        .mwu-eventBar-e81eafc {
            position: absolute;
            grid-row: 1;
            margin-top: calc(
                var(--event-lane, 0) * var(--event-height) +
                    var(--header-height)
            );
            border-radius: 0.25rem;
            padding: 0.25rem;
            font-size: 80%;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
            height: var(--event-height);
            width: 100%;
            z-index: 3;
        }
    }
}

.mantiqCalendarMonthlyLanes1 {
    --lanes-count: 1;
}
.mantiqCalendarMonthlyLanes2 {
    --lanes-count: 2;
}
.mantiqCalendarMonthlyLanes3 {
    --lanes-count: 3;
}
.mantiqCalendarMonthlyLanes4 {
    --lanes-count: 4;
}
.mantiqCalendarMonthlyLanes5 {
    --lanes-count: 5;
}
.mantiqCalendarMonthlyLanes6 {
    --lanes-count: 6;
}
.mantiqCalendarMonthlyLanes7 {
    --lanes-count: 7;
}
.mantiqCalendarMonthlyLanes8 {
    --lanes-count: 8;
}
.mantiqCalendarMonthlyLanes9 {
    --lanes-count: 9;
}
.mantiqCalendarMonthlyLanes10 {
    --lanes-count: 10;
}
.mantiqCalendarMonthlyLanes11 {
    --lanes-count: 11;
}
.mantiqCalendarMonthlyLanes12 {
    --lanes-count: 12;
}
.mantiqCalendarMonthlyLanes13 {
    --lanes-count: 13;
}
.mantiqCalendarMonthlyLanes14 {
    --lanes-count: 14;
}
.mantiqCalendarMonthlyLanes15 {
    --lanes-count: 15;
}
.mantiqCalendarMonthlyLanes16 {
    --lanes-count: 16;
}
.mantiqCalendarMonthlyLanes17 {
    --lanes-count: 17;
}
.mantiqCalendarMonthlyLanes18 {
    --lanes-count: 18;
}
.mantiqCalendarMonthlyLanes19 {
    --lanes-count: 19;
}
.mantiqCalendarMonthlyLanes20 {
    --lanes-count: 20;
}
.mantiqCalendarMonthlyLanes21 {
    --lanes-count: 21;
}
.mantiqCalendarMonthlyLanes22 {
    --lanes-count: 22;
}
.mantiqCalendarMonthlyLanes23 {
    --lanes-count: 23;
}
.mantiqCalendarMonthlyLanes24 {
    --lanes-count: 24;
}

.mantiqCalendarMonthlyColStart1 {
    grid-column-start: 1;
}
.mantiqCalendarMonthlyColStart2 {
    grid-column-start: 2;
}
.mantiqCalendarMonthlyColStart3 {
    grid-column-start: 3;
}
.mantiqCalendarMonthlyColStart4 {
    grid-column-start: 4;
}
.mantiqCalendarMonthlyColStart5 {
    grid-column-start: 5;
}
.mantiqCalendarMonthlyColStart6 {
    grid-column-start: 6;
}
.mantiqCalendarMonthlyColStart7 {
    grid-column-start: 7;
}

.mantiqCalendarMonthlyColEnd2 {
    grid-column-end: 2;
}
.mantiqCalendarMonthlyColEnd3 {
    grid-column-end: 3;
}
.mantiqCalendarMonthlyColEnd4 {
    grid-column-end: 4;
}
.mantiqCalendarMonthlyColEnd5 {
    grid-column-end: 5;
}
.mantiqCalendarMonthlyColEnd6 {
    grid-column-end: 6;
}
.mantiqCalendarMonthlyColEnd7 {
    grid-column-end: 7;
}
.mantiqCalendarMonthlyColEnd8 {
    grid-column-end: 8;
}

.mantiqCalendarMonthlyLane0 {
    --event-lane: 0;
}
.mantiqCalendarMonthlyLane1 {
    --event-lane: 1;
}
.mantiqCalendarMonthlyLane2 {
    --event-lane: 2;
}
.mantiqCalendarMonthlyLane3 {
    --event-lane: 3;
}
.mantiqCalendarMonthlyLane4 {
    --event-lane: 4;
}
.mantiqCalendarMonthlyLane5 {
    --event-lane: 5;
}
.mantiqCalendarMonthlyLane6 {
    --event-lane: 6;
}
.mantiqCalendarMonthlyLane7 {
    --event-lane: 7;
}
.mantiqCalendarMonthlyLane8 {
    --event-lane: 8;
}
.mantiqCalendarMonthlyLane9 {
    --event-lane: 9;
}
.mantiqCalendarMonthlyLane10 {
    --event-lane: 10;
}
.mantiqCalendarMonthlyLane11 {
    --event-lane: 11;
}
.mantiqCalendarMonthlyLane12 {
    --event-lane: 12;
}
.mantiqCalendarMonthlyLane13 {
    --event-lane: 13;
}
.mantiqCalendarMonthlyLane14 {
    --event-lane: 14;
}
.mantiqCalendarMonthlyLane15 {
    --event-lane: 15;
}
.mantiqCalendarMonthlyLane16 {
    --event-lane: 16;
}
.mantiqCalendarMonthlyLane17 {
    --event-lane: 17;
}
.mantiqCalendarMonthlyLane18 {
    --event-lane: 18;
}
.mantiqCalendarMonthlyLane19 {
    --event-lane: 19;
}
.mantiqCalendarMonthlyLane20 {
    --event-lane: 20;
}
.mantiqCalendarMonthlyLane21 {
    --event-lane: 21;
}
.mantiqCalendarMonthlyLane22 {
    --event-lane: 22;
}
.mantiqCalendarMonthlyLane23 {
    --event-lane: 23;
}


.mwu-weeklyView-d5d6a8c {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-top: 0.5rem;
    border-top: var(--bs-border-width, 1px) solid;
    border-inline-start: var(--bs-border-width, 1px) solid;
    border-color: var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    overflow-y: auto;

    .mwu-weeklyAllDay-d5d6a8c {
        display: grid;
        grid-template-columns: 4rem repeat(7, minmax(0, 1fr));
        border-bottom: 2px solid var(--bs-border-color);

        .mwu-weeklyAllDayCell-d5d6a8c {
            display: flex;
            flex-direction: column;
            gap: 0.125rem;
            padding: 0.25rem;
            min-height: 2.5rem;
            border-inline-end: var(--bs-border-width, 1px) solid;
            border-color: var(--bs-border-color);

            .mwu-weeklyAllDayEvent-d5d6a8c {
                border-radius: 0.25rem;
                padding: 0.125rem 0.25rem;
                font-size: 80%;
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
            }
        }
    }

    .mwu-weeklyTimeGutter-d5d6a8c {
        display: flex;
        align-items: flex-start;
        justify-content: center;
        padding: 0.125rem 0.25rem;
        font-size: 0.75rem;
        color: var(--bs-secondary);
        border-inline-end: var(--bs-border-width, 1px) solid;
        border-color: var(--bs-border-color);
    }

    .mwu-weeklyGridWrapper-d5d6a8c {
        --hour-height: 3rem;
        --gutter-width: 4rem;
        position: relative;
        flex: 1;

        .mwu-weeklyGrid-d5d6a8c {
            display: grid;
            grid-template-columns: var(--gutter-width) repeat(7, minmax(0, 1fr));

            .mwu-weeklyHourCell-d5d6a8c {
                border-inline-end: var(--bs-border-width, 1px) solid;
                border-bottom: var(--bs-border-width, 1px) solid;
                border-color: var(--bs-border-color);
                height: var(--hour-height);
                position: relative;

                &.mwu-today-d5d6a8c {
                    background-color: var(--bs-dark-bg-subtle);
                }

                &.mwu-selected-d5d6a8c {
                    background-color: var(--bs-primary-bg-subtle);
                }
            }
        }

        .mwu-weeklyTimedEvent-d5d6a8c {
            --col-width: calc((100% - var(--gutter-width)) / 7);
            position: absolute;
            inset-inline-start: calc(
                var(--gutter-width)
                + var(--day-index, 0) * var(--col-width)
                + var(--event-sub-col, 0) * var(--event-width, var(--col-width))
            );
            width: var(--event-width, var(--col-width));
            top: var(--event-top, 0);
            height: var(--event-height, calc(0.5 * var(--hour-height)));
            min-height: calc(0.5 * var(--hour-height));
            border-radius: 0.25rem;
            font-size: 80%;
            overflow: hidden;
            z-index: 3;
            box-sizing: border-box;

            /* Make the rendered event content fill the time slot */
            > * {
                height: 100%;
                margin: 0 !important;
                overflow: hidden;
                text-overflow: ellipsis;
            }
        }
    }
}

.mantiqCalendarWeeklyCol1 { --day-index: 0; }
.mantiqCalendarWeeklyCol2 { --day-index: 1; }
.mantiqCalendarWeeklyCol3 { --day-index: 2; }
.mantiqCalendarWeeklyCol4 { --day-index: 3; }
.mantiqCalendarWeeklyCol5 { --day-index: 4; }
.mantiqCalendarWeeklyCol6 { --day-index: 5; }
.mantiqCalendarWeeklyCol7 { --day-index: 6; }

.mantiqCalendarWeeklyStart0 { --event-top: calc(0 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart1 { --event-top: calc(1 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart2 { --event-top: calc(2 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart3 { --event-top: calc(3 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart4 { --event-top: calc(4 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart5 { --event-top: calc(5 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart6 { --event-top: calc(6 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart7 { --event-top: calc(7 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart8 { --event-top: calc(8 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart9 { --event-top: calc(9 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart10 { --event-top: calc(10 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart11 { --event-top: calc(11 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart12 { --event-top: calc(12 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart13 { --event-top: calc(13 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart14 { --event-top: calc(14 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart15 { --event-top: calc(15 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart16 { --event-top: calc(16 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart17 { --event-top: calc(17 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart18 { --event-top: calc(18 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart19 { --event-top: calc(19 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart20 { --event-top: calc(20 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart21 { --event-top: calc(21 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart22 { --event-top: calc(22 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart23 { --event-top: calc(23 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart24 { --event-top: calc(24 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart25 { --event-top: calc(25 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart26 { --event-top: calc(26 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart27 { --event-top: calc(27 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart28 { --event-top: calc(28 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart29 { --event-top: calc(29 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart30 { --event-top: calc(30 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart31 { --event-top: calc(31 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart32 { --event-top: calc(32 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart33 { --event-top: calc(33 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart34 { --event-top: calc(34 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart35 { --event-top: calc(35 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart36 { --event-top: calc(36 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart37 { --event-top: calc(37 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart38 { --event-top: calc(38 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart39 { --event-top: calc(39 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart40 { --event-top: calc(40 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart41 { --event-top: calc(41 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart42 { --event-top: calc(42 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart43 { --event-top: calc(43 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart44 { --event-top: calc(44 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart45 { --event-top: calc(45 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart46 { --event-top: calc(46 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart47 { --event-top: calc(47 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart48 { --event-top: calc(48 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart49 { --event-top: calc(49 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart50 { --event-top: calc(50 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart51 { --event-top: calc(51 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart52 { --event-top: calc(52 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart53 { --event-top: calc(53 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart54 { --event-top: calc(54 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart55 { --event-top: calc(55 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart56 { --event-top: calc(56 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart57 { --event-top: calc(57 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart58 { --event-top: calc(58 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart59 { --event-top: calc(59 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart60 { --event-top: calc(60 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart61 { --event-top: calc(61 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart62 { --event-top: calc(62 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart63 { --event-top: calc(63 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart64 { --event-top: calc(64 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart65 { --event-top: calc(65 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart66 { --event-top: calc(66 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart67 { --event-top: calc(67 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart68 { --event-top: calc(68 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart69 { --event-top: calc(69 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart70 { --event-top: calc(70 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart71 { --event-top: calc(71 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart72 { --event-top: calc(72 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart73 { --event-top: calc(73 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart74 { --event-top: calc(74 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart75 { --event-top: calc(75 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart76 { --event-top: calc(76 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart77 { --event-top: calc(77 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart78 { --event-top: calc(78 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart79 { --event-top: calc(79 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart80 { --event-top: calc(80 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart81 { --event-top: calc(81 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart82 { --event-top: calc(82 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart83 { --event-top: calc(83 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart84 { --event-top: calc(84 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart85 { --event-top: calc(85 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart86 { --event-top: calc(86 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart87 { --event-top: calc(87 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart88 { --event-top: calc(88 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart89 { --event-top: calc(89 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart90 { --event-top: calc(90 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart91 { --event-top: calc(91 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart92 { --event-top: calc(92 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart93 { --event-top: calc(93 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart94 { --event-top: calc(94 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyStart95 { --event-top: calc(95 * var(--hour-height) / 4); }

.mantiqCalendarWeeklyDuration2 { --event-height: calc(2 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration3 { --event-height: calc(3 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration4 { --event-height: calc(4 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration5 { --event-height: calc(5 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration6 { --event-height: calc(6 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration7 { --event-height: calc(7 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration8 { --event-height: calc(8 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration9 { --event-height: calc(9 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration10 { --event-height: calc(10 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration11 { --event-height: calc(11 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration12 { --event-height: calc(12 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration13 { --event-height: calc(13 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration14 { --event-height: calc(14 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration15 { --event-height: calc(15 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration16 { --event-height: calc(16 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration17 { --event-height: calc(17 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration18 { --event-height: calc(18 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration19 { --event-height: calc(19 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration20 { --event-height: calc(20 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration21 { --event-height: calc(21 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration22 { --event-height: calc(22 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration23 { --event-height: calc(23 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration24 { --event-height: calc(24 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration25 { --event-height: calc(25 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration26 { --event-height: calc(26 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration27 { --event-height: calc(27 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration28 { --event-height: calc(28 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration29 { --event-height: calc(29 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration30 { --event-height: calc(30 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration31 { --event-height: calc(31 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration32 { --event-height: calc(32 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration33 { --event-height: calc(33 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration34 { --event-height: calc(34 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration35 { --event-height: calc(35 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration36 { --event-height: calc(36 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration37 { --event-height: calc(37 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration38 { --event-height: calc(38 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration39 { --event-height: calc(39 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration40 { --event-height: calc(40 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration41 { --event-height: calc(41 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration42 { --event-height: calc(42 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration43 { --event-height: calc(43 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration44 { --event-height: calc(44 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration45 { --event-height: calc(45 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration46 { --event-height: calc(46 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration47 { --event-height: calc(47 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration48 { --event-height: calc(48 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration49 { --event-height: calc(49 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration50 { --event-height: calc(50 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration51 { --event-height: calc(51 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration52 { --event-height: calc(52 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration53 { --event-height: calc(53 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration54 { --event-height: calc(54 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration55 { --event-height: calc(55 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration56 { --event-height: calc(56 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration57 { --event-height: calc(57 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration58 { --event-height: calc(58 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration59 { --event-height: calc(59 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration60 { --event-height: calc(60 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration61 { --event-height: calc(61 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration62 { --event-height: calc(62 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration63 { --event-height: calc(63 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration64 { --event-height: calc(64 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration65 { --event-height: calc(65 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration66 { --event-height: calc(66 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration67 { --event-height: calc(67 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration68 { --event-height: calc(68 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration69 { --event-height: calc(69 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration70 { --event-height: calc(70 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration71 { --event-height: calc(71 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration72 { --event-height: calc(72 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration73 { --event-height: calc(73 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration74 { --event-height: calc(74 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration75 { --event-height: calc(75 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration76 { --event-height: calc(76 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration77 { --event-height: calc(77 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration78 { --event-height: calc(78 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration79 { --event-height: calc(79 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration80 { --event-height: calc(80 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration81 { --event-height: calc(81 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration82 { --event-height: calc(82 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration83 { --event-height: calc(83 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration84 { --event-height: calc(84 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration85 { --event-height: calc(85 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration86 { --event-height: calc(86 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration87 { --event-height: calc(87 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration88 { --event-height: calc(88 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration89 { --event-height: calc(89 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration90 { --event-height: calc(90 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration91 { --event-height: calc(91 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration92 { --event-height: calc(92 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration93 { --event-height: calc(93 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration94 { --event-height: calc(94 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration95 { --event-height: calc(95 * var(--hour-height) / 4); }
.mantiqCalendarWeeklyDuration96 { --event-height: calc(96 * var(--hour-height) / 4); }

.mantiqCalendarWeeklySub0 { --event-sub-col: 0; }
.mantiqCalendarWeeklySub1 { --event-sub-col: 1; }
.mantiqCalendarWeeklySub2 { --event-sub-col: 2; }
.mantiqCalendarWeeklySub3 { --event-sub-col: 3; }
.mantiqCalendarWeeklySub4 { --event-sub-col: 4; }
.mantiqCalendarWeeklySub5 { --event-sub-col: 5; }
.mantiqCalendarWeeklySub6 { --event-sub-col: 6; }
.mantiqCalendarWeeklySub7 { --event-sub-col: 7; }
.mantiqCalendarWeeklySub8 { --event-sub-col: 8; }
.mantiqCalendarWeeklySub9 { --event-sub-col: 9; }
.mantiqCalendarWeeklySub10 { --event-sub-col: 10; }
.mantiqCalendarWeeklySub11 { --event-sub-col: 11; }
.mantiqCalendarWeeklySub12 { --event-sub-col: 12; }
.mantiqCalendarWeeklySub13 { --event-sub-col: 13; }
.mantiqCalendarWeeklySub14 { --event-sub-col: 14; }
.mantiqCalendarWeeklySub15 { --event-sub-col: 15; }

.mantiqCalendarWeeklyTotal1 { --event-width: calc(var(--col-width) / 1); }
.mantiqCalendarWeeklyTotal2 { --event-width: calc(var(--col-width) / 2); }
.mantiqCalendarWeeklyTotal3 { --event-width: calc(var(--col-width) / 3); }
.mantiqCalendarWeeklyTotal4 { --event-width: calc(var(--col-width) / 4); }
.mantiqCalendarWeeklyTotal5 { --event-width: calc(var(--col-width) / 5); }
.mantiqCalendarWeeklyTotal6 { --event-width: calc(var(--col-width) / 6); }
.mantiqCalendarWeeklyTotal7 { --event-width: calc(var(--col-width) / 7); }
.mantiqCalendarWeeklyTotal8 { --event-width: calc(var(--col-width) / 8); }
.mantiqCalendarWeeklyTotal9 { --event-width: calc(var(--col-width) / 9); }
.mantiqCalendarWeeklyTotal10 { --event-width: calc(var(--col-width) / 10); }
.mantiqCalendarWeeklyTotal11 { --event-width: calc(var(--col-width) / 11); }
.mantiqCalendarWeeklyTotal12 { --event-width: calc(var(--col-width) / 12); }
.mantiqCalendarWeeklyTotal13 { --event-width: calc(var(--col-width) / 13); }
.mantiqCalendarWeeklyTotal14 { --event-width: calc(var(--col-width) / 14); }
.mantiqCalendarWeeklyTotal15 { --event-width: calc(var(--col-width) / 15); }
.mantiqCalendarWeeklyTotal16 { --event-width: calc(var(--col-width) / 16); }


.mwu-calendar-1d10bcf {
    /*
     * Contain the internal z-indexes (today/selected cells, event bars) in
     * their own stacking context so they don't compete with z-indexes of
     * other components elsewhere in the application.
     */
    isolation: isolate;
    display: flex;
    flex-direction: column;
    min-height: 35em;

    &.mwu-compact-1d10bcf {
        min-height: unset;
    }
}


/* The map search bar (CesiumSearchBar), top-left beside the zoom buttons. The
   input sits over the map on a white control surface like the other on-map
   buttons; its results dropdown anchors directly beneath it. The whole thing is
   `position: relative` so the absolutely-positioned dropdown is placed against
   it. */
.mwu-searchBar-cd2a65e {
    position: relative;
    width: 14rem;
    /* Cap to the map's own width (container-query unit), not the viewport, so on
       a tiny map the field can't overflow the map edge. On a normal map this is
       far wider than 14rem, so the field keeps its natural width. */
    max-width: calc(100cqi - 1.25rem);
}

/* A search-glass icon overlaid at the input's inline-start, with the input's
   inline-start padding opened up to clear it. `relative` so the absolutely
   positioned icon is placed against this wrapper. */
.mwu-inputWrap-cd2a65e {
    position: relative;
    display: block;
}

.mwu-searchIcon-cd2a65e {
    position: absolute;
    inset-inline-start: 0.6rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--bs-secondary-color);
    pointer-events: none;
}

/* The text field itself — a Bootstrap `.form-control` with room for the icon
   and a soft shadow so it reads as a floating control over the map. */
.mwu-input-cd2a65e {
    padding-inline-start: 2rem;
    box-shadow: 0 1px 4px rgb(0 0 0 / 30%);
}

/* The results dropdown, anchored under the input. Scrolls if the (capped) list
   is taller than the cap. z-index sits above the map's other top-left controls
   so an open list is never clipped behind them. */
.mwu-results-cd2a65e {
    position: absolute;
    z-index: 4;
    top: calc(100% + 2px);
    inset-inline-start: 0;
    inset-inline-end: 0;
    max-height: 16rem;
    overflow-y: auto;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius-sm, 0.25rem);
    box-shadow: 0 2px 8px rgb(0 0 0 / 25%);
}

/* The in-flight row: a centred Bootstrap spinner shown while a geocode is
   running and no results have landed yet. Same vertical rhythm as a result
   row so the dropdown doesn't jump when results replace it. */
.mwu-searching-cd2a65e {
    display: flex;
    justify-content: center;
    padding: 0.4rem 0.75rem;
}

/* One result row: a full-width, start-aligned button. Hover/focus get the
   subtle theme tint the rest of the workspace uses for list selection. */
.mwu-result-cd2a65e {
    display: block;
    width: 100%;
    padding: 0.4rem 0.75rem;
    border: 0;
    background: transparent;
    color: var(--bs-body-color);
    text-align: start;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}

.mwu-result-cd2a65e:hover,
.mwu-result-cd2a65e:focus-visible {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
}


.mwu-canvasViewport-6893a91 {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    cursor: grab;
    user-select: none;

    &:active {
        cursor: grabbing;
    }
}

.mwu-scaleFrame-6893a91 {
    flex: 0 0 auto;
    position: relative;
    width: max-content;
    height: max-content;
}

.mwu-canvas-6893a91 {
    transform-origin: 0 0;
    width: max-content;
    height: max-content;
    overflow: hidden;
}


/* Both inputs are right-aligned and drop the native number spinners, so the
   two conversion values read as a clean pair of figures rather than nudgeable
   steppers (the conversion is bidirectional; typing is the intended edit). */
.mwu-conversionInput-6649136 {
    input[type="number"] {
        -moz-appearance: textfield;
        appearance: textfield;

        &::-webkit-outer-spin-button,
        &::-webkit-inner-spin-button {
            -webkit-appearance: none;
            margin: 0;
        }
    }
}


.mwu-countryPrefix-130dba7 {
    position: relative;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.mwu-menu-130dba7 {
    min-width: 18rem;

    & .mwu-tableWrapper-130dba7 {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        overflow-x: hidden;
        outline: none;

        & tr {
            cursor: pointer;

            & .mwu-choiceDisplay-130dba7 {
                padding-inline: 0.75rem 1.5rem;
                display: flex;
                align-items: center;
                gap: 0.75rem;
            }
        }
    }
}


td {
    .mwu-dateDisplay-80fb75f {
        white-space: nowrap;
    }
}


.mwu-dateInput-797295c {
    width: 11rem !important;
}


.mwu-container-9a95008 {
    width: 17.5rem !important;
}


.mwu-datesRange-455a39b {
    display: flex;
    align-items: center;

    html[dir="ltr"] & .mwu-hideLtr-455a39b,
    html[dir="rtl"] & .mwu-hideRtl-455a39b {
        display: none;
    }
}


.mwu-icon-9265fd3 {
  font-size: 8em;
  margin: 2rem;
}


.mwu-container-1e17d4f {
    display: inline;

    a {
        color: inherit;
        text-decoration: none;

        &:hover {
            text-decoration: underline;
        }
    }

    .mwu-icon-1e17d4f {
        font-size: 0.7em;
        opacity: 0.5;
    }
}


.mwu-durationInput-924c088 {
    max-width: 6rem;
}

.mwu-durationPickerPanel-924c088 {
    min-width: 10rem;
    padding: 0 !important;

    .mwu-durationcPickerPanel-924c088 {
        width: 10rem;
        display: flex;
        flex-direction: column;
        background: var(--bs-body-bg);

        .mwu-time-924c088 {
            display: flex;
            height: 20rem;

            .mwu-hour-924c088,
            .mwu-minute-924c088,
            .mwu-second-924c088 {
                flex: 1;
                overflow-y: auto;

                .mwu-item-924c088 {
                    min-height: 4.5ex;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    cursor: pointer;

                    &.mwu-selected-924c088,
                    &:hover {
                        color: #fff;
                        background-color: var(--bs-primary);
                        font-weight: bold;
                    }
                }
            }
        }
    }

    .mwu-footer-924c088 {
        display: flex;
        justify-content: center;
        align-items: center;
    }
}


.mwu-modalOverlay-66a8c9d {
    z-index: 1055;
}


td .mwu-errorPanel-c566b03 {
    margin: 0 !important;
}


/* Bootstrap's bundled .btn carries no cursor:pointer here, so the 3-dot
   actions toggle reads as non-interactive. Restore the click affordance. */
.mwu-actionsToggle-14f6599 {
	cursor: pointer;
}


/* The tree/list tables use `table-layout: fixed; width: 100%`, whose
   intrinsic (max-content) contribution saturates to a huge value in
   Chromium and propagates up to flex ancestors, crushing flex siblings
   (e.g. the AI panel) to their min-width. Containing inline-size stops
   the browser from sizing ancestors off this subtree. */
.mwu-fileBrowser-8344ee0 {
    contain: inline-size;

    & .mwu-toolbar-8344ee0 {
        position: sticky;
        top: var(--toolbar-sticky-offset, 0px);
        z-index: 10;
    }
}

/* Upload progress panel - floating panel in the bottom trailing corner */
.mwu-uploadProgressPanel-8344ee0 {
    position: fixed;
    bottom: 20px;
    inset-inline-end: 20px;
    width: 350px;
    max-height: 300px;
    overflow-y: auto;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    z-index: 1050;
    padding: 12px;

    & .mwu-uploadProgressHeader-8344ee0 {
        display: flex;
        align-items: center;
        font-weight: 600;
        margin-bottom: 12px;
        padding-bottom: 8px;
        border-bottom: 1px solid var(--bs-border-color);
        color: var(--bs-primary);
    }

    & .mwu-uploadProgressList-8344ee0 {
        display: flex;
        flex-direction: column;
        gap: 8px;

        & .mwu-uploadProgressItem-8344ee0 {
            display: flex;
            flex-direction: column;
            gap: 4px;

            & .mwu-uploadProgressFilename-8344ee0 {
                font-size: 0.85rem;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
                color: var(--bs-body-color);
            }

            & .mwu-uploadProgressBar-8344ee0 {
                height: 6px;

                & .mwu-uploadProgressFill-8344ee0 {
                    width: 0%;
                }
            }

            & .mwu-uploadProgressProcessing-8344ee0 {
                display: flex;
                align-items: center;
                gap: 0.5rem;
                font-size: 0.75rem;
                color: var(--bs-secondary-color);

                & .mwu-uploadProgressSpinner-8344ee0 {
                    width: 0.75rem;
                    height: 0.75rem;
                }
            }
        }
    }
}


.mwu-deleteButton-f59505c {
    z-index: 11;
    padding: 0.15rem 0.35rem;
    line-height: 1;
}


.mwu-lightbox-926aa6c {
    /* Default to hidden */
    display: none;

    /* Overlay entire screen */
    position: fixed;
    inset: 0;
    z-index: 2000;

    /* A bit of padding around content */
    padding: 1em;

    /* Translucent background */
    background: rgba(0, 0, 0, 0.9);

    /* Unhide the lightbox when it's the target */
    &:target {
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

/* Applied alongside `.lightbox` only when `close_on_outside_click` is set; a gallery
   that leaves it off drops this class and stays pixel-identical to before. */
.mwu-lightboxDismissible-926aa6c {
    cursor: pointer;

    & .mwu-lightboxContent-926aa6c {
        cursor: default;
    }

    /* `.lightboxImage` below is `width/height: 100%` + `object-fit: contain`, so the
       <img>'s hit box spans the whole body — including the dark strips beside a
       letterboxed picture. Clicking right next to the photo would hit the <img>, not
       the backdrop, and so wouldn't dismiss. Sizing the <img> to the bitmap it
       actually paints hands those strips back to `.lightboxBody`, which does dismiss.

       Trade-off: an image *smaller* than the body is no longer blown up to fill it.
       Identical for anything larger, so a no-op for camera photos.

       Specificity (0,3,0) beats `.lightboxBody .lightboxImage` (0,2,0) regardless of
       source order. */
    & .mwu-lightboxBody-926aa6c .mwu-lightboxImage-926aa6c {
        width: auto;
        height: auto;
        max-width: 100%;
        max-height: 100%;
    }
}

.mwu-lightboxContent-926aa6c {
    position: relative;
    width: 90%;
    max-width: 1400px;
    height: 90vh;
    display: flex;
    flex-direction: column;
    background-color: transparent;
}

.mwu-lightboxHeader-926aa6c {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 8px 8px 0 0;
    backdrop-filter: blur(10px);

    & .mwu-lightboxTitle-926aa6c {
        font-size: 1.25rem;
        font-weight: 500;
        color: white;
        display: flex;
        align-items: center;
        gap: 1rem;

        & .mwu-lightboxCounter-926aa6c {
            font-size: 0.875rem;
            color: rgba(255, 255, 255, 0.7);
            font-weight: 400;
        }
    }

    & .mwu-lightboxActions-926aa6c {
        display: flex;
        gap: 0.5rem;
    }
}

.mwu-lightboxBody-926aa6c {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    min-height: 0;

    & .mwu-lightboxImage-926aa6c {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    & .mwu-lightboxPdf-926aa6c {
        width: 100%;
        height: 100%;
        border: none;
        border-radius: var(--bs-border-radius);
        background-color: white;
    }

    & .mwu-lightboxPdfPages-926aa6c {
        width: 100%;
        height: 100%;
        overflow-y: auto;
        border-radius: var(--bs-border-radius);
        background-color: white;
    }

    & .mwu-lightboxText-926aa6c {
        width: 100%;
        height: 100%;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: var(--bs-border-radius);
        background-color: white;
    }

    & .mwu-lightboxModel-926aa6c {
        width: 100%;
        height: 100%;
        position: relative;
        border-radius: var(--bs-border-radius);
        background-color: rgb(59, 68, 76);

        & canvas {
            width: 100% !important;
            height: 100% !important;
            display: block;
        }
    }

    & .mwu-lightboxOffice-926aa6c {
        width: 100%;
        height: 100%;
        overflow: auto;
        border-radius: var(--bs-border-radius);
        background-color: white;
        padding: 1rem;
        text-align: start;

        & table {
            border-collapse: collapse;
            font-size: 0.875rem;
        }

        & th {
            background: #f8f9fa;
        }

        & td,
        & th {
            border: 1px solid #dee2e6;
            padding: 0.25rem 0.5rem;
            white-space: nowrap;
        }
    }

    & .mwu-lightboxVideo-926aa6c {
        width: 100%;
        height: 100%;
        max-width: 100%;
        max-height: 100%;
        border-radius: var(--bs-border-radius);
        background-color: black;
        object-fit: contain;
    }

    & .mwu-lightboxUnknown-926aa6c {
        text-align: center;
        padding: 3rem;
        color: white;

        & .mwu-lightboxUnknownIcon-926aa6c {
            font-size: 5rem;
            color: rgba(255, 255, 255, 0.7);
            margin-bottom: 1.5rem;
        }
    }
}

.mwu-lightboxFooter-926aa6c {
    padding: 0.75rem 1rem;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 0 0 8px 8px;
    backdrop-filter: blur(10px);

    & .mwu-lightboxInfo-926aa6c {
        color: rgba(255, 255, 255, 0.7);
        font-size: 0.875rem;
    }
}

.mwu-lightboxNav-926aa6c {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 0 1rem;
    pointer-events: none;
}

.mwu-lightboxNavPrev-926aa6c,
.mwu-lightboxNavNext-926aa6c {
    width: 50px;
    height: 50px;
    background-color: rgba(0, 0, 0, 0.5);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color 0.2s ease;
    pointer-events: all;
    text-decoration: none;
}

.mwu-lightboxNavPrev-926aa6c:hover,
.mwu-lightboxNavNext-926aa6c:hover {
    background-color: rgba(0, 0, 0, 0.7);
    color: white;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .mwu-lightboxContent-926aa6c {
        width: 100%;
        height: 100vh;
        max-width: none;
    }

    .mwu-lightbox-926aa6c {
        padding: 0;
    }

    .mwu-lightboxHeader-926aa6c,
    .mwu-lightboxFooter-926aa6c {
        border-radius: 0;
    }

    .mwu-lightboxNavPrev-926aa6c,
    .mwu-lightboxNavNext-926aa6c {
        width: 40px;
        height: 40px;
    }
}


.mwu-filePreviewImageContainer-f88abb9 {
    min-height: 350px;

    .mwu-filePreviewImage-f88abb9 {
        max-height: 350px;
        object-fit: contain;
    }
}

.mwu-filePreviewPdfContainer-f88abb9 {
    min-height: 350px;
    height: 500px;
}

.mwu-filePreviewFallback-f88abb9 {
    min-height: 200px;
}


.mwu-filePreviewDocxContainer-b669283 {
    min-height: 400px;
    max-height: 70vh;
    overflow: auto;
    background: #f5f5f5;
    padding: 1rem;
    text-align: start;
}


.mwu-filePreviewDwgFrame-cef9068 {
    display: block;
    width: 100%;
    border: 0;

    &.mwu-filePreviewDwgContainer-cef9068 {
        min-height: 350px;
        height: 500px;
        width: 100%;
    }
}


.mwu-filePreviewHeaderList-9431bef {
  display: flex;
  flex-direction: column;

  .mwu-fileItem-9431bef {
    background-color: #e9ecef;
    border: 1px solid #ced4da;
    border-radius: 0.5rem;
    transition: all 0.2s ease;
    padding: 1rem 1.25rem;
  }

  .mwu-fileItem-9431bef:hover {
    background-color: #dee2e6;
    border-color: #adb5bd;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  }

  .mwu-fileIcon-9431bef {
    color: #dc3545;
    font-size: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background-color: #f8f9fa;
    border-radius: 50%;
    flex-shrink: 0;
  }

  .mwu-fileName-9431bef {
    color: #495057;
    font-size: 0.9375rem;
    font-weight: 400;
  }

  .mwu-fileSize-9431bef {
    min-width: 4rem;
    text-align: end;
    color: #6c757d;
    font-size: 0.875rem;
  }

  .mwu-deleteButton-9431bef {
    opacity: 0.8;
    transition: opacity 0.2s ease;
    white-space: nowrap;
  }

  .mwu-deleteButton-9431bef:hover {
    opacity: 1;
  }
}

.mwu-filePreviewInline-369fa6e {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;

    & .mwu-filePreviewBody-369fa6e {
        min-height: 400px;
    }

    /* Lets text-truncate compress past content width inside the flex
       header row, so a long filename can't push the card past the
       viewport on narrow screens. */
    & .mwu-headerTitle-369fa6e {
        min-width: 0;
    }
}


.mwu-previewGrid-7b0ac4a {
    display: grid !important;
    /* minmax(0, 1fr) instead of 1fr — without the explicit min, grid
       cells implicitly fall back to min-content and grow to fit
       intrinsic content width (e.g. a wide image), pushing the page
       past the viewport on narrow screens. */
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    --previewWidth: 100%;
    --previewHeight: auto;

    & > div {
        margin: 0 !important;

        & > span {
            display: block;
            width: 100%;

            & > a {
                display: block;
                width: 100%;
            }
        }
    }
}

@media (max-width: 768px) {
    .mwu-previewGrid-7b0ac4a {
        grid-template-columns: minmax(0, 1fr);
    }
}


.mwu-filePreviewModelFrame-17f58a4 {
    display: block;
    width: 100%;
    border: 0;

    &.mwu-filePreviewModelContainer-17f58a4 {
        min-height: 350px;
        height: 500px;
        width: 100%;
    }
}


.mwu-filePreviewSheetContainer-5e53bed {
    min-height: 400px;
    max-height: 70vh;
    overflow: auto;
    text-align: start;

    table {
        border-collapse: collapse;
        font-size: 0.875rem;
    }

    td, th {
        border: 1px solid #dee2e6;
        padding: 0.25rem 0.5rem;
        white-space: nowrap;
    }

    th {
        background: #f8f9fa;
    }
}


.mwu-thumbnailContainer-1c0b2a0 {
    display: inline-block;
    position: relative;

    img {
        image-orientation: from-image;
        aspect-ratio: 3/2;
        transition:
            transform 0.3s ease-in-out,
            box-shadow 0.3s ease-in-out;
        width: var(--previewWidth, 16rem);
        max-width: 100%;
        max-height: var(--previewHeight, 10.5rem);
        object-fit: cover;
        border-radius: 8px;
        cursor: pointer;
        border: 1px solid #dee2e6;
        background-color: white;

        &:hover {
            transform: scale(1.05);
            z-index: 10;
            position: relative;
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
        }
    }

    a {
        display: inline-block;
        text-decoration: none;
        color: inherit;

        &:hover {
            text-decoration: none;
            color: inherit;
        }
    }

    .mwu-thumbnailIconWrapper-1c0b2a0 {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: var(--previewWidth, 16rem);
        max-width: 100%;
        height: var(--previewHeight, 10.5rem);
        background-color: white;
        border: 1px solid #dee2e6;
        border-radius: 8px;
        position: relative;
        transition:
            transform 0.3s ease-in-out,
            box-shadow 0.3s ease-in-out;
        cursor: pointer;
        aspect-ratio: 3/2;

        &:hover {
            transform: scale(1.05);
            z-index: 10;
            position: relative;
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
        }
    }

    .mwu-thumbnailVideoWrapper-1c0b2a0 {
        position: relative;
        width: var(--previewWidth, 16rem);
        max-width: 100%;
        height: var(--previewHeight, 10.5rem);
        border-radius: var(--bs-border-radius);
        border-width: var(--bs-border-width);
        border-color: var(--bs-border-color);
        overflow: hidden;
        background-color: black;
        transition:
            transform 0.3s ease-in-out,
            box-shadow 0.3s ease-in-out;
        cursor: pointer;
        aspect-ratio: 3/2;

        &:hover {
            transform: scale(1.05);
            z-index: 10;
            position: relative;
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
        }
    }

    .mwu-thumbnailVideo-1c0b2a0 {
        width: 100%;
        max-width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .mwu-thumbnailVideoOverlay-1c0b2a0 {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(0, 0, 0, 0.2);
        pointer-events: none;
    }

    .mwu-thumbnailVideoPlayIcon-1c0b2a0 {
        font-size: 2.5rem;
        color: white;
        text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
    }

    .mwu-thumbnailIcon-1c0b2a0 {
        font-size: 3rem;
        color: #6c757d;
    }

    .mwu-thumbnailPdfWrapper-1c0b2a0 {
        width: var(--previewWidth, 16rem);
        max-width: 100%;
        height: var(--previewHeight, 10.5rem);
        overflow: hidden;
        border-radius: 0.5rem;
        border: 1px solid #dee2e6;
        background-color: white;
        position: relative;
        cursor: pointer;
        transition:
            transform 0.3s ease-in-out,
            box-shadow 0.3s ease-in-out;
        aspect-ratio: 3/2;

        &:hover {
            transform: scale(1.05);
            z-index: 10;
            position: relative;
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
        }
    }

    .mwu-thumbnailPdfIframe-1c0b2a0 {
        width: 100%;
        height: 100%;
        border: none;
        overflow: hidden;
        /* Left interactive on purpose: the embedded viewer can be scrolled and
           zoomed right in the tile. Because an iframe is a nested browsing context
           those clicks never reach the ancestor `<a href="#lightbox-…">`, so opening
           the full-size preview is handled by the `.thumbnailPdfOpen` button below
           rather than by clicking the tile. */
    }

    /* Corner affordance that opens the lightbox for a PDF tile. It sits inside the
       tile's `<a href="#lightbox-…">`, so a click bubbles to that anchor and opens
       the preview — the one click target that does, since the interactive iframe
       swallows every click over the rest of the tile. Kept small and cornered so it
       barely covers the preview the user is scrolling. */
    /* Layout/shape/colour come from Bootstrap utilities on the element
       (`position-absolute bottom-0 end-0 m-2 d-flex align-items-center
       justify-content-center rounded-circle text-white`); only what Bootstrap
       can't express stays here: the fixed square, the icon size, and the
       translucent backdrop that darkens on hover. */
    .mwu-thumbnailPdfOpen-1c0b2a0 {
        z-index: 11;
        width: 2rem;
        height: 2rem;
        font-size: 0.9rem;
        background: rgba(0, 0, 0, 0.55);
        opacity: 0.85;
        transition:
            opacity 0.2s ease,
            background-color 0.2s ease;

        &:hover {
            opacity: 1;
            background: rgba(0, 0, 0, 0.75);
        }
    }

    .mwu-thumbnailInfo-1c0b2a0 {
        padding: 0.5rem 0;
        background-color: transparent;
    }

    .mwu-thumbnailFilename-1c0b2a0 {
        text-align: center;
        font-size: 0.875rem;
        font-weight: 500;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: var(--previewWidth, 16rem);
    }
}

@media (max-width: 768px) {
    .mwu-thumbnailContainer-1c0b2a0 {
        .mwu-thumbnailIcon-1c0b2a0,
        .mwu-thumbnailVideoPlayIcon-1c0b2a0 {
            font-size: 2.5rem;
        }
    }
}

@media (prefers-color-scheme: dark) {
    .mwu-thumbnailIconWrapper-1c0b2a0,
    .mwu-thumbnailPdfWrapper-1c0b2a0 {
        background-color: #343a40;
    }

    .mwu-thumbnailInfo-1c0b2a0 {
        background-color: transparent;
    }

    .mwu-thumbnailIcon-1c0b2a0 {
        color: #9a9a9a;
    }
}


@keyframes raiseUploadCompleteIcon {
    0% {
        top: 100%;
    }

    100% {
        top: 50%;
    }
}

@keyframes uploadProcessingScannerEffect {
    0% {
        top: -2.5ex;
    }

    50% {
        top: calc(100% + 1.5ex);
    }

    100% {
        top: -2.5ex;
    }
}

.mwu-filesDropZone-c028848 {
    width: 100%;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    .mwu-dropZone-c028848 {
        flex-grow: 1;
        width: 100%;
        display: flex;
        flex-direction: column;
        position: relative;
        border-radius: var(--bs-border-radius);
        transition: box-shadow 0.2s ease;
        isolation: isolate;

        &::before,
        &[data-paste-shortcut]::after {
            pointer-events: none;
            opacity: 0;
            transition:
                opacity 0.2s ease,
                transform 0.2s ease;
        }

        &::before {
            content: "";
            position: absolute;
            inset: 0;
            border-radius: inherit;
            background:
                radial-gradient(
                    circle at top right,
                    rgba(var(--bs-primary-rgb), 0.18),
                    transparent 42%
                ),
                linear-gradient(
                    135deg,
                    rgba(var(--bs-primary-rgb), 0.1),
                    rgba(var(--bs-info-rgb), 0.06)
                );
            transform: scale(0.985);
            z-index: -1;
        }

        &[data-paste-shortcut]::after {
            content: attr(data-paste-shortcut);
            position: absolute;
            top: 0.9rem;
            inset-inline-end: 1rem;
            max-width: calc(100% - 2rem);
            padding: 0.35rem 0.75rem;
            border-radius: 999px;
            background: rgba(var(--bs-body-color-rgb), 0.9);
            color: var(--bs-body-bg);
            font-size: 0.75rem;
            font-weight: 700;
            letter-spacing: 0.05em;
            white-space: nowrap;
            box-shadow: 0 0.5rem 1rem rgba(var(--bs-dark-rgb), 0.18);
            transform: translateY(-0.35rem);
            overflow: hidden;
            text-overflow: ellipsis;
        }

        > * {
            transition:
                transform 0.2s ease,
                filter 0.2s ease;
        }

        &[data-selected="true"] {
            &::before,
            &[data-paste-shortcut]::after {
                opacity: 1;
                transform: translateY(0);
            }
        }
    }

    .mwu-uploads-c028848 {
        --preview-container-width: 7em;
        display: grid;
        grid-template-columns: repeat(
            auto-fill,
            minmax(var(--preview-container-width), 1fr)
        );
        gap: 2em;
        width: 100%;
        overflow: clip;

        &:has(.mwu-uploader-c028848) {
            margin-top: 1em;
        }

        .mwu-uploader-c028848 {
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            --transition-duration: 0.3s;

            .mwu-preview-c028848 {
                width: 100%;
                margin-top: 1.5em;

                img {
                    max-width: 100%;
                    max-height: 100%;
                    object-fit: contain;
                }

                svg[role="graphics-symbol"] {
                    width: 100%;
                    height: 100%;
                }
            }

            .mwu-fileInfo-c028848 {
                position: absolute;
                top: 0;
                font-weight: bold;
                font-size: 66%;
                text-align: center;
                text-wrap: auto;
            }

            .progress {
                --bs-progress-height: 1.75em;
                --bs-progress-border-radius: calc(
                    var(--bs-progress-height) / 2
                );
                position: absolute;
                top: 55%;
                width: 75%;
                transition: opacity var(--transition-duration) ease-in-out;
            }

            .mwu-uploadProgressFill-c028848 {
                width: 0%;
            }

            .mwu-statusMessage-c028848 {
                position: absolute;
                display: none;
                opacity: 0;
                transition: opacity var(--transition-duration) ease-in-out;
            }

            &.Queued,
            &.Pending,
            &.Processing,
            &.Completed,
            &.Cancelled,
            &.Error {
                .mwu-statusMessage-c028848 {
                    display: block;
                    opacity: 0.8;
                    position: absolute;
                    top: 50%;
                    /* Centering idiom: pairs with the physical
                       `translate(-50%, -50%)` below. */
                    /* ast-grep-ignore: prefer-logical-inset */
                    left: 50%;
                    transform: translate(-50%, -50%);
                }

                .progress {
                    opacity: 0;
                }
            }

            &.Processing,
            &.Completed,
            &.Cancelled {
                .mwu-statusMessage-c028848 {
                    font-size: 300%;
                }

                .progress {
                    opacity: 0;
                }

                .mwu-actionButtons-c028848 {
                    display: none;
                }
            }

            &.Processing {
                overflow: visible;

                .mwu-preview-c028848 {
                    position: relative;
                    cursor: progress;

                    svg[role="graphics-symbol"] {
                        opacity: 0.5;
                    }

                    &::after {
                        content: "";
                        position: absolute;
                        inset-inline-start: 0;
                        width: 100%;
                        height: 1.5ex;
                        background: var(--bs-primary);
                        border-radius: 0.5ex;
                        box-shadow:
                            0 0 1ex var(--bs-primary-text-emphasis),
                            0 0 4ex var(--bs-primary-text-emphasis),
                            0 0 8ex var(--bs-primary-text-emphasis);
                        animation: uploadProcessingScannerEffect 6s linear
                            infinite;
                        pointer-events: none;
                    }
                }

                .mwu-statusMessage-c028848 {
                    display: none !important;
                }
            }

            &.Completed {
                .mwu-statusMessage-c028848 {
                    color: var(--bs-success);
                    z-index: 3;
                    animation: raiseUploadCompleteIcon 0.3s ease-out forwards;
                }
            }

            &.Cancelled {
                .mwu-statusMessage-c028848 {
                    color: var(--bs-warning);
                }
            }

            &.Error {
                .mwu-preview-c028848 {
                    opacity: 0.5;
                }

                .mwu-statusMessage-c028848 {
                    color: var(--bs-danger);
                    font-size: 90%;
                    max-width: 100%;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }

                .mwu-actionButtons-c028848 {
                    opacity: 1;
                }
            }

            .mwu-actionButtons-c028848 {
                position: absolute;
                top: 0;
                inset-inline-end: 0;
                z-index: 1;
                opacity: 0;
                transition: opacity var(--transition-duration) ease-in-out;
                display: flex;
                gap: 0.25em;
            }

            &:hover .mwu-actionButtons-c028848 {
                opacity: 1;
            }
        }
    }
}


.mwu-container-aaad542 {
    width: 100%;
    padding: 1.5rem;
    border: 2px dashed var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background: var(--bs-tertiary-bg);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    container-type: inline-size;
    container-name: files-drop-zone;
    transition:
        border-width 0.2s ease,
        border-color 0.2s ease,
        background-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;

    [data-selected="true"] & {
        border-color: var(--bs-primary);
        background: var(--bs-primary-bg-subtle);
    }

    .mwu-backgroundIconContainer-aaad542 {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        pointer-events: none;

        .mwu-backgroundIcon-aaad542 {
            width: clamp(5rem, 22cqi, 9rem);
            height: clamp(5rem, 22cqi, 9rem);
            opacity: 0.075;
            color: var(--bs-body-color);
        }
    }

    .mwu-textContainer-aaad542 {
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.85rem;
        max-width: 34rem;

        .mwu-headline-aaad542 {
            color: var(--bs-secondary-color);
            font-size: 1rem;
            font-weight: 600;
            line-height: 1.45;
            text-wrap: balance;
        }

        .mwu-actions-aaad542 {
            display: flex;
            align-items: center;
            justify-content: center;
            flex-wrap: wrap;
            gap: 0.75rem 1rem;
            color: var(--bs-secondary-color);

            .mwu-selected-aaad542 {
                display: none;
                [data-selected="true"] & {
                    display: block;
                }
            }
        }
    }

    @container files-drop-zone (width <= 28rem) {
        .mwu-container-aaad542 {
            min-height: 10.5rem;
            padding-block: 2rem 1.25rem;
        }

        .mwu-headline-aaad542 {
            font-size: 0.95rem;
        }

        .mwu-actions-aaad542 {
            flex-direction: column;
            gap: 0.65rem;
        }
    }
}


@keyframes mantiqFocusHighlight {
    0% {
        box-shadow:
            0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.95),
            0 0 0.85rem 0.5rem rgba(var(--bs-primary-rgb), 0.6);
        background-color: rgba(var(--bs-primary-rgb), 0.18);
    }

    100% {
        box-shadow:
            0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0),
            0 0 0.85rem 0.8rem rgba(var(--bs-primary-rgb), 0);
        background-color: transparent;
    }
}

/* The focus target itself, plus any descendant opting in with
   `.mantiq-focus-emphasis`, pulse together so a deep link can call out both a
   region and the precise control inside it. */
.mantiq-focus-highlight,
.mantiq-focus-highlight .mantiq-focus-emphasis {
    animation: mantiqFocusHighlight 0.85s ease-out 3;
    border-radius: var(--bs-border-radius, 0.375rem);
    position: relative;
    z-index: 1;
}


.mwu-editor-211bdca {
	/* Preserve HTML source indentation and wrap long lines instead of scrolling
	   horizontally; each source line is its own block <div class="he-line">. */
	white-space: pre-wrap;
	word-break: break-word;
	overflow-wrap: anywhere;
	overflow-y: auto;
	min-height: 18em;
	max-height: 70vh;
	font-size: 0.8125rem;
	line-height: 1.55;
	tab-size: 2;

	.he-line {
		min-height: 1.55em;
	}

	/* Syntax colours. The Bootstrap palette vars are stable hexes that read
	   acceptably on both light and dark themes. */
	.he-text {
		color: var(--bs-body-color);
	}
	.he-punct {
		color: var(--bs-secondary-color);
	}
	.he-tag {
		color: var(--bs-blue, #0d6efd);
		font-weight: 600;
	}
	.he-attr {
		color: var(--bs-purple, #6f42c1);
	}
	.he-string {
		color: var(--bs-green, #198754);
	}
	.he-comment {
		color: var(--bs-secondary-color);
		font-style: italic;
	}
	.he-placeholder {
		color: var(--bs-orange, #fd7e14);
		font-weight: 700;
		background: var(--bs-warning-bg-subtle);
		border-radius: var(--bs-border-radius-sm);
		padding-inline: 0.1em;
	}
	.he-cid {
		color: var(--bs-teal, #20c997);
		font-weight: 700;
	}
}


.mwu-actionColumn-6c7aea4 {
	width: 3rem;
	padding: 0 !important;
}

.mwu-table-6c7aea4 {
	table-layout: fixed;
	width: 100%;
	/* Overflow (and scroll, via the `.table-responsive` wrapper) instead of
	   crushing the fixed columns on mobile. */
	min-width: 44rem;

	thead th {
		white-space: nowrap;

		&:nth-child(1) {
			width: auto;
		}

		&:nth-child(2) {
			width: 8rem;
		}

		&:nth-child(3) {
			width: 11rem;
		}

		&:nth-child(4) {
			width: 10rem;
		}
	}

	tbody td {
		vertical-align: middle;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;

		/* Ellipsis the file name in the flex name cell instead of letting it
		   overflow (flex items default to min-width: auto). `.d-flex` is the
		   global Bootstrap class, so keep it unscoped via :global(). */
		& .d-flex {
			min-width: 0;
		}

		& .d-flex > span {
			overflow: hidden;
			text-overflow: ellipsis;
			white-space: nowrap;
		}
	}

	/* Hover-reveal three-dots button — match tree view styling */
	tbody tr {
		.mwu-actionsCell-6c7aea4 button {
			opacity: 0;
			transition: opacity 0.1s ease;
			color: var(--bs-secondary);
			background: transparent !important;
			border: none !important;
			padding: 0.25rem 0.5rem !important;
			border-radius: 0.375rem;

			&:hover {
				color: var(--bs-body-color);
				background: var(--bs-secondary-bg) !important;
			}
		}

		/* Keep the trigger visible while its portaled menu is open — the
		   menu is not a row descendant, so row :hover ends inside it. */
		&:hover .mwu-actionsCell-6c7aea4 button,
		&.mwu-highlighted-6c7aea4 .mwu-actionsCell-6c7aea4 button,
		.mwu-actionsCell-6c7aea4 button[aria-expanded="true"] {
			opacity: 1;
		}
	}

    & tbody tr.mwu-renamed-6c7aea4 > td {
    	animation: renameFlash 500ms ease-out;
    }

    & tbody tr.mwu-deleting-6c7aea4 {
    	animation: deleteSlideOut 300ms ease-out forwards;
    	pointer-events: none;
    }
}

.mwu-secondaryInfo-6c7aea4 {
	color: var(--bs-secondary);
	font-size: 0.8125rem;
}

/* Highlighted file state - target td elements to override Bootstrap */
.mwu-table-6c7aea4 tbody tr.mwu-highlighted-6c7aea4 > td,
.mwu-table-6c7aea4 tbody tr.mwu-highlighted-6c7aea4:nth-of-type(odd) > td,
.mwu-table-6c7aea4 tbody tr.mwu-highlighted-6c7aea4:nth-of-type(even) > td {
	background-color: rgba(255, 193, 7, 0.3) !important;
}

[data-bs-theme="dark"] .mwu-table-6c7aea4 tbody tr.mwu-highlighted-6c7aea4 > td,
[data-bs-theme="dark"] .mwu-table-6c7aea4 tbody tr.mwu-highlighted-6c7aea4:nth-of-type(odd) > td,
[data-bs-theme="dark"] .mwu-table-6c7aea4 tbody tr.mwu-highlighted-6c7aea4:nth-of-type(even) > td {
	background-color: rgba(255, 193, 7, 0.4) !important;
}

/* Delete animation - slide out row */
@keyframes deleteSlideOut {
	0% {
		opacity: 1;
		transform: translateX(0);
	}
	100% {
		opacity: 0;
		transform: translateX(-50px);
	}
}

/* Rename animation - info flash */
@keyframes renameFlash {
	0% {
		background-color: rgba(var(--bs-info-rgb), 0.4);
	}
	100% {
		background-color: transparent;
	}
}



/* Character Spinner */

@keyframes characterSpinnerRotation {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(359deg);
    }
}

.mwu-characterSpinner-a4874d2 {
    display: inline-block;
    animation: characterSpinnerRotation 2s infinite linear;
}

/* Text Skeleton */

.mwu-textPlaceholder-a4874d2 {
    display: inline-block;
    width: 8rem;
    max-width: 100%;
    height: 1em;
    vertical-align: middle;
}

/* Horizontal Line */

@keyframes horizontalLineSlider {
    0% {
        inset-inline-end: 80%;
        inset-inline-start: 1%;
    }
    5% {
        inset-inline-start: 1%;
    }
    50% {
        inset-inline-end: 1%;
        inset-inline-start: 80%;
    }
    55% {
        inset-inline-end: 1%;
    }
    100% {
        inset-inline-end: 80%;
        inset-inline-start: 1%;
    }
}

.mwu-horizontalLine-a4874d2 {
    width: 25%;
    height: 6px;
    background-color: var(--bs-secondary);
    position: relative;
    border-radius: 3px;
    box-sizing: border-box;
    overflow: hidden;
    margin-inline: auto;
    margin-top: var(--space-2, 0.5rem);
    margin-bottom: var(--space-2, 0.5rem);

    &::after {
        border-radius: 3px;
        content: "";
        position: absolute;
        background-color: var(--bs-light);
        top: 1px;
        bottom: 1px;
        animation: horizontalLineSlider 2s linear infinite;
    }
}

/* Pulsing Grid */

@keyframes pulsingGridAnimation {
    0% {
        opacity: 0.8;
        transform: scale(1);
    }
    50% {
        opacity: 0.35;
        transform: scale(0.45);
    }
    100% {
        opacity: 0.8;
        transform: scale(1);
    }
}

.mwu-pulsingGrid-a4874d2 {
    display: block;
    font-size: 0;

    max-width: 108px;
    width: 100%;
    margin: auto;
    aspect-ratio: 1;

    &,
    & > div {
        position: relative;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }

    & > div {
        display: inline-block;
        float: none;
        background-color: var(--bs-body-color);
        border: none;
        width: 15%; /* 16px / 108px */
        height: 15%;
        margin: 9%; /* 10px / 108px */
        border-radius: 100%;
        animation-name: pulsingGridAnimation;
        animation-iteration-count: infinite;
    }

    & > div:nth-child(1) {
        animation-duration: 0.65s;
        animation-delay: 0.03s;
    }

    & > div:nth-child(2) {
        animation-duration: 1.02s;
        animation-delay: 0.09s;
    }

    & > div:nth-child(3) {
        animation-duration: 1.06s;
        animation-delay: -0.69s;
    }

    & > div:nth-child(4) {
        animation-duration: 1.5s;
        animation-delay: -0.41s;
    }

    & > div:nth-child(5) {
        animation-duration: 1.6s;
        animation-delay: 0.04s;
    }

    & > div:nth-child(6) {
        animation-duration: 0.84s;
        animation-delay: 0.07s;
    }

    & > div:nth-child(7) {
        animation-duration: 0.68s;
        animation-delay: -0.66s;
    }

    & > div:nth-child(8) {
        animation-duration: 0.93s;
        animation-delay: -0.76s;
    }

    & > div:nth-child(9) {
        animation-duration: 1.24s;
        animation-delay: -0.76s;
    }
}

/* Orbit Spinner */

@keyframes orbitSpinner-orbit-one-animation {
    0% {
        transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
    }
    100% {
        transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
    }
}

@keyframes orbitSpinner-orbit-two-animation {
    0% {
        transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
    }
    100% {
        transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
    }
}

@keyframes orbitSpinner-orbit-three-animation {
    0% {
        transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
    }
    100% {
        transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
    }
}

.mwu-orbitSpinner-a4874d2 {
    display: flex;
    justify-content: center;
    align-content: center;
    pointer-events: none;
    transition-property: opacity;
    transition-duration: 0.2s;
    transition-timing-function: ease-out;

    & .mwu-orbitSpinnerLoader-a4874d2,
    & .mwu-orbitSpinnerLoader-a4874d2 * {
        box-sizing: border-box;
    }

    & .mwu-orbitSpinnerLoader-a4874d2 {
        display: block;
        margin: auto;
        position: relative;
        width: 100px;
        height: 100px;
        border-radius: 50%;
        perspective: 1454px;

        & div {
            position: absolute;
            box-sizing: border-box;
            width: 100%;
            height: 100%;
            border-radius: 50%;
        }

        /* The three orbits are one ring seen in perspective, spun by physical
           rotateX/Y/Z. Their edges and offsets are rotational geometry, not
           reading direction: mirroring a single arc under RTL would break the
           ring while its siblings (border-top/-bottom) stayed put. */

        & div:nth-child(1) {
            /* ast-grep-ignore: prefer-logical-inset */
            left: 0;
            top: 0;
            animation: orbitSpinner-orbit-one-animation 1200ms linear infinite;
            border-bottom: 6px solid var(--bs-body-color);
        }

        & div:nth-child(2) {
            /* ast-grep-ignore: prefer-logical-inset */
            right: 0;
            top: 0;
            animation: orbitSpinner-orbit-two-animation 1200ms linear infinite;
            /* ast-grep-ignore: prefer-logical-inline-properties */
            border-right: 6px solid var(--bs-body-color);
        }

        & div:nth-child(3) {
            /* ast-grep-ignore: prefer-logical-inset */
            right: 0;
            bottom: 0;
            animation: orbitSpinner-orbit-three-animation 1200ms linear infinite;
            border-top: 6px solid var(--bs-body-color);
        }
    }
}


.mwu-mapContainer-9e9b456 {
    position: relative;
    overflow: hidden;
    /* A query container so the on-map controls can respond to the MAP's own
       width (not the viewport): a narrow map panel drops the top-right controls
       to a row below the search bar. `inline-size` only — block-size containment
       would feed the canvas height loop the note below guards against. */
    container-type: inline-size;

    /* Contain the settings panel (and its backdrop — Bootstrap appends it to
       the offcanvas' parent) within the map instead of the viewport:
       Bootstrap's `position: fixed` would slide it over the whole page. */
    .offcanvas {
        position: absolute !important;
        top: 0 !important;
        bottom: 0 !important;
        height: auto !important;
        max-height: 100% !important;
    }

    .offcanvas-end {
        inset-inline-end: 0 !important;
    }

    .offcanvas-backdrop {
        position: absolute !important;
        inset: 0 !important;
    }

    /* Wheel containment (`contain_map_wheel`) exempts scrollable overlay
       regions from `preventDefault`; containing their overscroll keeps an
       exempted scroll from chaining to the page at its end — for every
       overlay, including consumer-provided ones. `overscroll-behavior` only
       affects scroll containers and is not inherited, hence the universal
       descendant rule. */
    * {
        overscroll-behavior: contain;
    }
}

/* The Cesium canvas mounts here. It MUST be sized by its parent, not by its
   own content: Cesium resizes its <canvas> to the container's client size, so a
   content-driven (e.g. flex-stretch) height feeds back — canvas → container
   grows → canvas grows → unbounded. Absolutely filling the `position: relative`,
   `overflow: hidden` wrapper (which the flex chain gives a definite height,
   floored by `min-height`) breaks that loop. */
.mwu-map-9e9b456 {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

/* A CesiumOverlay box: placed each rendered frame via `transform`, hidden
   until the first projection lands (and while its anchor is off-screen). Its
   content — popup card, hover preview — defines its size. By default it lets
   pointer events through to the canvas (`pointer-events` is inherited, so the
   content does too), otherwise an overlay parked over a marker would starve
   the map's MOUSE_MOVE picking and freeze hover state. */
.mwu-overlay-9e9b456 {
    position: absolute;
    top: 0;
    /* Physical origin: the box is placed by a physical `transform` computed from
       the projected screen point, so the anchor must not flip with direction. */
    /* ast-grep-ignore: prefer-logical-inset */
    left: 0;
    z-index: 2;
    display: none;
    pointer-events: none;
}

/* Opt-in for clickable content (the `interactive` prop): the click card needs
   its links and close button back. */
.mwu-overlayInteractive-9e9b456 {
    pointer-events: auto;
}

/* Top-left cluster: the place search bar stacked above the zoom steps — where
   map users expect both. Above the popup overlays (z-index 2) so the search
   field and buttons stay reachable under an open card. The column is laid out
   start-aligned so the (wider) search bar doesn't stretch the zoom button
   group, and the gap keeps the two visually distinct. */
.mwu-zoomControls-9e9b456 {
    position: absolute;
    /* Above the top-right controls (z-index 3): when a narrow map drops those
       controls into the search-results band, the open dropdown must sit over
       them (and receive the clicks), not the other way round. */
    z-index: 4;
    top: 10px;
    inset-inline-start: 10px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    /* The column is as wide as the (14rem) search bar, so its blank area to the
       right of the zoom buttons would otherwise swallow map clicks/drags. Let
       that fall through to the canvas; the real controls re-enable below. */
    pointer-events: none;
}

/* Re-enable interaction on the actual controls (search bar + zoom group). */
.mwu-zoomControls-9e9b456 > * {
    pointer-events: auto;
}

/* Camera/view controls (my-location, fullscreen, settings), top-right. */
.mwu-controls-9e9b456 {
    position: absolute;
    z-index: 3;
    top: 10px;
    inset-inline-end: 10px;
}

/* On a narrow map there isn't room for the search bar and these three controls
   on one row, so drop the controls to a second row just beneath the search bar.
   The query measures the MAP's width (via `container-type` on `.mapContainer`),
   not the viewport, so it tracks the actual panel size. An open results dropdown
   (higher z-index) covers them while typing — an accepted trade for keeping the
   search field at full width.

   Only when the search bar is shown (`.zoomControlsSearch`, set by
   CesiumMapControls' `search` prop) — without a bar there's nothing to avoid.

   Breakpoint: the 14rem bar (right edge ~234px from the map's start) and the
   three controls (~134px block on the right) only collide around 23rem of map
   width; 23.5rem drops them just before they touch, so they stay on one row as
   long as they comfortably fit. */
@container (max-width: 23.5rem) {
    .mwu-zoomControlsSearch-9e9b456 ~ .mwu-controls-9e9b456 {
        top: 3.5rem;
    }
}

/* 3D navigation cluster (CesiumNavJoystick), bottom-left: a "north" button
   stacked above a fixed outer ring with a draggable inner knob. The knob's
   offset transform is set via CSSOM (not a style= attr — the CSP blocks
   style-src-attr). Above popups (z-index 2) so it stays usable under an open
   card. */
.mwu-joystick-9e9b456 {
    position: absolute;
    z-index: 3;
    bottom: 10px;
    inset-inline-start: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

/* "North" reset button — sits above the ring. */
.mwu-joystickNorth-9e9b456 {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.2);
    background: rgba(255, 255, 255, 0.85);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
    color: #333;
    font-weight: 700;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* The fixed outer ring the knob moves within. */
.mwu-joystickRing-9e9b456 {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid rgba(0, 0, 0, 0.2);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
    touch-action: none;
}

.mwu-joystickKnob-9e9b456 {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(50, 50, 50, 0.9);
    border: 2px solid #fff;
    cursor: grab;
    touch-action: none;
    /* Spring back to centre on release; suppressed while dragging
       (.joystickKnobActive) so the knob tracks the pointer 1:1. */
    transition: transform 0.12s ease-out;
}

.mwu-joystickKnob-9e9b456:active {
    cursor: grabbing;
}

.mwu-joystickKnobActive-9e9b456 {
    transition: none;
}

/* Street View overlay (CesiumStreetView): fills the map above every other
   on-map control while a panorama is open, hidden otherwise. The close button
   rides the top-inline-end corner; the panorama host fills the rest, sized so
   Google can mount its viewer into it. The black backing shows while the
   panorama imagery loads. */
.mwu-streetViewContainer-9e9b456 {
    position: absolute;
    inset: 0;
    z-index: 10;
    display: none;
    background: #000;
}

.mwu-streetViewVisible-9e9b456 {
    display: block;
}

.mwu-streetViewCloseBtn-9e9b456 {
    position: absolute;
    z-index: 11;
    top: 10px;
    inset-inline-end: 10px;
}

.mwu-streetViewPanorama-9e9b456 {
    width: 100%;
    height: 100%;
}

/* Street View status pill (CesiumStreetView): a bottom-centre hint / loading /
   no-coverage notice, shown only while the Street View layer is active and no
   panorama is open. Above popups (z 2) and on-map controls (z 3); inert
   (pointer-events: none) so it never steals map clicks. */
.mwu-streetViewStatus-9e9b456 {
    position: absolute;
    z-index: 4;
    bottom: 12px;
    /* Centering idiom: pairs with the physical `translateX(-50%)` below, which
       does not flip under RTL. */
    /* ast-grep-ignore: prefer-logical-inset */
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    max-width: calc(100% - 1.5rem);
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.72);
    color: #fff;
    font-size: 0.85rem;
    line-height: 1.2;
    white-space: nowrap;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
    pointer-events: none;
}

/* Loading scrim over the panorama while new imagery resolves. On first open the
   backing is black; on a reposition the previous panorama shows through, dimmed,
   so it reads as "loading a new view". Below the close button (z 11). */
.mwu-streetViewLoadingOverlay-9e9b456 {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.45);
    pointer-events: none;
}

/* A settings-panel layer thumbnail: one fixed tile of the layer, enough to
   convey its style at a glance. */
.mwu-imageryPreview-9e9b456 {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border: 1px solid var(--bs-border-color);
    /* Host-app token; the fallback keeps the radius for consumers without it. */
    border-radius: var(--radius-sm, 0.25rem);
    background-color: var(--bs-secondary-bg);
}

/* Google layers have no synchronous preview tile (their tiles need an async
   Map Tiles session token), so the panel shows a neutral same-sized box in
   place of a thumbnail. The label beside it still names the layer. */
.mwu-imageryPreviewPlaceholder-9e9b456 {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius-sm, 0.25rem);
    background-color: var(--bs-secondary-bg);
}

/* Wraps a settings-panel layer thumbnail so a cue badge can overlay its corner
   (used to mark the Street View layer as opening 360° panoramas). */
.mwu-imageryPreviewWrap-9e9b456 {
    position: relative;
    flex-shrink: 0;
    line-height: 0;
}

/* Pegman + 360° cue overlaid on the Street View layer's thumbnail, signalling
   that selecting it makes roads clickable into panoramas. Decorative — the
   row's label still names the layer. */
.mwu-streetViewBadge-9e9b456 {
    position: absolute;
    inset-block-end: 2px;
    inset-inline-end: 2px;
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    padding: 0.05rem 0.3rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.72);
    color: #fff;
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 1.4;
    pointer-events: none;
}

/* The selected base-imagery row in the settings panel's list-group. Bootstrap's
   default `.active` paints a solid, saturated `--bs-primary` fill that overpowers
   the layer thumbnail beside it; instead use the workspace's subtle-primary
   selection palette (the same tokens the calendar and single-select controls
   use) — a soft tint, emphasis-coloured label, and subtle border, with a
   primary accent bar on the inline-start edge drawn as an inset shadow (so it
   adds no layout shift, and the shared item borders stay intact). Every value is
   a Bootstrap theme variable, so the selection tracks the brand colour and dark
   mode automatically. Scoped under `.mapContainer` (which contains the panel),
   so it never leaks to other list-groups. */
.mwu-mapContainer-9e9b456 .offcanvas .list-group-item.active {
    color: var(--bs-primary-text-emphasis);
    background-color: var(--bs-primary-bg-subtle);
    border-color: var(--bs-primary-border-subtle);
    box-shadow: inset 3px 0 0 0 var(--bs-primary);
}

[dir="rtl"] .mwu-mapContainer-9e9b456 .offcanvas .list-group-item.active {
    box-shadow: inset -3px 0 0 0 var(--bs-primary);
}

/* Fullscreen is a pure CSS swap: pin the map container over the whole
   viewport, above the app chrome. z-index 1060 matches the workspace's other
   map views — deliberately above Bootstrap's modal layer (1055) so page
   chrome cannot cover the fullscreen map. */
.mwu-mapFullScreen-9e9b456 {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1060 !important;
    background-color: var(--bs-body-bg);
}

/* While fullscreen, neutralise every ancestor property that would otherwise
   trap the fixed container in a local stacking context or containing block,
   so its `position: fixed` resolves against the viewport and its z-index
   outranks the app chrome. `clip-path`, `transform`, `filter`, `perspective`
   and `contain` each establish a stacking context (and the latter three a
   containing block too): an ancestor carrying one — e.g. the edit page's tab
   outlet, which gets `clip-path: inset(0 -100vw)` to let a sticky bottom
   action bar overflow — would otherwise paint the whole map subtree below the
   sidebar/header regardless of the map's own z-index. They are visually inert
   here because the fullscreen map covers the chain anyway. The view-transition
   opt-out stops a transition snapshotting the fixed container back into page
   flow mid-animation. A document-wide :has() is costly to invalidate, but it
   only exists while a map is mounted and matches the other map views' sheet. */
*:has(.mwu-mapFullScreen-9e9b456) {
    view-transition-name: none !important;
    clip-path: none !important;
    transform: none !important;
    filter: none !important;
    perspective: none !important;
    contain: none !important;
}

/* OL-style collapsed attribution control. Cesium still writes credits into
   `.credits`; this wrapper just hides that line behind a small bottom-corner
   toggle until the user opens it. */
.mwu-attributionControl-9e9b456 {
    position: absolute;
    z-index: 3;
    bottom: 0.5rem;
    inset-inline-end: 0.5rem;
    display: flex;
    align-items: flex-end;
    max-width: calc(100% - 1rem);
    font-size: 10px;
    line-height: 1.15;
    pointer-events: auto;
}

.mwu-attributionToggle-9e9b456 {
    flex: 0 0 auto;
    width: 1.375rem;
    height: 1.375rem;
    padding: 0;
    border: 1px solid rgb(0 0 0 / 20%);
    border-radius: 2px;
    background: rgb(255 255 255 / 85%);
    color: #111;
    font: italic 700 0.95rem/1 Arial, sans-serif;
    cursor: pointer;
}

.mwu-attributionToggle-9e9b456:hover,
.mwu-attributionToggle-9e9b456:focus-visible {
    background: #fff;
}

/* The custom creditContainer we hand to the Cesium Viewer. When expanded,
   keep every provider credit on one horizontal line. */
.mwu-credits-9e9b456 {
    display: none;
    align-items: center;
    min-width: 0;
    min-height: 1.375rem;
    padding: 0 0.45rem;
    overflow-x: auto;
    overflow-y: hidden;
    border: 1px solid rgb(0 0 0 / 20%);
    border-inline-end: 0;
    border-radius: 2px 0 0 2px;
    background: rgb(255 255 255 / 85%);
    color: #111;
    white-space: nowrap;
    scrollbar-width: thin;
}

.mwu-attributionControlExpanded-9e9b456 .mwu-credits-9e9b456 {
    display: flex;
}

/* Force-hide whichever credit strip isn't active — Cesium's static credits vs
   Google's dynamic per-viewport copyright — overriding the expanded flex. */
.mwu-creditsHidden-9e9b456 {
    display: none !important;
}

.mwu-credits-9e9b456 .cesium-widget-credits {
    position: static !important;
    display: inline-flex !important;
    align-items: center;
    flex-wrap: nowrap;
    max-width: 100%;
    /* Resets Cesium's own physical `padding-right: 5px` on this element, so it
       must stay physical too. */
    /* ast-grep-ignore: prefer-logical-inline-properties */
    padding-right: 0;
    color: #111;
    text-shadow: none;
    white-space: nowrap;
}

.mwu-credits-9e9b456 .cesium-credit-text,
.mwu-credits-9e9b456 .cesium-credit-wrapper a,
.mwu-credits-9e9b456 .cesium-credit-wrapper a:visited {
    color: #111 !important;
}

.mwu-credits-9e9b456 .cesium-credit-textContainer,
.mwu-credits-9e9b456 .cesium-credit-logoContainer {
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    white-space: nowrap;
}

.mwu-credits-9e9b456 .cesium-credit-textContainer * {
    white-space: nowrap;
}

.mwu-credits-9e9b456 .cesium-credit-expand-link {
    display: none !important;
}

[dir="rtl"] .mwu-credits-9e9b456 {
    border-inline-end: 1px solid rgb(0 0 0 / 20%);
    border-inline-start: 0;
    border-radius: 0 2px 2px 0;
}

/* Drop Cesium's default ion logo — but only when the map uses no Cesium ion
   assets. The engine's CreditDisplay always seeds the credit container with the
   Cesium ion logo; per Cesium's licence that logo is *required* only while the
   map renders ion-served assets (ion imagery/terrain/3D tiles, which need an
   ion access token). Our 2D OSM/Google maps load none, so `CesiumMap` adds this
   class (it omits it when `uses_cesium_ion` is set) and the logo is hidden. The
   tile attribution text (`.cesium-credit-textContainer`, e.g. "© OpenStreetMap
   contributors") is a separate container and always stays visible. */
.mwu-hideIonLogo-9e9b456 .cesium-credit-logoContainer {
    display: none !important;
}


.mwu-markdownEditor-fef564f {
	/* Toolbar */
	.navbar {
		padding-block: var(--space-1, 0.25rem);
		border-bottom: 1px solid var(--bs-border-color);

		.container-fluid {
			row-gap: var(--space-1, 0.25rem);
		}

		/* Rounded corners belong to the individual mdToolbarBtn first/last-child;
		   the btn-group is a logical wrapper only and contributes no radius. */
		.btn-group {
			border-radius: 0 !important;
		}

		/* Subtle vertical separators between btn-groups */
		.btn-group + .btn-group:not(.ms-auto) {
			margin-inline-start: var(--space-2, 0.5rem);
			padding-inline-start: var(--space-2, 0.5rem);
			border-inline-start: 1px solid var(--bs-border-color);
		}
	}

	/* Icon-button "ghost" style for toolbar buttons: transparent by default,
	   subtle hover, primary-tinted when the cursor sits inside the matching
	   markdown formatting. Self-contained class with no Bootstrap inheritance. */
	.mwu-mdToolbarBtn-fef564f {
		gap: var(--icon-spacing, 0.25em);
		background: transparent;
		border: 1px solid transparent;
		color: var(--bs-secondary-color);
		padding: var(--space-1, 0.25rem) var(--space-2, 0.5rem);
		border-radius: var(--bs-border-radius-sm);
		font-size: 0.875rem;
		line-height: 1;
		transition:
			background-color 0.12s ease,
			color 0.12s ease,
			border-color 0.12s ease;
		cursor: pointer;

		&:hover:not(:disabled) {
			background: var(--bs-tertiary-bg);
			color: var(--bs-body-color);
		}

		&:focus-visible {
			outline: 0;
			box-shadow: 0 0 0 0.2rem var(--bs-primary-bg-subtle);
			z-index: 2;
		}

		&.mwu-is-active-fef564f {
			background: var(--bs-primary-bg-subtle);
			color: var(--bs-primary-text-emphasis);
			border-color: var(--bs-primary-border-subtle);
		}

		&:disabled {
			opacity: 0.5;
			cursor: not-allowed;
		}
	}

	.btn-group > .mwu-mdToolbarBtn-fef564f {
		&:first-child {
			border-start-start-radius: var(--bs-border-radius-sm);
			border-end-start-radius: var(--bs-border-radius-sm);
		}

		&:last-child {
			border-start-end-radius: var(--bs-border-radius-sm);
			border-end-end-radius: var(--bs-border-radius-sm);
		}
	}

	@media (max-width: 479.98px) {
		.mwu-mdToolbarBtn-fef564f[data-mobile-hide="true"] {
			display: none;
		}
	}

	/* Optional right-side preview pane: shows pulldown-cmark rendered HTML
	   (no markers). Hidden by default, revealed via the toolbar Preview toggle. */
	.md-with-preview .md-body {
		width: 50%;
		border-start-end-radius: 0;
		border-end-end-radius: 0;
	}

	.md-preview-pane {
		flex: 0 0 50%;
		max-width: 50%;
		min-height: 300px;
		max-height: 70vh;
		overflow-y: auto;
		padding: var(--space-3, 1rem);
		background: var(--bs-tertiary-bg);
		border: 1px solid var(--bs-border-color);
		border-end-end-radius: var(--bs-border-radius);
		border-inline-start: 0;
		font-family: var(--bs-body-font-family);

		> :first-child {
			margin-top: 0;
		}

		> :last-child {
			margin-bottom: 0;
		}

		/* Match the editor's heading typography so toggling Preview doesn't
		   visually jump. `!important` overrides tenant-themed rules like
		   `.themeBox#theme-financial h1 { font-family: "Trajan Pro" }` whose
		   (1,1,1) specificity wins over a normal scoped rule. */
		h1, h2, h3, h4, h5, h6 {
			font-family: var(--bs-body-font-family) !important;
			text-transform: none !important;
			font-variant: normal !important;
			font-style: normal !important;
		}
		h1 { font-size: 1.75rem; font-weight: 700; line-height: 1.3; }
		h2 { font-size: 1.5rem;  font-weight: 700; line-height: 1.3; }
		h3 { font-size: 1.25rem; font-weight: 700; }
		h4 { font-size: 1.1rem;  font-weight: 700; }
		h5 { font-size: 1rem;    font-weight: 700; }
		h6 { font-size: 0.9rem;  font-weight: 700; }
	}

	/* Editor body: a single contenteditable surface that doubles as the
	   in-place preview. Source markdown stays editable; markers stay visible
	   but dimmed; the surrounding content picks up the rendered styling. */
	.md-body {
		min-height: 300px;
		max-height: 70vh;
		overflow-y: auto;
		padding: var(--space-3, 1rem);
		border-radius: 0 0 var(--bs-border-radius) var(--bs-border-radius);
		border-color: var(--bs-border-color);
		outline: none;
		white-space: pre-wrap;
		word-break: break-word;

		&:focus {
			box-shadow: none;
			border-color: var(--bs-primary-border-subtle);
		}
	}

	/* Top-level line wrapper. Every source line becomes one block element. */
	.md-line {
		min-height: 1.5em;
	}

	.md-line.md-empty {
		min-height: 1.5em;
	}

	/* Markers: `**`, `#`, `>`, `-`, `` ` ``, `[`, `]`, `(`, `)`, `!`. Always
	   visible (the source character must be there for editing to work) but
	   dimmed so the rendered intent reads first. */
	.md-marker {
		opacity: 0.45;
		color: var(--bs-secondary-color);
		font-weight: normal;
	}

	/* Block kinds */
	.md-line.md-heading-1 {
		font-size: 1.75rem;
		font-weight: 700;
		line-height: 1.3;
		margin: 0.5rem 0 0.25rem;
	}
	.md-line.md-heading-2 {
		font-size: 1.5rem;
		font-weight: 700;
		line-height: 1.3;
		margin: 0.5rem 0 0.25rem;
	}
	.md-line.md-heading-3 {
		font-size: 1.25rem;
		font-weight: 700;
		line-height: 1.35;
	}
	.md-line.md-heading-4 {
		font-size: 1.1rem;
		font-weight: 700;
	}
	.md-line.md-heading-5 {
		font-size: 1rem;
		font-weight: 700;
	}
	.md-line.md-heading-6 {
		font-size: 0.9rem;
		font-weight: 700;
	}

	.md-line.md-blockquote {
		border-inline-start: 4px solid var(--bs-border-color);
		padding-inline-start: 0.75rem;
		color: var(--bs-secondary-color);
	}

	/* Horizontal rule: keep the source `---` in the DOM (source-mirroring
	   contract) and keep the line clickable so the user can navigate the caret
	   into it. The visual separator is drawn via a centred `::before` rule;
	   the source characters are dimmed to near-invisible but still occupy
	   real height so the row has a click target. */
	.md-line.md-hr {
		position: relative;
		margin: 0.75rem 0;
		min-height: 1.25em;
		display: flex;
		align-items: center;
	}

	.md-line.md-hr::before {
		content: "";
		position: absolute;
		inset-inline: 0;
		top: 50%;
		height: 1px;
		background: var(--bs-border-color);
		opacity: 0.7;
		pointer-events: none;
	}

	.md-line.md-hr .md-marker {
		color: var(--bs-secondary-color);
		opacity: 0.25;
		font-size: 0.7em;
		position: relative;
		background: var(--bs-body-bg);
		padding-inline: 0.4em;
	}

	.md-line.md-bullet,
	.md-line.md-numbered {
		/* Indent for the rendered marker; the source marker itself stays in place. */
		padding-inline-start: 0.25rem;
	}

	/* Fenced code blocks: gray background + monospace */
	.md-line.md-code-fence,
	.md-line.md-code-body {
		font-family: var(--bs-font-monospace);
		background: var(--bs-tertiary-bg);
		padding-inline: 0.5em;
	}

	/* Inline tokens */
	.md-bold-text {
		font-weight: 700;
	}
	.md-italic-text {
		font-style: italic;
	}
	.md-strike-text {
		text-decoration: line-through;
		text-decoration-color: var(--bs-secondary-color);
	}
	.md-code-inline {
		font-family: var(--bs-font-monospace);
		background: var(--bs-tertiary-bg);
		padding: 0 0.25em;
		border-radius: 0.2em;
	}
	.md-link-text {
		color: var(--bs-primary);
		text-decoration: underline;
	}
	.md-link-url,
	.md-image-url {
		color: var(--bs-secondary-color);
		opacity: 0.7;
	}
	.md-image-alt {
		font-style: italic;
		color: var(--bs-secondary-color);
	}
}


.moneyInputAligned {
    width: 12.75em;
    text-align: end;
}


.mwu-moneyInput-3178733 {
    display: flex;
    flex-wrap: nowrap;

    input {
        flex-grow: 4;
        max-width: 10em;
        text-align: end;
    }

    .mwu-currencySelect-3178733 {
        max-width: 5.25em;
        flex-shrink: 0;

        &:disabled {
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
        }
    }
}

/* Responsive adjustments */
@media (max-width: 576px) {
    .mwu-moneyInput-3178733 {
        flex-wrap: wrap;

        input {
            flex: 1 1 100%;
            max-width: none;
            border-radius: 0.375rem 0.375rem 0 0 !important;
        }

        .mwu-currencySelect-3178733 {
            flex: 1 1 100%;
            max-width: none;
            border-radius: 0 0 0.375rem 0.375rem !important;
            border-top: 0;
        }
    }
}


.mwu-multiselect-1aa00e4 {
    h1.d-inline-block + & {
        vertical-align: text-bottom;
        margin-bottom: -0.25rem;
    }

    .form-control.form-select {
        padding: 0;
    }

    .form-control.form-select:focus,
    .dropdown-toggle.show {
        border-color: var(--bs-primary-bg-subtle) !important;
        box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25) !important;
        outline: 0;
    }

    .input-group & {
        border: none;
    }

    .input-group &:not(:first-child) {
        /* Square off the start edge when .form-control is not first in the input-group */
        .form-control {
            border-start-start-radius: 0;
            border-end-start-radius: 0;
        }
    }
    .input-group &:not(:last-child) {
        /* Square off the end edge when .form-control is not last in the input-group */
        .form-control {
            border-start-end-radius: 0;
            border-end-end-radius: 0;
        }
    }

    button.mwu-dropdownToggle-1aa00e4 {
        position: relative;
        padding-inline-end: 2rem;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        text-align: start;
        color: var(--bs-body-color);
        border: none;

        &::after {
            position: absolute;
            inset-inline-end: 0.75rem;
            top: 50%;
            transform: translateY(-50%);
        }

        &:focus {
            border-color: #86b7fe;
            outline: 0;
            box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
        }
    }
}

.mwu-menu-1aa00e4 {
    max-height: 66vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;

    .mwu-header-1aa00e4 {
        background: var(--bs-border-color);

        .input-group {
            flex-wrap: nowrap;

            input {
                min-width: 15ex;
            }
        }
    }

    tr {
        cursor: pointer;

        .mwu-selectedIcon-1aa00e4 {
            opacity: 0;
        }

        &.table-active .mwu-selectedIcon-1aa00e4 {
            opacity: 1;
        }

        .mwu-choiceDisplay-1aa00e4 {
            padding-inline-start: 0;
            padding-inline-end: 1.5rem;

            & > a:focus {
                outline: none;
            }
        }

        &:has(.mwu-choiceDisplay-1aa00e4 a:focus) {
            outline: 2px solid var(--bs-primary);
            outline-offset: -2px;
            border-radius: 0.25rem;
        }
    }

    table {
        margin: 0 !important;
    }

    .mwu-tableWrapper-1aa00e4 {
        flex: 1;
        overflow-y: auto;
        overflow-x: hidden;
        min-height: 0;
    }

    /* Create-row styling Bootstrap utilities can't express. */
    .mwu-createRow-1aa00e4 {
        cursor: pointer;
        /* Solid background so scrolled results don't show through the pinned row. */
        background-color: var(--bs-body-bg);

        &:hover {
            background-color: var(--bs-tertiary-bg);
        }

        .mwu-createRowIcon-1aa00e4 {
            width: 1.25rem;
            height: 1.25rem;
        }
    }
}


.mwu-navRouteItem-ba61311 {
    a.disabled {
        color: rgba(var(--bs-secondary-rgb), 0.75) !important;
    }
}


.mwu-chartContainer-dd1bf52 {
    flex: 1 1 0;
    min-height: 0;
    width: 100%;
    flex-direction: column;
    overflow: hidden;
    position: relative;

    & > * {
        animation: orgChartFadeIn 0.3s ease-out;
    }

    .mwu-orgTree-dd1bf52 {
        --popoverWidth: 320px;
        --popoverMaxHeight: 420px;
        --popoverGap: 0.6rem;

        display: flex;
        justify-content: center;
        align-items: flex-start;
        gap: var(--space-12, 3rem);
        padding: var(--space-6, 1.5rem);
        padding-inline-end: calc(
            var(--space-6, 1.5rem) + var(--popoverWidth) + var(--popoverGap)
        );
        padding-bottom: calc(
            var(--space-6, 1.5rem) + var(--popoverMaxHeight) + var(--popoverGap)
        );
        min-width: max-content;
        min-height: max-content;

        &.mwu-layoutVertical-dd1bf52 {
            flex-direction: column;
            align-items: flex-start;
            justify-content: flex-start;
        }
    }
}

.mwu-employeeSearch-dd1bf52 {
    width: min(20rem, 100%) !important;
}

@keyframes orgChartFadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


@keyframes nodeAppear {
    from {
        opacity: 0;
        transform: scale(0.9);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.mwu-userAvatarSlot-9dd0a01 {
    width: 40px;
    flex-shrink: 0;
}

.mwu-roleBadge-9dd0a01 {
    background: var(--bs-primary);
    color: white;
    padding: 0.15rem 0.4rem;
    border-radius: var(--radius-sm, 0.25rem);
    font-size: 0.7rem;
}

.mwu-container-9dd0a01 {
    --connectorsColor: var(--bs-gray);
    --cardWidth: 240px;

    display: flex;
    flex-direction: column;
    align-items: center;
    animation: nodeAppear 0.4s ease-out;

    .mwu-nodeCard-9dd0a01 {
        width: var(--cardWidth);
        cursor: pointer;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        position: relative;
        text-decoration: none;
        border-color: var(--bs-border-color);
        cursor: pointer;

        &:hover {
            box-shadow: var(--bs-box-shadow);
            border-color: var(--bs-primary);
        }

        .mwu-rolesPopover-9dd0a01 {
            position: absolute;
            top: 0;
            inset-inline-start: calc(100% + 0.6rem);
            width: 320px;
            max-height: 420px;
            overflow-y: auto;
            padding: 0.6rem 0.75rem;
            border-radius: var(--bs-border-radius, 0.375rem);
            background-color: var(--bs-body-bg);
            color: var(--bs-body-color);
            border: 1px solid var(--bs-border-color);
            box-shadow: var(--bs-box-shadow);
            font-size: 0.8125rem;
            text-align: start;
            cursor: default;
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transform: translateX(-0.25rem);
            transition:
                opacity 120ms ease,
                transform 120ms ease,
                visibility 120ms ease;
            z-index: var(--bs-tooltip-zindex, 1080);

            /* arrow pointing left to the card */
            &::before {
                content: "";
                position: absolute;
                top: 1rem;
                inset-inline-end: 100%;
                border-style: solid;
                border-width: 0.4rem 0.4rem 0.4rem 0;
                border-color: transparent var(--bs-border-color) transparent
                    transparent;
            }

            &::after {
                content: "";
                position: absolute;
                top: 1rem;
                inset-inline-end: calc(100% - 1px);
                border-style: solid;
                border-width: 0.4rem 0.4rem 0.4rem 0;
                border-color: transparent var(--bs-body-bg) transparent
                    transparent;
            }
        }

        &:hover .mwu-rolesPopover-9dd0a01,
        &:focus-within .mwu-rolesPopover-9dd0a01 {
            opacity: 1;
            visibility: visible;
            pointer-events: auto;
            transform: translateX(0);
            transition-delay: 120ms;
        }

        .mwu-popoverHeader-9dd0a01 {
            margin-bottom: 0.4rem;
            padding-bottom: 0.35rem;
            border-bottom: 1px solid var(--bs-border-color);
            color: var(--bs-emphasis-color);
        }

        .mwu-popoverSection-9dd0a01 {
            margin-bottom: var(--space-2, 0.5rem);

            &:last-child {
                margin-bottom: 0;
            }
        }

        .mwu-popoverSectionTitle-9dd0a01 {
            font-weight: bold;
            color: var(--bs-secondary-color);
            margin-bottom: var(--space-1, 0.25rem);
        }

        .mwu-popoverPermissionType-9dd0a01 {
            color: var(--bs-secondary-color);
        }

        /* Permission filter highlighting */
        &.mwu-highlighted-9dd0a01 {
            /* Override Bootstrap text-secondary to be visible on success background */
            .text-secondary {
                color: rgba(255, 255, 255, 0.75) !important;
            }

            &:hover {
                box-shadow: var(--bs-box-shadow);
            }
        }

        /* Permission filter dimming */
        &.mwu-dimmed-9dd0a01 {
            opacity: 0.4;

            &:hover {
                opacity: 0.7;
            }
        }

        .mwu-nodeTitle-9dd0a01 {
            &:hover {
                font-weight: bold;
            }

            button.mwu-expand-9dd0a01 {
                &:active {
                    transform: scale(0.95);
                }
            }
        }

        .mwu-groupDescription-9dd0a01:has(small:empty) {
            display: none;
        }
    }

    .mwu-childrenContainer-9dd0a01 {
        display: flex;
        flex-direction: column;
        align-items: center;
        position: relative;
        margin-top: 0;
        animation: childrenAppear 0.3s ease-out;
    }

    @keyframes childrenAppear {
        from {
            opacity: 0;
            transform: translateY(-10px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    .mwu-connectorLine-9dd0a01 {
        width: var(--connector-line-width, 2px);
        /* Must equal .childWrapper's padding-top: the drop lines only bridge
           the gap exactly when both come from the same token. */
        height: var(--space-10, 2.5rem);
        background: var(--connectorsColor);
        position: relative;
        margin-bottom: 0;
    }

    .mwu-childrenNodes-9dd0a01 {
        --childGap: 3rem;
        display: flex;
        justify-content: center;
        position: relative;
        gap: var(--childGap);

        /* Horizontal connector line between siblings */
        &::before {
            content: "";
            position: absolute;
            top: 0;
            height: var(--connector-line-width, 2px);
            background: var(--connectorsColor);
            z-index: 1;
        }

        /* Position horizontal line to span from first to last child */
        &:not(:has(:only-child))::before {
            inset-inline-start: calc(50% / var(--child-count, 2));
            inset-inline-end: calc(50% / var(--child-count, 2));
        }

        &:has(:only-child)::before {
            display: none;
        }

        .mwu-childWrapper-9dd0a01 {
            display: flex;
            flex-direction: column;
            align-items: center;
            position: relative;
            padding-top: var(--space-10, 2.5rem);
            flex: 0 0 auto;

            &::before {
                content: "";
                position: absolute;
                top: 0;
                /* ast-grep-ignore: prefer-logical-inset */
                left: 50%;
                transform: translateX(-50%);
                width: var(--connector-line-width, 2px);
                /* Spans exactly the wrapper's padding-top (same token). */
                height: var(--space-10, 2.5rem);
                background: var(--connectorsColor);
                z-index: 2;
            }

            .mwu-childConnector-9dd0a01::before {
                content: "";
                position: absolute;
                top: 0;
                inset-inline-end: 50%;
                width: calc(50% + (var(--childGap) / 2));
                height: var(--connector-line-width, 2px);
                background: var(--connectorsColor);
                z-index: 1;
            }

            .mwu-childConnector-9dd0a01::after {
                content: "";
                position: absolute;
                top: 0;
                inset-inline-start: 50%;
                width: calc(50% + (var(--childGap) / 2));
                height: var(--connector-line-width, 2px);
                background: var(--connectorsColor);
                z-index: 1;
            }

            &:first-child > .mwu-childConnector-9dd0a01::before,
            &:only-child > .mwu-childConnector-9dd0a01::before {
                content: none;
            }

            &:last-child > .mwu-childConnector-9dd0a01::after,
            &:only-child > .mwu-childConnector-9dd0a01::after {
                content: none;
            }
        }
    }

    &.mwu-layoutVertical-9dd0a01 {
        flex-direction: row;
        align-items: center;

        .mwu-childrenContainer-9dd0a01 {
            flex-direction: row;
            align-items: center;
        }

        .mwu-nodeCard-9dd0a01 {
            .mwu-rolesPopover-9dd0a01 {
                top: calc(100% + 0.6rem);
                inset-inline-start: 0;
                transform: translateY(-0.25rem);

                &::before {
                    top: auto;
                    inset-inline-end: auto;
                    bottom: 100%;
                    inset-inline-start: 1rem;
                    border-width: 0 0.4rem 0.4rem 0.4rem;
                    border-color: transparent transparent
                        var(--bs-border-color) transparent;
                }

                &::after {
                    top: auto;
                    inset-inline-end: auto;
                    bottom: calc(100% - 1px);
                    inset-inline-start: 1rem;
                    border-width: 0 0.4rem 0.4rem 0.4rem;
                    border-color: transparent transparent var(--bs-body-bg)
                        transparent;
                }
            }

            &:hover .mwu-rolesPopover-9dd0a01,
            &:focus-within .mwu-rolesPopover-9dd0a01 {
                transform: translateY(0);
            }
        }

        .mwu-connectorLine-9dd0a01 {
            width: var(--space-10, 2.5rem);
            height: var(--connector-line-width, 2px);
        }

        .mwu-childrenNodes-9dd0a01 {
            flex-direction: column;
            justify-content: flex-start;

            &::before {
                top: auto;
                inset-inline-start: 0;
                width: var(--connector-line-width, 2px);
                height: auto;
            }

            &:not(:has(:only-child))::before {
                top: calc(50% / var(--child-count, 2));
                bottom: calc(50% / var(--child-count, 2));
                inset-inline-start: 0;
                inset-inline-end: auto;
            }

            .mwu-childWrapper-9dd0a01 {
                flex-direction: row;
                align-items: center;
                padding-top: 0;
                padding-inline-start: var(--space-10, 2.5rem);

                &::before {
                    top: 50%;
                    inset-inline-start: 0;
                    transform: translateY(-50%);
                    /* Spans exactly the wrapper's padding-inline-start (same
                       token). */
                    width: var(--space-10, 2.5rem);
                    height: var(--connector-line-width, 2px);
                }

                .mwu-childConnector-9dd0a01::before {
                    top: auto;
                    bottom: 50%;
                    inset-inline-end: auto;
                    inset-inline-start: 0;
                    width: var(--connector-line-width, 2px);
                    height: calc(50% + (var(--childGap) / 2));
                }

                .mwu-childConnector-9dd0a01::after {
                    top: 50%;
                    inset-inline-start: 0;
                    width: var(--connector-line-width, 2px);
                    height: calc(50% + (var(--childGap) / 2));
                }
            }
        }
    }
}


ul.mwu-pagination-ba051fc {
  html[dir="ltr"] & .mwu-hideLtr-ba051fc,
  html[dir="rtl"] & .mwu-hideRtl-ba051fc {
    display: none;
  }

  & .dropdown-menu {
    inset-inline-end: 0;
    inset-inline-start: -58ex;
  }
}


.mwu-strengthIndicator-fb4f3b8 {
    width: 1.5rem;
    height: 1.5rem;
    inset-inline-end: 2.5rem;

    &.mwu-strengthIndicatorNoToggle-fb4f3b8 {
        inset-inline-end: 0.75rem;
    }
}

.mwu-strengthBar-fb4f3b8 {
    height: 0.375rem;

    & .mwu-strengthSegment-fb4f3b8 {
        transition: background-color 0.3s ease;
    }
}


.mwu-filterContainer-98d104f {
    min-width: 280px;

    .mwu-inputWrapper-98d104f {
        position: relative;

        input[type="search"] {
            padding-inline-end: var(--space-10, 2.5rem);
        }
    }

    .mwu-inputIcon-98d104f {
        position: absolute;
        inset-inline-end: 0.75rem;
        top: 50%;
        transform: translateY(-50%);
        color: var(--bs-secondary-color);
        pointer-events: none;
    }

    .mwu-clearBtn-98d104f {
        position: absolute;
        inset-inline-end: 0.25rem;
        top: 50%;
        transform: translateY(-50%);
        padding: var(--space-1, 0.25rem) var(--space-2, 0.5rem);
        border: none;
        background: none;
        color: var(--bs-secondary-color);
        cursor: pointer;

        &:hover {
            color: var(--bs-body-color);
        }
    }

    .mwu-matchBadge-98d104f {
        display: block;
        margin-top: var(--space-1, 0.25rem);
        font-size: 0.75rem;
    }

    .dropdown-menu {
        max-height: 50vh;
        overflow-y: auto;
        min-width: 100%;
        width: max-content;
        max-width: 500px;
    }
}


.mwu-permissionPicker-b0464ad {
    .mwu-permissionRow-b0464ad {
        padding: var(--space-2, 0.5rem) 0;
        border-bottom: 1px solid var(--bs-border-color-translucent);

        &:first-child {
            padding-top: 0;
        }

        &:last-child {
            border-bottom: none;
            padding-bottom: 0;
        }
    }
}


.mwu-scopePicker-2e5381f {
    min-height: 0;
}

.mwu-search-2e5381f .input-group-text {
    background: var(--bs-tertiary-bg);
}

.mwu-headerRow-2e5381f {
    padding: var(--space-1) 0;
    border-bottom: 1px solid var(--bs-border-color);
    color: var(--bs-secondary-color);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.mwu-entityCol-2e5381f {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mwu-kindCol-2e5381f {
    flex: 0 0 3.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--bs-secondary-color);
}

.mwu-list-2e5381f {
    min-height: 0;
    max-height: 60vh;
}

.mwu-featureRow-2e5381f {
    border-bottom: 1px solid var(--bs-border-color);
}

.mwu-featureHead-2e5381f {
    padding: 0.2rem 0;
}

.mwu-entityRow-2e5381f {
    border-top: 1px solid var(--bs-border-color-translucent);
}

.mwu-entityHead-2e5381f {
    padding: 0.15rem 0 0.15rem 1rem;
}

.mwu-kindCell-2e5381f {
    width: 1.4rem;
    height: 1.4rem;
    padding: 0;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius-sm);
    background: transparent;
    color: #fff;
    cursor: pointer;
    line-height: 1;
}

.mwu-kindCell-2e5381f[data-state="all"] {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
}

.mwu-kindCell-2e5381f[data-state="partial"] {
    background: var(--bs-primary-bg-subtle);
    border-color: var(--bs-primary);
}

.mwu-kindCell-2e5381f[data-state="partial"]::after {
    content: "";
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 1px;
    background: var(--bs-primary);
}

.mwu-leaves-2e5381f {
    padding: 0.1rem 0 0.4rem 2.4rem;
    gap: 0.1rem;
}

.mwu-leaf-2e5381f {
    font-size: 0.85rem;
    cursor: pointer;
}

.mwu-footer-2e5381f {
    gap: var(--space-2);
}


.mwu-menu-9d17e4b {
    position: fixed;
    z-index: 1080;
    margin: 0;
}


.mwu-resourcePreloaderReport-8a9ff5d {
    position: fixed;
    top: 0;
    inset-inline: 0;
    z-index: 2000;

    .progress {
        height: 1px;
    }

    .mwu-progressFill-8a9ff5d {
        width: 0%;
    }
}


.mwu-filterContainer-4f73056 {
    min-width: 280px;

    .mwu-inputWrapper-4f73056 {
        position: relative;

        input[type="search"] {
            padding-inline-end: var(--space-10, 2.5rem);
        }
    }

    .mwu-inputIcon-4f73056 {
        position: absolute;
        inset-inline-end: 0.75rem;
        top: 50%;
        transform: translateY(-50%);
        color: var(--bs-secondary-color);
        pointer-events: none;
    }

    .mwu-clearBtn-4f73056 {
        position: absolute;
        inset-inline-end: 0.25rem;
        top: 50%;
        transform: translateY(-50%);
        padding: var(--space-1, 0.25rem) var(--space-2, 0.5rem);
        border: none;
        background: none;
        color: var(--bs-secondary-color);
        cursor: pointer;

        &:hover {
            color: var(--bs-body-color);
        }
    }

    .mwu-matchBadge-4f73056 {
        display: block;
        margin-top: var(--space-1, 0.25rem);
        font-size: 0.75rem;
    }

    .dropdown-menu {
        max-height: 50vh;
        overflow-y: auto;
        min-width: 100%;
        width: max-content;
        max-width: 500px;
    }
}


.mwu-rolePicker-10b5e5a {
    /* Section styles */
    .mwu-roleSection-10b5e5a {
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        padding: var(--space-4, 1rem);
        margin-bottom: var(--space-4, 1rem);
        background: var(--bs-body-bg);
    }

    .mwu-roleSectionHeader-10b5e5a {
        margin-bottom: var(--space-3, 0.75rem);
    }

    .mwu-roleSectionTitle-10b5e5a {
        font-weight: 600;
        color: var(--bs-primary);
    }

    /* Card styles */
    .mwu-roleCard-10b5e5a {
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        padding: var(--space-3, 0.75rem);
        margin-bottom: var(--space-2, 0.5rem);
        background: var(--bs-body-bg);
        transition: border-color var(--transition-base, 0.2s ease);

        &:hover {
            border-color: var(--bs-primary);
        }

        &:last-child {
            margin-bottom: 0;
        }
    }

    .mwu-roleName-10b5e5a {
        font-weight: 500;
    }

    .mwu-roleDescription-10b5e5a {
        font-size: 0.85rem;
        color: var(--bs-secondary);
    }

    /* Permissions preview */
    .mwu-permissionsPreview-10b5e5a {
        margin-top: var(--space-3, 0.75rem);
        padding-top: var(--space-3, 0.75rem);
        border-top: 1px solid var(--bs-border-color-translucent);
    }

    .mwu-permissionsAccordion-10b5e5a {
        font-size: 0.875rem;

        .accordion-button {
            padding: var(--space-2, 0.5rem) var(--space-3, 0.75rem);
            font-size: 0.875rem;
        }

        .accordion-body {
            padding: var(--space-2, 0.5rem) var(--space-3, 0.75rem);
        }
    }

    .mwu-permissionBadge-10b5e5a {
        background: rgba(var(--bs-primary-rgb), 0.1);
        color: var(--bs-primary);
        padding: 0.2rem 0.5rem;
        border-radius: var(--radius-sm, 0.25rem);
        font-size: 0.75rem;
        margin: 0.125rem;
    }

    /* Dropdown styles */
    .mwu-dropdownMenu-10b5e5a {
        padding-top: 0;
    }

    .mwu-dropdownSearch-10b5e5a {
        padding: var(--space-2, 0.5rem);
        border-bottom: 1px solid var(--bs-border-color-translucent);
    }

    .mwu-dropdownList-10b5e5a {
        max-height: 300px;
        overflow-y: auto;
    }

    /* Badge styles */
    .mwu-roleBadge-10b5e5a {
        background: var(--bs-primary);
        color: white;
        padding: var(--space-1, 0.25rem) var(--space-2, 0.5rem);
        border-radius: var(--radius-sm, 0.25rem);
        font-size: 0.75rem;
    }

    /* Empty state */
    .mwu-noRoles-10b5e5a {
        color: var(--bs-secondary);
        font-style: italic;
        padding: var(--space-4, 1rem);
        text-align: center;
    }

    /* Expand button */
    .mwu-expandButton-10b5e5a {
        padding: 0;
        border: none;
        background: transparent;
        color: var(--bs-secondary);
        cursor: pointer;
        transition: transform var(--transition-base, 0.2s ease);

        &:hover {
            color: var(--bs-primary);
        }

        &.mwu-expanded-10b5e5a {
            transform: rotate(180deg);
        }
    }
}


.mwu-segmentedToggle-c8397b8 {
    --_radius: var(--segmented-toggle-radius, var(--bs-border-radius-sm, var(--bs-border-radius, 0.375rem)));
    --_track-bg: var(--segmented-toggle-track-bg, var(--bs-tertiary-bg));
    --_color: var(--segmented-toggle-color, var(--bs-secondary-color));
    --_active-bg: var(--segmented-toggle-active-bg, rgba(var(--bs-primary-rgb), 0.14));
    --_active-color: var(--segmented-toggle-active-color, var(--bs-primary));
    display: inline-flex;
    gap: 2px;
    padding: 2px;
    border-radius: var(--_radius);
    background-color: var(--_track-bg);
}

.mwu-segmentedToggle-c8397b8 .mwu-segment-c8397b8.btn {
    color: var(--_color);
    border: 0;
    border-radius: max(0px, calc(var(--_radius) - 2px));
    box-shadow: none;
    white-space: nowrap;
    transition:
        color 0.15s ease,
        background-color 0.15s ease;
}

.mwu-segmentedToggle-c8397b8 .mwu-segment-c8397b8.btn:hover:not(:disabled) {
    color: var(--bs-body-color);
}

.mwu-segmentedToggle-c8397b8 .mwu-segmentActive-c8397b8.btn {
    background-color: var(--_active-bg);
    color: var(--_active-color);
}

.mwu-segmentedToggle-c8397b8 .mwu-segment-c8397b8.btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}


.mwu-signaturePadContainer-c1299a9 {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;

    .mwu-signaturePadCanvasWrapper-c1299a9 {
        position: relative;

        .mwu-signaturePadCanvas-c1299a9 {
            border: 1px solid var(--bs-border-color);
            border-radius: var(--bs-border-radius);
            /* Fixed "paper" white, NOT the themed body background: a signature is
               ink on paper. On a dark theme a themed (dark) canvas hides the ink
               while drawing, pushing users to pick a light pen whose stroke then
               vanishes on light backgrounds everywhere the signature is shown. */
            background-color: #ffffff;
            touch-action: none;
            cursor: crosshair;
            width: 100%;
            height: 10rem;

            &:focus {
                outline: none;
                border-color: var(--bs-primary);
                box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
            }
        }

        .mwu-signaturePadPlaceholder-c1299a9 {
            position: absolute;
            inset: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 0.25rem;
            /* Fixed muted grey, legible on the white paper canvas on any theme
               (the themed secondary colour goes light on dark themes and would
               disappear against the paper). */
            color: #6c757d;
            pointer-events: none;
            opacity: 0.5;
            font-size: 0.875rem;

            & svg {
                width: 1.5rem;
                height: 1.5rem;
            }
        }
    }

    .mwu-signaturePadColors-c1299a9 {
        display: flex;
        gap: 0.375rem;
        align-items: center;

        .mwu-signaturePadColorSwatch-c1299a9 {
            width: 1.5rem;
            height: 1.5rem;
            border-radius: 999px;
            border: 1px solid var(--bs-border-color);
            padding: 0;
            cursor: pointer;
            transition:
                transform 80ms ease-out,
                box-shadow 80ms ease-out;

            &:hover:not(:disabled) {
                transform: scale(1.08);
            }

            &:disabled {
                cursor: not-allowed;
                opacity: 0.5;
            }

            &.mwu-signaturePadColorSwatchActive-c1299a9 {
                box-shadow: 0 0 0 2px var(--bs-body-bg), 0 0 0 4px var(--bs-primary);
            }
        }

        .mwu-signaturePadColorPicker-c1299a9 {
            width: 1.75rem;
            height: 1.75rem;
            padding: 0;
            border: 1px solid var(--bs-border-color);
            border-radius: 999px;
            background: transparent;
            cursor: pointer;

            &::-webkit-color-swatch-wrapper {
                padding: 2px;
            }

            &::-webkit-color-swatch {
                border: none;
                border-radius: 999px;
            }

            &::-moz-color-swatch {
                border: none;
                border-radius: 999px;
            }

            &:disabled {
                cursor: not-allowed;
                opacity: 0.5;
            }
        }
    }

    .mwu-signaturePadToolbar-c1299a9 {
        display: flex;
        gap: 0.375rem;
        align-items: center;
    }
}


.mwu-itemSelector-35f8174 {
    h1.d-inline-block + & {
        vertical-align: text-bottom;
        margin-bottom: -0.25rem;
    }

    .form-control.form-select {
        padding: 0;
    }

    .form-control.form-select:focus,
    .form-control.form-select:focus-within,
    .dropdown-toggle.show {
        border-color: var(--bs-primary-bg-subtle) !important;
        box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25) !important;
        outline: 0;
    }

    button.mwu-dropdownToggle-35f8174 {
        position: relative;
        padding-inline-end: 2rem;
        width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        text-align: start;
        border: none;

        &::after {
            position: absolute;
            inset-inline-end: 0.75rem;
            top: 50%;
            transform: translateY(-50%);
        }
    }

    .input-group > & {
        position: relative;
        flex: 1 1 auto;
        width: 1%;
        min-width: 0;

        &:hover {
            z-index: 2;
        }

        &:focus-within,
        &:has(.dropdown-toggle.show) {
            z-index: 5;
        }

        &:not(:first-child) .form-control.form-select {
            border-start-start-radius: 0;
            border-end-start-radius: 0;
        }

        &:not(:last-child) .form-control.form-select {
            border-start-end-radius: 0;
            border-end-end-radius: 0;
        }
    }
}

.mwu-menu-35f8174 {
    max-height: 66vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;

    .mwu-header-35f8174 {
        background: var(--bs-border-color);
        flex-shrink: 0;

        .input-group {
            flex-wrap: nowrap;

            input {
                min-width: 15ex;
            }
        }
    }

    .mwu-tableWrapper-35f8174 {
        flex: 1;
        overflow-y: auto;
        overflow-x: hidden;
        min-height: 0;
    }

    tr {
        cursor: pointer;

        .mwu-choiceDisplay-35f8174 {
            padding-inline-end: 1.5rem;

            display: flex;
            align-items: center;
            gap: 0.75rem;

            img {
                flex-shrink: 0;
                max-height: 2rem;
                max-width: 2rem;
            }
        }
    }
}


/* Immediate CSS hover tip for icons / icon+label triggers.
   `Icon` does not forward a native `title` onto the SVG; browser `title` on a
   wrapper is delayed and unreliable for dense table glyphs.

   Selectors are flat (no CSS nesting) so hide-by-default still works when the
   stylesheet is served as the raw stylance bundle. */
.mwu-statusTooltip-65bdbd0 {
    position: relative;
    display: inline-flex;
    cursor: help;
    z-index: 2;
}

.mwu-statusTooltip-65bdbd0 svg {
    pointer-events: none;
}

.mwu-statusTooltipText-65bdbd0 {
    position: absolute;
    inset-inline-start: 50%;
    bottom: calc(100% + 0.35rem);
    transform: translate(-50%, 0.2rem);
    width: max-content;
    max-width: 14rem;
    padding: 0.25rem 0.5rem;
    border-radius: var(--bs-border-radius, 0.375rem);
    background-color: var(--bs-emphasis-color);
    color: var(--bs-body-bg);
    font-size: 0.8125rem;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
    box-shadow: var(--bs-box-shadow-sm);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity 120ms ease,
        transform 120ms ease,
        visibility 120ms ease;
    z-index: var(--bs-tooltip-zindex, 1080);
}

/* Open below (e.g. sticky table headers). */
.mwu-statusTooltipBelow-65bdbd0 .mwu-statusTooltipText-65bdbd0 {
    bottom: auto;
    top: calc(100% + 0.35rem);
    transform: translate(-50%, -0.2rem);
}

.mwu-statusTooltip-65bdbd0:hover,
.mwu-statusTooltip-65bdbd0:focus-within {
    z-index: var(--bs-tooltip-zindex, 1080);
}

.mwu-statusTooltip-65bdbd0:hover .mwu-statusTooltipText-65bdbd0,
.mwu-statusTooltip-65bdbd0:focus-within .mwu-statusTooltipText-65bdbd0 {
    opacity: 0.95;
    visibility: visible;
    transform: translate(-50%, 0);
}


.mwu-textareaWithChangeLog-c79b8fb {
    textarea {
        field-sizing: content;
    }

    .mwu-changeLog-c79b8fb {
        padding-inline-start: 1rem;
        padding-inline-end: 1rem;
        padding-top: 1rem;

        &:hover {
            background-color: var(--bs-secondary-bg-subtle) !important;
        }

        &:not(:last-child) {
            border-bottom: var(--bs-border-width) var(--bs-border-style)
                var(--bs-border-color);
        }

        .mwu-text-c79b8fb {
            white-space: pre-wrap;
            margin-inline-start: calc(32px + 0.5rem);
            padding-bottom: 1rem;
        }
    }
}


.mwu-widthMedium-3caedb5 {
    width: 6.5rem !important;
}


.mwu-clickable-2fce5fe {
    cursor: pointer;
}


.mwu-fileTree-b2d1e75 {
    /* Clean table styling */
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    /* Overflow (and scroll, via the `.table-responsive` wrapper) instead of
       crushing the fixed columns and the Name cell's tap target on mobile. */
    min-width: 44rem;
    table-layout: fixed;

    .mwu-selectAllHeader-b2d1e75 {
        display: flex;
        align-items: center;
        gap: 0.625rem;

        input[type="checkbox"] {
            width: 1rem;
            height: 1rem;
            margin: 0;
            cursor: pointer;
            border-radius: 0.25rem;
            flex-shrink: 0;
        }
    }

    thead th {
        text-transform: uppercase;
        letter-spacing: 0.05em;
        color: var(--bs-secondary);
        border-bottom: 1px solid var(--bs-border-color);
        padding: 0.75rem 1rem;
        white-space: nowrap;
        background: var(--bs-body-bg);
        overflow: hidden;
        text-overflow: ellipsis;

        /* Column widths - Name takes remaining space */
        &:nth-child(1) {
            width: auto;
        }

        /* Size column */
        &:nth-child(2) {
            width: 8rem;
        }

        /* Created column */
        &:nth-child(3) {
            width: 11rem;
        }

        /* Uploaded by column */
        &:nth-child(4) {
            width: 10rem;
        }

        /* Actions column */
        &:nth-child(5) {
            width: 3rem;
            padding: 0;
        }

        a {
            color: var(--bs-secondary);
            text-decoration: none;

            &:hover {
                color: var(--bs-body-color);
            }
        }
    }

    tbody td {
        padding: 0.625rem 1rem;
        vertical-align: middle;
        border-bottom: 1px solid var(--bs-border-color-translucent);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;

        /* Actions column - minimal padding */
        &:last-child {
            padding: 0.25rem;
            text-align: center;
        }
    }

    .mwu-treeRow-b2d1e75 {
        --levelPadding: 1.5rem;
        transition: background-color 0.1s ease;

        &:hover > td {
            background-color: var(--bs-tertiary-bg);
        }

        .mwu-content-b2d1e75 {
            display: flex;
            align-items: center;
            gap: 0.625rem;
            min-width: 0;

            /* Let the link shrink so the file name truncates instead of
               overflowing the cell (flex items default to min-width: auto). */
            & > a {
                min-width: 0;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

            &.mwu-folder-b2d1e75 {
                font-weight: 500;
            }

            a:not(:hover),
            .mwu-folderOpen-b2d1e75 {
                color: var(--bs-body-color);
                text-decoration: none;
            }
        }

        /* Drag over state */
        &:has(.mwu-content-b2d1e75.mwu-dragOver-b2d1e75) td {
            background-color: rgba(13, 110, 253, 0.08) !important;
            box-shadow: inset 0 0 0 2px rgba(13, 110, 253, 0.3);
        }

        [data-bs-theme="dark"] &:has(.mwu-content-b2d1e75.mwu-dragOver-b2d1e75) td {
            background-color: rgba(13, 110, 253, 0.15) !important;
            box-shadow: inset 0 0 0 2px rgba(13, 110, 253, 0.4);
        }

        /* Actions column - show on hover */
        .mwu-actionsCell-b2d1e75 button {
            opacity: 0;
            transition: opacity 0.1s ease;
            color: var(--bs-secondary);
            background: transparent !important;
            border: none !important;
            padding: 0.25rem 0.5rem !important;
            border-radius: 0.375rem;

            &:hover {
                color: var(--bs-body-color);
                background: var(--bs-secondary-bg) !important;
            }
        }

        /* Keep the trigger visible while its portaled menu is open — the
           menu is not a row descendant, so row :hover ends inside it. */
        &:hover .mwu-actionsCell-b2d1e75 button,
        &.mwu-selected-b2d1e75 .mwu-actionsCell-b2d1e75 button,
        &.mwu-highlighted-b2d1e75 .mwu-actionsCell-b2d1e75 button,
        .mwu-actionsCell-b2d1e75 button[aria-expanded="true"] {
            opacity: 1;
        }
    }

    /* Checkbox styling */
    .mwu-treeRow-b2d1e75 input[type="checkbox"] {
        width: 1rem;
        height: 1rem;
        margin: 0;
        cursor: pointer;
        border-radius: 0.25rem;
        flex-shrink: 0;
    }

    /* Row checkbox - needs z-index to be clickable over stretched-link */
    .mwu-rowCheckbox-b2d1e75 {
        position: relative;
        z-index: 2;
    }

    /* Highlighted file state - target td elements to override Bootstrap */
    .mwu-highlighted-b2d1e75 > td,
    .mwu-highlighted-b2d1e75:nth-of-type(odd) > td,
    .mwu-highlighted-b2d1e75:nth-of-type(even) > td {
        background-color: rgba(255, 193, 7, 0.12) !important;
    }

    [data-bs-theme="dark"] .mwu-highlighted-b2d1e75 > td,
    [data-bs-theme="dark"] .mwu-highlighted-b2d1e75:nth-of-type(odd) > td,
    [data-bs-theme="dark"] .mwu-highlighted-b2d1e75:nth-of-type(even) > td {
        background-color: rgba(255, 193, 7, 0.2) !important;
    }

    .mwu-folderHighlighted-b2d1e75 > td.mwu-content-b2d1e75 a > span {
        color: var(--bs-warning) !important;
    }

    /* Selected file state for multi-select */
    .mwu-selected-b2d1e75 > td,
    .mwu-selected-b2d1e75:nth-of-type(odd) > td,
    .mwu-selected-b2d1e75:nth-of-type(even) > td {
        background-color: rgba(13, 110, 253, 0.06) !important;
    }

    [data-bs-theme="dark"] .mwu-selected-b2d1e75 > td,
    [data-bs-theme="dark"] .mwu-selected-b2d1e75:nth-of-type(odd) > td,
    [data-bs-theme="dark"] .mwu-selected-b2d1e75:nth-of-type(even) > td {
        background-color: rgba(13, 110, 253, 0.15) !important;
    }

    .mwu-eyeIcon-b2d1e75 {
        margin-inline-end: 0.375rem;
        color: var(--bs-warning);
    }

    /* Delete animation - slide out */
    @keyframes deleteSlideOut {
        0% {
            opacity: 1;
            transform: translateX(0);
        }
        100% {
            opacity: 0;
            transform: translateX(-50px);
        }
    }

    /* Rename animation - info flash */
    @keyframes renameFlash {
        0% {
            background-color: rgba(var(--bs-info-rgb), 0.3);
        }
        100% {
            background-color: transparent;
        }
    }

    .mwu-renamed-b2d1e75 > td {
        animation: renameFlash 500ms ease-out;
    }

    .mwu-deleting-b2d1e75 {
        animation: deleteSlideOut 300ms ease-out forwards;
        pointer-events: none;
    }
}


.mwu-treeView-15487f8 {
    --tree-line-color: var(--bs-border-color);
    --tree-hover-bg: var(--bs-tertiary-bg);
    --tree-button-bg: var(--bs-body-bg);
    --tree-button-fg: var(--bs-tertiary-color);
    --tree-node-height: 1.75rem;
    overflow: clip;

    & .mwu-treeList-15487f8 {
        list-style: none;
        margin: 0;
        padding: 0;
    }
}

.mwu-treeNode-15487f8 {
    position: relative;
    line-height: 1;

    & .mwu-treeNodeContent-15487f8 {
        display: flex;
        align-items: center;
        height: var(--tree-node-height);
        padding: 0 0.5rem;
        cursor: default;
        border-radius: 0.25rem;
        transition: background-color 0.15s ease;

        &:hover {
            background-color: var(--tree-hover-bg);
        }

        & .mwu-treeIndent-15487f8 {
            display: inline-flex;
            align-items: stretch;
            height: 100%;

            & .mwu-treeLine-15487f8 {
                width: 1.25rem;
                position: relative;
                flex-shrink: 0;

                /* Vertical line - full height to connect nodes */
                &::before {
                    content: "";
                    position: absolute;
                    inset-inline-start: 0.525rem;
                    top: calc(-0.26 * var(--tree-node-height));
                    bottom: calc(-0.5 * var(--tree-node-height));
                    width: 1px;
                    background-color: var(--tree-line-color);
                }

                /* Horizontal connector */
                &::after {
                    content: "";
                    position: absolute;
                    inset-inline-start: 0.525rem;
                    top: 50%;
                    width: 0.625rem;
                    height: 1px;
                    background-color: var(--tree-line-color);
                }

                /* Last child - vertical line only goes to middle */
                &.mwu-lastChild-15487f8::before {
                    bottom: 50%;
                }

                /* Empty - no lines (for ancestors where parent was last child) */
                &.mwu-empty-15487f8::before,
                &.mwu-empty-15487f8::after {
                    display: none;
                }

                /* Continuation - only vertical line, no horizontal */
                &.mwu-continuation-15487f8::after {
                    display: none;
                }
            }
        }

        & .mwu-toggleBtn-15487f8 {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1rem;
            height: 1rem;
            margin-inline-end: 0.375rem;
            z-index: 2;
            padding: 0;
            border: none;
            cursor: pointer;
            border-radius: 0.1875rem;
            flex-shrink: 0;
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
            transition: all 0.15s ease;
            background: var(--tree-button-bg);
            color: var(--tree-button-fg);

            &:hover {
                background-color: var(--bs-gray-300);
                color: var(--bs-gray-700);
                box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
            }

            &:focus {
                outline: none;
            }

            svg {
                width: 1rem;
                height: 1rem;
            }
        }

        & .mwu-nodeLabel-15487f8 {
            flex: 1;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            font-size: 0.875rem;
            padding: 0.5rem 0;
        }
    }

    & .mwu-childrenList-15487f8 {
        list-style: none;
        margin: 0;
        padding: 0;
    }
}


.mwu-fieldColumn-bb911bf {
    text-wrap: nowrap;
}

.mwu-messageColumn-bb911bf {
    width: 100%;
}


.mwu-validationDecorator-977a271 {
    &.is-invalid {
        label,
        .invalid-feedback,
        .form-check-label {
            display: inherit;
            color: var(--bs-danger);
        }
    }

    /* Only style as valid when no invalid sits lower in the chain. */
    &.is-valid:not(:has(.is-invalid)) {
        label,
        .invalid-feedback,
        .form-check-label {
            color: var(--bs-success);
        }
    }

    /* An invalid higher in the chain wins over a nested valid. */
    .is-invalid &.is-valid {
        label,
        .invalid-feedback,
        .form-check-label {
            color: var(--bs-danger);
        }
    }

    &.is-warning {
        label,
        .invalid-feedback {
            color: var(--bs-warning);
        }

        .form-select,
        .form-control,
        .form-check-label {
            color: var(--bs-warning);
            border-color: var(--bs-warning-border-subtle) !important;
            padding-inline-end: calc(1.5em + 0.75rem);
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23a48433'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
            background-repeat: no-repeat;
            background-position: right calc(0.375em + 0.1875rem) center;
            background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
        }
    }
}
