/* /Components/FilterOptionSelector.razor.rz.scp.css */
.filter-option-selector-wrapper[b-67cniitatt] {
    position: relative;
}

.filter-option-selector[b-67cniitatt] {
    min-width: 180px;
}

.filter-selector-field[b-67cniitatt]  .mud-input-root {
    cursor: pointer;
}

.filter-selector-field[b-67cniitatt]  input {
    cursor: pointer;
}

.filter-popover[b-67cniitatt] {
    z-index: 1300;
}
/* /Components/ProductFilterPanel.razor.rz.scp.css */
.reset-filters-button[b-e8jofxu043] {
    min-width: 180px;
    height: 40px;
}
/* /Layout/MainLayout.razor.rz.scp.css */
/*.page {
    position: relative;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
}

.sidebar {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row ::deep a, .top-row ::deep .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row ::deep a:hover, .top-row ::deep .btn-link:hover {
        text-decoration: underline;
    }

    .top-row ::deep a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row {
        justify-content: space-between;
    }

    .top-row ::deep a, .top-row ::deep .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page {
        flex-direction: row;
    }

    .sidebar {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth ::deep a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row, article {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}
*/
/* /Pages/Brands/AddOrEditBrandComponent.razor.rz.scp.css */
.actions-div[b-cwxdy9n3yn] {
    display: flex;
    flex-direction: row-reverse;
    gap: 8px;
    padding-bottom: 16px;
    padding-top: 16px;
    border-top: 1px solid rgb(229, 229, 229);
}
/* /Pages/Categories/AddOrEditCategoryComponent.razor.rz.scp.css */
.actions-div[b-eal8vrr79s] {
    display: flex;
    flex-direction: row-reverse;
    gap: 8px;
    padding-bottom: 16px;
    padding-top: 16px;
    border-top: 1px solid rgb(229, 229, 229);
}
/* /Pages/CostTypes/AddOrEditCostTypeComponent.razor.rz.scp.css */
.cost-type-form[b-aoc5hfv6zv] {
    display: flex;
    flex-direction: column;
    /* Bounded so the dialog never grows past the viewport; the body scrolls instead. */
    max-height: 70vh;
}

/* Scrolling pane. min-height:0 is required for a flex child to be allowed to shrink and scroll. */
.form-body[b-aoc5hfv6zv] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding-top: 8px;
    /* Room so the last field isn't flush against the pinned footer. */
    padding-bottom: 8px;
    padding-right: 4px;
}

.section-header[b-aoc5hfv6zv] {
    color: var(--mud-palette-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 12px;
}

.section-divider[b-aoc5hfv6zv] {
    margin-top: 8px;
    margin-bottom: 16px;
}

/* Short related fields sit side by side on wide dialogs, stack on narrow ones. */
.field-row[b-aoc5hfv6zv] {
    display: flex;
    flex-direction: row;
    gap: 12px;
}

.field-row > *[b-aoc5hfv6zv] {
    flex: 1 1 0;
    min-width: 0;
}

@media (max-width: 700px) {
    .field-row[b-aoc5hfv6zv] {
        flex-direction: column;
        gap: 0;
    }
}

.field-hint[b-aoc5hfv6zv] {
    display: block;
    margin-top: -4px;
    margin-bottom: 16px;
    color: var(--mud-palette-text-secondary);
}

/* Pinned footer: stays put while the body scrolls. */
.actions-div[b-aoc5hfv6zv] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: row-reverse;
    gap: 8px;
    padding-top: 16px;
    padding-bottom: 8px;
    border-top: 1px solid var(--mud-palette-divider);
    background-color: var(--mud-palette-surface);
}
/* /Pages/FreightFactor/AddBomProductForm.razor.rz.scp.css */
[b-s4hyfuuz92] .mud-stepper-content {
    padding: 0;
}

[b-s4hyfuuz92] .cancel-wrapper {
    display: flex;
    flex-grow: 1;
}

[b-s4hyfuuz92] .next-wrapper {
    display: flex;
    flex-grow: 1;
    flex-direction: row-reverse;
}

[b-s4hyfuuz92] .mud-stepper-actions {
    display: none;
}

/* Neutralize the global `.mud-table` / `.mud-table-container` min-height from
   wwwroot/css/gridstyles.css (tuned for full-page grids). Without this, the
   step-2 children table forces the dialog to ~100vh tall. */
[b-s4hyfuuz92] .mud-table {
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: visible !important;
}

