/* _content/Lib360.Shared/Components/CustomReconnectingOverlay.razor.rz.scp.css */
/* Simple square loader */
.simple-loader[b-itlromtli6] {
    display: inline-block;
    width: 60px;
    height: 60px;
    position: relative;
    border: 6px solid #dc3545;
    animation: loader-b-itlromtli6 2s infinite ease;
    background: white;
    overflow: hidden;
}

.simple-loader .loader-text[b-itlromtli6] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(0deg);
    color: white;
    font-weight: bold;
    font-size: 26px;
    z-index: 2;
    pointer-events: none;
    animation: text-counter-rotate-b-itlromtli6 2s infinite ease;
}

.simple-loader .loader-inner[b-itlromtli6] {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #dc3545;
    animation: loader-inner-b-itlromtli6 2s infinite ease-in;
    z-index: 1;
}

@keyframes loader-b-itlromtli6 {
    0% {
        transform: rotate(0deg);
    }
    
    25% {
        transform: rotate(180deg);
    }
    
    50% {
        transform: rotate(180deg);
    }
    
    75% {
        transform: rotate(360deg);
    }
    
    100% {
        transform: rotate(360deg);
    }
}

@keyframes loader-inner-b-itlromtli6 {
    0% {
        height: 0%;
    }
    
    25% {
        height: 0%;
    }
    
    50% {
        height: 100%;
    }
    
    75% {
        height: 100%;
    }
    
    100% {
        height: 0%;
    }
}

@keyframes text-counter-rotate-b-itlromtli6 {
    0% {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    
    25% {
        transform: translate(-50%, -50%) rotate(-180deg);
    }
    
    50% {
        transform: translate(-50%, -50%) rotate(-180deg);
    }
    
    75% {
        transform: translate(-50%, -50%) rotate(-360deg);
    }
    
    100% {
        transform: translate(-50%, -50%) rotate(-360deg);
    }
}

/* _content/Lib360.Shared/Components/Dashboard/Components/ProjectTable.razor.rz.scp.css */
/* The MudTable is a child component, so the wrapper div below is the only scoped element. */
.project-table-host[b-c51vyc9w5l] {
    display: contents;
}

/* Default: former compact density (Mud Dense + 50px rows) */
[b-c51vyc9w5l] .project-table.project-table--default {
    --project-table-row-height: 50px;
    --project-table-header-height: 50px;
    --project-table-btn-padding: 8px;
    --project-table-cell-padding-block: 6px;
    --project-table-cell-padding-inline: 16px;
}

/* Dense: tight row height; controls scaled via rules below */
[b-c51vyc9w5l] .project-table.project-table--dense {
    --project-table-row-height: 22px;
    --project-table-header-height: 22px;
    --project-table-btn-padding: 0px;
    --project-table-cell-padding-block: 0px;
    --project-table-cell-padding-inline: 6px;
    --project-table-control-size: 22px;
}

/* Medium: dense controls, roomier rows. Applied on top of --dense. */
[b-c51vyc9w5l] .project-table.project-table--medium {
    --project-table-row-height: 34px;
    --project-table-header-height: 34px;
    --project-table-btn-padding: 2px;
    --project-table-cell-padding-block: 4px;
    --project-table-cell-padding-inline: 10px;
    --project-table-control-size: 24px;
}

[b-c51vyc9w5l] .project-table .mud-table-cell {
    padding-block: var(--project-table-cell-padding-block);
    padding-inline: var(--project-table-cell-padding-inline);
}

/* Table Layout - Force fixed column widths */
[b-c51vyc9w5l] .project-table table {
    width: 100% !important;
    max-height: 100%;
    overflow-y: auto;
}

[b-c51vyc9w5l] .project-table {
    max-height: 100%;
    overflow-y: auto;
}

[b-c51vyc9w5l] .project-table > div {
    max-height: 100%;
    overflow-x: unset !important;
    overflow-y: unset !important;
}

[b-c51vyc9w5l] .project-table > div > table {
    max-height: 100%;
    overflow-y: auto;
}

[b-c51vyc9w5l] .project-table thead tr {
    height: var(--project-table-header-height) !important;
}

[b-c51vyc9w5l] .project-table thead .mud-table-cell {
    height: var(--project-table-header-height) !important;
    min-height: var(--project-table-header-height) !important;
    max-height: var(--project-table-header-height) !important;
    overflow: hidden;
    vertical-align: middle;
    box-sizing: border-box;
    padding-block: 0 !important;
}

[b-c51vyc9w5l] .selection-header-toolbar {
    min-height: var(--project-table-header-height);
    max-height: var(--project-table-header-height);
    height: var(--project-table-header-height);
    overflow: hidden;
    padding-inline: var(--project-table-cell-padding-inline) !important;
}

[b-c51vyc9w5l] .selection-header-toolbar .mud-stack {
    height: 100%;
    min-height: 0;
    align-items: center;
}

[b-c51vyc9w5l] .selection-header-toolbar .mud-text {
    margin: 0;
    line-height: 1;
    white-space: nowrap;
}

[b-c51vyc9w5l] .selection-header-toolbar .mud-divider-vertical {
    align-self: center;
}

[b-c51vyc9w5l] .project-table.project-table--default .selection-header-toolbar .mud-stack {
    gap: 8px !important;
}

[b-c51vyc9w5l] .project-table.project-table--default .selection-header-toolbar .mud-divider-vertical {
    height: 24px;
    max-height: 24px;
}

[b-c51vyc9w5l] .project-table.project-table--dense .selection-header-toolbar .mud-stack {
    gap: 2px !important;
}

[b-c51vyc9w5l] .project-table.project-table--dense .selection-header-toolbar .mud-text {
    font-size: 11px;
}

[b-c51vyc9w5l] .project-table.project-table--dense .selection-header-toolbar .mud-divider-vertical {
    height: 12px;
    max-height: 12px;
}

[b-c51vyc9w5l] .selection-header-toolbar button {
    padding: var(--project-table-btn-padding) !important;
}

[b-c51vyc9w5l] .project-name-content button {
    padding: var(--project-table-btn-padding) !important;
}

[b-c51vyc9w5l] .modified-text {
    white-space: nowrap;
}

[b-c51vyc9w5l] .action-button-container button {
    padding: var(--project-table-btn-padding) !important;
}

[b-c51vyc9w5l] .space-action-container button {
    padding: var(--project-table-btn-padding) !important;
}

[b-c51vyc9w5l] .more-button {
    padding: var(--project-table-btn-padding) !important;
}

/* Hide placeholder rows from RowTemplate completely */
[b-c51vyc9w5l] .project-table tbody > tr:not(:has(td[colspan])):has(td[style*="display: none"]) {
    display: none !important;
    height: 0 !important;
    line-height: 0 !important;
}

[b-c51vyc9w5l] .cursor {
    cursor: pointer;
}

[b-c51vyc9w5l] .project-name-content .inherited-share-icon {
    padding: 6px !important;
}

[b-c51vyc9w5l] .folder-content .inherited-share-icon {
    padding: 6px !important;
}

/* Header Columns - Fixed Widths */
[b-c51vyc9w5l] .grab-header {
    padding: 0px !important;
    min-height: var(--project-table-header-height);
    height: var(--project-table-header-height);
    width: 25px !important;
    min-width: 25px !important;
    max-width: 25px !important;
}

[b-c51vyc9w5l] .select-header {
    padding: 0px 8px !important;
    min-height: var(--project-table-header-height);
    height: var(--project-table-header-height);
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
}

[b-c51vyc9w5l] .expand-header {
    padding: 0px !important;
    min-height: var(--project-table-header-height);
    height: var(--project-table-header-height);
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
}

/* Body Columns - Fixed Widths */
[b-c51vyc9w5l] .grab-handle-td {
    padding: 0px !important;
    width: 25px !important;
    min-width: 25px !important;
    max-width: 25px !important;
    vertical-align: middle;
}

[b-c51vyc9w5l] .grab-handle-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: var(--project-table-row-height);
    width: 25px;
    padding-left: 8px;
    box-sizing: border-box;
}

[b-c51vyc9w5l] .row-icon-container {
    display:flex;
    justify-content: flex-end;
}

[b-c51vyc9w5l] .created-col {
    display: none;
}

[b-c51vyc9w5l] .select-td {
    padding: 0px 8px !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
}

[b-c51vyc9w5l] .arrow-td {
    padding-left: 5px !important;
    padding-right: 5px !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    padding-top: 0px !important;
    padding-bottom: 0px !important;
}

[b-c51vyc9w5l] .arrow-td button {
    padding: var(--project-table-btn-padding) !important;
}

[b-c51vyc9w5l] .hide-on-mobile {
    display: table-cell;
}

@keyframes spin-b-c51vyc9w5l {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

[b-c51vyc9w5l] .draggable-project-row {
    cursor: pointer;
    transition: opacity 0.5s;
    width: 100%;
    transform: translate3d(0, 0, 0);
}

[b-c51vyc9w5l] .draggable-project-row:active {
    cursor: pointer;
}

[b-c51vyc9w5l] .drag-handle {
    opacity: 0.3;
    margin: 0 !important;
    transition: opacity 0.2s;
}

[b-c51vyc9w5l] .draggable-project-row:hover .drag-handle {
    opacity: 1;
}

[b-c51vyc9w5l] .project-name-content {
    display: flex;
    align-items:center;
    gap: 8px;
}

[b-c51vyc9w5l] .spinning-icon .mud-icon-root {
    animation: spin-b-c51vyc9w5l 1s linear infinite;
}

[b-c51vyc9w5l] .action-button-container.force-visible,
[b-c51vyc9w5l] .space-action-container.force-visible {
    opacity: 1 !important;
}

[b-c51vyc9w5l] .project-table tbody tr:has(.action-button-container.force-visible) .action-buttons .action-button-container,
[b-c51vyc9w5l] .spaces-table tbody tr:has(.space-action-container.force-visible) .space-actions .space-action-container {
    opacity: 1;
}

[b-c51vyc9w5l] .space-table-cell {
    padding: 0px !important;
}

[b-c51vyc9w5l] .selected-row {
    background-color: rgba(255,0,0,0.05);
    box-shadow: inset 0 0 0 1px #e10915;
    border-radius: 4px; /* Add your desired radius */
}
[b-c51vyc9w5l] .selected-row td {
    border-bottom: 1px solid transparent !important;
}

[b-c51vyc9w5l] .selected-row:hover {
    background-color: rgba(255,0,0,0.1) !important;
}
[b-c51vyc9w5l] .selected-row + tr + .selected-row {
    box-shadow: inset 1px 0 0 0 #e10915, /* left */
    inset -1px 0 0 0 #e10915, /* right */
        inset 0 -1px 0 0 #e10915; /* bottom only */
        border-radius: 4px; /* Add your desired radius */

}
/* Remove border-radius on bottom when next visible row is also selected */
[b-c51vyc9w5l] .selected-row:has(+ tr + .selected-row) {
    border-bottom-left-radius: 0;
}

[b-c51vyc9w5l] .selected-row:has(+ tr + .selected-row) {
    border-bottom-right-radius: 0;
}

/* Remove border-radius on top when previous visible row is also selected */
[b-c51vyc9w5l] .selected-row + tr + .selected-row {
    border-top-left-radius: 0;
}

[b-c51vyc9w5l] .selected-row + tr + .selected-row {
    border-top-right-radius: 0;
}

[b-c51vyc9w5l] .non-select-row:hover .folder-name-span {
    color: #e10915;
}

[b-c51vyc9w5l] .project-name-span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 250px;
}

[b-c51vyc9w5l] .folder-name-span {
    white-space: nowrap;
    overflow: hidden;
}

[b-c51vyc9w5l] .project-name-span:hover {
    color: #e10915;
}

[b-c51vyc9w5l] .folder-name-span:hover {
    color: #e10915;
}

[b-c51vyc9w5l] .space-name-cell:hover .space-name-span {
    color: #e10915;
}

[b-c51vyc9w5l] .project-table tbody tr {
    height: var(--project-table-row-height) !important;
}

[b-c51vyc9w5l] .project-table {
    width: 100%;
}

[b-c51vyc9w5l] .project-table tbody tr td {
    height: var(--project-table-row-height) !important;
    vertical-align: middle;
}

[b-c51vyc9w5l] .project-table.project-table--dense .grab-header,
[b-c51vyc9w5l] .project-table.project-table--dense .grab-handle-td {
    width: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;
}

