/* /Pages/Account/Register.razor.rz.scp.css */
/* /Pages/Components/Filters/OverviewFilterPanel.razor.rz.scp.css */
/* The filters and the overview's content in a splitter. The splitter and its panes are Telerik's markup, so they are
   reached through ::deep; so are the sections' insides, which come from FilterValueEditor and the account selector. */
.filter-split[b-2dyl4uo8ll] {
    width: 100%;
}

.filter-split[b-2dyl4uo8ll]  .filter-split__filters {
    background-color: rgb(var(--PortalsFilterContainerColor));
}

/* contain: the grid's columns must not count towards the page's width - otherwise the whole page scrolls sideways
   instead of the grid. */
.filter-split[b-2dyl4uo8ll]  .filter-split__content {
    min-width: 0;
    contain: inline-size;
}

.filter-panel[b-2dyl4uo8ll] {
    padding: 10px;
}

.filter-panel[b-2dyl4uo8ll]  .filter-panel__section {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(var(--primaryFontColor), 0.2);
}

.filter-panel[b-2dyl4uo8ll]  .filter-panel__section:last-child {
    border-bottom: 0;
}

/* A long label (or an untranslated key) wraps inside the panel instead of running out of it. */
.filter-panel[b-2dyl4uo8ll]  .PortalsFilterContainerTitle {
    overflow-wrap: anywhere;
}

.filter-panel[b-2dyl4uo8ll]  .filter-panel__inline {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.filter-panel[b-2dyl4uo8ll]  .filter-panel__sublabel {
    font-size: 0.85em;
}

/* From and To: below each other in the panel on the left, each a label above its input. */
.filter-panel[b-2dyl4uo8ll]  .filter-panel__range,
.filter-panel[b-2dyl4uo8ll]  .filter-panel__range-part {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Above the content: the user's rows below each other, the filters of a row side by side (wrapping if too wide). */
.filter-panel--top .filter-panel__row[b-2dyl4uo8ll] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0 20px;
}

.filter-panel--top[b-2dyl4uo8ll]  .filter-panel__section {
    width: 240px;
    border-bottom: 0;
}

/* On top a range keeps the height of the other filters: From and To side by side, in a wider section. */
.filter-panel--top[b-2dyl4uo8ll]  .filter-panel__section--range {
    width: 340px;
}

.filter-panel--top[b-2dyl4uo8ll]  .filter-panel__range {
    flex-direction: row;
    gap: 10px;
}

.filter-panel--top[b-2dyl4uo8ll]  .filter-panel__range-part {
    flex: 1;
    min-width: 0;
}
/* /Pages/Components/ItemCard/ItemCardSections.razor.rz.scp.css */
/* One block per section, so the fields of a section read as a single group. */
.itemcard-section[b-7b4ke7ar01] {
    border-radius: 4px;
    margin-bottom: 8px;
    padding: 8px;
}

/* The delete button is the odd one out: height auto with a bottom margin of its own, where every other button is
   3em without one. Centred in a flex row that margin lifts it above the rest, so it is levelled here. */
.btn-delete[b-7b4ke7ar01] {
    height: 3em;
    margin-bottom: 0;
}

/* Keep the buttons of a section header on one line whatever their content is. */
.settings-button[b-7b4ke7ar01] {
    align-items: center;
    display: flex;
}
/* /Pages/Components/LoaderSpinnerInline.razor.rz.scp.css */
/* Telerik colours the loader with its own primary colour; this follows the portal theme instead. */
.loader-spinner-inline[b-52csu8p7aa]  .k-loader-segment {
    background-color: rgb(var(--primaryButtonColor));
}
/* /Pages/Components/LoaderSpinnerOnly.razor.rz.scp.css */
*[b-lyzgbblrvb] {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border: none;
    overflow: hidden;
}

.center-body[b-lyzgbblrvb] {
    background-color: rgb(var(--accentColorMedium));
    display: flex;
    justify-content: center;
    align-items: center;
    /*animation: breath 1s ease infinite;*/
    z-index: 9999;
}

.loader-bar[b-lyzgbblrvb] {
    position: relative;
    width: 70px;
    height: 8px;
}

#greenBar[b-lyzgbblrvb] {
    position: absolute;
    background-color: rgb(var(--trioColor1));
    animation: greenspin-b-lyzgbblrvb 1s ease infinite;
    border-radius: 1px;
}

#orangeBar[b-lyzgbblrvb] {
    position: absolute;
    background-color: rgb(var(--trioColor2));
    animation: orangespin-b-lyzgbblrvb 1s ease infinite;
    border-radius: 1px;
}

#blueBar[b-lyzgbblrvb] {
    position: absolute;
    background-color: rgb(var(--trioColor3));
    animation: bluespin-b-lyzgbblrvb 1s ease infinite;
    border-radius: 1px;
}

@keyframes greenspin-b-lyzgbblrvb {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(180deg);
    }
}
@keyframes orangespin-b-lyzgbblrvb {
    0% {
        transform: rotate(-60deg);
    }

    100% {
        transform: rotate(120deg);
    }
}
@keyframes bluespin-b-lyzgbblrvb {
    0% {
        transform: rotate(-120deg);
    }

    100% {
        transform: rotate(60deg);
    }
}
@keyframes breath-b-lyzgbblrvb {
    0% {
        transform: scale(1);
    }
    50% {
       transform: scale(.5);
    }
    100% {
        transform: scale(1);
    }
}

/*
.Loading-circle {
    width: 70px;
    height: 70px;
    position: relative;
    border: 8px solid transparent;
    border-radius: 50%;
    animation: spinner-3--border-opacity 0.7s linear infinite;
    animation-delay: 0.24s;
}

    .Loading-circle:before,
    .Loading-circle:after {
        content: '';
        display: block;
        position: absolute;
        border: 8px solid transparent;
        border-radius: 50%;
        box-sizing: border-box;
        animation: spinner-3--border-opacity 0.7s linear infinite;
    }

    .Loading-circle:before {
        top: 12px;
        left: 12px;
        right: 12px;
        bottom: 12px;
    }

    .Loading-circle:after {
        top: 2px;
        left: 2px;
        right: 2px;
        bottom: 2px;
        animation-delay: 0.12s;
    }

@keyframes spinner-3--border-opacity {
    from {
        border-color: var(--auxilRed);
    }

    to {
        border-color: rgba(0, 150, 136, 0);
    }
}
*/
/* /Pages/Components/Manufacturing/ElapsedTimer.razor.rz.scp.css */
.elapsed-over-estimate[b-54rv4vmkp2] {
    color: #a34646;
    font-weight: bold;
}
/* /Pages/Components/Manufacturing/ManufacturingOverviewTab.razor.rz.scp.css */
.mfg-overview-tab[b-co5kuq2nt7] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.625rem;
    font-size: 0.875rem;
    font-family: var(--bodyFont);
}

/* Top section: [Image] [Labels col] [Values col] */
.mfg-overview-top[b-co5kuq2nt7] {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 0.375rem 1rem;
}

.mfg-overview-image-area[b-co5kuq2nt7] {
    grid-row: 1;
    grid-column: 1;
    align-self: center;
}

.mfg-overview-top-labels[b-co5kuq2nt7] {
    grid-column: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.375rem;
}

.mfg-overview-top-values[b-co5kuq2nt7] {
    grid-column: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.375rem;
}

/* Bottom section: two-column label | value grid */
.mfg-overview-bottom[b-co5kuq2nt7] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.375rem 1rem;
    align-items: baseline;
}

.mfg-overview-overdue[b-co5kuq2nt7] {
    color: #a34646;
}

.mfg-overview-image-container[b-co5kuq2nt7] {
    width: 160px;
    height: 160px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mfg-overview-thumbnail[b-co5kuq2nt7] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
/* /Pages/Components/Manufacturing/MaterialIssuePopup.razor.rz.scp.css */
/* Make the window content area fill available height */
[b-q90swg09n8] .mip-window .k-window-content {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}

.mip-layout[b-q90swg09n8] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    padding: 0.375rem;
    height: 100%;
    min-height: 0;
    position: relative;
}

.mip-scroll-area[b-q90swg09n8] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

.mip-footer[b-q90swg09n8] {
    display: flex;
    gap: 0.625rem;
    border-top: 1px solid rgba(0, 0, 0, 0.15);
    padding-top: 0.5rem;
    flex-shrink: 0;
}

/* Themed loader overlay */
.mip-loader-overlay[b-q90swg09n8] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.7);
    z-index: 10;
}
/* /Pages/Components/Manufacturing/ShoporderRoutingStepList.razor.rz.scp.css */
.srsl-container[b-vx0sm1175r] {
    display: grid;
    grid-template-columns: max-content;
    gap: 0;
}

/* Collapse borders between adjacent cards (same pattern as WorkcenterActivityList) */
.srsl-container > :not(:first-child)[b-vx0sm1175r] {
    margin-top: -1px;
}
/* /Pages/Components/Manufacturing/WorkcenterAbortControl.razor.rz.scp.css */
/* Pushes the abort button to the right within its flex-row wrapper (.wc-task-control-wrapper),
   regardless of whether it's shown alongside WorkcenterTaskControl or on its own */
.wc-abort-control[b-vlx9h4jxkj] {
    margin-left: auto;
}
/* /Pages/Components/Manufacturing/WorkcenterActivityList.razor.rz.scp.css */
/* Single-column grid: cards fill the available width from the parent.
   No horizontal scrollbar — content truncates with ellipsis per card. */
.wcal-container[b-7bucrpvz3x] {
    display: grid;
    grid-template-columns: 1fr;
}

/* Collapse the shared border between adjacent cards */
[b-7bucrpvz3x] .wcai-card + .wcai-card {
    border-top: none;
}

/* SO-number search box above the activity list - sticky so it stays visible (and above the
   cards) while the list scrolls, instead of scrolling out of view with the rest of the list */
[b-7bucrpvz3x] .wcal-search {
    width: 100%;
    margin-bottom: 0.5rem;
    position: sticky;
    top: 0;
    z-index: 1;
    padding-top: 0.25rem;
    background-color: rgb(var(--primaryBackgroundColor));
}