[b-s4hyfuuz92] .mud-table-container {
    min-height: 0 !important;
    /* The height bound now lives on the container, so it must be cleared here too. */
    max-height: none !important;
    overflow-y: visible !important;
}
/* /Pages/FreightFactor/AddProductForm.razor.rz.scp.css */
[b-9msmgjfbby] .mud-stepper-content {
    padding: 0;
}


[b-9msmgjfbby] .cancel-wrapper {
    display: flex;
    flex-grow: 1;
}

[b-9msmgjfbby] .next-wrapper {
    display: flex;
    flex-grow: 1;
    flex-direction: row-reverse;
}


[b-9msmgjfbby] .mud-stepper-actions {
    display: none;
}
/* /Pages/FreightFactor/BomHistoryDialog.razor.rz.scp.css */
/* Neutralize the global `.mud-table` / `.mud-table-container` min-height from
   wwwroot/css/gridstyles.css (tuned for full-page grids, not dialogs). */
[b-mbjas5x941] .mud-table {
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: visible !important;
}

[b-mbjas5x941] .mud-table-container {
    min-height: 0 !important;
    /* The height bound now lives on the container, so it must be cleared here too. */
    max-height: none !important;
    overflow-y: visible !important;
}
/* /Pages/FreightFactor/EditBomChildrenDialog.razor.rz.scp.css */
/* Neutralize the global `.mud-table` / `.mud-table-container` min-height from
   wwwroot/css/gridstyles.css (which is tuned for full-page product grids, not
   dialogs). Without this override the child-list table inside this dialog is
   forced to ~100vh tall, which blows out the whole MudDialog. */
[b-zb87jvqrv2] .mud-table {
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: visible !important;
}

[b-zb87jvqrv2] .mud-table-container {
    min-height: 0 !important;
    /* The height bound now lives on the container, so it must be cleared here too. */
    max-height: none !important;
    overflow-y: visible !important;
}
/* /Pages/FreightFactor/EditFormulaPopup.razor.rz.scp.css */
.formula-title[b-3l8gbqzmva] {
    color: rgb(10, 10, 10);
    font-weight: 600;
    font-size: 16px;
    line-height: 24px;
}

[b-3l8gbqzmva] .formula-header {
    color: rgb(10, 10, 10);
    font-weight: 500;
    font-size: 14px;
    line-height: 14px;
}

[b-3l8gbqzmva] .formula-info {
    color: rgb(107, 114, 128);
    font-weight: 500;
    font-size: 12px;
    line-height: 16px;
}

[b-3l8gbqzmva] .math-buttons-wrapper{
    padding-top: 8px;
    display: flex;
    flex-direction: row;
    gap: 4px;
}

[b-3l8gbqzmva] .math-button {
    height: 22px;
    width: 22px;
    min-width: unset;
    padding: 0px;
    border-color: rgb(229, 229, 229);
    background-color: white;
    font-size: 16px;
    line-height: 16px;
    align-items: center;
    color: rgb(23, 23, 23);
}

    [b-3l8gbqzmva] .math-button:hover {
        background-color: rgb(245, 245, 245);
    }

    [b-3l8gbqzmva] .math-button svg{
        height: 16px;
        width: 16px;
    }


[b-3l8gbqzmva] .formula-input {
    margin-top: 8px;
    margin-bottom: 8px;
}

    [b-3l8gbqzmva] .formula-input textarea {
        padding: 8px 12px;
        margin-top: 2px;
        color: rgb(10, 10, 10);
        mask-image: unset;
    }

.actions-div[b-3l8gbqzmva] {
    padding: 0 16px 16px 16px
}