[b-c51vyc9w5l] .project-table.project-table--dense .select-header,
[b-c51vyc9w5l] .project-table.project-table--dense .select-td {
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    padding: 0 !important;
    overflow: hidden;
    line-height: 0;
    vertical-align: middle;
    text-align: center;
}

[b-c51vyc9w5l] .project-table.project-table--dense .expand-header,
[b-c51vyc9w5l] .project-table.project-table--dense .arrow-td {
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    padding-inline: 2px !important;
}

[b-c51vyc9w5l] .project-table.project-table--dense .grab-handle-cell {
    width: 18px;
    min-height: 0;
    height: 100%;
    padding-left: 2px;
}

[b-c51vyc9w5l] .project-table.project-table--dense .grab-handle-cell .mud-icon-root {
    font-size: 16px;
    line-height: 1;
}

[b-c51vyc9w5l] .project-table.project-table--dense .project-name-content > .mud-tooltip-root {
    display: inline-flex;
    align-items: center;
    align-self: center;
    line-height: 1;
}

[b-c51vyc9w5l] .project-table.project-table--dense .project-name-content > .mud-tooltip-root .mud-icon-root {
    font-size: 16px;
    line-height: 1;
}

[b-c51vyc9w5l] .project-table.project-table--dense .project-name-content,
[b-c51vyc9w5l] .project-table.project-table--dense .folder-content {
    gap: 2px;
    height: 100%;
    min-height: 0;
}

[b-c51vyc9w5l] .project-table.project-table--dense .project-name-content .inherited-share-icon,
[b-c51vyc9w5l] .project-table.project-table--dense .folder-content .inherited-share-icon,
[b-c51vyc9w5l] .project-table.project-table--dense .project-name-content button.shared-icon,
[b-c51vyc9w5l] .project-table.project-table--dense .folder-content button.shared-icon {
    padding: 0 !important;
}

[b-c51vyc9w5l] .project-table.project-table--dense .mud-icon-button,
[b-c51vyc9w5l] .project-table.project-table--dense .mud-button-root.mud-icon-button {
    width: var(--project-table-control-size);
    height: var(--project-table-control-size);
    min-width: var(--project-table-control-size);
    min-height: var(--project-table-control-size);
    padding: 0;
}

[b-c51vyc9w5l] .project-table.project-table--dense .mud-checkbox {
    margin: 0;
    line-height: 1;
}

[b-c51vyc9w5l] .project-table.project-table--dense .mud-checkbox > .mud-icon-button {
    width: var(--project-table-row-height);
    height: var(--project-table-row-height);
    min-width: var(--project-table-row-height);
    min-height: var(--project-table-row-height);
    padding: 0;
}

[b-c51vyc9w5l] .project-table.project-table--dense .mud-checkbox .mud-icon-button-label {
    padding: 0 !important;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

[b-c51vyc9w5l] .project-table.project-table--dense .mud-chip {
    height: 18px;
    padding-inline: 4px;
}

[b-c51vyc9w5l] .project-table.project-table--dense .spaces-table {
    margin-left: 46px;
}

[b-c51vyc9w5l] .project-table.project-table--dense .spaces-table .space-preview-cell {
    padding: 0 !important;
}

[b-c51vyc9w5l] .project-table.project-table--dense tbody tr td {
    min-height: var(--project-table-row-height) !important;
    max-height: var(--project-table-row-height) !important;
    overflow: hidden;
    padding-block: 0 !important;
}

[b-c51vyc9w5l] .folder-content {
    display: flex;
    align-items: center;
    gap: 8px;
}

[b-c51vyc9w5l] .folder-name-cell {
    font-weight: 500;
    padding-left: 5px !important;
}

[b-c51vyc9w5l] .spaces-container {
    padding: 0 !important;
    background-color: var(--mud-palette-background-grey);
}

[b-c51vyc9w5l] .spaces-table {
    margin-left: 66px;
    margin-right: 0px;
    margin-top: 0px;
    margin-bottom: 1px;
    background-color: transparent;
    border-bottom: 1px solid var(--mud-palette-table-lines);
}

[b-c51vyc9w5l] .mud-table-root > .mud-table-body:last-child > .mud-table-row:last-child > .mud-table-cell, [b-c51vyc9w5l] .mud-table-root > .mud-table-foot:last-child > .mud-table-row:last-child > .mud-table-cell {
    border-bottom: 1px solid white;
}
[b-c51vyc9w5l] .spaces-table .mud-table-container {
    background-color: transparent;
}

[b-c51vyc9w5l] .spaces-table thead {
    background-color: transparent;
}

[b-c51vyc9w5l] .project-table tbody tr:has(.spaces-container):hover {
    background-color: transparent !important;
}

[b-c51vyc9w5l] .project-table tbody tr:has(.spaces-container):hover td {
    background-color: transparent !important;
}
    
[b-c51vyc9w5l] .spaces-table tbody tr {
    height: var(--project-table-row-height);
    background-color: var(--mud-palette-surface);
}

[b-c51vyc9w5l] .project-table .spaces-table .mud-table-cell {
    padding-block: var(--project-table-cell-padding-block);
    padding-inline: var(--project-table-cell-padding-inline);
}

[b-c51vyc9w5l] .spaces-table tbody tr:hover {
    background-color: var(--mud-palette-action-default-hover);
}

[b-c51vyc9w5l] .space-preview-cell {
    padding: 4px !important;
}

[b-c51vyc9w5l] .space-name-cell {
    font-weight: 500;
}

[b-c51vyc9w5l] .space-action-container {
    text-align: right;
    opacity: 0;
    transition: opacity 0.1s ease-in-out;
}

[b-c51vyc9w5l] .spaces-table tbody tr:hover .space-actions .space-action-container {
    opacity: 1;
}

[b-c51vyc9w5l] .action-button-container {
    text-align: right;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.1s ease-in-out;
}

[b-c51vyc9w5l] .project-table tbody tr:hover .action-buttons .action-button-container {
    opacity: 1;
}

[b-c51vyc9w5l] .header {
    font-size: medium;
    line-height: var(--project-table-header-height);
}

[b-c51vyc9w5l] .project-table.project-table--dense .header {
    font-size: 11px;
}

[b-c51vyc9w5l] .project-name-content button.shared-icon {
    padding: 6px !important;
}

[b-c51vyc9w5l] .folder-content button.shared-icon {
    padding: 6px !important;
}

[b-c51vyc9w5l] .shared-item:not(.selected-row) {
    background-color: rgba(33, 150, 243, 0.03) !important;
}

[b-c51vyc9w5l] .shared-item:not(.selected-row) + .space-table-cell .spaces-table tbody tr {
    background-color: rgba(33, 150, 243, 0.03) !important;
}

[b-c51vyc9w5l] .shared-item:not(.selected-row) + .space-table-cell .spaces-table tbody tr {
    background-color: rgba(33, 150, 243, 0.03) !important;
}

[b-c51vyc9w5l] .shared-item:not(.selected-row):hover {
    background-color: rgba(33, 150, 243, 0.08) !important;
}

[b-c51vyc9w5l] .shared-item:not(.selected-row) + .space-table-cell .spaces-table tbody tr:hover {
    background-color: rgba(33, 150, 243, 0.08) !important;
}

@media (max-width: 960px) {
    [b-c51vyc9w5l] .hide-on-mobile {
        display: none !important;
    }
    [b-c51vyc9w5l] .project-table {
        min-width: 100%;
    }

    [b-c51vyc9w5l] .project-name-content {
        gap:2px !important;
    }

    [b-c51vyc9w5l] .project-name-content button {
        padding: 4px !important;
    }

    [b-c51vyc9w5l] .space-preview-cell {
        width: 80px;
    }

    [b-c51vyc9w5l] .space-actions {
        width: 120px;
    }

    [b-c51vyc9w5l] .project-table colgroup {
        display: none;
    }

    /* Override arrow width for mobile */
    [b-c51vyc9w5l] .arrow-td {
        width: 50px !important;
        min-width: 50px !important;
        max-width: 50px !important;

    }

    [b-c51vyc9w5l] .spaces-table tbody tr td:first-child {
        width: 80px;
        min-width: 80px;
        max-width: 80px;
    }

    [b-c51vyc9w5l] .project-name-column {
        width: auto !important;
    }

    [b-c51vyc9w5l] .folder-name-cell {
        width: auto !important;
    }
    
    [b-c51vyc9w5l] .spaces-table colgroup {
        display: none;
    }

    [b-c51vyc9w5l] .spaces-table tbody tr td:last-child {
        width: 100px;
        min-width: 100px;
        max-width: 100px;
    }

    [b-c51vyc9w5l] .space-name-cell {
        width: auto !important;
    }

    [b-c51vyc9w5l] .action-button-container,
    [b-c51vyc9w5l] .space-action-container {
        opacity: 1;
    }
}

@media (max-width: 600px) {
    [b-c51vyc9w5l] .project-table {
        font-size: 0.875rem;
    }
}
/* _content/Lib360.Shared/Components/Dashboard/Pages/Dashboard.razor.rz.scp.css */
.projects-page[b-r7q6xiyx5w] {
    min-height: calc(100dvh - var(--mud-appbar-height));
    height: 100%;
}

[b-r7q6xiyx5w] .dashboard-container {
    height: 100%;
}

[b-r7q6xiyx5w] .dashboard-container > div {
    height: 100%;
}

[b-r7q6xiyx5w] .quick-start-placeholder {
    background-color: rgba(1,1,1, 0.04);
    padding: 4px;
    display: flex;
    justify-content: space-between;
    flex-shrink: 0;
}

[b-r7q6xiyx5w] .welcome-section-center{
    display: flex;
    justify-content:center;
}

[b-r7q6xiyx5w] .welcome-section-outer {
    display: flex;
    justify-content: space-between;
    max-width:1400px;
    flex: 1;
}

[b-r7q6xiyx5w] .license-button {
    flex: 0;
    color: var(--mud-palette-text-primary) !important;
    background-color: white !important;
}

[b-r7q6xiyx5w] .welcome-section-container {
    justify-content: space-evenly;
    flex: 1;
}

[b-r7q6xiyx5w] .help-link-container {
    justify-content: space-evenly;
    flex: 1;
    max-width: 250px;
    min-width: 175px;
}

[b-r7q6xiyx5w] .welcome-button {
    color: var(--mud-palette-text-primary) !important;
    background-color: white !important;
}

[b-r7q6xiyx5w] .see-through-area {
    background: transparent;
}

[b-r7q6xiyx5w] .dashboard-layout {
    display: flex;
    flex: 1;
    min-height: calc(100dvh - var(--mud-appbar-height) - 32px);
}

[b-r7q6xiyx5w] .main-welcome {
    flex: 1;
}

[b-r7q6xiyx5w] .greeting-container {
    display:block !important;
    min-width: 245px;
}

[b-r7q6xiyx5w] .sidebar {
    min-width: 280px;
    flex: 0;
    min-height: 250px;
    background-color: rgba(1,1,1, 0.04);
    padding: 12px 0 0 !important;
}

[b-r7q6xiyx5w] .sidebar-section {
    padding-inline: 4px;
}

[b-r7q6xiyx5w] .sidebar-paper {
    height: 100%;
    display: flex;
    flex-direction: column;
    background-color:transparent;
}

[b-r7q6xiyx5w] .content-paper {
    flex: 1;
    min-height: 0px;
}

[b-r7q6xiyx5w] .main-stack-content {
    height: 100%;
}

[b-r7q6xiyx5w] .show-on-mobile {
    display:none;
}

[b-r7q6xiyx5w] .sidebar-content {
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

[b-r7q6xiyx5w] .breadcrumb-paper {
    width: 100%;
    padding: 2px 2px;
    background-color: var(--mud-palette-surface);
}

[b-r7q6xiyx5w] .breadcrumb-header-stack {
    width: 100%;
}

[b-r7q6xiyx5w] .breadcrumb-trail {
    flex: 1;
    min-width: 0;
}

[b-r7q6xiyx5w] .breadcrumb-actions {
    flex-shrink: 0;
    padding-right: 16px;
}

[b-r7q6xiyx5w] .breadcrumb-action-btn.mud-button-root {
    min-height: 26px;
    padding: 2px 8px;
    font-size: 0.75rem;
}

[b-r7q6xiyx5w] .breadcrumb-action-btn .mud-button-icon-start {
    font-size: 1rem;
}

[b-r7q6xiyx5w] .navigation-tree-container {
    flex: 1;
    overflow-y: auto;
    padding: 8px 4px 0;
    border-top: 1px solid var(--mud-palette-divider) !important;
}

[b-r7q6xiyx5w] .sidebar .project-navigation .mud-treeview {
    padding-left: 0;
}

[b-r7q6xiyx5w] .content-area {
    flex-grow: 1;
    min-width: 0;
    min-height: 0px;
}

[b-r7q6xiyx5w] .empty-state {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px;
}

[b-r7q6xiyx5w] .folder-row:where(:not(.selected-row):not(.shared-item)) {
    background-color: var(--mud-palette-background-grey) !important;
    font-weight: 500;
}

[b-r7q6xiyx5w] .folder-row:where(:not(.selected-row):not(.shared-item)):hover {
    background-color: var(--mud-palette-action-default-hover) !important;
}

[b-r7q6xiyx5w] .drag-target {
    background-color: rgba(0,100,150,0.1) !important;
    outline: 1px dashed var(--mud-palette-primary);
    outline-offset: -1px;
}


[b-r7q6xiyx5w] .folder-drag-over {
    background-color: rgba(0,100,150,0.2) !important;
    outline: 1px solid var(--mud-palette-primary);
    outline-offset: -1px;
}


[b-r7q6xiyx5w] .search-field {
    width: 100%;
    background-color: white;
}

@media (max-width: 960px) {
    [b-r7q6xiyx5w] .quick-start-placeholder {
        height: auto;
        min-height: 60px;
        display: none !important;
    }

    [b-r7q6xiyx5w] .top-sidebar-section {
        flex-direction: row !important;
        gap: 4px;
    }

    
    [b-r7q6xiyx5w] .top-sidebar-section > div {
        flex: 1;
        display: flex;
        align-items: center;
    }

    [b-r7q6xiyx5w] .top-sidebar-section > div > button{
        flex: 1;
    }

    [b-r7q6xiyx5w] .action-button-container {
        display:none;
    }

    [b-r7q6xiyx5w] .show-on-mobile {
        display: unset;
        flex-grow: 0;
    }

    [b-r7q6xiyx5w] .dashboard-layout {
        flex-direction: column;
    }

    [b-r7q6xiyx5w] .sidebar {
        width: 100%;
        flex: 1;
        min-height:unset;
    }

    [b-r7q6xiyx5w] .sidebar-paper {
        max-height: 400px;
    }

    [b-r7q6xiyx5w] .navigation-tree-container {
        max-height: 280px;
        padding: 0px !important;
    }
}
/* _content/Lib360.Shared/Components/Layout/AppBar/AppBar.razor.rz.scp.css */
/*
 * App bar responsive breakpoints (single source of truth).
 * CSS does not allow var() in @media, so keep the values below in sync with the @media (max-width: ...) rules.
 */
.appbar-root[b-majty171wh] {
    --appbar-bp-sm: 1200px;            /* small: compact padding, compact tabs */
    --appbar-bp-space-shorten: 1000px; /* when to shorten space name with ellipsis */
    --appbar-bp-space-hide: 900px;     /* when to hide space name entirely */
    --appbar-bp-xs: 800px;             /* very small: smaller logo, hide project button + arrow */
    --appbar-bp-logo-hide: 600px;      /* when to hide logo (same as xxs) */
    --appbar-bp-xxs: 600px;            /* extra small: hide undo/redo + logo */
}

/* Brand logo button: square image, no MudButton corner rounding. */
.appbar-root[b-majty171wh]  .appbar-brand-button,
.appbar-root[b-majty171wh]  .appbar-brand-button .mud-image {
    border-radius: 0 !important;
}

/* Keep app bar height consistent when content is hidden (e.g. undo/redo at xxs) */
.appbar-root[b-majty171wh]  .mud-appbar,
.appbar-root[b-majty171wh]  .mud-toolbar-appbar {
    min-height: var(--mud-appbar-height);
}

/* Compact padding (icons stay full size) when viewport is narrow. */
@media (max-width: 1200px) { /* --appbar-bp-sm */
    /* Icon buttons: compact padding only */
    .appbar-root[b-majty171wh]  .mud-appbar .mud-icon-button {
        padding: 4px !important;
    }
    .appbar-root[b-majty171wh]  .mud-appbar .mud-button .mud-button-icon {
        margin-inline-end: 4px;
    }
    /* View switcher tabs: compact padding */
    .appbar-root[b-majty171wh]  #view-tab-container .mud-tab {
        min-width: 2.5rem !important;
        padding-left: 0.25rem !important;
        padding-right: 0.25rem !important;
    }
}

/* Shorten space name with ellipsis (tooltip still shows full name). */
@media (max-width: 1000px) { /* --appbar-bp-space-shorten */
    .appbar-root[b-majty171wh]  #space-title-text {
        max-width: 6ch !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }
    .appbar-root[b-majty171wh]  #space-title-button {
        min-width: unset;
        padding-left: 0.25rem;
        padding-right: 0.25rem;
    }
}