/* Placeholder shown when the search yields no matching activities */
.wcal-empty[b-7bucrpvz3x] {
    padding: 0.5rem;
    font-size: 0.875rem;
}
/* /Pages/Components/Manufacturing/WorkcenterPlanningCard.razor.rz.scp.css */
/* ── Shared card shell ── */
.wpc-card[b-gui76qvyvp] {
    display: flex;
    border: 1px solid rgba(0, 0, 0, 0.15);
    align-self: stretch;
    background: white;
    overflow: hidden;
}

/* Indicator strip (left edge of all variants) */
.wpc-indicator[b-gui76qvyvp] {
    width: 0.625rem;
    align-self: stretch;
    background-color: white;
    flex-shrink: 0;
    border-right: 1px solid rgba(0, 0, 0, 0.15);
}

.wpc-indicator--started[b-gui76qvyvp] {
    background-color: #4caf50;
}

.wpc-indicator--blocked[b-gui76qvyvp] {
    background-color: #a34646;
}

.wpc-indicator--active[b-gui76qvyvp] {
    background-color: #3857a7;
}

.wpc-indicator--done[b-gui76qvyvp] {
    background-color: #9e9e9e;
}

.wpc-indicator--aborted[b-gui76qvyvp] {
    background-color: #d9822b;
}

/* ── Light mode (chain control, compact) ── */
.wpc-card-content[b-gui76qvyvp] {
    display: flex;
    flex-direction: column;
    gap: 0.3125rem;
    padding: 0.625rem;
    font-size: 0.75rem;
    font-family: var(--bodyFont);
    overflow: hidden;
    position: relative;
}

.wpc-card-content > span[b-gui76qvyvp] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Detail mode (activity lists — rich card) ── */
.wpc-detail-data[b-gui76qvyvp] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    padding: 0.625rem;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    position: relative;
}

/* Status icon badge — top-right corner */
.wpc-status-badge[b-gui76qvyvp] {
    position: absolute;
    top: 0.375rem;
    right: 0.375rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border: 2px solid rgba(0, 0, 0, 0.2);
    border-radius: 0.25rem;
}

/* Header: each field on its own line */
.wpc-header-bar[b-gui76qvyvp] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding-right: 3.5rem; /* keep text away from status badge */
    font-size: 0.75rem;
    font-family: var(--bodyFont);
}

.wpc-ellipsis-row[b-gui76qvyvp] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* State bar: date and produced stacked */
.wpc-state-bar[b-gui76qvyvp] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-family: var(--bodyFont);
}

/* Stacked label + bold value */
.wpc-info-frame[b-gui76qvyvp] {
    display: flex;
    flex-direction: column;
    white-space: nowrap;
}

/* Overissue row */
.wpc-overissue-row[b-gui76qvyvp] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    color: #a34646;
    white-space: nowrap;
}

/* Elapsed time row */
.wpc-elapsed-row[b-gui76qvyvp] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.75rem;
    font-family: var(--bodyFont);
}

/* Overdue date colouring */
.wpc-date--overdue[b-gui76qvyvp] {
    color: #a34646;
}

/* ── Shared ── */

/* Activity name — allow word-wrap instead of ellipsis */
.wpc-activity-row[b-gui76qvyvp] {
    white-space: normal !important;
    word-wrap: break-word;
    text-overflow: clip !important;
}

/* Part indicator (e.g. "1 of 3") — absolute bottom-right */
.wpc-part-row--bottom[b-gui76qvyvp] {
    position: absolute;
    bottom: 0.375rem;
    right: 0.375rem;
    font-style: italic;
    opacity: 0.75;
    font-size: 0.75rem;
    font-family: var(--bodyFont);
}

/* ── StartNode / EndNode ── */
.wpc-card--node .wpc-node-icon[b-gui76qvyvp] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem;
    flex: 1;
}
/* /Pages/Components/Manufacturing/WorkcenterPlanningChain.razor.rz.scp.css */
.wpc-container[b-tmvblyf1tv] {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: center;
    padding: 0.625rem;
    background: white;
    overflow-x: auto;
}

/* All cards in the chain grow equally to fill the available width */
.wpc-container[b-tmvblyf1tv]  .wpc-card {
    flex: 1 1 0;
    min-width: 0;
}

.wpc-arrow[b-tmvblyf1tv] {
    display: flex;
    align-items: center;
    width: 3.375rem;
    text-align: center;
    font-size: 1.5rem;
    flex-shrink: 0;
}
/* /Pages/Components/Manufacturing/WorkcenterStopPopup.razor.rz.scp.css */
/* Make the window content area fill available height */
[b-77to4hqq05] .stop-window .k-window-content {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}

.stop-layout[b-77to4hqq05] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    padding: 0.375rem;
    height: 100%;
    min-height: 0;
    position: relative;
}

.stop-scroll-area[b-77to4hqq05] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

.stop-footer[b-77to4hqq05] {
    display: flex;
    gap: 0.625rem;
    border-top: 1px solid rgba(0, 0, 0, 0.15);
    padding-top: 0.5rem;
    flex-shrink: 0;
}

/* Themed loader overlay */
.stop-loader-overlay[b-77to4hqq05] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.7);
    z-index: 10;
}
/* /Pages/Components/Manufacturing/WorkcenterTaskControl.razor.rz.scp.css */
.wc-task-control[b-qohr5w8zpl] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    /* stretch to fill .wc-task-control-wrapper's full width, so the abort button's margin-left:
       auto has room to push it all the way to the right edge, not just next to its siblings */
    flex: 1;
}
/* /Pages/Components/PortalSetupCompleteAnimation.razor.rz.scp.css */
*[b-kwm0dbz54k] {
    --auxilRed: #E5332C;
    --green: #79B636;
    --orange: #FF7800;
    --blue: #1C93C4;
    --black: #2E2923;
    --platinum: #E6E6E6;
    --culturedwhite: #F9F9F9;
    --whitesmoke: #F4F4F4;
    --white: #FFFFFF;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border: none;
    overflow: hidden;
}

.center-body-container[b-kwm0dbz54k] {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 40vw;
    height: 80%;
    z-index: 99999;
    gap: 5%;
    opacity: 0;
    animation: appear-b-kwm0dbz54k 1s;
    animation-delay: 2s;
    animation-fill-mode: forwards;
    color: rgb(var(--primaryFontColor));
}

.title[b-kwm0dbz54k] {
    font-size: 35px;
    font-weight: 700;
}

.regular-text[b-kwm0dbz54k] {
    text-align: center;
    width: 55%;
}

.regular-link[b-kwm0dbz54k] {
    color: rgb(var(--trioColor3));
    cursor: pointer;
}

.center-body[b-kwm0dbz54k] {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50vw;
    height: 80%;
    transform: translateY(-100px);
    z-index: 9999;
    animation: move-down-b-kwm0dbz54k 1s;
    animation-delay: 2s;
    animation-fill-mode: forwards;
}

.loader-bar[b-kwm0dbz54k] {
    position: relative;
    width: 70px;
    height: 8px;
}

#greenBar[b-kwm0dbz54k] {
    position: absolute;
    width: 500px;
    height: 10px;
    background-color: rgb(var(--trioColor1));
    animation: slide-in-left-b-kwm0dbz54k 2s, move-to-line-left-b-kwm0dbz54k 1s;
    animation-fill-mode: forwards;
    animation-delay: 0s, 2s;
}

#orangeBar[b-kwm0dbz54k] {
    position: absolute;
    width: 10px;
    height: 500px;
    background-color: rgb(var(--trioColor2));
    animation: slide-in-bottom-b-kwm0dbz54k 2s, move-to-line-center-b-kwm0dbz54k 1s;
    animation-fill-mode: forwards;
    animation-delay: 0s, 2s;
}

#blueBar[b-kwm0dbz54k] {
    position: absolute;
    width: 500px;
    height: 10px;
    background-color: rgb(var(--trioColor3));
    animation: slide-in-right-b-kwm0dbz54k 2s, move-to-line-right-b-kwm0dbz54k 1s;
    animation-fill-mode: forwards;
    animation-delay: 0s, 2s;
}

@keyframes slide-in-left-b-kwm0dbz54k {
    0% {
        width: 0;
        transform: rotate(210deg) translate(50%, 0);
    }

    50% {
        width: 250px;
        transform: rotate(210deg);
    }

    100% {
        width: 200px;
        transform: rotate(-210deg);
    }
}

@keyframes slide-in-right-b-kwm0dbz54k {
    0% {
        width: 0;
        transform: rotate(330deg) translate(50%, 0);
    }

    50% {
        width: 250px;
        transform: rotate(330deg);
    }

    100% {
        width: 200px;
        transform: rotate(570deg);
    }
}

@keyframes slide-in-bottom-b-kwm0dbz54k {
    0% {
        height: 0;
        transform: translate(0, 50%);
    }

    50% {
        height: 250px;
        transform: rotate(0);
    }

    100% {
        height: 200px;
        transform: rotate(-360deg);
    }
}

@keyframes move-to-line-left-b-kwm0dbz54k {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: translate(-200px);
        width: 200px;
    }
}

@keyframes move-to-line-center-b-kwm0dbz54k {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: rotate(90deg);
        height: 200px;
    }
}

@keyframes move-to-line-right-b-kwm0dbz54k {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: translateX(200px);
        width: 200px;
    }
}

@keyframes move-down-b-kwm0dbz54k {
    0% {
        transform: translateY(-100px);
    }

    100% {
        transform: translateY(100px);
    }
}