/* /Pages/FreightFactor/EditProductForm.razor.rz.scp.css */
.edit-item-form[b-ctrc0ikcxo] {
    width: 450px;
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

[b-ctrc0ikcxo] .form-header-wrapper {
    display: flex;
    height: 90px;
    min-height: 90px;
    padding: 12px 12px 8px 12px;
    border-bottom: 1px solid rgb(229, 229, 229);
    background-color: white;
    z-index: 1;
    flex-shrink: 0;
}

[b-ctrc0ikcxo] .form-headers {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    overflow: hidden;
}

    [b-ctrc0ikcxo] .form-headers h2 {
        color: rgb(10, 10, 10);
        font-size: 18px;
        font-weight: 600;
    }

    [b-ctrc0ikcxo] .form-headers label {
        color: rgb(115, 115, 115);
    }

[b-ctrc0ikcxo] .form-display-control {
    align-content: center;
    min-width: 150px;
}

.effective-date-wrapper[b-ctrc0ikcxo] {
    padding: 12px 16px;
    border-bottom: 1px solid rgb(229, 229, 229);
    background-color: white;
    flex-shrink: 0;
}

[b-ctrc0ikcxo] .mud-expand-panel-text {
    color: rgb(17 24 39);
    font-weight: 500;
}

[b-ctrc0ikcxo] .form-content-wrapper {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}

[b-ctrc0ikcxo] .form-content-wrapper.details-view {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}

[b-ctrc0ikcxo] .mud-expand-panel {
    box-shadow: none;
    border-top: 1px solid rgb(229, 229, 229);
    border-bottom: none;
}

[b-ctrc0ikcxo] .mud-collapse-wrapper{
    padding-top: 4px;
}

[b-ctrc0ikcxo] .form-row-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.details-form-wrapper[b-ctrc0ikcxo]{
    padding: 24px;
}

[b-ctrc0ikcxo] .form-footer-wrapper {
    border-top: 1px solid rgb(229, 229, 229);
    height: 61px;
    min-height: 61px;
    padding: 8px 12px 12px 12px;
    flex-shrink: 0;
    background-color: white;
}

[b-ctrc0ikcxo] .form-footer{
    display: flex;
    flex-direction: row-reverse;
    gap: 10px;
}
/* /Pages/FreightFactor/EditProductFormRowDoubleNumeric.razor.rz.scp.css */
.form-row[b-dd980pcm0q] {
    display: flex;
    flex-direction: row;
}

.form-label-wrapper[b-dd980pcm0q]{
    width: 150px;
    padding-right: 8px;
    align-content: center;
}

.form-label[b-dd980pcm0q] {
    color: rgb(107 114 128);
    font-weight: 500;
    font-size: .75rem;
}

.form-input-wrapper[b-dd980pcm0q] {
    flex-grow: 1;
    max-width: 230px;
    display: flex;
    flex-direction: row;
    gap: 5px;
}

[b-dd980pcm0q] .form-input-wrapper.editing input {
    cursor: pointer;
}

[b-dd980pcm0q] .form-input-wrapper.editing fieldset {
    border: none !important;
    box-shadow: rgb(255, 255, 255) 0px 0px 0px 0px, rgb(254, 202, 202) 0px 0px 0px 2px, rgba(0, 0, 0, 0) 0px 0px 0px 0px;
}

.button-wrapper[b-dd980pcm0q]{
    position: absolute;
    height: 0;
    width: 0;
}

[b-dd980pcm0q] .dropdown-button {
    border-color: rgb(229, 231, 235) !important;
    background-color: rgb(243, 244, 246) !important;
    color: rgb(156, 163, 175) !important;
}

[b-dd980pcm0q] .formula-button {
    position: relative;
    height: 22px;
    width: 22px;
    border-color: rgb(233, 213, 255);
    background-color: rgb(243 232 255);
    color: rgb(168 85 247);
}

[b-dd980pcm0q] .formula-button-1 {
    top: 4.5px;
    left: 5px;
}

[b-dd980pcm0q] .formula-button-2 {
    top: 4.5px;
    left: 130px;
}

[b-dd980pcm0q] .formula-button .mud-svg-icon {
    height: .75rem;
    width: .75rem;
}

    [b-dd980pcm0q] .formula-button:not(:where(.mud-collapse-entered *)) {
        display: none;
    }

[b-dd980pcm0q] .shrunk-input .mud-input-outlined-border {
    border-color: hsl(0, 0%, 89.8%);
    border-width: 1px !important;
}

[b-dd980pcm0q] .shrunk-input{
    width: 0px;
}

[b-dd980pcm0q] .shrunk-input input {
    padding: 8px 12px;
    color: rgb(10, 10, 10);
    font-size: .75rem;
    line-height: 1rem;
    text-align: right;
}

[b-dd980pcm0q] .shrunk-input.button-space input {
    margin-left: 22px;
}

.form-unit-wrapper[b-dd980pcm0q] {

    padding-left: 5px;
    align-content: center;
}

.form-unit[b-dd980pcm0q] {
    color: rgb(107 114 128);
    font-weight: 500;
    font-size: .75rem;
    width: 10px;
}

.middle-unit[b-dd980pcm0q]{
    align-content:center;
}

.form-input1-override[b-dd980pcm0q]{
    position: absolute;
    border: 3px solid red;
    background-color: transparent;
    margin-right: -5px;
}

.form-input2-override[b-dd980pcm0q] {
    position: absolute;
    border: 3px solid green;
    background-color: transparent;
    margin-right: -5px;
}
/* /Pages/FreightFactor/EditProductFormRowSingleNumeric.razor.rz.scp.css */
.form-row[b-wq2l7qu7y8] {
    display: flex;
    flex-direction: row;
}

.form-label-wrapper[b-wq2l7qu7y8] {
    width: 150px;
    padding-right: 8px;
    align-content: center;
}

.form-label[b-wq2l7qu7y8] {
    color: rgb(107 114 128);
    font-weight: 500;
    font-size: .75rem;
}

.form-input-wrapper[b-wq2l7qu7y8] {
    flex-grow: 1;
    max-width: 230px;
    align-content: center
}

[b-wq2l7qu7y8] .form-input-wrapper.editing input{
    cursor: pointer;
}

[b-wq2l7qu7y8] .form-input-wrapper.editing fieldset {
    border: none !important;
    box-shadow: rgb(255, 255, 255) 0px 0px 0px 0px, rgb(254, 202, 202) 0px 0px 0px 2px, rgba(0, 0, 0, 0) 0px 0px 0px 0px;
}

.button-wrapper[b-wq2l7qu7y8]{
    position: absolute;
    height: 0;
    width: 0;
}

[b-wq2l7qu7y8] .dropdown-button {
    border-color: rgb(229, 231, 235) !important;
    background-color: rgb(243, 244, 246) !important;
    color: rgb(156, 163, 175) !important;
}

[b-wq2l7qu7y8] .formula-button {
    position: relative;
    top: -27.5px;
    left: 5px;
    height: 22px;
    width: 22px;
    border-color: rgb(233, 213, 255);
    background-color: rgb(243 232 255);
    color: rgb(168 85 247);
}

[b-wq2l7qu7y8] .formula-button .mud-svg-icon {
    height: .75rem;
    width: .75rem;
}

    [b-wq2l7qu7y8] .formula-button:not(:where(.mud-collapse-entered *)) {
        display: none;
    }

[b-wq2l7qu7y8] .shrunk-input .mud-input-outlined-border {
    border-color: hsl(0, 0%, 89.8%);
    border-width: 1px !important;
}

[b-wq2l7qu7y8] .shrunk-input input {

    padding: 8px 12px;
    color: rgb(10, 10, 10);
    font-size: .75rem;
    line-height: 1rem;
    text-align: right;
}

    [b-wq2l7qu7y8] .shrunk-input.button-space input {
        margin-left: 22px;
    }

.form-unit-wrapper[b-wq2l7qu7y8] {

    padding-left: 5px;
    align-content: center;
}

.form-unit[b-wq2l7qu7y8] {
    color: rgb(107 114 128);
    font-weight: 500;
    font-size: .75rem;
    width: 10px;
}
/* /Pages/FreightFactor/ProductsComponent.razor.rz.scp.css */
/* The scroller is .mud-table-container, not .mud-table -- capping the wrapper leaves the container
   unbounded and its horizontal scrollbar ends up past the wrapper's clipped edge, out of reach.
   gridstyles.css already bounds the container directly, at calc(100vh - 156px), which is what this
   page's chrome actually costs: p-4 top (16) + the header row and its mb-4 (~72) + the pager (~52)
   + p-4 bottom (16). This page used to override that to 141px, which was 15px too tall, so the
   bottom of the container -- and the horizontal scrollbar living there -- was clipped by the
   h-screen overflow-hidden wrapper. One value, in gridstyles.css, governs every grid. */
[b-cf1p0nwjus] .sticky-column {
    min-width: 350px;
}

.actions-div[b-cf1p0nwjus] {
    display: flex;
    gap: 8px;
    align-items: center;
}

[b-cf1p0nwjus] tr.bom-child-row > td {
    background-color: #eef6fc;
    border-top: 1px dashed rgba(33, 150, 243, 0.35);
}

[b-cf1p0nwjus] tr.bom-child-row > td.sticky-column {
    border-left: 3px solid #2196f3;
}

[b-cf1p0nwjus] tr.bom-child-row .bom-child-name {
    padding-left: 24px;
}
/* Item numbers run to about a dozen characters (P-FEED-MOTOR, MD-APEX-22B) and were wrapping or
   being crushed, because the generic static-field column has no width of its own. */
[b-cf1p0nwjus] .item-no-col {
    min-width: 140px;
    white-space: nowrap;
}
/* /Pages/FreightFactor/ProductsTimelineComponent.razor.rz.scp.css */

[b-xymlk1ap42] .date-cell{
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: center;
}


[b-xymlk1ap42] .product-status{
    text-align: center;
    flex-grow: 1;
    margin: 6px;
    padding: 2px 6px;
    font-size: 12px;
    font-weight: 500;
    border-radius: 0.25rem;
}

[b-xymlk1ap42] .Scheduled {
    background-color: rgb(219 234 254);
    color: rgb(30, 64, 175);
}

[b-xymlk1ap42] .Current {
    background-color: rgb(220, 252, 231);
    color: rgb(22, 101, 52);
}

/* Changeout boundary: the row where a new vendor/cost line took over. */
[b-xymlk1ap42] .changeout-banner {
    display: flex;
    align-items: center;
    margin: 2px 0 6px 0;
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 600;
    color: rgb(146, 64, 14);
    background-color: rgb(254, 243, 199);
    border-left: 3px solid rgb(217, 119, 6);
    border-radius: 0.25rem;
    white-space: nowrap;
}

[b-xymlk1ap42] tr.changeout-row td {
    border-top: 2px solid rgb(217, 119, 6) !important;
}

/* Per-row provenance: which vendor line a price came from (only shown when there's more than one). */
[b-xymlk1ap42] .vendor-chip {
    display: inline-block;
    margin-top: 4px;
    padding: 1px 6px;
    font-size: 11px;
    font-weight: 500;
    color: rgb(55, 65, 81);
    background-color: rgb(243, 244, 246);
    border: 1px solid rgb(209, 213, 219);
    border-radius: 0.25rem;
}

/* See ProductsComponent.razor.css: the scroller is .mud-table-container, not .mud-table.
   Merged from two rules that were setting these separately.

   The offset is a reservation for whatever sits above the table, so it has to come down when the
   header does: the header was a title, two captions and a row of overlay selectors stacked on top
   of each other, and is now a single row plus one caption. Left at 224 the reclaimed space would
   simply have gone blank instead of showing more rows. */
[b-xymlk1ap42] .mud-table-container {
    max-height: calc(100vh - 150px);
    min-height: calc(100vh - 210px);
}

[b-xymlk1ap42] .sticky-column {
    min-width: unset;
}

[b-xymlk1ap42] .updated-cost {
    color: var(--table-data-green) !important;
}

[b-xymlk1ap42] .dialog-title {
    color: rgb(10, 10, 10);
    font-weight: 600;
    font-size: 18px;
    line-height: 24px;
}

[b-xymlk1ap42] .mud-table.notes-table {
    max-height: calc(100vh - 450px);
    min-height: calc(100vh - 450px);
}

/* The notes table bounds its own wrapper above, so keep the container inside it. */
[b-xymlk1ap42] .notes-table .mud-table-container {
    max-height: calc(100vh - 450px);
    min-height: calc(100vh - 450px);
}
/* /Pages/GeneralCosts/GeneralCostsComponent.razor.rz.scp.css */
/* The scroller is .mud-table-container, not .mud-table -- capping the wrapper leaves the container
   unbounded and its horizontal scrollbar ends up past the wrapper's clipped edge, out of reach.
   gridstyles.css already bounds the container directly, at calc(100vh - 156px), which is what this
   page's chrome actually costs: p-4 top (16) + the header row and its mb-4 (~72) + the pager (~52)
   + p-4 bottom (16). This page used to override that to 141px, which was 15px too tall, so the
   bottom of the container -- and the horizontal scrollbar living there -- was clipped by the
   h-screen overflow-hidden wrapper. One value, in gridstyles.css, governs every grid. */
/* Simulation names are long ("Update items into E21 - simulation Remove SPA tariff discount"), and
   in a narrow column they wrapped to three or four lines. That inflated every row, so only a handful
   of tariff rows fitted on screen at once. Give the column room to hold a name on one or two lines
   and the row height comes back down. */
[b-9c7pnmtcin] .simulation-col {
    min-width: 320px;
}
/* /Pages/ImportExport/ImportCostComponentsComponent.razor.rz.scp.css */
[b-hj5282adfw] .file-upload-input {
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 10;
    opacity: 0;
}

[b-hj5282adfw] .file-input-wrapper{
    padding: 8px 16px 0 16px;
}

/* The panel held its width from its contents, so switching to Duty & Tariff Rates -- which swaps one
   Upload button for Preview and Apply & Publish, and adds the effective-date and name fields -- made
   the whole screen jump wider on the change. Size it for the wider of the two shapes and let the
   narrower one sit inside it, so choosing a type changes what is in the panel and never how big it
   is. */
[b-hj5282adfw] .file-input-wrapper {
    width: 560px;
    min-width: 560px;
    max-width: 560px;
    box-sizing: border-box;
}

/* The drop zone works by laying a transparent file input over it, so clicking anywhere in the zone
   opens the picker. Under MudBlazor 9 the input was rendering visibly as well, which is where the
   stray "Browse files" control came from -- two things that did the same job as the button beside
   them. Pin the input invisible whatever markup wraps it. */
[b-hj5282adfw] .mud-file-upload input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    overflow: hidden;
    z-index: 10;
}