/* Hide space name entirely (tooltip still works). */
@media (max-width: 900px) { /* --appbar-bp-space-hide */
    .appbar-root[b-majty171wh]  #space-title-text {
        display: none !important;
    }
}

/* Very small screens: smaller logo, hide project button + arrow; back button shows only arrow */
@media (max-width: 800px) { /* --appbar-bp-xs */
    .appbar-root[b-majty171wh]  .mud-appbar .appbar-back-home-icon {
        display: none !important;
    }
    .appbar-root[b-majty171wh]  .mud-appbar .appbar-back-button {
        min-width: unset !important;
        padding: 4px 8px !important;
    }
    /* Make logo smaller (hidden at --appbar-bp-xxs with undo/redo) */
    .appbar-root[b-majty171wh]  .appbar-logo {
        height: 36px !important;
        max-height: 36px !important;
        width: auto !important;
    }
    .appbar-root[b-majty171wh]  .appbar-logo img {
        height: 36px !important;
        width: auto !important;
        object-fit: contain;
    }
    .appbar-root[b-majty171wh]  .appbar-project-and-arrow {
        display: none !important;
    }
}

/* Extra small screens: hide undo/redo and logo */
@media (max-width: 600px) { /* --appbar-bp-xxs, --appbar-bp-logo-hide */
    .appbar-root[b-majty171wh]  .appbar-undo-redo {
        display: none !important;
    }
    .appbar-root[b-majty171wh]  .appbar-logo {
        display: none !important;
    }
}

.appbar-root[b-majty171wh]  .appbar-undo-redo-icon-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Validation indicator: sits just right of the view switcher. When issues exist, a thin bar
   under the icon grows and fades on a slow cycle, in step with a subtle scale on the icon
   itself - reads as a status indicator rather than a notification halo. */
.appbar-root[b-majty171wh]  .appbar-validation-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    margin-left: 8px;
}

.appbar-root[b-majty171wh]  .appbar-validation-wrap .mud-icon-button {
    position: relative;
    transition: transform 160ms ease;
}

/* Anchored with top: 50% + a fixed offset, not bottom - the wrap is a flex item of the app
   bar's toolbar and stretches to the toolbar's full height (even though its own align-items
   only centers its children), so a wrap-relative "bottom" lands far past the visible icon.
   "top: 50%" still lines up with the icon's own visual center regardless of that stretched
   height, since that's the same midpoint align-items: center uses to place the icon itself. */
.appbar-root[b-majty171wh]  .appbar-validation-wrap.has-issues::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    margin-top: 20px;
    width: 0;
    height: 3px;
    border-radius: 1.5px;
    background: var(--appbar-validation-pulse-color, var(--mud-palette-warning));
    transform: translateX(-50%);
    animation: appbar-validation-bar-b-majty171wh 2.6s ease-in-out infinite;
    pointer-events: none;
}

.appbar-root[b-majty171wh]  .appbar-validation-wrap.has-issues .mud-icon-button:hover {
    transform: scale(1.08);
}

.appbar-root[b-majty171wh]  .appbar-validation-wrap.has-issues:hover::after {
    animation-play-state: paused;
}

@keyframes appbar-validation-bar-b-majty171wh {
    0%, 100% { width: 12px; opacity: 0.5; }
    50%      { width: 32px; opacity: 0.9; }
}

@media (prefers-reduced-motion: reduce) {
    .appbar-root[b-majty171wh]  .appbar-validation-wrap.has-issues::after { animation: none; }
}
/* _content/Lib360.Shared/Components/Layout/AppBar/ProjectSpaceField.razor.rz.scp.css */
.project-space-field[b-l2i3dnkbnp] {
    margin-left: 1rem;
    margin-right: 1rem;
    width: 28rem;
}

.appbar-project-and-arrow[b-l2i3dnkbnp] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.project-name-field[b-l2i3dnkbnp]{

    width: 10rem;
}

.space-name-field[b-l2i3dnkbnp]{
    width: 17rem;
}
/* _content/Lib360.Shared/Components/Layout/AppBar/SyncState.razor.rz.scp.css */
#sync-icon-container[b-sy73cpcffo] {
    height: 1.5rem;
    margin-left: 0.75rem;
    margin-right: 0.75rem;
}
/* _content/Lib360.Shared/Components/Layout/AppBar/ViewSwitcher.razor.rz.scp.css */
.icon-container[b-rmnya1ve3g] {
    color: black;
    width: 36px;
    height: 36px;
}

/* Center the view switcher in the app bar (works at any width) */
#view-tab-container[b-rmnya1ve3g] {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}
/* _content/Lib360.Shared/Components/Views/3D/SharedScene3D.razor.rz.scp.css */
.shared-scene-info[b-u58qpaep0r] {
    position: fixed;
    top: 0.75rem;
    right: 1rem;
    z-index: 100;
    text-align: right;
    pointer-events: none;
    user-select: none;
    color: rgba(0, 0, 0, 0.72);
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.85), 0 0 4px rgba(255, 255, 255, 0.6);
}

.shared-scene-info-title[b-u58qpaep0r] {
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.2;
    white-space: nowrap;
}

.shared-scene-info-space[b-u58qpaep0r] {
    font-size: 0.85rem;
    line-height: 1.2;
    white-space: nowrap;
}

.shared-scene-info-version[b-u58qpaep0r] {
    font-size: 0.75rem;
    line-height: 1.3;
    opacity: 0.85;
    white-space: nowrap;
}
/* _content/Lib360.Shared/Components/Views/BOM/TableCell.razor.rz.scp.css */
td[b-z7mwm72tr7] {
    padding: 4px 8px;
    border: 1px solid #e0e0e0;
    text-align: left;
    vertical-align: top;
    font-size: 0.8125rem;
    line-height: 1.3;
}

td.header-cell[b-z7mwm72tr7] {
    background-color: #f5f5f5;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.6875rem;
    color: #424242;
    padding: 6px 8px;
}

td.subtotal-cell[b-z7mwm72tr7] {
    background-color: #fafafa;
    font-weight: 600;
    border-top: 2px solid #9e9e9e;
}
/* _content/Lib360.Shared/Components/Views/BOM/TableRow.razor.rz.scp.css */
tr[b-dmainkzeao] {
    border-bottom: 1px solid #e0e0e0;
}

tr.header-row[b-dmainkzeao] {
    background-color: #f5f5f5;
}

tr.subtotal-row[b-dmainkzeao] {
    background-color: #fafafa;
    border-top: 2px solid #9e9e9e;
}