@keyframes appear-b-kwm0dbz54k {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
/* /Pages/Components/PortalSetupCompleteAnimationFail.razor.rz.scp.css */
*[b-bh9keyf26g] {
    --auxilRed: #E5332C;
    --green: #79B636;
    --orange: #FF7800;
    --blue: #1C93C4;
    --black: #2E2923;
    --platinum: #E6E6E6;
    --culturedwhite: #F9F9F9;
    --whitesmoke: #F4F4F4;
    --white: #FFFFFF;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border: none;
    overflow: hidden;
}

.center-body-container[b-bh9keyf26g] {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 40vw;
    height: 80%;
    z-index: 99999;
    gap: 5%;
    opacity: 0;
    animation: appear-b-bh9keyf26g 1s;
    animation-delay: 2s;
    animation-fill-mode: forwards;
    color: rgb(var(--primaryFontColor));
}

.title[b-bh9keyf26g] {
    font-size: 35px;
    font-weight: 700;
}

.regular-text[b-bh9keyf26g] {
    text-align: center;
    width: 55%;
}

.regular-link[b-bh9keyf26g] {
    color: rgb(var(--trioColor3));
    cursor: pointer;
}

.center-body[b-bh9keyf26g] {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50vw;
    height: 80%;
    transform: translateY(-100px);
    z-index: 9999;
    animation: move-down-b-bh9keyf26g 1s;
    animation-delay: 2s;
    animation-fill-mode: forwards;
}

.loader-bar[b-bh9keyf26g] {
    position: relative;
    width: 70px;
    height: 8px;
}

#greenBar[b-bh9keyf26g] {
    position: absolute;
    width: 500px;
    height: 10px;
    background-color: rgb(var(--trioColor1));
    animation: slide-in-left-b-bh9keyf26g 2s, move-to-line-left-b-bh9keyf26g 1s;
    animation-fill-mode: forwards;
    animation-delay: 0s, 2s;
}

#orangeBar[b-bh9keyf26g] {
    position: absolute;
    width: 10px;
    height: 500px;
    background-color: rgb(var(--trioColor2));
    animation: slide-in-bottom-b-bh9keyf26g 2s, move-to-line-center-b-bh9keyf26g 1s;
    animation-fill-mode: forwards;
    animation-delay: 0s, 2s;
}

#blueBar[b-bh9keyf26g] {
    position: absolute;
    width: 500px;
    height: 10px;
    background-color: rgb(var(--trioColor3));
    animation: slide-in-right-b-bh9keyf26g 2s, move-to-line-right-b-bh9keyf26g 1s;
    animation-fill-mode: forwards;
    animation-delay: 0s, 2s;
}

@keyframes slide-in-left-b-bh9keyf26g {
    0% {
        width: 0;
        transform: rotate(210deg) translate(50%, 0);
    }

    50% {
        width: 250px;
        transform: rotate(210deg);
    }

    100% {
        width: 200px;
        transform: rotate(-210deg);
    }
}

@keyframes slide-in-right-b-bh9keyf26g {
    0% {
        width: 0;
        transform: rotate(330deg) translate(50%, 0);
    }

    50% {
        width: 250px;
        transform: rotate(330deg);
    }

    100% {
        width: 200px;
        transform: rotate(570deg);
    }
}

@keyframes slide-in-bottom-b-bh9keyf26g {
    0% {
        height: 0;
        transform: translate(0, 50%);
    }

    50% {
        height: 250px;
        transform: rotate(0);
    }

    100% {
        height: 200px;
        transform: rotate(-360deg);
    }
}

@keyframes move-to-line-left-b-bh9keyf26g {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: translate(-200px);
        width: 200px;
    }
}

@keyframes move-to-line-center-b-bh9keyf26g {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: rotate(90deg);
        height: 200px;
    }
}

@keyframes move-to-line-right-b-bh9keyf26g {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: translateX(200px);
        width: 200px;
    }
}

@keyframes move-down-b-bh9keyf26g {
    0% {
        transform: translateY(-100px);
    }

    100% {
        transform: translateY(100px);
    }
}

@keyframes appear-b-bh9keyf26g {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
/* /Pages/Components/StoreView/StoreViewCardGrid.razor.rz.scp.css */
/* De kolommen zijn zo breed als de ingestelde kaartbreedte en staan gecentreerd: bij minder kaarten dan
   kolommen krimpt het raster mee, zodat wat er staat in het midden blijft in plaats van links te blijven
   hangen. */

.store-card-grid[b-ov2qq9tna6] {
    align-items: start;
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(var(--tile-columns, 3), var(--tile-width, 300px));
    justify-content: center;
    margin: auto;
    padding: 12px;
    width: fit-content;
    max-width: 100%;
    overflow-x: auto;
}

/* Zonder kaarten staat er een melding of een loader in; die hoort niet in een kolom van 300px geperst. */
.store-card-grid.is-empty[b-ov2qq9tna6] {
    display: block;
    width: 100%;
}
/* /Pages/Components/StoreView/StoreViewCategoryCard.razor.rz.scp.css */
/* De categoriekaart is zelf een grid van vier kolommen: elk blok krijgt zijn plek uit de opgeslagen tegels
   (grid-column/grid-row staan inline). De rijen delen de kaarthoogte, zodat een RowSpan van 3 ook echt drie
   keer zoveel ruimte pakt. De inhoud rekent in cq-eenheden van de kaart, dus alles schaalt mee met de maat
   die in de instellingen gesleept is. */

.store-category-card[b-y4ep1u5xqv] {
    position: relative;
    height: var(--tile-height, 320px);
    box-sizing: border-box;
    display: grid;
    grid-template-columns: repeat(var(--card-columns, 4), 1fr);
    grid-auto-rows: minmax(0, 1fr);

    /* Padding en gap staan in procenten, omdat een element zijn eigen containereenheden niet mag gebruiken. */
    container-type: size;
    container-name: store-category-card;
    gap: 2%;
    padding: 4%;
    border-radius: 8px;
    background: rgb(var(--navbarBackgroundColor));
    box-shadow: 0 1px 6px rgba(0,0,0,0.12);
    cursor: pointer;
    overflow: hidden;
}

/* Een blok vult de cellen die het volgens de tegel toegewezen krijgt. */
.store-category-block[b-y4ep1u5xqv] {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

/* In de voorbeeldweergave van de instellingen vangt de kaart geen klikken, zodat de sleepgrepen van de
   tegelontwerper eronder bereikbaar blijven. */
.store-category-card.is-preview[b-y4ep1u5xqv] {
    cursor: default;
}

.store-category-card.is-preview .store-category-block[b-y4ep1u5xqv] {
    pointer-events: none;
}

.store-category-image[b-y4ep1u5xqv] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.store-category-image img[b-y4ep1u5xqv] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 15%;
}

/* De carousel vult het blok; de navigatieknoppen passen niet op een kaart van deze maat. */
[b-y4ep1u5xqv] .store-category-carousel {
    box-sizing: border-box;
    height: 100%;
    width: 100%;
    border: none;
}

[b-y4ep1u5xqv] .store-category-carousel .k-scrollview-nav-wrap {
    display: none;
}

.store-category-title[b-y4ep1u5xqv] {
    /* Eerst een vaste maat als terugval, daarna de meeschalende; browsers zonder cq-eenheden negeren de
       tweede. De grenzen staan in rem, zodat de fontinstelling van het portaal ook de onder- en bovengrens
       meeneemt; het middelste deel volgt de kaart. */
    font-size: 1.3rem;
    font-size: clamp(0.55rem, calc(7cqmin * var(--card-font-scale, 1)), 1.9rem);
    font-weight: 700;
    color: rgb(var(--primaryButtonColor));
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.store-category-count[b-y4ep1u5xqv] {
    display: flex;
    align-items: center;
    gap: 6px;
    gap: 2cqmin;
    font-size: 1rem;
    font-size: clamp(0.45rem, calc(4.5cqmin * var(--card-font-scale, 1)), 1.25rem);
}

/* De labelklasse komt uit de globale stylesheet met een eigen maat; hier moet hij de kaart volgen. */
.store-category-count span[b-y4ep1u5xqv] {
    font-size: inherit;
    line-height: 1.2;
}

.store-category-marker[b-y4ep1u5xqv] {
    width: 6px;
    height: 6px;
    width: clamp(0.2rem, calc(2cqmin * var(--card-font-scale, 1)), 0.6rem);
    height: clamp(0.2rem, calc(2cqmin * var(--card-font-scale, 1)), 0.6rem);
    flex: none;
    border-radius: 50%;
    background: rgb(var(--primaryButtonColor));
}

.store-category-action[b-y4ep1u5xqv] {
    text-align: right;
    font-size: 1rem;
    font-size: clamp(0.45rem, calc(4.5cqmin * var(--card-font-scale, 1)), 1.25rem);
    font-weight: 700;
    color: rgb(var(--primaryButtonColor));
}
/* /Pages/Components/StoreView/StoreViewItemCard.razor.rz.scp.css */
/* De artikelkaart is zelf een grid van vier kolommen: elk blok krijgt zijn plek uit de opgeslagen tegels
   (grid-column/grid-row staan inline). De rijen delen de kaarthoogte, zodat een RowSpan van 3 ook echt drie
   keer zoveel ruimte pakt. De inhoud rekent in cq-eenheden van de kaart, dus alles schaalt mee met de maat
   die in de instellingen gesleept is. */

.store-item-card[b-ry4mxaa1db] {
    position: relative;
    height: var(--tile-height, 320px);
    box-sizing: border-box;
    display: grid;
    grid-template-columns: repeat(var(--card-columns, 4), 1fr);
    grid-auto-rows: minmax(0, 1fr);

    /* Padding en gap staan in procenten, omdat een element zijn eigen containereenheden niet mag gebruiken. */
    container-type: size;
    container-name: store-item-card;
    gap: 2%;
    padding: 4%;
    border-radius: 8px;
    background: rgb(var(--navbarBackgroundColor));
    box-shadow: 0 1px 6px rgba(0,0,0,0.12);
    overflow: hidden;
}

/* Een blok vult de cellen die het volgens de tegel toegewezen krijgt. */
.store-item-block[b-ry4mxaa1db] {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

/* In de voorbeeldweergave van de instellingen vangt de kaart geen klikken, zodat de sleepgrepen van de
   tegelontwerper eronder bereikbaar blijven. */
.store-item-card.is-preview .store-item-block[b-ry4mxaa1db] {
    pointer-events: none;
}

.store-item-image[b-ry4mxaa1db] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    cursor: pointer;
}

.store-item-image img[b-ry4mxaa1db] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 15%;
}

.store-item-description[b-ry4mxaa1db] {
    /* Eerst een vaste maat als terugval, daarna de meeschalende; browsers zonder cq-eenheden negeren de
       tweede. De grenzen staan in rem, zodat de fontinstelling van het portaal ook de onder- en bovengrens
       meeneemt; het middelste deel volgt de kaart. */
    font-size: 1.2rem;
    font-size: clamp(0.5rem, calc(5.5cqmin * var(--card-font-scale, 1)), 1.6rem);
    font-weight: 700;
    color: rgb(var(--primaryButtonColor));
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.store-item-line[b-ry4mxaa1db] {
    display: flex;
    align-items: center;
    gap: 6px;
    gap: 2cqmin;
    font-size: 1rem;
    font-size: clamp(0.45rem, calc(4.5cqmin * var(--card-font-scale, 1)), 1.25rem);
    cursor: pointer;
}

/* De labelklasse komt uit de globale stylesheet met een eigen maat; hier moet hij de kaart volgen. */
.store-item-line span[b-ry4mxaa1db] {
    font-size: inherit;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.store-item-marker[b-ry4mxaa1db] {
    width: 6px;
    height: 6px;
    width: clamp(0.2rem, calc(2cqmin * var(--card-font-scale, 1)), 0.6rem);
    height: clamp(0.2rem, calc(2cqmin * var(--card-font-scale, 1)), 0.6rem);
    flex: none;
    border-radius: 50%;
    background: rgb(var(--primaryButtonColor));
}

.store-item-price[b-ry4mxaa1db] {
    display: flex;
    align-items: center;
    font-size: 1rem;
    font-size: clamp(0.45rem, calc(5cqmin * var(--card-font-scale, 1)), 1.35rem);
    font-weight: 700;
    color: rgb(var(--primaryButtonColor));
}

.store-item-ordersize[b-ry4mxaa1db] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0.8rem;
    font-size: clamp(0.35rem, calc(3.5cqmin * var(--card-font-scale, 1)), 1rem);
}

.store-item-ordersize li[b-ry4mxaa1db] {
    display: flex;
    align-items: center;
    gap: 4px;
    line-height: 1.2;
    overflow: hidden;
    white-space: nowrap;
}

.store-item-action[b-ry4mxaa1db] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
}

/* De knop rendert Telerik zelf, dus die krijgt het scope-attribuut van deze component niet. */
[b-ry4mxaa1db] .store-item-cart {
    white-space: nowrap;
}

[b-ry4mxaa1db] .store-item-loader {
    font-size: 20px !important;
}

[b-ry4mxaa1db] .store-item-cart .k-loader-segment {
    background-color: rgb(var(--primaryButtonFontColor)) !important;
}
/* /Pages/Components/StoreView/StoreViewItemGrid.razor.rz.scp.css */
/* De vinkjes en kruisjes in de voorraad- en bestelgroottekolommen. Deze stonden in het style-blok van de
   webshoplijst; nu de lijst ook in de instellingen staat horen ze bij de lijst zelf. In site.css staat een
   kleinere #IconRed voor andere schermen, vandaar de eigen maat hier. */

#IconGreen[b-44e0a46dmm] {
    color: #79B636 !important;
    width: 30px !important;
    margin-left: 2%;
}