[b-hj5282adfw] .mud-file-upload input[type="file"]::-webkit-file-upload-button,
[b-hj5282adfw] .mud-file-upload input[type="file"]::file-selector-button {
    display: none;
}
/* /Pages/ImportStaging/ImportBatchDetailComponent.razor.rz.scp.css */
[b-lhg794bfzk] .cost-edit-field .mud-input-root {
    min-height: 30px;
}

[b-lhg794bfzk] .cost-edit-field .mud-input-control {
    font-size: 0.875rem;
}

[b-lhg794bfzk] .cost-edit-field .mud-input-control-input-container {
    padding: 4px 8px;
}

/* Why this page could not scroll.
   
   MainLayout clips page content at the viewport (h-screen overflow-hidden), so the page itself
   never scrolls -- the only scroller is .mud-table-container. gridstyles.css sets that up as a
   flex chain: the page's content block fills the window, the table fills what is left of it, and
   the container takes the remainder and scrolls. It also sets max-height: none on the container,
   with a selector far more specific than anything a scoped stylesheet can write.

   That last part is why the viewport calculation this file used to carry did nothing. It read
   max-height: calc(100vh - 430px), and the global rule overrode it to none, so the table had no
   bound at all. It then grew to the height of its rows, ran past the bottom of the clipped
   layout, and the rows below the fold were simply unreachable -- no scrollbar anywhere.

   The flex chain could not size it either, because the chain was broken. gridstyles.css manages
   the page content block, the table and the container, but this page puts a MudPaper, MudTabs,
   a tab panel and a scroll wrapper in between, and a flex item can only take "the space left" if
   every ancestor is itself a constrained flex column. min-height: 0 on each link is what permits
   an item to shrink below its content size; without it the chain refuses and the table overflows.

   So: rejoin the chain rather than guess a constant. gridstyles.css says it best -- MEASURED, NOT
   GUESSED. A constant can only ever be right for one arrangement of the page, and this page has
   several: the notes row, the workflow stepper and the toolbar all come and go.

   .table-scroll-container carried overflow-x: auto until now. That is gone deliberately: it made
   a second scrollport around the one that already handles both axes, which is the exact split
   gridstyles.css documents as putting the horizontal scrollbar out of reach and breaking the
   sticky column. The wrapper is only a link in the chain now. */