tr:hover:not(.header-row):not(.subtotal-row)[b-dmainkzeao] {
    background-color: #f9f9f9;
}
/* _content/Lib360.Shared/Components/Views/DWG/Components/DwgBody.razor.rz.scp.css */
.dwg-main[b-pnvyici6xb] {
    height: 100%;
    overflow: auto;
    padding: 25px 0;
}
.dwg-canvas[b-pnvyici6xb] {
    padding: 0;
    height: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.dwg-stage[b-pnvyici6xb] {
    width: 100%;
    display: flex;
    justify-content: center;
    overflow: hidden;
    padding: 0;
}

/* Crossfade stack (prev + current) */
.dwg-sheet-stack[b-pnvyici6xb] {
    width: 100%;
    --avail-h: 90dvh;
    /* Available width inside the canvas, accounting for the drawer and some breathing room */
    --avail-w: calc(100vw - var(--dwg-drawer-offset, 0px) - 48px);
    height: var(--avail-h);
    position: relative;
    overflow: hidden;
}

/* Transition tuning.
   Note: this is a CSS-isolated file, so don't rely on :root for CSS variables. */
.dwg-root[b-pnvyici6xb] {
    /* Disabled for now (instant swap) */
    --dwg-page-anim-duration: 0ms;
    --dwg-page-anim-ease: linear;
    --dwg-page-slide: 0px;
}

.dwg-sheet-layer[b-pnvyici6xb] {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    will-change: opacity;
}

/* True crossfade so it doesn't feel like a flash */
.dwg-sheet-layer.is-current[b-pnvyici6xb] {
    animation: none !important;
}

/* All sheets stay mounted; only the active drawer page is visible/interactive. */
.dwg-sheet-layer.is-background[b-pnvyici6xb] {
    visibility: hidden;
    pointer-events: none;
}

.dwg-sheet-layer.is-prev[b-pnvyici6xb] {
    animation: none !important;
}

@keyframes dwg-page-fade-in-b-pnvyici6xb {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes dwg-page-fade-out-b-pnvyici6xb {
    from { opacity: 1; }
    to   { opacity: 0; }
}

/* Carousel feel: small slide depends on direction */
.dwg-sheet-stack.dir-next[b-pnvyici6xb] {
    --dwg-enter-x: var(--dwg-page-slide, 26px);
    --dwg-exit-x: calc(var(--dwg-page-slide, 26px) * -1);
}

.dwg-sheet-stack.dir-prev[b-pnvyici6xb] {
    --dwg-enter-x: calc(var(--dwg-page-slide, 26px) * -1);
    --dwg-exit-x: var(--dwg-page-slide, 26px);
}

@media (prefers-reduced-motion: reduce) {
    .dwg-sheet-layer[b-pnvyici6xb] {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

/* The actual paper */
.dwg-sheet-inner[b-pnvyici6xb] {
    aspect-ratio: var(--sheet-ar);
    /* Fit sheet within both width and height constraints */
    width: min(var(--avail-w), calc(var(--avail-h) * var(--sheet-ratio)));
    /* Give the sheet an explicit height so children can use % heights (CSS-only scaling fallback). */
    height: min(var(--avail-h), calc(var(--avail-w) / var(--sheet-ratio)));
    background: white;
    border: 1px solid #000;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
    position: relative;
    display: flex;
    flex-direction: column;
    container-type: size;

    /* Convert millimeters (page model) to px in this rendered sheet. Inherits to all placements. */
    --dwg-mm-to-px: calc(100cqh / var(--dwg-page-h-mm, 215.9));
}

.dwg-sheet-inner[b-pnvyici6xb]::after {
    content: "";
    position: absolute;
    /* Inset guide by the requested page margin. */
    inset:
        calc(100% * var(--dwg-page-margin-mm, 6) / var(--dwg-page-h-mm, 215.9))
        calc(100% * var(--dwg-page-margin-mm, 6) / var(--dwg-page-w-mm, 279.4));
    pointer-events: none;
    z-index: 3; /* above placements + rubberband overlay */

    /* Page margin guide: solid black line */
    border: 1px solid #000;
    opacity: 1;
    box-sizing: border-box;
}

.dwg-sheet-page[b-pnvyici6xb] {
    height: 100%;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    padding:
        /* top/bottom based on page height */
        calc(100% * var(--dwg-page-margin-mm, 6) / var(--dwg-page-h-mm, 215.9))
        /* left/right based on page width */
        calc(100% * var(--dwg-page-margin-mm, 6) / var(--dwg-page-w-mm, 279.4));
}


.dwg-sheet-header[b-pnvyici6xb] {
    padding: 10px 14px;
    font-weight: 600;
    font-size: 0.95rem;
    border-bottom: 1px solid #000;
    background: linear-gradient(to bottom, rgba(0,0,0,0.03), rgba(0,0,0,0.00));
}

.dwg-sheet-body[b-pnvyici6xb] {
    flex: 1;
    /* Important: the sheet grid is our coordinate system for placements (mm -> %).
       Padding here would offset the visual top-left from (0,0). Keep it at 0. */
    padding: 0;
    background-image:
        radial-gradient(rgba(0,0,0,0.06) 1px, transparent 1px);
    background-size: 18px 18px;
    background-position: -2px -2px;
    position: relative;
}

/* Keep some breathing room for the placeholder text (non-interactive). */
.dwg-sheet-body[b-pnvyici6xb] >  .mud-typography {
    padding: 16px;
}

.dwg-sheet-body--adding[b-pnvyici6xb] {
    cursor: crosshair;
    touch-action: none;
}

/* Radial Copy follow: override --adding crosshair while ghost tracks pointer */
.dwg-sheet-body--adding.dwg-sheet-body--copy-follow[b-pnvyici6xb] {
    cursor: default;
}

.dwg-sheet-images-layer[b-pnvyici6xb] {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    overflow: visible;
}

/*
 * 3D loading veil: defined here (under [data-dwg-sheet-grid]) with :has() on each .dwg-sheet-3d-shell so every placement
 * is independent. DwgImage.razor.css scoped rules like ".dwg-sheet-placed-3d.is-loaded ~ .dwg-sheet-3d-loading[b-xx]" attach
 * [b-xx] only to the veil node — on the first navigation that can match the wrong sibling chain until cache warms up.
 */
[data-dwg-sheet-grid] .dwg-sheet-3d-shell > .dwg-sheet-3d-loading[b-pnvyici6xb] {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
    opacity: 1;
    visibility: visible;
    transition: none;
}

[data-dwg-sheet-grid] .dwg-sheet-3d-shell:has(> .dwg-sheet-placed-3d.is-loaded) > .dwg-sheet-3d-loading[b-pnvyici6xb],
[data-dwg-sheet-grid] .dwg-sheet-3d-shell:has(> .dwg-sheet-placed-3d.dwg-3d-cache-unresolved) > .dwg-sheet-3d-loading[b-pnvyici6xb] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

[data-dwg-sheet-grid] .dwg-sheet-3d-shell:has(> .dwg-sheet-placed-3d.is-loaded) > .dwg-sheet-3d-loading[b-pnvyici6xb] {
    transition: opacity 180ms ease, visibility 0ms linear 180ms;
}

[data-dwg-sheet-grid] .dwg-sheet-3d-shell:has(> .dwg-sheet-placed-3d.dwg-3d-cache-unresolved) > .dwg-sheet-3d-loading[b-pnvyici6xb] {
    transition: none;
}

@media (prefers-reduced-motion: reduce) {
    [data-dwg-sheet-grid] .dwg-sheet-3d-shell:has(> .dwg-sheet-placed-3d.is-loaded) > .dwg-sheet-3d-loading[b-pnvyici6xb] {
        transition: none;
    }
}

/* SVG layer for GenericRadialMenu; pointer-events none so placements stay clickable until the menu shows items. */
.dwg-radial-overlay[b-pnvyici6xb] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 20;
    overflow: visible;
    pointer-events: none;
}

/*
 * JS-built add-placement preview (dwg.interaction.js) lives under [data-dwg-sheet-grid] without Blazor scoped attributes.
 * Normal placements use .dwg-sheet-placement-inner / .dwg-sheet-3d-shell min-height:32px — that inflates a 0×0
 * rubber-band and shows a full-size 3D bitmap before the user drags. Strip min-size; visibility toggled in JS until w,h ≥ 2.
 */
[data-dwg-sheet-grid] .dwg-sheet-placement.dwg-add-placement-preview[b-pnvyici6xb] {
    min-width: 0;
    min-height: 0;
}

[data-dwg-sheet-grid] .dwg-sheet-placement.dwg-add-placement-preview .dwg-sheet-placement-inner[b-pnvyici6xb],
[data-dwg-sheet-grid] .dwg-sheet-placement.dwg-add-placement-preview .dwg-sheet-3d-shell[b-pnvyici6xb] {
    min-width: 0;
    min-height: 0;
}

@media (max-width: 900px) {
    .dwg-stage[b-pnvyici6xb] {
        --peek: 18px;
        --gap: 12px;
    }
}
/* _content/Lib360.Shared/Components/Views/DWG/Components/DwgDrawer.razor.rz.scp.css */
.dwg-pager-text[b-mtj0it6kj2] {
    min-width: 140px;
    text-align: center;
}

.dwg-pager-text-drawer[b-mtj0it6kj2] {
    min-width: 0;
}

.dwg-pages-drawer[b-mtj0it6kj2] {
    border-right: 1px solid rgba(0, 0, 0, 0.08);
    position: relative;
}

.dwg-fabs[b-mtj0it6kj2] {
    position: fixed;
    /* Same vertical rhythm as Toolbar.razor.css (1rem) but from below the Mud app bar. */
    top: calc(var(--mud-appbar-height) + 1rem);
    left: 12px;
    z-index: 1400;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Toolbar.razor.css uses absolute + 1rem offsets; neutralize so placement matches legacy FABs. */
.dwg-fabs[b-mtj0it6kj2]  .tool-bar {
    position: static;
    left: auto;
    top: auto;
    z-index: auto;
}

.dwg-fab-btn[b-mtj0it6kj2] {
    background: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}

.dwg-fab-btn:hover[b-mtj0it6kj2] {
    background: var(--mud-palette-primary-darken);
}


.dwg-pages[b-mtj0it6kj2] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 6px 4px 8px;
}

.dwg-page-card[b-mtj0it6kj2] {
    appearance: none;
    box-sizing: border-box;
    border: 2px solid transparent;
    background: transparent;
    text-align: left;
    width: 100%;
    padding: 8px;
    border-radius: 10px;
    cursor: pointer;
    transition:
        background-color 160ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease,
        transform 220ms cubic-bezier(.22, .8, .2, 1);
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
}

.dwg-drag-handle[b-mtj0it6kj2] {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    cursor: grab;
    opacity: 0.75;
    user-select: none;
    touch-action: none;
}

.dwg-drag-handle:hover[b-mtj0it6kj2] {
    opacity: 1;
    background: rgba(0,0,0,0.05);
}

.dwg-page-card:active .dwg-drag-handle[b-mtj0it6kj2] {
    cursor: grabbing;
}

.dwg-drag-handle :global(svg)[b-mtj0it6kj2] {
    width: 22px;
    height: 22px;
}

.dwg-page-preview[b-mtj0it6kj2],
.dwg-page-mini[b-mtj0it6kj2] {
    flex: 1 1 auto;
}

/* Drop anywhere on card: invisible hit areas for before/after */
.dwg-drop-hit[b-mtj0it6kj2] {
    position: absolute;
    left: 0;
    right: 0;
    z-index: 3;
}

.dwg-drop-hit.is-before[b-mtj0it6kj2] { top: 0; height: 50%; }
.dwg-drop-hit.is-after[b-mtj0it6kj2] { bottom: 0; height: 50%; }

.dwg-page-card.is-drop-before[b-mtj0it6kj2]::before,
.dwg-page-card.is-drop-after[b-mtj0it6kj2]::after {
    content: "";
    position: absolute;
    left: 6px;
    right: 6px;
    height: 2px;
    background: rgba(225, 9, 21, 0.95);
    border-radius: 999px;
    z-index: 4;
    box-shadow: 0 2px 10px rgba(225, 9, 21, 0.25);
}

/* Create visual "room" for insertion */
.dwg-page-card.is-drop-before[b-mtj0it6kj2] { margin-top: 18px; }
.dwg-page-card.is-drop-after[b-mtj0it6kj2] { margin-bottom: 18px; }

.dwg-page-card.is-drop-before[b-mtj0it6kj2]::before { top: -14px; }
.dwg-page-card.is-drop-after[b-mtj0it6kj2]::after { bottom: -14px; }

/* Add/reorder micro-animations */
.dwg-page-card.is-flash-add .dwg-page-preview[b-mtj0it6kj2],
.dwg-page-card.is-flash-add .dwg-page-mini[b-mtj0it6kj2] {
    transform-origin: 50% 35%;
    animation: dwg-page-add-pop-b-mtj0it6kj2 420ms cubic-bezier(.22, .8, .2, 1) both;
}

.dwg-page-card.is-flash-move .dwg-page-preview[b-mtj0it6kj2],
.dwg-page-card.is-flash-move .dwg-page-mini[b-mtj0it6kj2] {
    animation: dwg-page-move-pulse-b-mtj0it6kj2 520ms cubic-bezier(.22, .8, .2, 1) both;
}

@keyframes dwg-page-add-pop-b-mtj0it6kj2 {
    0% { transform: scale(0); opacity: 0; }
    70% { transform: scale(1.03); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes dwg-page-move-pulse-b-mtj0it6kj2 {
    0% { transform: translateY(0) scale(1); box-shadow: none; }
    40% { transform: translateY(-2px) scale(1.02); box-shadow: 0 10px 22px rgba(0,0,0,0.18); }
    100% { transform: translateY(0) scale(1); box-shadow: none; }
}

.dwg-page-card:hover[b-mtj0it6kj2] {
    background-color: rgba(0, 0, 0, 0.04);
}

.dwg-page-card:active[b-mtj0it6kj2] {
    transform: translateY(1px);
}

.dwg-page-card:disabled[b-mtj0it6kj2] {
    cursor: default;
    opacity: 0.6;
}

.dwg-page-card.is-active[b-mtj0it6kj2] {
    border-color: #E10915;
    background-color: transparent;
    box-shadow: 0 10px 26px rgba(0,0,0,0.12);
    transform: translateY(-1px);
}

/* Mini: red ring lives on .dwg-page-mini only; suppress outer .is-active border/shadow (avoids double ring). */
.dwg-page-card.is-mini.is-active[b-mtj0it6kj2] {
    border-color: transparent;
    box-shadow: none;
    transform: none;
}

/*
 * Mini chip: scoped attribute can land on .dwg-page-mini; keep border here so it always paints.
 */
.dwg-page-card.is-mini .dwg-page-mini[b-mtj0it6kj2] {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 34px;
    border-radius: 10px;
    border: 2px solid transparent;
    transition: border-color 220ms ease, box-shadow 220ms ease, color 180ms ease, opacity 180ms ease;
}

.dwg-page-card.is-mini.is-active .dwg-page-mini[b-mtj0it6kj2] {
    border-color: #E10915;
    box-shadow: 0 4px 14px rgba(225, 9, 21, 0.2);
}

/* :disabled on the button dims the whole control; keep the active mini chip fully legible. */
.dwg-page-card.is-mini.is-active:disabled[b-mtj0it6kj2] {
    opacity: 1;
}

.dwg-page-card.is-mini[b-mtj0it6kj2] {
    padding: 10px 8px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.dwg-page-card.is-edit[b-mtj0it6kj2] {
    cursor: default;
}

.dwg-page-delete-wrap[b-mtj0it6kj2] {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
}

.dwg-page-delete[b-mtj0it6kj2] {
    background: rgba(255,255,255,0.92);
    border-radius: 999px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.16);
}

.dwg-page-delete :global(svg)[b-mtj0it6kj2] {
    width: 22px;
    height: 22px;
}

.dwg-page-mini[b-mtj0it6kj2] {
    font-weight: 700;
    opacity: 0.85;
}

.dwg-page-preview[b-mtj0it6kj2] {
    width: 100%;
    aspect-ratio: var(--sheet-ar);
    border-radius: 0;
    border: 1px solid rgba(0,0,0,0.12);
    background: white;
    box-shadow: 0 2px 8px rgba(0,0,0,0.10);
    overflow: hidden;
    position: relative;
    transition: box-shadow 220ms ease, transform 220ms cubic-bezier(.22, .8, .2, 1);
}

.dwg-page-card.is-active .dwg-page-preview[b-mtj0it6kj2] {
    box-shadow: 0 12px 28px rgba(0,0,0,0.16);
    transform: scale(1.01);
}

.dwg-page-preview-inner[b-mtj0it6kj2] {
    width: 100%;
    height: 100%;
    position: relative;
    background: white;
}

/* Match DwgBody: placements live in the sheet body between header/footer inside page margins. */
.dwg-page-preview-sheet[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding:
        calc(100% * var(--dwg-page-margin-mm, 6) / var(--dwg-page-h-mm, 215.9))
        calc(100% * var(--dwg-page-margin-mm, 6) / var(--dwg-page-w-mm, 279.4));
}

.dwg-page-preview-header-spacer[b-mtj0it6kj2] {
    flex: 0 0 auto;
    height: calc(100% * var(--dwg-header-h-mm, 6) / var(--dwg-page-h-mm, 215.9));
}

.dwg-page-preview-footer-spacer[b-mtj0it6kj2] {
    flex: 0 0 auto;
    height: calc(100% * var(--dwg-footer-h-mm, 20) / var(--dwg-page-h-mm, 215.9));
}

.dwg-page-preview-sheet-body[b-mtj0it6kj2] {
    flex: 1;
    min-height: 0;
    position: relative;
    padding: 0;
}

.dwg-page-preview-placements[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

.dwg-page-preview-placements-inner[b-mtj0it6kj2] {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

.dwg-page-preview-placement[b-mtj0it6kj2] {
    position: absolute;
    overflow: hidden;
    background: transparent;
}

.dwg-page-preview-placed-text[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    box-sizing: border-box;
    /* Scale with the preview placement box (avoid fixed px text). */
    padding: clamp(0.5px, min(3cqw, 3cqh), 2px);
    overflow: hidden;
    font-size: clamp(1.5px, min(14cqw, 14cqh), 7px);
    line-height: 1.15;
    color: rgba(30, 30, 30, 0.9);
    white-space: pre-wrap;
    word-break: break-word;
    background: transparent;
    z-index: 1; /* above ::before skeleton */
}

/* Content should render above the always-on skeleton. */
.dwg-page-preview-img-wrap[b-mtj0it6kj2],
.dwg-page-preview-placed-svg[b-mtj0it6kj2],
.dwg-page-preview-placed-skeleton[b-mtj0it6kj2],
.dwg-page-preview-placed-3d[b-mtj0it6kj2],
.dwg-page-preview-3d-shell[b-mtj0it6kj2] {
    position: relative;
    z-index: 1;
}

/* Match sheet DwgImage: container queries + boundary content transforms for rotated previews. */
.dwg-page-preview-img-wrap[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.dwg-page-preview-boundary-box[b-mtj0it6kj2] {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    container-type: size;
}

/* Skeleton: only within the meet-fit box (% width/height), not the full placement. */
.dwg-page-preview-boundary-box[b-mtj0it6kj2]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-color: #b8b8bc; /* match sheet skeleton tone */
    opacity: 0;
    animation: dwg-preview-skel-fill-fade-in 750ms ease-out forwards;
    transition: opacity 340ms ease;
}

/* Shimmer sweep — same as DwgImagePickerDialog / customStyles.css (dwg-shimmer). */
.dwg-page-preview-boundary-box[b-mtj0it6kj2]::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    transform: translateX(-100%);
    opacity: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.55), transparent);
    animation:
        dwg-skeleton-shimmer-fade-in 700ms ease-out forwards,
        dwg-shimmer 1.25s ease-in-out infinite 520ms;
    transition: opacity 340ms ease;
}

/* Hide skeleton once real content is present. */
.dwg-page-preview-boundary-box:has(.dwg-page-preview-placed-3d.is-loaded)[b-mtj0it6kj2]::before,
.dwg-page-preview-boundary-box:has(.dwg-page-preview-placed-3d.dwg-3d-cache-unresolved)[b-mtj0it6kj2]::before,
.dwg-page-preview-boundary-box:has(.dwg-page-preview-placed-svg)[b-mtj0it6kj2]::before,
.dwg-page-preview-boundary-box:has(.dwg-page-preview-placed-text)[b-mtj0it6kj2]::before {
    opacity: 0;
    animation: none;
}

.dwg-page-preview-boundary-box:has(.dwg-page-preview-placed-3d.is-loaded)[b-mtj0it6kj2]::after,
.dwg-page-preview-boundary-box:has(.dwg-page-preview-placed-3d.dwg-3d-cache-unresolved)[b-mtj0it6kj2]::after,
.dwg-page-preview-boundary-box:has(.dwg-page-preview-placed-svg)[b-mtj0it6kj2]::after,
.dwg-page-preview-boundary-box:has(.dwg-page-preview-placed-text)[b-mtj0it6kj2]::after {
    opacity: 0;
    animation: none;
}

/* Ensure boundary content paints above skeleton. */
.dwg-page-preview-boundary-content[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
}


.dwg-page-preview-placement[data-dwg-rotation="90"] .dwg-page-preview-boundary-content[b-mtj0it6kj2] {
    inset: unset;
    top: 0;
    left: 0;
    width: 100cqh;
    height: 100cqw;
    transform: translate(100cqw, 0) rotate(90deg);
    transform-origin: 0 0;
}

.dwg-page-preview-placement[data-dwg-rotation="270"] .dwg-page-preview-boundary-content[b-mtj0it6kj2] {
    inset: unset;
    top: 0;
    left: 0;
    width: 100cqh;
    height: 100cqw;
    transform: translate(0, 100cqh) rotate(270deg);
    transform-origin: 0 0;
}

.dwg-page-preview-placement[data-dwg-rotation="180"] .dwg-page-preview-boundary-content[b-mtj0it6kj2] {
    transform: rotate(180deg);
    transform-origin: 50% 50%;
}

.dwg-page-preview-placement[data-dwg-rotation="90"] .dwg-page-preview-placed-3d[b-mtj0it6kj2],
.dwg-page-preview-placement[data-dwg-rotation="180"] .dwg-page-preview-placed-3d[b-mtj0it6kj2],
.dwg-page-preview-placement[data-dwg-rotation="270"] .dwg-page-preview-placed-3d[b-mtj0it6kj2] {
    object-fit: fill;
}

.dwg-page-preview-3d-shell[b-mtj0it6kj2] {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    background: transparent;
}

.dwg-page-preview-3d-shell .dwg-page-preview-placed-3d[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.dwg-page-preview-3d-shell .dwg-page-preview-missing-overlay[b-mtj0it6kj2],
.dwg-page-preview-boundary-content > .dwg-page-preview-missing-overlay[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    box-sizing: border-box;
    background: rgba(245, 245, 245, 0.97);
}

.dwg-page-preview-placed-3d[b-mtj0it6kj2] {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    object-position: left top;
    opacity: 0;
}

.dwg-page-preview-placed-3d.is-loaded[b-mtj0it6kj2] {
    opacity: 1;
}

/* 3D loading veil in drawer previews (mirrors sheet behavior). */
.dwg-page-preview-3d-shell > .dwg-page-preview-3d-loading[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
    opacity: 1;
    visibility: visible;
    transition: none;
}

.dwg-page-preview-3d-skeleton[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    box-sizing: border-box;
    overflow: hidden;
    background-color: #b8b8bc;
    opacity: 0;
    animation: dwg-preview-3d-skeleton-fade-in-b-mtj0it6kj2 750ms ease-out forwards;
}

@keyframes dwg-preview-3d-skeleton-fade-in-b-mtj0it6kj2 {
    from {
        opacity: 0;
    }

    to {
        opacity: 0.25;
    }
}

.dwg-page-preview-3d-shell:has(> .dwg-page-preview-placed-3d.is-loaded) > .dwg-page-preview-3d-loading[b-mtj0it6kj2],
.dwg-page-preview-3d-shell:has(> .dwg-page-preview-placed-3d.dwg-3d-cache-unresolved) > .dwg-page-preview-3d-loading[b-mtj0it6kj2] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.dwg-page-preview-3d-shell:has(> .dwg-page-preview-placed-3d.is-loaded) > .dwg-page-preview-3d-loading[b-mtj0it6kj2] {
    transition: opacity 180ms ease, visibility 0ms linear 180ms;
}

.dwg-page-preview-placed-svg[b-mtj0it6kj2] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    line-height: 0;
}

.dwg-page-preview-placed-svg :global(svg)[b-mtj0it6kj2] {
    width: 100%;
    height: 100%;
    display: block;
}

.dwg-page-preview-placed-skeleton[b-mtj0it6kj2] {
    width: 100%;
    height: 100%;
    /* Grey + shimmer: .dwg-page-preview-boundary-box::before / ::after */
    background: rgba(0, 0, 0, 0.04);
}

.dwg-page-preview-label[b-mtj0it6kj2] {
    font-size: 1.0rem;
    font-weight: 700;
    opacity: 0.65;
    transition: color 180ms ease, opacity 180ms ease;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    pointer-events: none;
}

/* Active page: make the number red too */
.dwg-page-card.is-active .dwg-page-preview-label[b-mtj0it6kj2],
.dwg-page-card.is-active .dwg-page-mini[b-mtj0it6kj2] {
    color: #E10915;
    opacity: 1;
}

.dwg-page-preview-center[b-mtj0it6kj2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.dwg-page-delete-center[b-mtj0it6kj2] {
    background: rgba(255,255,255,0.92);
    border-radius: 999px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.18);
}

.dwg-page-delete-center :global(svg)[b-mtj0it6kj2] {
    width: 26px;
    height: 26px;
}

.dwg-drag-handle.is-delete[b-mtj0it6kj2] {
    cursor: pointer;
    opacity: 1;
}

.dwg-drag-handle.is-delete:hover[b-mtj0it6kj2] {
    background: rgba(225, 9, 21, 0.06);
}

.dwg-page-name[b-mtj0it6kj2] {
    margin-top: 8px;
    font-size: 0.92rem;
    font-weight: 600;
    opacity: 0.85;
}

@media (max-width: 900px) {
    .dwg-stage[b-mtj0it6kj2] {
        --peek: 18px;
        --gap: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dwg-page-preview-boundary-box[b-mtj0it6kj2]::before {
        animation: none;
        opacity: 0.22;
    }

    .dwg-page-preview-boundary-box[b-mtj0it6kj2]::after {
        animation: none;
        transform: none;
        opacity: 0;
    }

    .dwg-page-preview-3d-skeleton[b-mtj0it6kj2] {
        animation: none;
        opacity: 0.25;
    }
}

/* _content/Lib360.Shared/Components/Views/DWG/Components/DwgFooter.razor.rz.scp.css */
.dwg-footer[b-ufz9rfictj] {
    /* CSS-only: footer is a fixed mm band relative to sheet height. */
    height: calc(100% * var(--dwg-footer-h-mm, 20) / var(--dwg-page-h-mm, 215.9));
    flex: 0 0 auto;
    padding: 0;
    border-top: 1px solid #000;
    background: white;
    position: relative;
    overflow: hidden;
    user-select: none;
    -webkit-user-select: none;
    /* Enable container query units (cqh/cqw) for scaling content. */
    container-type: size;
}

.dwg-footer-inner[b-ufz9rfictj] {
    position: absolute;
    inset: 0;
    padding: 7cqh 4cqw;
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    gap: 5cqh;
}

.dwg-footer-dealer[b-ufz9rfictj] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 5cqh;
    opacity: 1;
}

.dwg-footer-left[b-ufz9rfictj],
.dwg-footer-right[b-ufz9rfictj] {
    display: flex;
    align-items: center;
    min-width: 0;
    min-height: 40cqh; /* reserve space to avoid layout pop */
}

.dwg-footer-left[b-ufz9rfictj] { justify-content: flex-start; }
.dwg-footer-right[b-ufz9rfictj] { justify-content: flex-end; }

.dwg-footer-logo[b-ufz9rfictj],
.dwg-footer-rubbermaid[b-ufz9rfictj] {
    /* Bigger by default; constrained by footer container. */
    max-height: 72cqh;
    object-fit: contain;
}

.dwg-footer-logo[b-ufz9rfictj] {
    max-width: 46cqw;
}

.dwg-footer-rubbermaid[b-ufz9rfictj] {
    max-width: 46cqw;
}

.dwg-footer-center[b-ufz9rfictj] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1.4cqh;
    line-height: 1.15;
    color: rgba(0, 0, 0, 0.82);
    text-align: left;
    justify-self: center;
    max-width: min(520px, 100%);
}

.dwg-footer-title[b-ufz9rfictj] {
    font-weight: 600;
    font-size: 11cqh;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dwg-footer-address[b-ufz9rfictj] {
    font-size: 9cqh;
    white-space: pre-line;
    overflow: visible;
}

.dwg-footer-phone[b-ufz9rfictj] {
    font-size: 9cqh;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dwg-footer-right[b-ufz9rfictj] {
    position: absolute;
    right: 4cqw;
    top: 50%;
    transform: translateY(-50%);
}
/* _content/Lib360.Shared/Components/Views/DWG/Components/DwgHeader.razor.rz.scp.css */
.dwg-header[b-2kuemump2r] {
    /* CSS-only: header is a fixed mm band relative to sheet height. */
    height: calc(100% * var(--dwg-header-h-mm, 6) / var(--dwg-page-h-mm, 215.9));
    flex: 0 0 auto;
    padding: 0;
    background: white;
    border-bottom: 1px solid #000;
    position: relative;
    overflow: hidden;
    user-select: none;
    -webkit-user-select: none;
    /* Enable container query units (cqh/cqw) for scaling content. */
    container-type: size;
}

.dwg-header-inner[b-2kuemump2r] {
    position: absolute;
    inset: 0;
    padding: 0 4cqw;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2cqw;
    min-width: 0;
}

.dwg-header-title[b-2kuemump2r] {
    font-weight: 600;
    font-size: 34cqh;
    line-height: 1.05;
    color: rgba(0, 0, 0, 0.84);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    flex: 1 1 auto;
}

.dwg-header-versions[b-2kuemump2r] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.35em;
    font-size: 28cqh;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    color: rgba(0, 0, 0, 0.84);
    white-space: nowrap;
}

.dwg-header-version-sep[b-2kuemump2r] {
    user-select: none;
}

/* _content/Lib360.Shared/Components/Views/DWG/Components/DwgImage.razor.rz.scp.css */
.dwg-sheet-placement[b-xemoswesft] {
    position: absolute;
    box-sizing: border-box;
    pointer-events: auto;
    overflow: hidden;
    background: transparent;
    border: none;
    user-select: none;
    -webkit-user-select: none;
}

.dwg-sheet-placement[b-xemoswesft]::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 6;
    border-radius: 0;

    /* Default (not selected): light grey dashed outline */
    background:
        /* top */
        repeating-linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.22) 0 6px,
            transparent 6px 14px
        ) top left / 100% 1px no-repeat,
        /* bottom */
        repeating-linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.22) 0 6px,
            transparent 6px 14px
        ) bottom left / 100% 1px  no-repeat,
        /* left */
        repeating-linear-gradient(
            0deg,
            rgba(0, 0, 0, 0.22) 0 6px,
            transparent 6px 14px
        ) top left / 1px 100% no-repeat,
        /* right */
        repeating-linear-gradient(
            0deg,
            rgba(0, 0, 0, 0.22) 0 6px,
            transparent 6px 14px
        ) top right / 1px 100% no-repeat;
}