#IconRed[b-44e0a46dmm] {
    color: #E5332C !important;
    width: 30px !important;
    margin-left: 2%;
}
/* /Pages/Components/TricolorShape.razor.rz.scp.css */
body[b-lk37urzrsr] {
}

.auxil-tricolor-shape[b-lk37urzrsr] {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 0.415vw;
}

#AuxilTricolorShapeGreen[b-lk37urzrsr] {
    background-color: rgb(var(--trioColor1));
}

.auxil-tricolor-shape--green[b-lk37urzrsr] {
    overflow: visible;
    width: 100%;
    height: 100%;
}

#AuxilTricolorShapeOrange[b-lk37urzrsr] {
    background-color: rgb(var(--trioColor2));
}

.auxil-tricolor-shape--orange[b-lk37urzrsr] {
    overflow: visible;
    width: 100%;
    height: 100%;
}

#AuxilTricolorShapeBlue[b-lk37urzrsr] {
    background-color: rgb(var(--trioColor3));
}

.auxil-tricolor-shape--blue[b-lk37urzrsr] {
    overflow: visible;
    width: 100%;
    height: 100%;
}
/* /Pages/Configuration/Auxil/CustomerFeatures.razor.rz.scp.css */
/* Per feature: one card per module. */
.cf-cards[b-g309v0wk9k] {
    display: grid;
    /* Never wider than the page: a narrow window gets one card per row instead of cards cut off on the right. */
    grid-template-columns: repeat(auto-fill, minmax(min(380px, 100%), 1fr));
    gap: 16px;
    padding-top: 12px;
}

.cf-card[b-g309v0wk9k] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px;
    border: 1px solid rgba(var(--primaryFontColor), 0.15);
    border-radius: 6px;
}

.cf-card__head[b-g309v0wk9k] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.cf-card__description[b-g309v0wk9k] {
    margin: 0;
    opacity: 0.75;
}

.cf-card__empty[b-g309v0wk9k] {
    margin: 0;
    font-style: italic;
    opacity: 0.6;
}

/* The portal type a module is for, or a customer has. */
.cf-tag[b-g309v0wk9k] {
    padding: 1px 8px;
    border-radius: 10px;
    font-size: 0.85em;
    background-color: rgba(var(--primaryButtonColor), 0.12);
}

/* "No Internal portal": the feature does nothing for this customer. */
.cf-warning[b-g309v0wk9k] {
    margin-left: 8px;
    font-size: 0.85em;
    color: rgb(var(--deleteButtonColor));
}

.cf-customer-list[b-g309v0wk9k] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cf-customer[b-g309v0wk9k] {
    padding: 6px 8px;
    border-radius: 4px;
    background-color: rgba(var(--primaryFontColor), 0.04);
}

.cf-customer__head[b-g309v0wk9k] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* The name takes the room; the remove button stays at the right edge. */
.cf-customer__name[b-g309v0wk9k] {
    flex-grow: 1;
    min-width: 0;
    overflow-wrap: anywhere;
}

.cf-customer__roles[b-g309v0wk9k] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    padding-top: 4px;
}

.cf-role[b-g309v0wk9k] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

/* Per customer: the list on the left, the chosen customer's modules on the right. */
.cf-customers[b-g309v0wk9k] {
    display: flex;
    gap: 24px;
    padding-top: 12px;
}

.cf-customers__list[b-g309v0wk9k] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 280px;
    flex-shrink: 0;
}

.cf-customers__item[b-g309v0wk9k] {
    padding: 6px 10px;
    border: none;
    border-radius: 4px;
    text-align: left;
    background: none;
    color: inherit;
}

.cf-customers__item:hover[b-g309v0wk9k] {
    background-color: rgba(var(--primaryButtonColor), 0.08);
}

.cf-customers__item--selected[b-g309v0wk9k] {
    background-color: rgba(var(--primaryButtonColor), 0.18);
    font-weight: bold;
}

.cf-customers__detail[b-g309v0wk9k] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex-grow: 1;
}

.cf-module[b-g309v0wk9k] {
    padding: 10px 14px;
    border: 1px solid rgba(var(--primaryFontColor), 0.15);
    border-radius: 6px;
}

.cf-module__head[b-g309v0wk9k] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cf-module__title[b-g309v0wk9k] {
    font-weight: bold;
}

.cf-module__role[b-g309v0wk9k] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 0 0 40px;
}
/* /Pages/Configuration/PortalSettings/PortalTypeSettings.razor.rz.scp.css */
.type-settings-empty[b-4mxj5iiqpi] {
    display: inline-block;
    padding: 12px 0;
    opacity: 0.7;
}

/* Zelfde correctie als in PortalUpdate: de tabinhoud klipt anders wat eruit hangt, zoals een openstaande
   dropdown. ::deep omdat de tabstrip zijn eigen dom rendert. */
[b-4mxj5iiqpi] .k-tabstrip-content {
    overflow: visible;
}
/* /Pages/Configuration/PortalSettings/PortalUpdateComponents/AssortmentPropertyImagesWindow.razor.rz.scp.css */
/* Details: terug en toevoegen bovenaan, links uitgelijnd. */
.details-actions[b-1rehd49bt4] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 8px;
}

/* Bekijken en verwijderen naast elkaar in de laatste kolom. */
.row-actions[b-1rehd49bt4] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.preview-image[b-1rehd49bt4] {
    display: block;
    max-width: 100%;
    max-height: 720px;
    margin: 0 auto;
    object-fit: contain;
}
/* /Pages/Configuration/PortalSettings/PortalUpdateComponents/WebshopLayoutCardWindow.razor.rz.scp.css */
/* Links de voorbeeldkaart, rechts de instellingen. */
.card-window[b-ojn0nuqgex] {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    height: 100%;
}

.card-window-canvas[b-ojn0nuqgex] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.card-window-hint[b-ojn0nuqgex] {
    font-size: 12px;
    opacity: 0.7;
}

/* De voorbeeldkaart: zelfde achtergrond en rondingen als de echte kaart, zodat het als een kaart leest. */
.card-window-card[b-ojn0nuqgex] {
    padding: 12px;
    border-radius: 8px;
    background: rgb(var(--PortalsFilterContainerColor));
}

.card-window-side[b-ojn0nuqgex] {
    width: 260px;
    min-width: 260px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.card-window-blocks[b-ojn0nuqgex] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 8px;
}