[b-lhg794bfzk] .review-surface,
[b-lhg794bfzk] .mud-tabs,
[b-lhg794bfzk] .mud-tabs-panels,
[b-lhg794bfzk] .mud-tab-panel,
.table-scroll-container[b-lhg794bfzk] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* The container is the only thing in this subtree that should scroll.
   
   MudBlazor puts overflow:auto on .mud-table-pagination, and gridstyles.css caps it at 50px.
   Sized to its content that pairing is invisible, but once the pager is a flex item in the chain
   above -- and once its controls wrap, which they do at this page's width -- the content exceeds
   the cap and the pager turns into its own little scrollbox. Two scrollbars, one of them around
   the page numbers.
   
   Let it be exactly as tall as it needs and never scroll; the rows above it already do. */
[b-lhg794bfzk] .mud-table-pagination {
    flex: 0 0 auto;
    max-height: none;
    overflow: visible;
}

/* Sticky made sense when the pager sat inside the scrollport. It is now a sibling below it, so
   there is nothing to stick to, and sticky inside a non-scrolling parent just risks painting
   over the last row. */
[b-lhg794bfzk] .sticky-pager {
    position: static;
}

/* Column minimum widths for responsiveness */
[b-lhg794bfzk] .col-checkbox {
    width: 50px;
    min-width: 50px;
}