/* Hover: same dashed outline as selected (grey default → red) */
.dwg-sheet-placement:hover:not(.is-selected)[b-xemoswesft]::before {
    background:
        repeating-linear-gradient(
            90deg,
            rgba(255, 0, 0, 0.50) 0 6px,
            transparent 6px 14px
        ) top left / 100% 1px no-repeat,
        repeating-linear-gradient(
            90deg,
            rgba(255, 0, 0, 0.50) 0 6px,
            transparent 6px 14px
        ) bottom left / 100% 1px  no-repeat,
        repeating-linear-gradient(
            0deg,
            rgba(255, 0, 0, 0.50) 0 6px,
            transparent 6px 14px
        ) top left / 1px 100% no-repeat,
        repeating-linear-gradient(
            0deg,
            rgba(255, 0, 0, 0.50) 0 6px,
            transparent 6px 14px
        ) top right / 1px 100% no-repeat;
}

.dwg-sheet-placement.is-selected[b-xemoswesft] {
    /* Selected container is drawn via ::before for consistent dash spacing */
    border: none;
    outline: none;
    overflow: visible !important; /* allow the extruded dashed outline + handles to render */
    --dwg-selection-inset: 0px;
}

.dwg-sheet-placement.is-selected[b-xemoswesft]::before {
    inset: calc(-1 * var(--dwg-selection-inset)); /* slight offset outside container */
    /* Selected: red dashed outline (same pattern as default) */
    background:
        /* top */
        repeating-linear-gradient(
            90deg,
            rgba(255, 0, 0, 0.50) 0 6px,
            transparent 6px 14px
        ) top left / 100% 1px no-repeat,
        /* bottom */
        repeating-linear-gradient(
            90deg,
            rgba(255, 0, 0, 0.50) 0 6px,
            transparent 6px 14px
        ) bottom left / 100% 1px  no-repeat,
        /* left */
        repeating-linear-gradient(
            0deg,
            rgba(255, 0, 0, 0.50) 0 6px,
            transparent 6px 14px
        ) top left / 1px 100% no-repeat,
        /* right */
        repeating-linear-gradient(
            0deg,
            rgba(255, 0, 0, 0.50) 0 6px,
            transparent 6px 14px
        ) top right / 1px 100% no-repeat;
}