.card-window-block[b-ojn0nuqgex] {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.card-window-tile-header[b-ojn0nuqgex] {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.75;
}

/* ---- Inhoud van de blokken, met dezelfde schaal als op de echte kaart ---- */

.cw-image[b-ojn0nuqgex] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.cw-image img[b-ojn0nuqgex] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.cw-title[b-ojn0nuqgex] {
    font-size: calc(1.3rem * var(--card-font-scale, 1));
    font-weight: 700;
    color: rgb(var(--primaryButtonColor));
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cw-count[b-ojn0nuqgex] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: calc(1rem * var(--card-font-scale, 1));
}

.cw-marker[b-ojn0nuqgex] {
    width: calc(6px * var(--card-font-scale, 1));
    height: calc(6px * var(--card-font-scale, 1));
    flex: none;
    border-radius: 50%;
    background: rgb(var(--primaryButtonColor));
}

.cw-action[b-ojn0nuqgex] {
    text-align: right;
    font-size: calc(1rem * var(--card-font-scale, 1));
    font-weight: 700;
    color: rgb(var(--primaryButtonColor));
}

/* ---- Tekstgrootte kiezen ---- */

.font-scale-choices[b-ojn0nuqgex] {
    display: flex;
    gap: 6px;
    margin-bottom: 8px;
}

.font-scale-choice[b-ojn0nuqgex] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    width: 52px;
    height: 52px;
    padding: 4px;
    border: 1px solid rgba(var(--primaryFontColor), 0.2);
    border-radius: 4px;
    background: rgb(var(--navbarBackgroundColor));
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.font-scale-choice:hover[b-ojn0nuqgex] {
    border-color: rgb(var(--primaryButtonColor));
}

.font-scale-choice.selected[b-ojn0nuqgex] {
    border-color: rgb(var(--primaryButtonColor));
    box-shadow: 0 0 0 1px rgb(var(--primaryButtonColor));
    color: rgb(var(--primaryButtonColor));
}

.font-scale-label[b-ojn0nuqgex] {
    font-size: 10px;
    opacity: 0.7;
}

.card-window-actions[b-ojn0nuqgex] {
    display: flex;
    gap: 8px;
    margin-top: auto;
}
/* /Pages/Configuration/PortalSettings/PortalUpdateComponents/WebshopLayoutEditor.razor.rz.scp.css */
/* Keuzekaarten in dezelfde vorm als de login-typeselectie in PortalCustomize. */

.webshop-layout-types[b-1fsj2qjfpg] {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
    margin-top: 12px;
    justify-content: center;
}

.webshop-layout-card[b-1fsj2qjfpg] {
    position: relative;
    width: 230px;
    padding: 16px 14px;
    border: 2px solid rgba(var(--primaryFontColor), 0.15);
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: rgb(var(--navbarBackgroundColor));
}

.webshop-layout-card:hover[b-1fsj2qjfpg] {
    border-color: rgb(var(--primaryButtonColor));
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

.webshop-layout-card.selected[b-1fsj2qjfpg] {
    border-color: rgb(var(--primaryButtonColor));
    box-shadow: 0 0 0 2px rgb(var(--primaryButtonColor));
}

.webshop-layout-name[b-1fsj2qjfpg] {
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 4px;
}

.webshop-layout-desc[b-1fsj2qjfpg] {
    font-size: 12px;
    opacity: 0.7;
}

.webshop-layout-check[b-1fsj2qjfpg] {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgb(var(--primaryButtonColor));
    color: rgb(var(--primaryButtonFontColor));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

/* Actieknoppen bovenaan, links uitgelijnd. */
.webshop-layout-actions[b-1fsj2qjfpg] {
    margin-bottom: 16px;
}
/* /Pages/Configuration/PortalSettings/PortalUpdateComponents/WebshopLayoutPreview.razor.rz.scp.css */
/* Vorm zonder data, in dezelfde geest als de mini login previews in PortalCustomize. Alle kleuren komen
   uit de themavariabelen, zodat een preview meebeweegt met het thema van het portaal. */

.wl-mini[b-kxt3lw8h9d] {
    width: 100%;
    height: 140px;
    margin-bottom: 10px;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid rgba(var(--primaryFontColor), 0.08);
    background: rgb(var(--primaryBackgroundColor));
}

.wl-frame[b-kxt3lw8h9d] {
    display: flex;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding: 5px;
    gap: 5px;
}

/* Grijze balkjes staan voor tekst die er in het echt staat. */
.wl-bar[b-kxt3lw8h9d] {
    display: block;
    height: 3px;
    border-radius: 1px;
    background: rgba(var(--primaryFontColor), 0.18);
}

/* ---- Filterkolom ---- */

.wl-side[b-kxt3lw8h9d] {
    width: 30%;
    min-width: 30%;
    box-sizing: border-box;
    padding: 4px;
    border-radius: 2px;
    background: rgb(var(--PortalsFilterContainerColor));
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.wl-side-title[b-kxt3lw8h9d] { width: 60%; height: 4px; }

.wl-search[b-kxt3lw8h9d] {
    height: 8px;
    border-radius: 1px;
    background: rgb(var(--navbarBackgroundColor));
    border: 0.5px solid rgba(var(--primaryFontColor), 0.15);
}

.wl-slider[b-kxt3lw8h9d] { position: relative; height: 6px; }

.wl-slider-track[b-kxt3lw8h9d] {
    position: absolute;
    top: 2px;
    left: 0;
    right: 0;
    height: 2px;
    border-radius: 1px;
    background: rgb(var(--primaryButtonColor));
}

.wl-slider-knob[b-kxt3lw8h9d] {
    position: absolute;
    top: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgb(var(--primaryButtonColor));
}

.wl-check[b-kxt3lw8h9d] { display: flex; align-items: center; gap: 3px; }
.wl-check .wl-bar[b-kxt3lw8h9d] { flex: 1; }

.wl-check-box[b-kxt3lw8h9d] {
    width: 5px;
    height: 5px;
    border-radius: 1px;
    border: 1px solid rgba(var(--primaryFontColor), 0.35);
}

/* ---- Regelgrid ---- */

.wl-rows[b-kxt3lw8h9d] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.wl-head[b-kxt3lw8h9d] {
    display: flex;
    gap: 3px;
    padding: 3px 2px;
    border-radius: 1px;
    background: rgb(var(--GridColor));
}

.wl-head .wl-bar[b-kxt3lw8h9d] { flex: 1; height: 4px; background: rgba(var(--primaryFontColor), 0.3); }

.wl-row[b-kxt3lw8h9d] {
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 2px;
    border-bottom: 0.5px solid rgba(var(--primaryFontColor), 0.08);
}

.wl-thumb[b-kxt3lw8h9d] {
    width: 10px;
    height: 10px;
    min-width: 10px;
    border-radius: 1px;
    background: rgba(var(--primaryFontColor), 0.25);
}

.wl-row-text[b-kxt3lw8h9d] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.wl-row-text .wl-bar:first-child[b-kxt3lw8h9d] { width: 55%; }
.wl-row-text .wl-bar:last-child[b-kxt3lw8h9d] { width: 80%; }

.wl-price[b-kxt3lw8h9d] { width: 22%; min-width: 22%; }

/* Aantal-stepper: knop, invoervak, knop. */
.wl-stepper[b-kxt3lw8h9d] { display: flex; align-items: center; gap: 1px; }

.wl-stepper-btn[b-kxt3lw8h9d] {
    width: 6px;
    height: 6px;
    border-radius: 1px;
    background: rgb(var(--primaryButtonColor));
}

.wl-stepper-input[b-kxt3lw8h9d] {
    width: 10px;
    height: 6px;
    border-radius: 1px;
    background: rgb(var(--navbarBackgroundColor));
    border: 0.5px solid rgba(var(--primaryFontColor), 0.2);
}

.wl-pager[b-kxt3lw8h9d] {
    display: flex;
    align-items: center;
    gap: 3px;
    margin-top: auto;
    padding: 2px;
    border-radius: 1px;
    background: rgb(var(--PortalsFilterContainerColor));
}

.wl-pager .wl-bar[b-kxt3lw8h9d] { width: 12px; }
.wl-pager .wl-bar:last-child[b-kxt3lw8h9d] { margin-left: auto; }

/* ---- Artikeltegels ---- */

.wl-tiles[b-kxt3lw8h9d] {
    flex: 1;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    align-content: start;
}

.wl-tile[b-kxt3lw8h9d] {
    padding: 3px;
    border-radius: 2px;
    background: rgb(var(--navbarBackgroundColor));
    box-shadow: 0 1px 3px rgba(0,0,0,0.12);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.wl-tile-img[b-kxt3lw8h9d] { height: 20px; border-radius: 1px; background: rgba(var(--primaryFontColor), 0.12); }
.wl-tile-name[b-kxt3lw8h9d] { width: 70%; height: 4px; }
.wl-tile-line[b-kxt3lw8h9d] { width: 90%; }
.wl-tile-foot[b-kxt3lw8h9d] { display: flex; align-items: center; gap: 2px; margin-top: 1px; }
.wl-tile-price[b-kxt3lw8h9d] { flex: 1; height: 4px; background: rgb(var(--primaryButtonColor)); }
.wl-cart[b-kxt3lw8h9d] { width: 8px; height: 8px; border-radius: 1px; background: rgb(var(--primaryButtonColor)); }
/* /Pages/Configuration/PortalSettings/PortalUpdateComponents/WebshopLayoutSettings.razor.rz.scp.css */
/* Label links, dropdown met zijn afbeeldingenknop rechts - twee rijen onder elkaar, zonder TelerikGridLayout met
   vaste kolombreedtes. De labelkolom groeit mee met de tekst: bij een vaste breedte werd een lang label afgekapt.
   Dropdown en knop staan samen in één cel: los in het grid schoof de knop naar de volgende rij. */
.assortment-row[b-2znhokyvg4] {
    display: grid;
    grid-template-columns: max-content max-content;
    gap: 10px 20px;
    align-items: center;
    padding: 12px 0 20px;
}

.assortment-select[b-2znhokyvg4] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Elk categorieniveau in zijn eigen kader, zodat de twee niveaus niet in elkaar overlopen. */
.assortment-level[b-2znhokyvg4] {
    margin-top: 16px;
    padding: 12px 16px 16px;
    border: 1px solid rgba(var(--primaryFontColor), 0.12);
    border-radius: 6px;
}

.assortment-level .section-subtitle[b-2znhokyvg4] {
    margin-top: 0;
}

/* ---- Filters: één veld met de gekozen filters als labels ---- */

.filter-select[b-2znhokyvg4] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: 720px;
    padding: 12px 0;
}

.filter-empty[b-2znhokyvg4] {
    opacity: 0.7;
}

/* Zelfde correctie als in PortalCustomize: de tabinhoud klipt anders wat eruit hangt, zoals een openstaande
   dropdown. ::deep omdat de tabstrip zijn eigen dom rendert en die geen scope-attribuut van ons krijgt. */
[b-2znhokyvg4] .k-tabstrip-content {
    overflow: visible;
}
/* /Pages/Configuration/PortalSettings/PortalUpdateComponents/WebshopLayoutTileDesigner.razor.rz.scp.css */
/* Tegelontwerper: de kaarten staan in een grid waarvan het aantal kolommen en de kaartbreedte uit twee
   CSS-variabelen komen, zodat slepen alleen --tile-width hoeft bij te werken. */

.tile-designer[b-9vlmeaf74y] {
    padding: 12px 0;
}

.tile-designer-controls[b-9vlmeaf74y] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

/* Op het artikelniveau staat de filterkolom naast de kaarten, net als in de webshop zelf. Zonder filterkolom
   houdt het grid gewoon de volle breedte. */
.tile-designer-body.with-filters[b-9vlmeaf74y] {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
}

.tile-designer-filters[b-9vlmeaf74y] {
    flex: none;
}

/* In de rij naast de filterkolom mag het grid krimpen; zonder min-width duwt het de kolom weg. */
/* Het raster is een eigen component, dus zijn element krijgt het scope-attribuut van deze component niet:
   wat hier over het raster gezegd wordt, moet met ::deep. */
.tile-designer-body.with-filters[b-9vlmeaf74y]  .store-card-grid,
.tile-designer-body.with-filters .tile-list[b-9vlmeaf74y] {
    flex: 1;
    min-width: 0;
}

/* De lijstweergave van Webshoplist: de tabel scrollt binnen zijn eigen kader in plaats van de pagina breed
   te maken. */
.tile-list[b-9vlmeaf74y] {
    padding: 12px;
    border-radius: 4px;
    background: rgb(var(--PortalsFilterContainerColor));
    overflow-x: auto;
}

[b-9vlmeaf74y] .store-card-grid {
    border-radius: 4px;
    background: rgb(var(--PortalsFilterContainerColor));
}

/* Tijdens het slepen mag de tekst in de kaarten niet geselecteerd raken. */
[b-9vlmeaf74y] .store-card-grid.is-resizing {
    user-select: none;
    cursor: ew-resize;
}

.tile-grid-message[b-9vlmeaf74y] {
    grid-column: 1 / -1;
    padding: 24px 0;
    text-align: center;
    opacity: 0.7;
}

.tile-card-resize[b-9vlmeaf74y] {
    position: absolute;
    background: transparent;
    touch-action: none;
}

.tile-card-resize-x[b-9vlmeaf74y] {
    top: 0;
    right: 0;
    width: 10px;
    height: 100%;
    cursor: ew-resize;
}

.tile-card-resize-y[b-9vlmeaf74y] {
    bottom: 0;
    left: 0;
    width: 100%;
    height: 10px;
    cursor: ns-resize;
}

/* De hoek ligt over de twee randen heen, dus hij komt als laatste en pakt beide richtingen. */
.tile-card-resize-xy[b-9vlmeaf74y] {
    bottom: 0;
    right: 0;
    width: 16px;
    height: 16px;
    cursor: nwse-resize;
}

.tile-card-resize:hover[b-9vlmeaf74y],
.store-card-grid.is-resizing .tile-card-resize[b-9vlmeaf74y] {
    background: rgba(var(--primaryButtonColor), 0.35);
}

/* Keuze voor het aantal kaarten per rij: per knop een figuurtje met net zoveel balkjes. */
.column-choices[b-9vlmeaf74y] {
    display: flex;
    gap: 6px;
}

.column-choice[b-9vlmeaf74y] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 5px 6px;
    border: 1px solid rgba(var(--primaryFontColor), 0.2);
    border-radius: 4px;
    background: rgb(var(--navbarBackgroundColor));
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.column-choice:hover[b-9vlmeaf74y] {
    border-color: rgb(var(--primaryButtonColor));
}

.column-choice.selected[b-9vlmeaf74y] {
    border-color: rgb(var(--primaryButtonColor));
    box-shadow: 0 0 0 1px rgb(var(--primaryButtonColor));
}

.column-choice-glyph[b-9vlmeaf74y] {
    display: flex;
    gap: 2px;
    width: 34px;
    height: 18px;
}

/* De balkjes verdelen de breedte, dus vier balkjes worden automatisch smaller dan twee. */
.column-choice-glyph span[b-9vlmeaf74y] {
    flex: 1;
    border-radius: 1px;
    background: rgba(var(--primaryFontColor), 0.3);
}

.column-choice.selected .column-choice-glyph span[b-9vlmeaf74y] {
    background: rgb(var(--primaryButtonColor));
}

.column-choice-label[b-9vlmeaf74y] {
    font-size: 11px;
    line-height: 1;
    opacity: 0.7;
}
/* /Pages/Customer/Item/ItemCardGallery.razor.rz.scp.css */
/* The gallery fills the box it is given and divides it in two: the thumbnail strip claims the height its thumbnails
   need, the picture takes whatever is left over. Both are sized against the tile, never against each other, so
   resizing a TileLayoutItem scales them and swapping in a taller picture does not. */
.itemcard-gallery[b-3yj4mydva2] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    height: 100%;
    min-height: 0;
    min-width: 0;
    width: 100%;
}

.itemcard-gallery__stage[b-3yj4mydva2] {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    justify-content: center;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.itemcard-gallery__image[b-3yj4mydva2] {
    cursor: zoom-in;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.itemcard-gallery--lightbox .itemcard-gallery__image[b-3yj4mydva2] {
    cursor: default;
}

/* Round arrow buttons floating over the left and right edge of the picture. Their height is a share of the stage,
   so they stay in proportion in a small tile, and the aspect ratio keeps them round. */
.itemcard-gallery__nav[b-3yj4mydva2] {
    align-items: center;
    aspect-ratio: 1;
    background-color: rgba(var(--primaryButtonColor), 0.9);
    border: 1px solid rgba(var(--primaryFontColor), 0.15);
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(var(--primaryFontColor), 0.25);
    cursor: pointer;
    display: flex;
    height: clamp(22px, 22%, 36px);
    justify-content: center;
    padding: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: auto;
    z-index: 2;
}

.itemcard-gallery__nav:hover[b-3yj4mydva2] {
    background-color: rgb(var(--primaryButtonColor));
}

.itemcard-gallery__nav--prev[b-3yj4mydva2] {
    left: 4px;
}

.itemcard-gallery__nav--next[b-3yj4mydva2] {
    right: 4px;
}

/* Chevron drawn with borders, so no icon font or image is needed. */
.itemcard-gallery__chevron[b-3yj4mydva2] {
    border-right: 2px solid rgb(var(--primaryFontColor));
    border-top: 2px solid rgb(var(--primaryFontColor));
    display: block;
    height: 30%;
    max-height: 10px;
    min-height: 6px;
    aspect-ratio: 1;
}

.itemcard-gallery__chevron--right[b-3yj4mydva2] {
    margin-left: -3px;
    transform: rotate(45deg);
}

.itemcard-gallery__chevron--left[b-3yj4mydva2] {
    margin-right: -3px;
    transform: rotate(-135deg);
}

/* The strip is a box of its own: it neither grows nor shrinks with the picture, so a tall picture no longer squeezes
   the thumbnails and a small one no longer blows them up. Too many for the width scroll sideways. */
.itemcard-gallery__thumbs[b-3yj4mydva2] {
    display: flex;
    flex: 0 0 auto;
    gap: 6px;
    justify-content: center;
    overflow-x: auto;
    overflow-y: hidden;
}

/* The thumbnails follow the width of the tile - which the layout hands them - and the square ratio gives the height.
   Nothing here reads the size of the picture. */
.itemcard-gallery__thumb[b-3yj4mydva2],
.itemcard-gallery__more[b-3yj4mydva2] {
    aspect-ratio: 1;
    flex: 0 0 auto;
    height: auto;
    width: clamp(28px, 12%, 56px);
}

.itemcard-gallery__thumb[b-3yj4mydva2] {
    background-color: rgba(var(--primaryButtonColor), 0.9);
    border: 1px solid rgba(var(--primaryFontColor), 0.2);
    border-radius: 4px;
    cursor: pointer;
    object-fit: contain;
    padding: 2px;
}

.itemcard-gallery__thumb:hover[b-3yj4mydva2] {
    border-color: rgba(var(--PortalsFilterContainerTitle), 0.6);
}

.itemcard-gallery__thumb--selected[b-3yj4mydva2] {
    border-color: rgb(var(--PortalsFilterContainerTitle));
    border-width: 2px;
}

.itemcard-gallery__more[b-3yj4mydva2] {
    align-items: center;
    background-color: rgba(var(--primaryFontColor), 0.85);
    border: none;
    border-radius: 4px;
    color: rgb(var(--primaryButtonFontColor));
    cursor: pointer;
    display: flex;
    font-weight: bold;
    justify-content: center;
}

/* In the window there is room, so the thumbnails keep their comfortable size and wrap over several rows. */
.itemcard-gallery--lightbox[b-3yj4mydva2] {
    height: 100%;
    width: 100%;
}

.itemcard-gallery--lightbox .itemcard-gallery__thumbs[b-3yj4mydva2] {
    flex: 0 0 auto;
    flex-wrap: wrap;
    max-height: 130px;
    overflow-x: hidden;
    overflow-y: auto;
}

.itemcard-gallery--lightbox .itemcard-gallery__thumb[b-3yj4mydva2],
.itemcard-gallery--lightbox .itemcard-gallery__more[b-3yj4mydva2] {
    width: 56px;
}
/* /Pages/Customer/SalesOrder/SalesOrderPicking.razor.rz.scp.css */
/* The scan bar: the order and the item side by side on the first row, the scan field on a row of its own. */
.picking-scan[b-9vzz3rtzgj] {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: left;
}

/* Everything starts on the left: the order number first, the item after it. */
.picking-scan__row[b-9vzz3rtzgj] {
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: flex-start;
    margin: 0;
    padding: 0;
    width: 100%;
}

.picking-scan__row > .picking-scan__field[b-9vzz3rtzgj] {
    margin: 0;
}

/* The field everything goes through: full width and readable at arm's length, tall enough to tap on a handheld. */
.picking-scan__field--scan[b-9vzz3rtzgj] {
    margin: 0;
    width: 100%;
}

.picking-scan__field--scan input[b-9vzz3rtzgj] {
    font-size: 1.4rem;
    min-height: 3rem;
    width: 100%;
}

.picking-scan__field[b-9vzz3rtzgj] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 220px;
}

/* The item and the Range/Single choice next to the order number field: as tall as that field (Bootstrap's
   .form-control height) and centred in it, so all three sit on one line. */
.picking-scan__item[b-9vzz3rtzgj],
.picking-scan__mode[b-9vzz3rtzgj] {
    align-items: center;
    display: flex;
    gap: 6px;
    min-height: calc(1.5em + 0.75rem + 2px);
}

.picking-scan__item[b-9vzz3rtzgj] {
    font-weight: bold;
}

/* What the last scan did. An error has to stand out: the warehouse looks at the items, not at the screen. */
.picking-message[b-9vzz3rtzgj] {
    margin: 6px 0;
    padding: 10px 14px;
    border-left: 5px solid rgb(var(--primaryButtonColor));
    font-size: 1.1em;
}

.picking-message--error[b-9vzz3rtzgj] {
    border-left-color: rgb(var(--deleteButtonColor));
    background-color: rgba(var(--deleteButtonColor), 0.12);
    color: rgb(var(--deleteButtonColor));
    font-weight: bold;
}

/* A scanned range, waiting for confirmation. */
.picking-confirm[b-9vzz3rtzgj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.picking-header[b-9vzz3rtzgj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}

.picking-table[b-9vzz3rtzgj] {
    width: 100%;
}

.picking-table td[b-9vzz3rtzgj],
.picking-table th[b-9vzz3rtzgj] {
    padding: 4px 8px;
}

.picking-table__number[b-9vzz3rtzgj] {
    text-align: right;
}

.picking-table__done td[b-9vzz3rtzgj] {
    background-color: rgba(var(--primaryButtonColor), 0.12);
}

.picking-table__manual[b-9vzz3rtzgj] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* The title with the ways back to the order and the overview on the right; they wrap under it on a scanner. */
.picking-title[b-9vzz3rtzgj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.picking-title__actions[b-9vzz3rtzgj] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Range or one by one, for a range profile: the radio list itself centred too. */
.picking-scan__mode[b-9vzz3rtzgj]  .k-radio-list {
    align-items: center;
    margin: 0;
}

/* The theme draws an unchosen radio white on the light container, so it all but disappears: a visible border here. */
.picking-scan__mode[b-9vzz3rtzgj]  .k-radio {
    border: 1px solid rgba(var(--primaryFontColor), 0.6);
}

.picking-scan__mode[b-9vzz3rtzgj]  .k-radio:checked {
    border-color: rgb(var(--primaryButtonColor));
}
/* /Pages/ErrorPage/NoMailTemplate.razor.rz.scp.css */
/* The look of ErrorPageUnAuthorized, scoped and under names of its own: that page's global <style> restyles every
   .card on the screen, and site.css flips .exact-login-card away for the login animation. */

.nomail[b-vit1kscr34] {
    display: flex;
    height: 90vh;
    justify-content: center;
    overflow: hidden;
    padding: 3% 1%;
}

.nomail__card[b-vit1kscr34] {
    align-items: center;
    background: rgb(var(--navbarBackgroundColor));
    border-radius: 5px;
    box-shadow: 5px 6px 20px rgba(46, 41, 35, .5);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 5%;
    text-align: center;
    width: 40%;
}

/* In place of a screen's content: as tall as it needs, and wider, since a popup leaves less room than a page. */
.nomail--embedded[b-vit1kscr34] {
    height: auto;
}

.nomail--embedded .nomail__card[b-vit1kscr34] {
    width: 60%;
}
/* /Pages/Manufacturing/PlanningOverviewPage.razor.rz.scp.css */
/* Themed loader overlay */
.po-loader-overlay[b-uw83mg6m9n] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.7);
    z-index: 10;
}

.planner-columns[b-uw83mg6m9n] {
    display: grid;
    gap: 12px;
    align-items: start;
}

.planner-column[b-uw83mg6m9n] {
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(var(--GridColor), 0.3);
    border-radius: 4px;
    overflow: hidden;
}

.planner-column-header[b-uw83mg6m9n] {
    padding: 8px 12px;
    background-color: rgba(var(--PortalsFilterContainerColor), 0.15);
    border-bottom: 1px solid rgba(var(--GridColor), 0.3);
}

.planner-column-body[b-uw83mg6m9n] {
    flex: 1;
    overflow-y: auto;
    max-height: 75vh;
}
/* /Pages/Manufacturing/ShoporderStatusPage.razor.rz.scp.css */
/* Themed loader overlay */
.so-loader-overlay[b-9svodk255n] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.7);
    z-index: 10;
}

.sos-grid[b-9svodk255n] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.75rem;
    margin-top: 0.75rem;
    align-items: start;
}

.sos-card-panel[b-9svodk255n] {
    overflow-y: auto;
    max-height: 80vh;
}

.sos-detail-panel[b-9svodk255n] {
    min-width: 0;
}

.sos-chain-area[b-9svodk255n] {
    overflow: auto;
    margin-bottom: 0.75rem;
}

.sos-tab-outer[b-9svodk255n] {
    position: relative;
    min-width: 0;
}

/* Task control — above the tabstrip, same class as WorkcenterPage for a uniform abort-button position */
.wc-task-control-wrapper[b-9svodk255n] {
    display: flex;
    align-items: center;
    padding: 0.25rem 0;
    /* full width so WorkcenterAbortControl's margin-left: auto has room to push it to the right edge */
    width: 100%;
}

[b-9svodk255n] .sos-tabstrip .k-content {
    min-height: 18.75rem;
}
/* /Pages/Manufacturing/WorkcenterPage.razor.rz.scp.css */
/* ── Top bar: workcenter name/dropdown (left), date+apply (right) ── */
.wc-top-bar[b-ha2uug36z4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
    padding-left: 0.625rem;
}

.wc-info-heading-wc[b-ha2uug36z4] {
    font-size: 1.125rem;
    font-weight: bold;
    font-family: var(--TitleFont);
    color: rgb(var(--primaryFontColor));
}

/* ── Two-column grid: activity list | right column ── */
.wc-outer-grid[b-ha2uug36z4] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.5rem;
    margin-top: 0.75rem;
    align-items: start;
    min-width: 42rem;
}