[b-lhg794bfzk] .col-status {
    min-width: 120px;
}

[b-lhg794bfzk] .col-product {
    min-width: 250px;
}

[b-lhg794bfzk] .col-cost-type {
    min-width: 180px;
}

[b-lhg794bfzk] .col-vendor-country {
    min-width: 200px;
}

[b-lhg794bfzk] .col-brand-cobrand {
    min-width: 200px;
}

/* Keep cost-type cells the same height whether or not a "was X" line is shown.
   The placeholder div reserves the same line so inputs stay horizontally aligned. */
[b-lhg794bfzk] .was-line {
    font-size: 0.75rem;
    color: #616161;
    line-height: 1rem;
    min-height: 1rem;
}

[b-lhg794bfzk] .was-line-placeholder {
    visibility: hidden;
}
/* /Pages/ImportStaging/ImportStagingComponent.razor.rz.scp.css */
/* The scroller is .mud-table-container, not .mud-table -- capping the wrapper leaves the container
   unbounded and its horizontal scrollbar ends up past the wrapper's clipped edge, out of reach.
   gridstyles.css already bounds the container directly, at calc(100vh - 156px), which is what this
   page's chrome actually costs: p-4 top (16) + the header row and its mb-4 (~72) + the pager (~52)
   + p-4 bottom (16). This page used to override that to 141px, which was 15px too tall, so the
   bottom of the container -- and the horizontal scrollbar living there -- was clipped by the
   h-screen overflow-hidden wrapper. One value, in gridstyles.css, governs every grid. */