.dwg-image-container[b-xemoswesft] {
    position: absolute;
    inset: 0;
    pointer-events: none;
    isolation: isolate;
}

.dwg-image-boundary-box[b-xemoswesft] {
    position: absolute;
    box-sizing: border-box;
    z-index: 4;
    pointer-events: none;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    /* Enables 100cqw / 100cqh on .dwg-image-boundary-content for quarter-turn W/H swap + translate. */
    container-type: size;
}

.dwg-image-boundary-box.is-boundary-hidden[b-xemoswesft] {
    /* Do NOT hide: this element contains the image markup. */
    display: block;
}

.dwg-image-boundary-box.is-boundary-visible[b-xemoswesft] {
    display: block;
    /* Inner “meet” / fit rect (style sets width/height % on this node). */
    --dwg-boundary-color: rgba(0, 160, 60, 0.95);
    --dwg-boundary-dash: 6px;
    --dwg-boundary-gap: 4px;
    --dwg-boundary-stroke: 2px;
}

.dwg-image-boundary-box.is-boundary-visible[b-xemoswesft]::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 6;

    /* dashed outline on all 4 edges, consistent dash/gap */
    background:
        repeating-linear-gradient(
            90deg,
            var(--dwg-boundary-color) 0 var(--dwg-boundary-dash),
            transparent var(--dwg-boundary-dash) calc(var(--dwg-boundary-dash) + var(--dwg-boundary-gap))
        ) top left / 100% var(--dwg-boundary-stroke) no-repeat,
        repeating-linear-gradient(
            90deg,
            var(--dwg-boundary-color) 0 var(--dwg-boundary-dash),
            transparent var(--dwg-boundary-dash) calc(var(--dwg-boundary-dash) + var(--dwg-boundary-gap))
        ) bottom left / 100% var(--dwg-boundary-stroke)  no-repeat,
        repeating-linear-gradient(
            0deg,
            var(--dwg-boundary-color) 0 var(--dwg-boundary-dash),
            transparent var(--dwg-boundary-dash) calc(var(--dwg-boundary-dash) + var(--dwg-boundary-gap))
        ) top left / var(--dwg-boundary-stroke) 100% no-repeat,
        repeating-linear-gradient(
            0deg,
            var(--dwg-boundary-color) 0 var(--dwg-boundary-dash),
            transparent var(--dwg-boundary-dash) calc(var(--dwg-boundary-dash) + var(--dwg-boundary-gap))
        ) top right / var(--dwg-boundary-stroke) 100% no-repeat;
}

/* 3D loading veil layout + fade: see DwgBody.razor.css ([data-dwg-sheet-grid] … :has()) — avoids Blazor scoped sibling bugs. */
.dwg-sheet-3d-shell .dwg-image-boundary-content[b-xemoswesft] {
    background: transparent;
}