/* LEFT COLUMN — activity list (collapsible) */
.wc-activity-column[b-ha2uug36z4] {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 2rem);
    width: 22rem;
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.wc-activity-column--collapsed[b-ha2uug36z4] {
    width: 3rem;
}

.wc-activity-column-header[b-ha2uug36z4] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.375rem;
    padding-left: 0.625rem;
}

/* Scrollable activity list */
.wc-activity-panel[b-ha2uug36z4] {
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

/* RIGHT COLUMN — stacked: shop order info, chain, tabs */
.wc-right-column[b-ha2uug36z4] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

/* Shop order info — compact, no labels */
.wc-shoporder-info[b-ha2uug36z4] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem 1rem;
    padding: 0.375rem 0;
    font-size: 1.125rem;
    font-weight: bold;
    font-family: var(--bodyFont);
}

.wc-shoporder-info-number[b-ha2uug36z4] {
    font-weight: bold;
    font-size: 1.125rem;
}

.wc-shoporder-info-desc[b-ha2uug36z4] {
    flex: 1 1 12rem;
    min-width: 12rem;
}

/* Chain area — no longer spans full width, lives in right column */
.wc-chain-area[b-ha2uug36z4] {
    min-width: 0;
}

/* Tab strip + task control */
.wc-tab-outer[b-ha2uug36z4] {
    min-width: 0;
}