/* /Pages/ProductDevelopment/ProductDevelopmentComponent.razor.rz.scp.css */
/* The scroller is .mud-table-container, not .mud-table -- capping the wrapper leaves the container
   unbounded and its horizontal scrollbar ends up past the wrapper's clipped edge, out of reach.
   gridstyles.css already bounds the container directly, at calc(100vh - 156px), which is what this
   page's chrome actually costs: p-4 top (16) + the header row and its mb-4 (~72) + the pager (~52)
   + p-4 bottom (16). This page used to override that to 141px, which was 15px too tall, so the
   bottom of the container -- and the horizontal scrollbar living there -- was clipped by the
   h-screen overflow-hidden wrapper. One value, in gridstyles.css, governs every grid. */
[b-3qfv5i4s78] .mud-table-cell button {
    padding: 12px;
}

[b-3qfv5i4s78] td:first-child {
    margin-right: -16px;
    border-right: none !important;
    padding-right: 0;
}

    [b-3qfv5i4s78] td:first-child .d-flex {
        justify-content: flex-end
    }

    [b-3qfv5i4s78] td:first-child svg {
        fill: rgb(17, 24, 39)
    }

    [b-3qfv5i4s78] td:first-child:not(:where(.white-row > *, .grey-row > *)) {
        background-color: var(--table-header-bg);
        border-top: 1px solid var(--mud-palette-table-lines);
    }

[b-3qfv5i4s78] .sticky-column {
    min-width: 350px;
}

.actions-div[b-3qfv5i4s78] {
    display: flex;
    gap: 8px;
    align-items: center;
}

[b-3qfv5i4s78] tr.bom-child-row > td {
    background-color: #eef6fc;
    border-top: 1px dashed rgba(33, 150, 243, 0.35);
}

[b-3qfv5i4s78] tr.bom-child-row > td.sticky-column {
    border-left: 3px solid #2196f3;
}

[b-3qfv5i4s78] tr.bom-child-row .bom-child-name {
    padding-left: 24px;
}

/*::deep .mud-table {
    max-height: calc(100vh - 86px);
    min-height: calc(100vh - 86px);
}

::deep .subproduct {
    padding-left: 24px;
}*/

/* Item numbers run to about a dozen characters (P-FEED-MOTOR, MD-APEX-22B) and were wrapping or
   being crushed, because the generic static-field column has no width of its own. */
[b-3qfv5i4s78] .item-no-col {
    min-width: 140px;
    white-space: nowrap;
}
/* /Pages/Simulations/AddSimulationComponent.razor.rz.scp.css */
[b-f0zea18kwq] .add-form-wrapper{
    width: 100%;
    min-height: 100px;
}

[b-f0zea18kwq] .mud-stepper-content {
    padding: 0 16px 16px 16px;
}

[b-f0zea18kwq] .card-title {
    color: rgb(17 24 39);
    font-weight: 600;
    font-size: 1.25rem;
    line-height: 1.75rem;
    margin-bottom: 0.5rem;
}