.dwg-image-boundary-content[b-xemoswesft] {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

/*
 * Quarter turns: axis-aligned bounding box of rotated content matches the green meet box (top-left anchored).
 * 90/270: inner layer is placement-height × placement-width (cqh × cqw), then translate + rotate.
 * 180: same inset box, rotate in place around center.
 * CSS rotate(θ) uses x' = cos(θ)x − sin(θ)y, y' = sin(θ)x + cos(θ)y (y-down). For 90° the AABB needs
 * translate(100cqw, 0); for 270° it needs translate(0, 100cqh) — do not swap these.
 * For "translate(...) rotate(...)", transforms apply right-to-left: rotate first, then translate.
 */
.dwg-sheet-placement[data-dwg-rotation="90"] .dwg-image-boundary-content[b-xemoswesft] {
    inset: unset;
    top: 0;
    left: 0;
    width: 100cqh;
    height: 100cqw;
    transform: translate(100cqw, 0) rotate(90deg);
    transform-origin: 0 0;
}

.dwg-sheet-placement[data-dwg-rotation="270"] .dwg-image-boundary-content[b-xemoswesft] {
    inset: unset;
    top: 0;
    left: 0;
    width: 100cqh;
    height: 100cqw;
    transform: translate(0, 100cqh) rotate(270deg);
    transform-origin: 0 0;
}

.dwg-sheet-placement[data-dwg-rotation="180"] .dwg-image-boundary-content[b-xemoswesft] {
    /* Half-turn in place: AABB stays the meet box; no translate or W/H swap. */
    transform: rotate(180deg);
    transform-origin: 50% 50%;
}

/* Stretch bitmap to the pre-rotate meet rect so the rotated pixels fill the dashed box (matches reference at 0° footprint). */
.dwg-sheet-placement[data-dwg-rotation="90"] .dwg-sheet-placed-img[b-xemoswesft],
.dwg-sheet-placement[data-dwg-rotation="180"] .dwg-sheet-placed-img[b-xemoswesft],
.dwg-sheet-placement[data-dwg-rotation="270"] .dwg-sheet-placed-img[b-xemoswesft] {
    object-fit: fill;
}

.dwg-placement-handles[b-xemoswesft] {
    position: absolute;
    /* Match the selected outline box so handles sit on the dashed line */
    inset: calc(-1 * var(--dwg-selection-inset, 0px));
    pointer-events: auto;
    z-index: 12;
}

.dwg-handle[b-xemoswesft] {
    position: absolute;
    width: 14px;
    height: 14px;
    background: transparent;
    border: 2px solid rgba(115, 115, 122, 0.92);
    border-radius: 999px;
    box-sizing: border-box;
    cursor: default;
    transform: translate(-50%, -50%);
}

/* Center handles on container corners/edges */
/* Handles are centered on the selection outline box (see .dwg-placement-handles inset). */
.dwg-handle.is-nw[b-xemoswesft] { left: 0; top: 0; }
.dwg-handle.is-n[b-xemoswesft]  { left: 50%; top: 0; }
.dwg-handle.is-ne[b-xemoswesft] { left: 100%; top: 0; }
.dwg-handle.is-e[b-xemoswesft]  { left: 100%; top: 50%; }
.dwg-handle.is-se[b-xemoswesft] { left: 100%; top: 100%; }
.dwg-handle.is-s[b-xemoswesft]  { left: 50%; top: 100%; }
.dwg-handle.is-sw[b-xemoswesft] { left: 0; top: 100%; }
.dwg-handle.is-w[b-xemoswesft]  { left: 0; top: 50%; }

/* All handles are circles (no rectangles) */

/* Larger grippers when selected */
.dwg-sheet-placement.is-selected .dwg-handle[b-xemoswesft] {
    width: 16px;
    height: 16px;
    border-width: 2px;
    border-radius: 999px;
}

.dwg-sheet-placement.is-selected .dwg-handle.is-nw[b-xemoswesft] { left: 0; top: 0; }
.dwg-sheet-placement.is-selected .dwg-handle.is-n[b-xemoswesft]  { left: 50%; top: 0; }
.dwg-sheet-placement.is-selected .dwg-handle.is-ne[b-xemoswesft] { left: 100%; top: 0; }
.dwg-sheet-placement.is-selected .dwg-handle.is-e[b-xemoswesft]  { left: 100%; top: 50%; }
.dwg-sheet-placement.is-selected .dwg-handle.is-se[b-xemoswesft] { left: 100%; top: 100%; }
.dwg-sheet-placement.is-selected .dwg-handle.is-s[b-xemoswesft]  { left: 50%; top: 100%; }
.dwg-sheet-placement.is-selected .dwg-handle.is-sw[b-xemoswesft] { left: 0; top: 100%; }
.dwg-sheet-placement.is-selected .dwg-handle.is-w[b-xemoswesft]  { left: 0; top: 50%; }

.dwg-handle.is-n[b-xemoswesft],
.dwg-handle.is-s[b-xemoswesft] {
    cursor: ns-resize;
}
.dwg-handle.is-e[b-xemoswesft],
.dwg-handle.is-w[b-xemoswesft] {
    cursor: ew-resize;
}
.dwg-handle.is-nw[b-xemoswesft],
.dwg-handle.is-se[b-xemoswesft] {
    cursor: nwse-resize;
}
.dwg-handle.is-ne[b-xemoswesft],
.dwg-handle.is-sw[b-xemoswesft] {
    cursor: nesw-resize;
}

.dwg-sheet-placement-inner[b-xemoswesft] {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 32px;
}

.dwg-sheet-3d-shell[b-xemoswesft] {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 32px;
    overflow: hidden;
    background: #fff;
}

.dwg-sheet-3d-shell .dwg-sheet-placed-3d[b-xemoswesft] {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.dwg-sheet-3d-shell .dwg-sheet-3d-missing-placeholder[b-xemoswesft] {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    box-sizing: border-box;
    background: rgba(245, 245, 245, 0.97);
    text-align: center;
}

/* Fills the meet box (in-flow height would collapse when the SVG is position:absolute). */
.dwg-sheet-svg-shell[b-xemoswesft] {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: #fff;
}

.dwg-sheet-svg-shell > .dwg-sheet-svg-asset-loading[b-xemoswesft] {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
}

.dwg-sheet-3d-missing-text[b-xemoswesft] {
    color: var(--mud-palette-text-secondary, #616161);
    line-height: 1.25;
    max-width: 100%;
}

/* Match DwgImagePickerDialog .dwg-image-picker .dwg-sheet-3d-skeleton (dialog <style> + customStyles dwg-shimmer). */
.dwg-sheet-3d-skeleton[b-xemoswesft] {
    position: absolute;
    inset: 0;
    box-sizing: border-box;
    overflow: hidden;
    background-color: #d7d7db;
    opacity: 0;
    animation: dwg-skeleton-shimmer-fade-in 750ms ease-out forwards;
}

.dwg-sheet-3d-skeleton[b-xemoswesft]::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    opacity: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.55), transparent);
    animation:
        dwg-skeleton-shimmer-fade-in 680ms ease-out forwards,
        dwg-shimmer 1.25s ease-in-out infinite 500ms;
}

@media (prefers-reduced-motion: reduce) {
    .dwg-sheet-3d-skeleton[b-xemoswesft] {
        animation: none;
        opacity: 1;
    }

    .dwg-sheet-3d-skeleton[b-xemoswesft]::after {
        animation: none;
        transform: none;
        opacity: 0;
    }

    .dwg-sheet-placement[b-xemoswesft]  .dwg-sheet-placement-skeleton {
        animation: none;
        opacity: 1;
    }

    .dwg-sheet-placement[b-xemoswesft]  .dwg-sheet-placement-skeleton::after {
        animation: none;
        transform: none;
        opacity: 0;
    }

    [data-dwg-sheet-grid] .dwg-sheet-placed-svg[b-xemoswesft] {
        animation: none;
        opacity: 1;
    }
}

.dwg-sheet-placement[b-xemoswesft]  .dwg-sheet-placement-skeleton {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    border-radius: 4px;
    overflow: hidden;
    box-sizing: border-box;
    background-color: #b8b8bc;
    opacity: 0;
    animation: dwg-skeleton-shimmer-fade-in 750ms ease-out forwards;
}

.dwg-sheet-placement[b-xemoswesft]  .dwg-sheet-placement-skeleton::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    opacity: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.55), transparent);
    animation:
        dwg-skeleton-shimmer-fade-in 680ms ease-out forwards,
        dwg-shimmer 1.25s ease-in-out infinite 500ms;
}

.dwg-sheet-placed-img[b-xemoswesft] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left top;
    background: #fff;
    user-select: none;
    -webkit-user-select: none;

    /* Prevent "flash" when JS assigns src; JS adds .is-loaded on load. */
    opacity: 0;
    transition: opacity 180ms ease;
    will-change: opacity;
}

.dwg-sheet-placed-img.is-loaded[b-xemoswesft] {
    opacity: 1;
}

/* 2D: quick fade when markup is present — independent of 3D load (no data-dwg-3d-ready gating). */
[data-dwg-sheet-grid] .dwg-sheet-placed-svg[b-xemoswesft] {
    animation: dwg-asset-fade-in-b-xemoswesft 240ms ease-out forwards;
}

.dwg-sheet-placed-svg[b-xemoswesft] {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: block;
    overflow: hidden;
    background: #fff;
    line-height: 0;
}

/* While the SVG is fading in, show a temporary dashed boundary box. */
.dwg-sheet-placed-svg[b-xemoswesft]::before {
    content: none;
}

.dwg-sheet-placed-svg[b-xemoswesft]  svg {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
}