/* Give the tab content area a minimum height */
[b-ha2uug36z4] .wc-tabstrip .k-content {
    min-height: 18.75rem;
}

/* Themed loader overlay */
.wc-loader-overlay[b-ha2uug36z4] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.7);
    z-index: 10;
}

/* Image lightbox popup */
.wc-image-popup-content[b-ha2uug36z4] {
    display: grid;
    place-items: center;
    height: 100%;
    width: 100%;
}

.wc-image-popup-img[b-ha2uug36z4] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Collapse/expand toggle button */
.wc-collapse-btn[b-ha2uug36z4] {
    min-width: 2.5rem;
    min-height: 2.5rem;
}

/* Task control — above the tabstrip */
.wc-task-control-wrapper[b-ha2uug36z4] {
    display: flex;
    align-items: center;
    padding: 0.25rem 0;
    /* full width so WorkcenterAbortControl's margin-left: auto has room to push it to the right edge */
    width: 100%;
}
/* /Shared/BlankLayout.razor.rz.scp.css */
*[b-giocmvq90e] {
    --auxilRed: #E5332C;
    --green: #79B636;
    --orange: #FF7800;
    --blue: #1C93C4;
    --black: #2E2923;
    --platinum: #E6E6E6;
    --culturedwhite: #F9F9F9;
    --whitesmoke: #F4F4F4;
    --white: #FFFFFF;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border: none;
    overflow: visible;/*sticky not worky when anything other than visible, from sticky up to scrollable element*/
}

.page[b-giocmvq90e] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-giocmvq90e] {
    flex: 1;
}
px-4[b-giocmvq90e] {
    padding: 0px;
    margin: 0px
}
.sidebar[b-giocmvq90e] {
    position: fixed;
    background-color: rgb(var(--navbarBackgroundColor));
    transition: width .5s;
    z-index: 100;
    box-shadow: 2px 0 5px rgba(0,0,0,.04);
}

.collapsed-sidenavbar[b-giocmvq90e] {
    width: 80px !important;
}

.fullBackground[b-giocmvq90e] {
    background-color: rgb(var(--primaryBackgroundColor));
    margin-left: 250px;
    transition: .5s;
    margin-top: 3.5rem;
}

.content[b-giocmvq90e] {
    padding-top: 1em;
}

.cornerBackground[b-giocmvq90e] {
    background-color: rgb(var(--navbarBackgroundColor));
}

.widen-content[b-giocmvq90e] {
    margin-left: 80px !important;
    transition: .5s;
}

.top-row[b-giocmvq90e] {
    background-color: rgb(var(--navbarBackgroundColor));
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    display: flex;
    align-items: center;
    position: fixed;
    width: calc(100% - 0px);
    transition: .5s;
    z-index: 99;
}

.widen-top-row[b-giocmvq90e] {
    width: calc(100% - 0px) !important;
    transition: .5s;
}