[b-f0zea18kwq] .card-description {
    color: rgb(115, 115, 115);
    font-size: 0.857rem;
}

[b-f0zea18kwq] .scopes-wrapper{
    gap: 8px;
}

[b-f0zea18kwq] .scope-wrapper{
    flex-grow: 1;
}
[b-f0zea18kwq] .filter-wrapper{
    flex-grow: 1;
}

[b-f0zea18kwq] .mud-select .mud-input input {
    padding: 10px 16px;
}

[b-f0zea18kwq] div.mud-input-slot.mud-input-root.mud-input-root-outlined.mud-input-root-adorned-end.mud-select-input {
    padding: 10px 16px;
}

[b-f0zea18kwq] .filter-selected {
    padding: 10px 16px;
}

[b-f0zea18kwq] .mud-card-actions {
    background-color: rgb(249, 250, 251);
    padding: 16px;
}

[b-f0zea18kwq] .cancel-wrapper {
    display: flex;
    flex-grow: 1;
}

[b-f0zea18kwq] .cancel-button {
    background-color: white;
    border-color: rgb(229, 229, 229);
}

    [b-f0zea18kwq] .cancel-button:hover {
        background-color: hsl(0 0% 96.1%);
    }

[b-f0zea18kwq] .next-wrapper {
    display: flex;
    flex-grow: 1;
    flex-direction: row-reverse;
}

[b-f0zea18kwq] .scope-filter-row {
    gap: 16px;
}

[b-f0zea18kwq] .mud-stepper-actions{
    display: none;
}

[b-f0zea18kwq] .details-card{
    flex-grow: 1;
}

/* See ProductsComponent.razor.css: bound the scroller (.mud-table-container), not the wrapper,
   or the horizontal scrollbar ends up below the wrapper's clipped edge. */
[b-f0zea18kwq] .mud-table-container {
    max-height: calc(100vh - 405px);
    min-height: calc(100vh - 455px);
}

[b-f0zea18kwq] .mud-checkbox-true {
    color: rgb(239, 67, 67);
}


/* /Pages/Simulations/SimulationsComponent.razor.rz.scp.css */

[b-qva70uanx1] .mud-table {
    height: 100%
}
/* /Pages/Simulations/ViewSimulationComponent.razor.rz.scp.css */
.filters-row[b-6fv34zh17b] {
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
}

[b-6fv34zh17b] .add-variable-wrapper{
    align-content: center;
    min-width: 175px;
    max-width: 175px;
}

[b-6fv34zh17b] .add-variable input {
    padding: 8px;
    color: rgb(23, 23, 23);
    font-weight: 500;
    cursor: pointer !important;
}
    [b-6fv34zh17b] .add-variable input::placeholder {
        color: rgb(23, 23, 23);
        opacity: 1;
    }
    [b-6fv34zh17b] .add-variable input:disabled {
        opacity: 0.5 !important;
        cursor: unset !important;
    }

[b-6fv34zh17b] .variable-input input {
    padding: 8px;
    color: rgb(23, 23, 23);
    font-weight: 500;
    width: 50px;
    padding: 0.5rem 0.75rem;
    font-size: 12px;
    line-height: 1rem;
    background-color: white;
    border-radius: calc(0.5rem - 2px);
}

[b-6fv34zh17b] button.variable-remove{
    padding: 0;
}

[b-6fv34zh17b] .mud-table {
    margin-top: 0;
}

/* See ProductsComponent.razor.css: bound the scroller (.mud-table-container), not the wrapper,
   or the horizontal scrollbar ends up below the wrapper's clipped edge. */
[b-6fv34zh17b] .mud-table-container {
    max-height: calc(100vh - 204px);
    min-height: calc(100vh - 266px);
}

.cancel-wrapper[b-6fv34zh17b]{
    display: flex;
    flex-direction: row;
    flex-grow: 1;
    padding-left: 16px;
    padding-bottom:8px;
}

.save-delete-wrapper[b-6fv34zh17b] {
    display: flex;
    flex-direction: row-reverse;
    gap: 10px;
    flex-grow: 1;
    padding-right: 16px;
    padding-bottom: 8px;
}
/* /Pages/Vendors/AddOrEditVendorComponent.razor.rz.scp.css */
.actions-div[b-ufletp05up] {
    display: flex;
    flex-direction: row-reverse;
    gap: 8px;
    padding-bottom: 16px;
    padding-top: 16px;
    border-top: 1px solid rgb(229, 229, 229);
}