@keyframes dwg-asset-fade-in-b-xemoswesft {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes dwg-asset-boundary-fade-out-b-xemoswesft {
    from { opacity: 1; }
    to { opacity: 0; }
}

.dwg-sheet-placed-text[b-xemoswesft] {
    position: absolute;
    inset: 0;
    box-sizing: border-box;
    /* Keep padding proportional to paper mm so wrapping stays stable as sheet scales. */
    padding: calc(var(--dwg-text-note-pad-mm, 1.5) * var(--dwg-mm-to-px-y, 1px));
    margin: 0;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    /* Font size is defined in paper millimeters (A4/Letter aware), scaled to px by JS via --dwg-mm-to-px-y. */
    font-size: calc(var(--dwg-text-note-font-mm, 5.0) * var(--dwg-mm-to-px-y, 1px));
    line-height: 1.25;
    color: rgba(20, 20, 20, 0.95);
    background: transparent;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 2px;
}

/* Pending placement: invisible until JS reveals it on first click */
.dwg-placement--pending[b-xemoswesft] {
    visibility: hidden;
    pointer-events: none;
    z-index: 2;
}

/* Explicit replace-target highlight while "Change image" picker is open. */
.dwg-sheet-placement.dwg-placement--replace-target[b-xemoswesft]::before {
    opacity: 1;
    border-color: #e53935;
    box-shadow:
        0 0 0 1px rgba(229, 57, 53, 0.5),
        0 0 0 3px rgba(229, 57, 53, 0.2);
}

/* _content/Lib360.Shared/Components/Views/DWG/Pages/ViewDWG2.razor.rz.scp.css */
.dwg-root[b-ym38v6q3gl] {
    width: 100%;
    position: relative;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -webkit-touch-callout: none;
}

/* Shell: drawer + body live in MudDrawerContainer; loading overlay is a later sibling so it stacks over the mini drawer too. */
.dwg-dwg2-view-root[b-ym38v6q3gl] {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.dwg-dwg2-view-root > .dwg-dwg2-drawer-container[b-ym38v6q3gl] {
    flex: 1;
    min-height: 0;
    width: 100%;
}

.dwg-loading-overlay[b-ym38v6q3gl] {
    /* ZIndex also set on MudOverlay; keep CSS aligned for any inner scrim. */
    z-index: 14000;
}

.dwg-loading-card[b-ym38v6q3gl] {
    border-radius: 10px;
    min-width: 220px;
}

/* _content/Lib360.Shared/Components/Views/Elevation/Elevation.razor.rz.scp.css */
*[b-k0wzn63m52] {
    pointer-events: none;
}

.mouse-selection[b-k0wzn63m52] {
    pointer-events: auto;
}

svg text[b-k0wzn63m52] {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.no-scale rect[b-k0wzn63m52],
.no-scale circle[b-k0wzn63m52],
.no-scale path[b-k0wzn63m52],
.no-scale polygon[b-k0wzn63m52],
.no-scale line[b-k0wzn63m52] {
    shape-rendering: auto !important;
}
/* _content/Lib360.Shared/Components/Views/Elevation/Toolbars/ElevationToolbar.razor.rz.scp.css */
.elevation-toolbar-wrapper[b-xkd1g6jut9] {
    position: absolute;
    left: 1rem;
    top: 1rem;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    pointer-events: none;
    width: fit-content;
    /* Repeated clicks on a button otherwise drag-select the surrounding text. */
    user-select: none;
}

/* System type button and the horizontal comp toolbar share the first row. */
.elevation-toolbar-top-row[b-xkd1g6jut9] {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 1rem;
}

/* Toolbar's panel slot is never used here, and its stack gap would widen the row gap. */
.elevation-toolbar-top-row[b-xkd1g6jut9]  .tool-bar > .d-flex {
    gap: 0;
}

/* Dimmed while the system type row expands over it. The animation covers the other case - swapping
   system type replaces this element outright, so there's no opacity to transition from. */
.top-row-toolbar[b-xkd1g6jut9] {
    transition: opacity .2s ease-out;
    animation: preset-fade-in-b-xkd1g6jut9 .25s ease-out;
}

@keyframes preset-fade-in-b-xkd1g6jut9 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.top-row-toolbar.dimmed[b-xkd1g6jut9] {
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease-in;
}

.elevation-toolbar-wrapper[b-xkd1g6jut9]  .system-type-menu,
.elevation-toolbar-wrapper[b-xkd1g6jut9]  .tool-bar {
    pointer-events: none;
    width: fit-content;
}

.elevation-toolbar-wrapper[b-xkd1g6jut9]  .mud-card,
.elevation-toolbar-wrapper[b-xkd1g6jut9]  .panel-animate,
.elevation-toolbar-wrapper[b-xkd1g6jut9]  .split-button-card {
    pointer-events: auto;
}

.elevation-toolbar-wrapper[b-xkd1g6jut9]  .tool-bar .mud-card {
    height: auto;
    width: fit-content;
}

.elevation-toolbar-wrapper[b-xkd1g6jut9]  .tool-bar {
    position: relative;
    left: auto;
    top: auto;
}

/* Icon strokes are authored as "1" meaning one screen pixel, but the viewBoxes disagree (123x104
   for the elevation part icons, 24x24 for the newer ones), so without this the 123-wide ones scale
   down ~5x and render sub-pixel grey. Covers the whole wrapper, not just .tool-bar, so the system
   type menu gets it too. Same rule lives in Toolbar.razor.css for the Plan/DWG toolbars. */
.elevation-toolbar-wrapper[b-xkd1g6jut9]  svg :is(path, line, circle, ellipse, rect, polygon, polyline) {
    vector-effect: non-scaling-stroke;
}
/* _content/Lib360.Shared/Components/Views/Elevation/Toolbars/SystemTypeTopRightMenu.razor.rz.scp.css */
.system-type-menu[b-m5g00msnym] {
    flex-shrink: 0;
    /* Anchor point for the expanded icon row. */
    position: relative;
    /* Above the preset toolbar sharing this row, which the expanded row overlaps. */
    z-index: 3;
}

/* Full-screen click-away, painted under the expanded row. pointer-events is re-enabled because the
   toolbar wrapper turns it off for everything but the cards. */
.system-type-clickaway[b-m5g00msnym] {
    position: fixed;
    inset: 0;
    z-index: 1;
    pointer-events: auto;
}

/* The card widens in place, so its rounded right edge travels rightward with the content. Sits above
   the preset toolbar it grows over. */
.system-type-card[b-m5g00msnym] {
    flex-wrap: nowrap;
}

/* Definite, generous width so the card's shrink-to-fit isn't capped by the collapsed footprint, and
   so the reveal's 0fr track still resolves against a definite size. */
.system-type-layer[b-m5g00msnym] {
    position: absolute;
    left: 0;
    top: 0;
    width: 100vw;
    z-index: 2;
    pointer-events: none;
}

/* Reserves the collapsed size only; never seen, never focusable. */
.system-type-spacer[b-m5g00msnym] {
    visibility: hidden;
    pointer-events: none;
}

/* Anchor for the overlaid chevron. */
.system-type-trigger[b-m5g00msnym] {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

/* An animatable 0fr -> 1fr grid track: the card's width follows the revealed content without the
   content width having to be known in CSS. */
.system-type-reveal[b-m5g00msnym] {
    display: grid;
    grid-template-columns: 0fr;
    transition: grid-template-columns .2s ease-in;
}

.system-type-card.open .system-type-reveal[b-m5g00msnym] {
    grid-template-columns: 1fr;
    transition: grid-template-columns .25s cubic-bezier(0.1, 0.8, 0.2, 1);
}

.system-type-reveal-inner[b-m5g00msnym] {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    min-width: 0;
    overflow: hidden;
    /* Trails the width slightly so buttons don't smear out of the clipped edge. */
    opacity: 0;
    transition: opacity .12s ease-in;
}

.system-type-card.open .system-type-reveal-inner[b-m5g00msnym] {
    opacity: 1;
    transition: opacity .2s ease-out .05s;
}

/* Nothing to click while collapsed - the track is 0-wide but the buttons still overflow it. */
.system-type-card:not(.open) .system-type-reveal[b-m5g00msnym] {
    pointer-events: none;
}

/* Sits over the trigger button's right edge rather than widening the card. */
.system-type-menu[b-m5g00msnym]  .system-type-chevron {
    position: absolute;
    right: -3px;
    top: 50%;
    width: .875rem;
    height: .875rem;
    margin-top: -.4375rem;
    /* Clicks and hovers belong to the button underneath. */
    pointer-events: none;
    opacity: .6;
    transition: transform .2s ease, opacity .2s ease;
}

.system-type-trigger:hover[b-m5g00msnym]  .system-type-chevron {
    opacity: 1;
}

.system-type-menu[b-m5g00msnym]  .system-type-chevron.open {
    transform: rotate(180deg);
}

/* Separates the trigger from the expanded list. */
.system-type-divider[b-m5g00msnym] {
    align-self: stretch;
    width: 1px;
    margin: 4px 2px 4px 0;
    background: #A9A9A9;
    flex-shrink: 0;
}

/* Selected treatment: see .system-type-selected in customStyles.css. */

/* Grouped buttons: square throughout, so only the card's own right edge is rounded. */
.system-type-reveal-inner[b-m5g00msnym]  .toolbar-button-group .mud-icon-button {
    border-radius: 0;
}

.system-type-reveal-inner[b-m5g00msnym]  .toolbar-button-group .mud-icon-button.system-type-last {
    border-radius: 0 6px 6px 0;
}

/* Match the footprint these buttons had inside the old text MudButtonGroup, which overrode
   MudBlazor's standalone icon-button padding and glyph size. */
.system-type-menu[b-m5g00msnym]  .mud-icon-button {
    border: none !important;
    padding: 6px 8px;
    /* MudIconButton is a circle by default; square it off so hover/ripple fills the button. */
    border-radius: 6px;
}

.system-type-menu[b-m5g00msnym]  .mud-icon-button .mud-icon-root {
    font-size: 1.516rem;
}

/* Ripple spans the whole button rather than the small centred circle. */
.system-type-menu[b-m5g00msnym]  .mud-icon-button.mud-ripple-icon:after {
    transform: scale(10, 10);
}

.system-type-menu[b-m5g00msnym]  .mud-icon-button.mud-ripple-icon:active:after {
    transform: scale(0, 0);
    opacity: .1;
    transition: 0s;
}
/* _content/Lib360.Shared/Components/Views/Plan/Plan.razor.rz.scp.css */
*[b-4jndv7yn85] {
    pointer-events: none;
}

.mouse-selection[b-4jndv7yn85] {
    pointer-events: auto;
}

svg text[b-4jndv7yn85] {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.no-scale rect[b-4jndv7yn85],
.no-scale circle[b-4jndv7yn85],
.no-scale path[b-4jndv7yn85],
.no-scale polygon[b-4jndv7yn85],
.no-scale line[b-4jndv7yn85] {
    shape-rendering: auto !important;
}
/* _content/Lib360.Shared/Components/Views/Plan/Toolbars/BottomLeftMenu.razor.rz.scp.css */
/* _content/Lib360.Shared/Components/Views/Plan/Toolbars/PlanToolbar.razor.rz.scp.css */

/* _content/Lib360.Shared/Components/Views/Shared/PdfPreviewOverlay.razor.rz.scp.css */
/* MudPaper is a child component so isolated CSS cannot reach it; its sizing stays inline in the .razor. */
.pdf-preview-body[b-1cuzuor0uj] {
    min-height: 0;
    flex: 1 1 auto;
    position: relative;
}

.pdf-preview-viewer[b-1cuzuor0uj] {
    width: 100%;
    height: 100%;
    min-height: 560px;
}
/* _content/Lib360.Shared/Components/Views/Shared/PropertiesWindows/SliderNumericField.razor.rz.scp.css */
/* Deliberately global, not scoped to .slider-numeric-field: MudPopover's content is rendered by a
   central MudPopoverProvider elsewhere in the DOM, not as a physical descendant of this component's
   own markup, so an ancestor-scoped "X ::deep Y" selector never matches it. This affects every
   MudSlider in the app, not just this one - an acceptable trade since there's no other slider that
   wants the default oversized thumb. */

/* MudBlazor sizes the thumb per Size via ".mud-slider.mud-slider-{size} .mud-slider-input::-webkit-
   slider-thumb" (e.g. medium: height/width 4px, transform: scale(5, 5) -> a rendered 20px circle) -
   three classes deep, so it outranks a plain ".mud-slider-input::-webkit-slider-thumb" override by CSS
   specificity alone, regardless of load order. !important is the only way to actually win here; a click
   or hover anywhere in that rendered box hits it too, so shrinking it shrinks the hit area along with it -
   there's no separate "hit area" control for a native range input's thumb. */
[b-95h70ri3k5] .mud-slider-input::-webkit-slider-thumb {
	height: 8px !important;
	width: 8px !important;
	transform: none !important;
	/* WebKit centers the thumb on the track using this element's own margin-top, tuned by MudBlazor
	   for its native 14px thumb (margin-top: -6px) - shrinking the thumb without retuning this leaves
	   it sitting above the track instead of centered on it. */
	margin-top: -3px !important;
}

[b-95h70ri3k5] .mud-slider-input::-moz-range-thumb {
	height: 8px !important;
	width: 8px !important;
	transform: none !important;
}

/* MudBlazor adds a colored halo (box-shadow) around the thumb on hover/focus/active - on top of the
   shrunk size above, that ring is what makes the thumb read as oversized while hovering or dragging.
   The :active rule sets it with !important, so overriding it needs !important too. */
[b-95h70ri3k5] .mud-slider-input:hover::-webkit-slider-thumb,
[b-95h70ri3k5] .mud-slider-input:focus-visible::-webkit-slider-thumb,
[b-95h70ri3k5] .mud-slider-input:active::-webkit-slider-thumb {
	box-shadow: none !important;
}

[b-95h70ri3k5] .mud-slider-input:hover::-moz-range-thumb,
[b-95h70ri3k5] .mud-slider-input:focus-visible::-moz-range-thumb,
[b-95h70ri3k5] .mud-slider-input:active::-moz-range-thumb {
	box-shadow: none !important;
}
/* _content/Lib360.Shared/Components/Views/Shared/Toolbars/Toolbar.razor.rz.scp.css */
.panel-animate[b-pr6jjj2fr5] {
    transition: all 0.3s ease;
    animation: fadeSlideInLeft-b-pr6jjj2fr5 0.3s ease forwards;
}

@keyframes fadeSlideInLeft-b-pr6jjj2fr5 {
    0% {
        opacity: 0;
        transform: translateX(-20px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.tool-bar[b-pr6jjj2fr5] {
    position: absolute;
    left: 1rem;
    top: 1rem;
    z-index: 2;
}

.tool-bar[b-pr6jjj2fr5]  .mud-card {
    border: 1px solid #A9A9A9;
    border-radius: 6px;
}

.toolbar-icon-btn-wrap[b-pr6jjj2fr5] {
    position: relative;
    display: inline-flex;
}

/* Icon strokes are authored as "1" meaning one screen pixel, but the viewBoxes disagree: the
   elevation part icons are 123x104 while the newer ones are 24x24, so the former scale down ~5x
   and their strokes would render sub-pixel grey. non-scaling-stroke makes stroke-width mean
   screen px for both, so an icon can keep stroke-width:1 whatever its viewBox. */
.tool-bar[b-pr6jjj2fr5]  svg :is(path, line, circle, ellipse, rect, polygon, polyline) {
    vector-effect: non-scaling-stroke;
}

/* No dividers between grouped buttons - the card border alone frames the group.
   ::deep must sit right after .tool-bar (the last selector segment actually scoped to this
   component) - "toolbar-button-group" is only a Class passed into the child MudButtonGroup, so it
   never carries this component's scope attribute and can't anchor a scope match itself. */
.tool-bar[b-pr6jjj2fr5]  .toolbar-button-group .mud-icon-button {
    border: none !important;
}

/* Selected tool: see .toolbar-btn-selected in customStyles.css. */
/* _content/Lib360.Shared/Components/Views/Shared/Toolbars/ViewControl.razor.rz.scp.css */
.view-control[b-0lco4snnt6] {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    z-index: 2;
}