.top-row[b-giocmvq90e]  a, .top-row[b-giocmvq90e]  .btn-link {
    white-space: nowrap;
    margin-left: 1.5rem;
    padding-right: .3em;
    padding-top: .3em;
    text-decoration: none;
}

    .top-row[b-giocmvq90e]  a:hover, .top-row[b-giocmvq90e]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-giocmvq90e]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

.normal-link[b-giocmvq90e] {
    color: rgb(var(--NavMenuTextColor));
    text-decoration: none;
    background-color: transparent;
}

@media (max-width: 640.98px) {
    .top-row:not(.auth)[b-giocmvq90e] {
        display: none;
    }

    .top-row.auth[b-giocmvq90e] {
        justify-content: space-between;
    }

    .top-row[b-giocmvq90e]  a, .top-row[b-giocmvq90e]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-giocmvq90e] {
        flex-direction: row;
    }

   
    .top-row[b-giocmvq90e] {
        position: fixed;
        width: calc(100% - 0px);
        top: 0;
        z-index: 99;
        transition: .5s;
        box-shadow: 0 2px 5px rgba(0,0,0,.04);
    }

        .top-row.auth[b-giocmvq90e]  a:first-child {
            flex: 1;
            text-align: right;
            width: 0;
        }

    .top-row[b-giocmvq90e], article[b-giocmvq90e] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}
/* /Shared/MainLayout.razor.rz.scp.css */
*[b-z1wmrii8cn] {
    --auxilRed: #E5332C;
    --green: #79B636;
    --orange: #FF7800;
    --blue: #1C93C4;
    --black: #2E2923;
    --platinum: #E6E6E6;
    --culturedwhite: #F9F9F9;
    --whitesmoke: #F4F4F4;
    --white: #FFFFFF;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border: none;
    overflow: visible; /*sticky not worky when anything other than visible, from sticky up to scrollable element*/
}

.page[b-z1wmrii8cn] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-z1wmrii8cn] {
    flex: 1;
}
px-4[b-z1wmrii8cn] {
    padding: 0px;
    margin: 0px
}
.carttable td[b-z1wmrii8cn] {
    padding: 0px !important; 
    text-align: left;
    height: 0px !important;
}
.sidebar[b-z1wmrii8cn] {
    position: fixed;
    background-color: rgb(var(--navbarBackgroundColor));
    transition: width .5s;
    z-index: 100;
    box-shadow: 2px 0 5px rgba(0,0,0,.04);
}

.collapsed-sidenavbar[b-z1wmrii8cn] {
    width: 5.5rem !important;
}

.fullBackground[b-z1wmrii8cn] {
    background-color: rgb(var(--primaryBackgroundColor));
    margin-left: 17.0rem;
    transition: .5s;
    margin-top: 5.5rem;
    padding-top: 1.5rem;
    position: relative;
    z-index: 0;
}

.loginFullBackground[b-z1wmrii8cn] {
    background-color: rgb(var(--primaryBackgroundColor));
    margin-left: 0;
    margin-top: 0;
}

.cornerBackground[b-z1wmrii8cn] {
    background-color: rgb(var(--navbarBackgroundColor));
}

.widen-content[b-z1wmrii8cn] {
    margin-left: 6rem !important;
    transition: .5s;
}

.widen-content-nosidebar[b-z1wmrii8cn] {
    margin-left: 0 !important;
    transition: .5s;
}

.top-row[b-z1wmrii8cn] {
    background-color: rgb(var(--navbarBackgroundColor));
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 5.0rem;
    display: flex;
    align-items: center;
    position: fixed;
    width: calc(100% - 0px);
    transition: .5s;
    z-index: 99;
}

.widen-top-row[b-z1wmrii8cn] {
    width: calc(100% - 0px) !important;
    transition: .5s;
}

.widen-top-row-nosidebar[b-z1wmrii8cn] {
    margin-left: 0 !important;
    width: 100% !important;
    transition: .5s;
}

.top-row[b-z1wmrii8cn]  a, .top-row[b-z1wmrii8cn]  .btn-link {
    white-space: nowrap;
    margin-left: 1.5rem;
    padding-right: .3em;
    padding-top: .3em;
    text-decoration: none;
}

    .top-row[b-z1wmrii8cn]  a:hover, .top-row[b-z1wmrii8cn]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-z1wmrii8cn]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

.normal-link[b-z1wmrii8cn] {
    color: rgb(var(--NavMenuTextColor));
    text-decoration: none;
    background-color: transparent;
}

@media (max-width: 640.98px) {
    .top-row[b-z1wmrii8cn]  a, .top-row[b-z1wmrii8cn]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-z1wmrii8cn] {
        flex-direction: row;
    }

    .sidebar[b-z1wmrii8cn] {
        width: 16.2rem;
        height: 100vh;
        position: fixed;
        top: 0;
        padding: 0px;
    }

    .top-row[b-z1wmrii8cn] {
        position: fixed;
        width: calc(100% - 0px);
        top: 0;
        z-index: 99;
        transition: .5s;
        box-shadow: 0 2px 5px rgba(0,0,0,.04);
    }

        .top-row.auth[b-z1wmrii8cn]  a:first-child {
            flex: 1;
            text-align: right;
            width: 0;
        }

    .top-row[b-z1wmrii8cn], article[b-z1wmrii8cn] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}
/* /Shared/NavMenu.razor.rz.scp.css */
*[b-9ljsrx7jwl] {
    --auxilRed: #E5332C;
    --green: #79B636;
    --orange: #FF7800;
    --blue: #1C93C4;
    --black: #2E2923;
    --platinum: #E6E6E6;
    --culturedwhite: #F9F9F9;
    --whitesmoke: #F4F4F4;
    --white: #FFFFFF;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border: none;
}

.top-row[b-9ljsrx7jwl] {
    height: 3.5rem;
    background-color: rgb(var(--navbarBackgroundColor));
    margin-left: 0rem;
    padding-right: 1.5rem !important;
    padding-bottom: 1.5rem !important;
}

.navbar-brand[b-9ljsrx7jwl] {
    font-size: 1.1rem;
}

    .navbar-brand .logo[b-9ljsrx7jwl] {
        max-width: 13.2rem;
        margin-right: 0.5rem;
        padding: 0.3rem;
        height: 50px
    }
.navbar-brand-mini .logo[b-9ljsrx7jwl] {
   
    height: 3.5rem;
}
.container-fluid[b-9ljsrx7jwl] {
    padding-left: 0;
}

.nav-link .custom-icon[b-9ljsrx7jwl] {
    width: 32px;
    /*margin-right: 1em;*/
}

.nav-item[b-9ljsrx7jwl] {
    font-size: 0.8rem !important;
    margin: 0px !important;
    margin-left: 10px !important;
    color: rgb(var(--NavMenuTextColor)) !important;
}

    .nav-item:first-of-type[b-9ljsrx7jwl] {
        padding-top: 1rem;
    }



.nav-link[b-9ljsrx7jwl] {
    color: rgb(var(--NavMenuTextColor)) !important;
    cursor: pointer;
}



.nav-item[b-9ljsrx7jwl]  a {
    color: rgb(var(--NavMenuTextColor)) !important;
    border-radius: 4px;
    height: 3rem;
    display: flex;
    align-items: center;
    line-height: 3rem;
}

    .nav-item[b-9ljsrx7jwl]  a:hover {
        color: rgb(var(--primaryButtonColor)) !important;
        background-color: rgba(0, 0, 0, .3);
        font-weight: 600;
    }

    .nav-item[b-9ljsrx7jwl]  a.active {
        color: rgb(var(--primaryButtonColor)) !important;
        background-color: rgba(0, 0, 0, .3);
        font-weight: 600;
    }

/* Sub-items were indented with stray `<span aria-hidden="true"> </span>` spacers in the markup, and
   only in some sections. */
.subnav-item[b-9ljsrx7jwl]  a {
    padding-left: 1rem;
}

.subnav-item[b-9ljsrx7jwl]  a:hover {
    background-color: rgba(0,0,0,.3);
    font-weight: 600;
    cursor: pointer;
}

.nav-item[b-9ljsrx7jwl]  a.parent-subnav {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.subnav-last-item[b-9ljsrx7jwl] {
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
}

.collapse-sidenav-wrapper[b-9ljsrx7jwl] {
    position: fixed;
    bottom: 0;
    margin-left: 20px;
    margin-bottom: 50px;
    display: flex;
    align-items: center;

}

.collapse-sidenav[b-9ljsrx7jwl] {
  
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
}

.collapse-sidenav .custom-icon[b-9ljsrx7jwl] {
    background-color: transparent !important;
    
}

.sidenav-item-name[b-9ljsrx7jwl] {
    position: fixed;
    transform: translateX(2em);
    visibility: visible;
    opacity: 1;
    transition: width .5s, visibility .5s, opacity .3s cubic-bezier(.99,-0.05,.59,.71);
}

.collapsed-sidenav[b-9ljsrx7jwl] {
    visibility: hidden;
    opacity: 0;
    width: 0;
    transition: display .5s, visibility .5s, opacity .3s cubic-bezier(.08,.67,.29,.96);
}

.collapsed-sidenav-icon[b-9ljsrx7jwl] {
    margin-right: 0 !important;
    transition: .5s;
}

.hide-text[b-9ljsrx7jwl] {
    visibility: hidden;
    opacity: 0;
    width: 0;
    display: none;
}

    .hide-text[b-9ljsrx7jwl]::before {
        width: 0;
    }

.collapsed-sidenav-button[b-9ljsrx7jwl] {
    transition: visibility 0s, opacity .6s cubic-bezier(.99,-0.05,.59,.71), width .6s, transform .5s;
}

    .collapsed-sidenav-button .custom-icon[b-9ljsrx7jwl] {
        transform: scaleX(-1);
        transition: transform .5s;
    }

.collapse-text[b-9ljsrx7jwl] {
    transition: visibility 0s, opacity .6s cubic-bezier(.99,-0.05,.59,.71), width .6s, transform .5s;
}

.custom-icon[b-9ljsrx7jwl] {
    transform: scaleX(1);
    transition: transform .5s;
    background-color: rgb(var(--primaryIconColor)) !important;
}

.bold-item[b-9ljsrx7jwl] {
    font-weight: 600;
}
