.stock-native-toolbar {
    align-items: center;
    display: flex;
    flex: 1 1 0;
    min-width: 0;
    width: auto;
}

/* Receiving list feedback is part of the content surface, so failures remain visible after a
   toast disappears and a refresh never replaces already loaded operational data. */
.stock-native-receiving-page,
.stock-native-receiving-page .stock-native-receiving-view {
    max-width: 100%;
    min-width: 0;
}

.stock-native-receiving-page {
    overflow-x: clip;
}

.stock-native-list-state {
    align-items: center;
    color: var(--bs-secondary-color);
    display: flex;
    gap: .65rem;
}

.stock-native-list-state-blocking {
    flex-direction: column;
    justify-content: center;
    min-height: max(240px, calc(100vh - 310px));
    padding: 2rem 1rem;
    text-align: center;
}

.stock-native-list-state-blocking > .ti {
    font-size: 2rem;
}

.stock-native-list-state-inline {
    background: var(--bs-info-bg-subtle);
    border: 1px solid var(--bs-info-border-subtle);
    border-radius: var(--bs-border-radius);
    color: var(--bs-info-text-emphasis);
    margin-bottom: .75rem;
    min-height: 40px;
    padding: .45rem .75rem;
}

.stock-native-list-state-error {
    background: var(--bs-danger-bg-subtle);
    border-color: var(--bs-danger-border-subtle);
    color: var(--bs-danger-text-emphasis);
}

.stock-native-list-state-inline .btn {
    margin-left: auto;
}

@media (max-width: 575.98px) {
    .stock-mobile-list {
        display: grid;
        gap: .625rem;
        min-width: 0;
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
    }

    .stock-mobile-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        min-width: 0;
        overflow: hidden;
        border: 1px solid var(--bs-border-color);
        border-radius: .625rem;
        background: var(--bs-body-bg);
        box-shadow: 0 .125rem .375rem rgba(47, 43, 61, .06);
    }

    .stock-mobile-card__main-cell {
        min-width: 0;
    }

    .stock-mobile-card__context-cell {
        display: grid;
        align-content: center;
        gap: .2rem;
        min-width: 0;
    }

    .stock-mobile-card__main {
        position: relative;
        display: grid;
        gap: .25rem;
        min-width: 0;
        min-height: 5.5rem;
        padding: .75rem 2rem .75rem .75rem;
        border: 0;
        background: transparent;
        color: inherit;
        text-align: start;
        width: 100%;
    }

    .stock-mobile-card__main:focus-visible {
        outline: 3px solid rgba(var(--bs-primary-rgb), .45);
        outline-offset: -3px;
    }

    .stock-mobile-card__header,
    .stock-mobile-card__facts {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: .5rem;
        min-width: 0;
    }

    .stock-mobile-card__identity,
    .stock-mobile-card__quantity {
        min-width: 0;
        overflow: hidden;
        color: var(--bs-heading-color);
        font-weight: 600;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .stock-mobile-card__status {
        flex: 0 1 auto;
        max-width: 45%;
        overflow: hidden;
        border-radius: 999px;
        padding: .125rem .5rem;
        background: rgba(var(--bs-secondary-rgb), .12);
        color: var(--bs-body-color);
        font-size: .75rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .stock-mobile-card__secondary,
    .stock-mobile-card__context {
        min-width: 0;
        overflow: hidden;
        color: var(--bs-secondary-color);
        font-size: .8125rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .stock-mobile-card__context {
        text-align: end;
    }

    /* O saldo é o produto desta página: numa lista de posições é o número que se veio ler.
       Partilhava a linha com o contexto em partes iguais e sobrava-lhe menos largura do que
       precisava — "Disponível: 1 410,431 kg" pede 156px e recebia 114 — por isso TODOS os
       cartões mostravam o número cortado ("Disponível: 1 41…"). O saldo passa a ficar com a
       largura de que precisa; o contexto, que é secundário, encolhe e, se não couber ao lado,
       passa para a linha de baixo em vez de roubar espaço ao número. */
    .stock-mobile-card__facts {
        flex-wrap: wrap;
    }

    .stock-mobile-card__facts > .stock-mobile-card__quantity {
        flex: 0 1 auto;
        max-width: 100%;
    }

    .stock-mobile-card__facts > .stock-mobile-card__context {
        flex: 1 1 auto;
    }

    /* The one line on the card that must not be cut: every other line truncates because it repeats
       something the row shows again when opened, and the warning does not. It wraps, and long words
       break rather than push the card sideways. */
    .stock-mobile-card__warning {
        min-width: 0;
        font-size: .75rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
        text-align: start;
        white-space: normal;
    }

    .stock-mobile-card__open {
        position: absolute;
        inset-inline-end: .75rem;
        top: 50%;
        transform: translateY(-50%);
        color: var(--bs-primary);
    }

    .stock-mobile-card__actions {
        display: flex;
        align-items: center;
        min-width: 2.75rem;
        border-inline-start: 1px solid var(--bs-border-color);
        padding: .25rem;
    }

    .stock-mobile-pager {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        gap: .5rem;
        padding: .75rem 0 max(1rem, env(safe-area-inset-bottom));
    }

    .stock-mobile-pager__summary {
        min-width: 0;
        text-align: center;
        font-size: .8125rem;
    }

    .stock-mobile-pager .btn {
        min-width: 2.75rem;
        min-height: 2.75rem;
    }

    /* Keep the receipt's identity, source document and actions in the mobile viewport. The other
       planning columns remain available on wider screens and in exports/column persistence. */
    .stock-native-receiving-mobile-grid {
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        max-width: 100%;
        overflow: hidden;
    }

    .stock-native-receiving-mobile-row {
        align-items: center;
        border-bottom: 1px solid var(--bs-border-color);
        display: grid;
        gap: .35rem;
        grid-template-columns: minmax(0, 1fr) minmax(0, .9fr) 80px;
        min-height: 58px;
        padding: .4rem .35rem;
    }

    .stock-native-receiving-mobile-row:last-child {
        border-bottom: 0;
    }

    .stock-native-receiving-mobile-row > [role="gridcell"],
    .stock-native-receiving-mobile-identity,
    .stock-native-receiving-mobile-document {
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
    }

    .stock-native-receiving-mobile-grid .open-button {
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
        width: 100%;
    }

    .stock-native-receiving-mobile-grid .open-button:focus-visible {
        border-radius: var(--bs-border-radius-sm);
        box-shadow: inset 0 0 0 2px var(--bs-primary);
        outline: 0;
    }

    .stock-native-receiving-mobile-grid .open-button,
    .stock-native-receiving-mobile-grid .stock-native-row-action {
        min-height: 24px;
    }

    .stock-native-receiving-mobile-grid .stock-native-row-action {
        height: 24px;
        min-width: 24px;
        padding: 0;
        width: 24px;
    }

    .stock-native-receiving-mobile-grid .stock-native-row-action-group {
        display: grid !important;
        grid-template-columns: repeat(3, 24px);
        justify-content: end !important;
        row-gap: .2rem;
    }

    .stock-native-receiving-mobile-grid.stock-mobile-list {
        border: 0;
        overflow: visible;
    }

    .stock-mobile-card.stock-native-receiving-mobile-row {
        grid-template-columns: minmax(0, 1fr) minmax(0, .9fr) 80px;
        min-height: 0;
        padding: 0;
        border: 1px solid var(--bs-border-color);
    }

    .stock-native-list-state-inline {
        align-items: flex-start;
        flex-wrap: wrap;
    }
}

/* AdvGrid renders this tooltip directly under body. Keeping it fixed prevents
   an invisible tooltip at its previous desktop coordinates from widening the
   document after a responsive viewport change. */
body > .adv-grid-floating-tooltip {
    position: fixed !important;
    max-width: calc(100vw - 1rem) !important;
}

body > .adv-grid-floating-tooltip .adv-grid-floating-tooltip-content {
    max-width: calc(100vw - 1rem) !important;
}

.stock-native-search {
    flex: 0 1 220px;
    max-width: 220px;
    min-width: 100px;
}

.stock-native-segments {
    display: none;
    flex: 0 0 auto;
}

.stock-native-segments .btn {
    align-items: center;
    gap: .45rem;
    justify-content: center;
    white-space: nowrap;
}

.stock-native-segments .badge {
    flex: 0 0 auto;
    margin-left: 0 !important;
    min-width: 1.35rem;
}

.stock-native-segment-menu {
    display: block;
}

/* At 1520px the four stock views do not fit beside the native actions, so
   retain the compact view selector until the content column is genuinely wide. */
@media (min-width: 1600px) {
    .stock-native-segments {
        display: inline-flex;
    }

    .stock-native-segment-menu {
        display: none;
    }
}

.stock-native-progress {
    background: rgba(47, 43, 61, .09);
    border-radius: 999px;
    height: 4px;
    margin-top: auto;
    overflow: hidden;
    width: 100%;
}

.stock-native-progress i {
    background: var(--bs-primary);
    border-radius: inherit;
    display: block;
    height: 100%;
}

.stock-native-progress.compact { margin-top: .3rem; max-width: 120px; }

.stock-native-grid {
    min-height: 250px;
}

.stock-native-tall-grid {
    min-height: 560px;
}

.stock-native-dashboard-grid,
.stock-native-mrp-grid {
    display: flex;
    flex-direction: column;
}

.stock-native-dashboard-grid {
    min-height: clamp(300px, calc(100vh - 420px), 520px);
}

.stock-native-mrp-grid {
    min-height: clamp(280px, calc(100vh - 610px), 420px);
}

.stock-native-grid .table {
    font-size: .8125rem;
    margin-bottom: 0;
    min-width: 980px;
}

.stock-native-grid .table > :not(caption) > * > * {
    border-bottom-color: var(--bs-border-color);
    padding: .7rem .65rem;
}

.stock-native-grid thead th {
    background: var(--bs-card-bg);
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 500;
    text-transform: none;
    white-space: nowrap;
}

.stock-native-grid tbody td {
    color: var(--bs-body-color);
}

.stock-native-grid td > strong,
.stock-native-grid td > small,
.stock-native-inner-table td > strong,
.stock-native-inner-table td > small {
    display: block;
}

.stock-native-grid td > strong {
    color: var(--bs-heading-color);
    font-weight: 500;
}

.stock-native-grid td > small,
.stock-native-inner-table td > small {
    color: var(--bs-secondary-color);
    font-size: .7rem;
    margin-top: .15rem;
}

.stock-native-clickable {
    cursor: pointer;
}

.stock-native-clickable:hover > td {
    background: rgba(0, 113, 205, .035);
}

.stock-native-row-actions {
    text-align: right;
    vertical-align: middle;
    white-space: nowrap;
    width: 1%;
}

.stock-native-row-actions > .d-flex {
    gap: .35rem;
}

.stock-native-line-actions {
    align-items: center;
    display: flex;
    gap: .25rem;
    justify-content: flex-end;
    white-space: nowrap;
}

.stock-native-line-actions > .d-flex {
    flex: 0 0 auto;
}

.stock-native-row-action-group {
    gap: .25rem;
}

.stock-native-row-action {
    align-items: center;
    border: 0;
    display: inline-flex;
    flex: 0 0 auto;
    justify-content: center;
    min-height: 24px;
    min-width: 24px;
    padding: 0;
}

.stock-native-identity {
    min-width: 180px;
}

.stock-native-identity > div strong,
.stock-native-identity > div small {
    display: block;
}

.stock-native-identity > div small {
    color: var(--bs-secondary-color);
    font-size: .7rem;
}

.stock-native-dialog-actions {
    display: flex;
    gap: .25rem;
    padding: 0 1.5rem;
}

.stock-native-operation {
    display: flex;
    flex-direction: column;
    min-height: calc(96vh - 185px);
}

.stock-native-operation.stock-native-operation-sbi {
    min-height: 0;
}

.stock-native-operation-tab-placeholder {
    display: none;
}

.stock-native-operation-sbi .stock-native-operation-body {
    margin: 0;
    max-width: none;
    padding: .75rem 0 1rem;
}

.stock-native-general-observation {
    margin-top: .5rem;
}

.stock-native-receipt-general-layout .stock-native-general-observation {
    height: clamp(220px, calc(100dvh - 540px), 460px);
}

.stock-native-inventory-recount-layout .stock-native-general-observation {
    height: clamp(280px, calc(100dvh - 390px), 520px);
}

@media (max-width: 767.98px) {
    .stock-native-inventory-recount-layout .stock-native-general-observation {
        height: 220px;
    }
}

@media (min-width: 768px) {
    .modal-dialog:has(.stock-native-receipt-general-layout) .modal-content {
        height: calc(100dvh - 3.5rem);
        max-height: calc(100dvh - 3.5rem);
        min-height: calc(100dvh - 3.5rem);
    }

    .modal-body:has(.stock-native-receipt-general-layout) {
        overflow-y: hidden;
    }

    .modal-body:has(.stock-native-receipt-general-layout) > .card {
        height: 100%;
        min-height: 0;
    }

    .modal-body:has(.stock-native-receipt-general-layout) > .card > .card-body {
        display: flex;
        flex-direction: column;
        height: 100%;
        min-height: 0;
    }

    .modal-body:has(.stock-native-receipt-general-layout) > .card > .card-body > .row.pt-2,
    .modal-body:has(.stock-native-receipt-general-layout) .stock-native-operation-sbi,
    .modal-body:has(.stock-native-receipt-general-layout) .stock-native-operation-body,
    .stock-native-receipt-general-layout,
    .stock-native-receipt-general-layout .stock-native-general-observation {
        flex: 1 1 auto;
        min-height: 0;
    }

    .modal-body:has(.stock-native-receipt-general-layout) .stock-native-operation-body,
    .stock-native-receipt-general-layout,
    .stock-native-receipt-general-layout .stock-native-general-observation {
        display: flex;
        flex-direction: column;
    }

    .stock-native-receipt-general-layout .stock-native-general-fields {
        flex: 0 0 auto;
    }

    .stock-native-receipt-general-layout .stock-native-general-observation {
        height: auto;
    }

    .stock-native-receipt-general-layout .stock-native-general-observation > .form-label {
        flex: 0 0 auto;
    }

    .stock-native-receipt-general-layout .stock-native-general-observation > .k-editor {
        flex: 1 1 auto;
        min-height: 160px;
    }
}

.stock-native-operation-sbi .stock-native-operation-body > header {
    align-items: center;
    margin-bottom: .75rem;
    padding-bottom: .75rem;
}

.stock-native-operation-sbi .stock-native-operation-body > header h5 {
    font-size: 1rem;
    margin: 0 0 .15rem;
}

.stock-native-operation-sbi .stock-native-operation-body > header p {
    font-size: .8rem;
}

.stock-native-receipt-lines-view {
    min-height: 0;
    min-width: 0;
}

.stock-native-receipt-lines-toolbar {
    align-items: center;
    display: flex;
    gap: .5rem;
    min-height: 48px;
    min-width: 0;
    padding-bottom: .65rem;
}

.stock-native-receipt-lines-toolbar > .btn {
    flex: 0 0 auto;
    min-height: 38px;
}

.stock-native-receipt-lines-search {
    flex: 0 1 260px;
    min-width: 210px;
}

.stock-native-receipt-lines-grid-tools {
    flex: 1 1 auto;
    min-width: 0;
}

.stock-native-receipt-lines-grid-tools .card-none,
.stock-native-receipt-lines-grid-tools .card-body-none,
.stock-native-receipt-lines-grid-tools .row,
.stock-native-receipt-lines-grid-tools .shadow-none {
    margin-bottom: 0 !important;
    margin-top: 0 !important;
    padding-bottom: 0 !important;
    padding-top: 0 !important;
}

.stock-native-receipt-lines-grid-tools .card-none,
.stock-native-receipt-lines-grid-tools .card-body-none {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.stock-native-receipt-lines-grid-tools .shadow-none > .d-flex {
    align-items: center;
}

.stock-native-receipt-line-form {
    min-height: 390px;
    padding: .75rem 0 1rem;
}

.stock-native-receipt-line-dialog .modal-body {
    overflow-x: hidden;
}

.stock-native-stepper {
    border-bottom: 1px solid var(--bs-border-color);
    display: flex;
    overflow-x: auto;
    padding: .25rem 0 .75rem;
}

.stock-native-stepper button {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--bs-secondary-color);
    display: flex;
    flex: 1 0 150px;
    gap: .55rem;
    min-width: 0;
    padding: .45rem 1rem;
    position: relative;
}

.stock-native-stepper button:not(:last-child)::after {
    background: var(--bs-border-color);
    content: "";
    height: 1px;
    position: absolute;
    right: -8px;
    top: 50%;
    width: 16px;
}

.stock-native-stepper button > span {
    align-items: center;
    border: 1px solid var(--bs-border-color);
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 28px;
    height: 28px;
    justify-content: center;
}

.stock-native-stepper button strong {
    font-size: .75rem;
    font-weight: 500;
    white-space: nowrap;
}

.stock-native-stepper button.active,
.stock-native-stepper button.complete { color: var(--bs-primary); }
.stock-native-stepper button.active > span,
.stock-native-stepper button.complete > span { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }

.stock-native-operation-body {
    margin: 0 auto;
    max-width: 1280px;
    padding: 1.5rem 1rem 2rem;
    width: 100%;
}

.stock-native-operation-body > header {
    align-items: flex-start;
    border-bottom: 1px solid var(--bs-border-color);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
}

.stock-native-operation-body > header small {
    color: var(--bs-primary);
    font-size: .7rem;
    font-weight: 600;
}

.stock-native-operation-body > header h5 { margin: .3rem 0; }
.stock-native-operation-body > header p { color: var(--bs-secondary-color); margin: 0; }

.stock-native-form-grid {
    display: grid;
    gap: .9rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.stock-native-form-grid.compact { margin-top: 1rem; }

.stock-native-form-grid .stock-native-combo-field {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
}

.stock-native-receipt-line-form > .row > .stock-native-combo-field {
    display: flex;
    flex-direction: column;
    gap: .3125rem;
    min-width: 0;
}

.stock-native-form-grid .stock-native-combo-field > .k-input,
.stock-native-form-grid .stock-native-combo-field > .k-picker,
.stock-native-receipt-line-form > .row > .stock-native-combo-field > .k-input,
.stock-native-receipt-line-form > .row > .stock-native-combo-field > .k-picker {
    width: 100%;
}

.stock-native-form-grid > div > .form-label + .k-input,
.stock-native-form-grid > div > .form-label + .k-picker {
    display: flex;
    width: 100%;
}

.stock-native-form-grid > div > .form-label {
    display: block;
}

.stock-native-form-grid > label {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
}

.stock-native-form-grid > label.wide { grid-column: 1 / -1; }
.stock-native-form-grid > label.double { grid-column: span 2; }

.stock-native-form-error {
    align-items: flex-start;
    color: var(--bs-danger);
    display: flex;
    font-size: .8125rem;
    gap: .4rem;
    grid-column: 1 / -1;
    line-height: 1.35;
    min-width: 0;
}

.stock-native-form-error > i {
    flex: 0 0 auto;
    font-size: 1rem;
    margin-top: .05rem;
}

.stock-native-form-grid textarea {
    min-height: 86px;
    resize: vertical;
}

.stock-native-check {
    align-items: flex-start;
    flex-direction: row !important;
    gap: .5rem !important;
    margin-bottom: 0;
    min-height: 40px;
    padding: .5rem .625rem;
}

.stock-native-check input {
    flex: 0 0 auto;
    height: 1.2em;
    margin: .15rem 0 0;
    min-height: 1.2em;
    width: 1.2em;
}

.stock-native-check .form-check-input:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.stock-native-check .form-check-label {
    line-height: 1.4;
    overflow-wrap: anywhere;
}

/* Sem tecto no painel. A janela e 100vw/96vh desde que o dialogo passou a
   DialogSize.FullScreen (AdvDialog.razor.cs:159 -> classe modal-fullscreen; a largura vem da
   classe, o DialogWidth de :187 nunca chega ao markup), e quem pede a largura e o conteudo,
   nao o passo: este painel leva a grelha das linhas da expedicao, que declara 1172px de
   colunas no Picking e 1182px na Embalagem contando as duas que o AdvGrid injecta
   (AdvGrid.razor:70, 32px, e :75, 35px). Os 1120px vinham de quando o dialogo era MediumLarge
   (modal-xl, 85vw): coincidiam com a janela e nao se viam. Em ecra inteiro deitavam fora 246px
   a 1430px e 336px a 1520px e obrigavam a grelha a ter barra horizontal com espaco a sobrar a
   direita. Nota para quem procurar o corte noutro sitio: o max-width:1280px da regra
   .stock-native-operation-body (mais acima) nunca se aplica neste dialogo, porque
   .stock-native-operation-sbi .stock-native-operation-body ja o poe a none com especificidade
   maior. Este era o unico corte. */
.stock-native-scan-panel {
    max-width: none;
}

/* O limite legivel nao desaparece, muda de sitio: sai do painel e fica onde faz falta. O
   painel serve a expedicao — que quer a janela toda para a grelha — mas tambem o consumo, a
   producao, a transferencia, o acerto, o putaway, o reabastecimento e a recontagem, que dentro
   dele so teem a barra de leitura e este formulario. O formulario e de 4 colunas (regra acima,
   repeat(4, 1fr)): a 1858px cada campo ficaria com ~465px, e um campo de quantidade com 465px
   e pior do que um com 280px. Assim esses modos ficam pixel a pixel como estao hoje.
   A barra de leitura segue o mesmo criterio em vez de esticar sempre: quando ha formulario por
   baixo alinha com ele, e quando nao ha — so na expedicao, onde ShowsScanForm e false — vai a
   largura toda, alinhada com a grelha, que e o que foi pedido. */
.stock-native-scan-panel > .stock-native-form-grid,
.stock-native-scan-panel:has(> .stock-native-form-grid) > .stock-native-scan-input,
.stock-native-scan-panel > .stock-native-adjustment-impact,
.stock-native-scan-panel > .stock-native-adjustment-impact-status {
    max-width: 1120px;
}

.stock-native-scan-heading {
    align-items: center;
    display: flex;
    gap: .75rem;
    margin-bottom: 1rem;
}

.stock-native-scan-heading > span {
    align-items: center;
    background: rgba(0, 113, 205, .1);
    border-radius: .5rem;
    color: var(--bs-primary);
    display: inline-flex;
    flex: 0 0 44px;
    height: 44px;
    justify-content: center;
}

.stock-native-scan-heading strong,
.stock-native-scan-heading small { display: block; }
.stock-native-scan-heading small { color: var(--bs-secondary-color); }

/* A borda era azul em permanencia, o que nao acontece em mais nenhum campo do SBI
   e fazia o campo parecer sempre focado. Em repouso passa a cinzenta como qualquer
   outro input; o azul fica reservado ao foco. O :focus-within e indispensavel: o
   input interior tem border 0 e box-shadow none (regras abaixo), por isso sem esta
   regra o campo deixaria de dar qualquer sinal de onde esta o cursor. */
.stock-native-scan-input {
    align-items: stretch;
    border: 2px solid var(--bs-border-color);
    border-radius: .6rem;
    display: flex;
    min-height: 58px;
    overflow: hidden;
}

/* Na contagem a barra e filha directa do layout geral, que nao tem espacamento proprio, por
   isso ficava colada ao separador em cima e aos campos em baixo. As outras vivem dentro do
   .stock-native-receipt-line-form, que ja da padding .75rem/1rem (regra acima). Igualo os
   dois valores aqui em vez de os pôr na .stock-native-scan-input, que somaria ao padding
   que essas ja tem. */
.stock-native-general-layout > .stock-native-scan-input {
    margin-bottom: 1rem;
    margin-top: .75rem;
}

.stock-native-scan-input:focus-within {
    border-color: var(--bs-primary);
}

.stock-native-scan-input:focus-within > i {
    color: var(--bs-primary);
}

.stock-native-scan-input > i {
    align-self: center;
    color: var(--bs-secondary-color);
    font-size: 1.3rem;
    margin-left: 1rem;
}

.stock-native-scan-input input {
    flex: 1 1 auto;
    font-size: 1rem;
    font-weight: 500;
    min-width: 0;
    box-shadow: none !important;
}

.stock-native-scan-input .form-control {
    border: 0 !important;
}

.stock-native-shipping-stage {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .45rem;
    margin-top: 1rem;
    padding: 1rem;
}

.stock-native-shipping-stage > header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: .85rem;
}

.stock-native-shipping-stage > header strong,
.stock-native-shipping-stage > header small {
    display: block;
}

.stock-native-shipping-stage > header small {
    color: var(--bs-secondary-color);
    margin-top: .15rem;
}

.stock-native-conformity {
    align-items: center;
    border-top: 1px solid var(--bs-border-color);
    display: flex;
    justify-content: space-between;
    margin-top: 1.1rem;
    padding-top: 1rem;
}

.stock-native-nonconformity {
    background: rgba(234, 84, 85, .035);
    border: 1px solid rgba(234, 84, 85, .18);
    border-radius: .5rem;
    margin-top: 1rem;
    padding: 1rem;
}

.stock-native-evidence {
    align-items: flex-start;
    border-top: 1px solid var(--bs-border-color);
    display: grid;
    gap: .75rem;
    grid-template-columns: 1fr auto;
    margin-top: 1rem;
    padding-top: 1rem;
}

.stock-native-evidence > div > small { color: var(--bs-secondary-color); display: block; }
.stock-native-evidence-actions { display: flex; gap: .5rem; }
.stock-native-evidence-actions label { cursor: pointer; margin: 0; }
.stock-native-evidence-actions .input-file,
.stock-native-evidence-actions input[type=file] { display: none; }

.stock-native-evidence-list {
    display: grid;
    gap: .5rem;
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stock-native-evidence-list article {
    align-items: center;
    background: var(--bs-card-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .4rem;
    display: flex;
    gap: .6rem;
    min-width: 0;
    padding: .65rem;
}

.stock-native-evidence-list article > i { color: var(--bs-primary); font-size: 1.4rem; }
.stock-native-evidence-list article > div { flex: 1 1 auto; min-width: 0; }
.stock-native-evidence-list article strong,
.stock-native-evidence-list article small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stock-native-evidence-list article small { color: var(--bs-secondary-color); }
.stock-native-evidence-list article button { background: transparent; border: 0; color: var(--bs-secondary-color); }

.stock-native-recommendation {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
}

.stock-native-recommendation > span {
    align-items: center;
    background: rgba(0, 113, 205, .1);
    border-radius: .5rem;
    color: var(--bs-primary);
    display: inline-flex;
    flex: 0 0 48px;
    height: 48px;
    justify-content: center;
}

.stock-native-recommendation > div { flex: 1 1 auto; }
.stock-native-recommendation small { color: var(--bs-primary); font-weight: 600; }
.stock-native-recommendation p { color: var(--bs-secondary-color); }

.stock-native-alternatives {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stock-native-alternatives button {
    background: var(--bs-card-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .45rem;
    color: var(--bs-heading-color);
    font-weight: 500;
    padding: .8rem;
    text-align: left;
}

.stock-native-alternatives button.active {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .1rem rgba(0, 113, 205, .1);
}

.stock-native-alternatives button small { display: block; margin-top: .2rem; }

.stock-native-confirmation {
    margin: 2rem auto;
    max-width: 900px;
    text-align: center;
}

.stock-native-confirmation > i {
    color: #1b9d60;
    font-size: 3rem;
}

.stock-native-confirmation p { color: var(--bs-secondary-color); }

/* A confirmação MES tem uma janela estreita: as ações ficam alinhadas e
   separadas, sem a quebra irregular das margens do footer Bootstrap. */
[data-testid="mes-package-print-confirmation"] {
    line-height: 1.55;
}

[data-testid="mes-package-print-confirmation"] > p:first-child {
    margin-bottom: .875rem;
}

[data-testid="mes-package-print-confirmation"] strong {
    color: var(--bs-heading-color);
    overflow-wrap: anywhere;
}

[data-testid="mes-package-print-confirmation"] > .text-body-secondary {
    color: var(--bs-body-color) !important;
    font-size: .875rem;
    line-height: 1.5;
}

.modal-content:has(> .modal-body > [data-testid="mes-package-print-confirmation"]) > .modal-body {
    padding-bottom: 1.25rem;
}

.modal-content:has(> .modal-body > [data-testid="mes-package-print-confirmation"]) > .modal-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
    padding-top: 0;
}

.modal-content:has(> .modal-body > [data-testid="mes-package-print-confirmation"]) > .modal-footer > .btn {
    justify-content: center;
    margin: 0;
    min-height: 44px;
    min-width: 0;
    padding: .625rem .875rem;
    white-space: normal;
    width: 100%;
}

.stock-native-detail-summary {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 1rem 0;
}

.stock-native-detail-summary > span {
    background: var(--bs-card-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .45rem;
    display: flex;
    flex-direction: column;
    gap: .25rem;
    min-height: 72px;
    padding: .8rem;
    text-align: left;
}

.stock-native-detail-summary small { color: var(--bs-secondary-color); }
.stock-native-dialog-footer { align-items: center; display: flex; gap: .75rem; width: 100%; }
.stock-native-dialog-footer > span { color: var(--bs-secondary-color); font-size: .75rem; }
.stock-native-dialog-footer > .stock-native-progress { max-width: 140px; }

.stock-native-history,
.stock-native-entity-detail,
.stock-native-warehouse-manage,
.stock-native-quality-decision { margin: 0 auto; max-width: 1320px; width: 100%; }

.stock-native-timeline {
    border-left: 1px solid var(--bs-border-color);
    margin-left: 1rem;
}

.stock-native-timeline article {
    display: flex;
    gap: .75rem;
    margin-left: -.75rem;
    padding: 0 0 1rem;
}

.stock-native-timeline article > i {
    align-items: center;
    background: var(--bs-card-bg);
    border: 1px solid var(--bs-primary);
    border-radius: 50%;
    color: var(--bs-primary);
    display: inline-flex;
    flex: 0 0 24px;
    height: 24px;
    justify-content: center;
}

.stock-native-timeline article strong,
.stock-native-timeline article span,
.stock-native-timeline article small { display: block; }
.stock-native-timeline article span,
.stock-native-timeline article small { color: var(--bs-secondary-color); }

.stock-native-empty {
    align-items: center;
    color: var(--bs-secondary-color);
    display: flex;
    flex-direction: column;
    gap: .35rem;
    justify-content: center;
    min-height: 220px;
    text-align: center;
}

.stock-native-empty.compact { min-height: 90px; }
.stock-native-empty i { font-size: 2rem; }

/* The state is a badge, so it cannot go through AdvTextBox. This matches the disabled
   field beside it: same height, same muted background. */
.form-control.stock-receipt-state-field {
    align-items: center;
    background-color: var(--bs-secondary-bg);
    display: flex;
    min-height: 38px;
}

/* A consultation field is `readonly` rather than `disabled` so that Tab still reaches it and a
   screen reader can announce the label. `readonly` leaves the control white, so this restores the
   exact resting appearance the theme gives `.form-control:disabled`: the background and border of
   core.css plus the `color: inherit` that sbi.min.css forces on top of it. The `:not(:focus)`
   guard keeps the theme's focus ring visible — without it these declarations would outrank
   `.form-control:focus`, which has the same specificity and is declared earlier. */
.form-control.stock-readonly-input {
    color: inherit;
    opacity: 1;
}

.form-control.stock-readonly-input:not(:focus) {
    background-color: var(--bs-gray-50);
    border-color: color-mix(in sRGB, var(--bs-base-color) 24%, var(--bs-paper-bg));
}

/* Free text in a consultation dialog. Same idea, wrapping over several lines. */
.stock-receipt-readonly-notes {
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

/* Observacoes vindas do editor de texto formatado: sao marcacao, nao texto pre-formatado.
   Com o pre-wrap herdado, cada <p> ganhava a mudanca de linha do HTML mais a sua propria
   margem e a nota aparecia com um paragrafo em branco entre cada linha. */
.stock-receipt-readonly-notes-rich { white-space: normal; }
.stock-receipt-readonly-notes-rich > :first-child { margin-top: 0; }
.stock-receipt-readonly-notes-rich > :last-child { margin-bottom: 0; }

.stock-receipt-attachment-search { max-width: 260px; }

.stock-native-inner-table {
    border: 1px solid var(--bs-border-color);
    border-radius: .45rem;
}

.stock-native-inner-table .table { margin: 0; min-width: 800px; }
.stock-native-subtoolbar { align-items: center; display: flex; gap: .5rem; }
.stock-native-location-editor { background: rgba(0,113,205,.035); border: 1px solid rgba(0,113,205,.15); border-radius: .5rem; margin-top: 1rem; padding: 1rem; }
.stock-native-warehouse-status {
    align-items: center;
    display: flex;
    padding-top: 1.45rem;
}

.stock-native-movement-types > p {
    color: var(--bs-secondary-color);
}

.stock-native-movement-types > div {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stock-native-movement-types > div > button {
    align-items: center;
    background: var(--bs-card-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .45rem;
    color: var(--bs-body-color);
    display: flex;
    gap: .75rem;
    padding: 1rem;
    text-align: left;
}

.stock-native-movement-types > div > button:hover { border-color: var(--bs-primary); }
.stock-native-movement-types > div > button > span { align-items: center; background: rgba(0,113,205,.1); border-radius: .45rem; color: var(--bs-primary); display: inline-flex; flex: 0 0 44px; height: 44px; justify-content: center; }
.stock-native-movement-types > div > button > span.success { background: rgba(40,199,111,.12); color: #188b55; }
.stock-native-movement-types > div > button > span.danger { background: rgba(234,84,85,.12); color: #c8323a; }
.stock-native-movement-types > div > button > span.warning { background: rgba(255,159,67,.15); color: #a96208; }
.stock-native-movement-types > div > button > div { flex: 1 1 auto; }
.stock-native-movement-types > div > button strong,
.stock-native-movement-types > div > button small { display: block; }
.stock-native-movement-types > div > button small { color: var(--bs-secondary-color); margin-top: .25rem; }
.stock-native-movement-types > footer { color: var(--bs-secondary-color); margin-top: 1rem; }
.stock-native-movement-types > footer i { color: #188b55; margin-right: .35rem; }

@media (max-width: 1599.98px) {
    .stock-native-segments button { padding-left: .75rem; padding-right: .75rem; }
}

@media (max-width: 575.98px) {
    .stock-native-toolbar .header-bar-text { display: none; }
}

@media (max-width: 1199.98px) {
    .stock-native-dashboard-grid {
        min-height: clamp(300px, calc(100vh - 520px), 420px);
    }

    .stock-native-mrp-grid {
        min-height: 300px;
    }

    /* Keep the wide MRP controls inside their own toolbar lane. The data grid retains its
       independent horizontal scrollbar instead of widening the whole application shell. */
    .stock-native-mrp-page {
        max-width: 100%;
        overflow-x: clip;
    }

    .stock-native-mrp-page .sbi-list-tools {
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: thin;
    }

    .stock-native-mrp-page .sbi-list-tools > .d-flex {
        min-width: max-content;
    }
}

@media (max-width: 991.98px) {
    .stock-native-toolbar {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .stock-native-search {
        flex: 1 1 240px;
        margin-left: 0 !important;
        max-width: none;
    }

    .stock-native-segments {
        flex: 1 1 100%;
        margin-left: 0;
        max-width: 100%;
        min-width: 0;
        overflow-x: auto;
        width: 100%;
    }

    .stock-native-segments button {
        flex: 1 0 auto;
    }

    .stock-native-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stock-native-detail-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* Os três cartões do acerto leem-se juntos (atual, diferença, após); a duas colunas o
       terceiro ficava sozinho numa linha a meia largura. */
    .stock-native-detail-summary.stock-native-adjustment-impact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .stock-native-operation { min-height: calc(100vh - 185px); }
}

@media (max-width: 575.98px) {
    .stock-native-overview-page .sbi-list-tools,
    .stock-native-receiving-page .sbi-list-tools,
    .stock-native-shipping-page .sbi-list-tools,
    .stock-native-inventory-page .sbi-list-tools,
    .stock-native-mrp-page .sbi-list-tools,
    .stock-native-warehouse-page .sbi-list-tools {
        max-width: 100%;
        min-width: 0;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: thin;
    }
    .stock-native-overview-page .sbi-list-tools > .d-flex,
    .stock-native-receiving-page .sbi-list-tools > .d-flex,
    .stock-native-shipping-page .sbi-list-tools > .d-flex,
    .stock-native-inventory-page .sbi-list-tools > .d-flex,
    .stock-native-mrp-page .sbi-list-tools > .d-flex,
    .stock-native-warehouse-page .sbi-list-tools > .d-flex {
        min-width: max-content;
        width: max-content !important;
    }
    .stock-native-toolbar > .ml-1,
    .stock-native-toolbar > .dropdown.ml-1 { margin-left: 0 !important; }
    .stock-native-toolbar .btn-content-menu { padding-left: .5rem !important; padding-right: .5rem !important; }
    .stock-native-segments button { min-width: 118px; }
    .stock-native-form-grid,
    .stock-native-detail-summary,
    .stock-native-alternatives,
    .stock-native-evidence-list,
    .stock-native-movement-types > div { grid-template-columns: 1fr; }
    .stock-native-detail-summary.stock-native-adjustment-impact { grid-template-columns: 1fr; }
    .stock-native-form-grid > label.double { grid-column: auto; }
    .stock-native-conformity { align-items: flex-start; flex-direction: column; gap: .65rem; }
    .stock-native-shipping-stage > header { align-items: flex-start; }
    .stock-native-inventory-alert { align-items: flex-start !important; flex-wrap: wrap; }
    .stock-native-evidence { grid-template-columns: 1fr; }
    .stock-native-evidence-actions { align-items: stretch; flex-direction: column; }
    .stock-native-evidence-list { grid-column: auto; }
    .stock-native-priority-alert {
        align-items: flex-start !important;
        flex-wrap: wrap;
    }
    .stock-native-dialog-actions { overflow-x: auto; padding: 0 .75rem; }
    .stock-native-operation-body { padding-left: .25rem; padding-right: .25rem; }
    .stock-native-dialog-footer { flex-wrap: wrap; }
    .stock-native-dialog-footer > .stock-native-progress { order: 3; max-width: none; width: 100%; }
    .stock-native-warehouse-status { padding-top: .35rem; }
    .stock-native-receipt-lines-toolbar { align-items: stretch; flex-wrap: wrap; }
    .stock-native-receipt-lines-search { flex: 1 1 100%; min-width: 150px; }
    .stock-native-receipt-lines-grid-tools { flex: 1 1 100%; overflow-x: auto; }
}
.stock-native-overview-page,
.stock-native-mrp-page,
.stock-warehouses-page {
    max-width: 100%;
    overflow-x: clip;
}

.stock-native-mrp-page .sbi-list-page,
.stock-native-mrp-planning-dialog .stock-native-mrp-planning-tabs,
.stock-native-mrp-planning-dialog .stock-native-receipt-lines-toolbar,
.stock-native-mrp-planning-dialog .k-grid {
    max-width: 100%;
    min-width: 0;
}

@media (max-width: 575.98px) {
    .stock-warehouses-page .sbi-list-page {
        margin-left: 0;
        margin-right: 0;
    }

    .stock-warehouses-page .sbi-list-tools > .d-flex {
        flex-wrap: wrap;
        min-width: 0;
        row-gap: 0.35rem;
        width: 100% !important;
    }
}

/* Stock calendar: the scheduler paints appointments with a solid background and
   white text. The module renders its own status-toned pill inside, so the wrapper
   must stay neutral for the pill's own foreground colour to remain readable. */
.stock-native-calendar .e-schedule .e-appointment,
.stock-native-calendar .e-schedule .e-appointment.e-appointment-border,
.stock-native-calendar .k-scheduler .k-event {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.stock-native-calendar .e-schedule .e-appointment .e-appointment-details {
    padding: 0 !important;
}

.stock-native-calendar .stock-native-calendar-pill {
    align-items: center;
    display: flex;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.35;
    min-height: 1.75rem;
    min-width: 0;
    overflow: hidden;
    padding: 0.15rem 0.45rem;
    pointer-events: none;
    width: 100%;
}

.stock-native-calendar .k-event {
    min-height: 24px;
    min-width: 24px;
}

/* O tema do Telerik posiciona `.k-event-actions` em absoluto, EXCEPTO quando ela é a primeira
   filha do evento — e é isso que acontece quando ela leva a seta de continuação:
       .k-event .k-event-actions:first-child { float: left; position: relative; ... }
   Um float não cabe ao lado da pílula, que é `display: flex; width: 100%` e por isso abre um
   contexto de formatação próprio: a pílula é empurrada para baixo dele. Medido na Cronologia,
   17 px abaixo do topo de uma caixa de 25 px com `overflow: hidden` — restava a fatia de cima
   do ícone de estado, os tais "^" e "~" sem legenda nenhuma.
   A seta volta ao absoluto, como nos outros casos, e deixa de ocupar espaço; a pílula mantém a
   largura toda (é essa largura que receiving-mobile-accessibility-regressions mede) e só recua
   o texto quando há mesmo uma seta para não lhe passar por cima.
   Só nas vistas em que o `.k-event` do Telerik já é `position: absolute`. No mês em mobile ele
   é estático e uma filha absoluta escaparia para um antepassado distante.
   As contagens deixaram de atravessar a meia-noite, mas as receções e as expedições marcam
   relógio verdadeiro e continuam a poder fazê-lo — por isso a correcção fica no componente. */
.stock-native-calendar-day .k-event > .k-event-actions:first-child,
.stock-native-calendar-week .k-event > .k-event-actions:first-child,
.stock-native-calendar-timeline .k-event > .k-event-actions:first-child {
    align-items: center;
    display: flex;
    float: none;
    inset-block: 0;
    inset-inline-start: .2rem;
    margin: 0;
    pointer-events: none;
    position: absolute;
    right: auto;
    z-index: 3;
}

/* `:has()` e não `:not(:empty)`: a span existe sempre, vazia, nos eventos que não continuam. */
.stock-native-calendar-day .k-event:has(> .k-event-actions:first-child *) .stock-native-calendar-pill,
.stock-native-calendar-week .k-event:has(> .k-event-actions:first-child *) .stock-native-calendar-pill,
.stock-native-calendar-timeline .k-event:has(> .k-event-actions:first-child *) .stock-native-calendar-pill {
    padding-inline-start: 1.3rem;
}

.stock-native-calendar .k-event:focus-visible {
    border-radius: .3rem;
    outline: 2px solid var(--bs-primary);
    outline-offset: 1px;
}

.stock-native-calendar .stock-native-calendar-pill.bg-label-success {
    color: var(--bs-success-text-emphasis) !important;
}

.stock-native-calendar .stock-native-calendar-pill.bg-label-info {
    color: var(--bs-info-text-emphasis) !important;
}

.stock-native-calendar .stock-native-calendar-pill.bg-label-warning {
    color: var(--bs-warning-text-emphasis) !important;
}

.stock-native-calendar .stock-native-calendar-pill.bg-label-danger {
    color: var(--bs-danger-text-emphasis) !important;
}

.stock-native-calendar .stock-native-calendar-pill.bg-label-primary {
    color: var(--bs-primary-text-emphasis) !important;
}

.stock-native-calendar .stock-native-calendar-summary {
    background: var(--bs-info-bg-subtle) !important;
    color: var(--bs-info-text-emphasis) !important;
    font-weight: 600;
}

.stock-native-calendar .stock-native-calendar-pill > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1199.98px) {
    /* AdvContent already exposes the SBI view selector above the calendar. Keep
       that single control visible and remove Telerik's duplicate responsive
       selector, which otherwise has the same accessible name. */
    .stock-native-calendar .k-scheduler-toolbar .k-toolbar-item:has(.k-views-dropdown) {
        display: none !important;
    }

    .sbi-list-tools:has(.stock-calendar-view-selector) {
        max-width: 100%;
        overflow: visible;
    }

    .sbi-list-tools > .d-flex:has(.stock-calendar-view-selector) {
        align-items: center;
        flex-wrap: wrap;
        min-width: 0;
        row-gap: .35rem;
        width: 100% !important;
    }

    .sbi-list-tools > .d-flex:has(.stock-calendar-view-selector) > .ml-1:has(.stock-native-inline-filters) {
        flex: 1 1 220px;
        min-width: 0;
    }

    .sbi-list-tools:has(.stock-calendar-view-selector) .stock-native-inline-filters {
        flex-wrap: wrap;
        min-width: 0;
        width: 100%;
    }

    .sbi-list-tools:has(.stock-calendar-view-selector) .stock-native-search {
        flex: 1 1 160px;
        max-width: none;
        min-width: 0;
    }

    .stock-calendar-view-selector {
        flex: 0 0 auto;
        margin-left: auto !important;
    }
}

@media (max-width: 991.98px) {
    .stock-native-calendar {
        margin-left: 0;
        margin-right: 0;
    }

    .stock-native-calendar > .control-section {
        max-width: 100%;
        overflow-x: auto;
        padding-left: 0;
        padding-right: 0;
        scrollbar-width: thin;
    }

    /* Mobile opens in Day view. Dense slots are reduced to two items and one
       summary, so the primary mobile view can fit without hiding its toolbar.
       Multi-column views retain an internal horizontal scroll. */
    .stock-native-calendar-day .k-scheduler,
    .stock-native-calendar-day .e-schedule {
        min-width: 100%;
    }

    .stock-native-calendar-week .k-scheduler,
    .stock-native-calendar-week .e-schedule {
        min-width: 760px;
    }

    .stock-native-calendar-month .k-scheduler,
    .stock-native-calendar-month .e-schedule {
        min-width: 680px;
    }

    .stock-native-calendar-timeline .k-scheduler,
    .stock-native-calendar-timeline .e-schedule {
        min-width: 100%;
    }

    .stock-native-calendar .stock-native-calendar-pill {
        font-size: 0.8125rem;
        min-height: 2rem;
        /* Telerik applies a small scale correction inside the scheduler body;
           1.75rem preserves a measured touch target of at least 24 CSS px. */
        min-width: 1.75rem;
        padding: 0.25rem 0.5rem;
    }
}

@media (max-width: 575.98px) {
    .stock-receipt-detail-tabs .e-tab-header {
        max-width: 100%;
        overflow-x: auto !important;
        overscroll-behavior-x: contain;
        scrollbar-width: thin;
        touch-action: pan-x;
    }

    .stock-receipt-detail-tabs .e-tab-header .e-toolbar-items {
        min-width: max-content;
        width: max-content !important;
    }
}

@media (max-width: 575.98px) {
    /* Keep the native SBI toolbar operable without a private horizontal
       scrollbar. Primary actions stay on the first row and the existing
       secondary icon actions wrap naturally to a second row. */
    .stock-native-receiving-page .sbi-list-tools,
    .stock-native-shipping-page .sbi-list-tools,
    .stock-native-inventory-page .sbi-list-tools,
    .stock-native-overview-page .sbi-list-tools,
    .stock-native-mrp-page .sbi-list-tools {
        max-width: 100%;
        overflow: visible;
    }

    .stock-native-receiving-page .sbi-list-tools > .d-flex,
    .stock-native-shipping-page .sbi-list-tools > .d-flex,
    .stock-native-inventory-page .sbi-list-tools > .d-flex,
    .stock-native-overview-page .sbi-list-tools > .d-flex,
    .stock-native-mrp-page .sbi-list-tools > .d-flex {
        align-items: center;
        flex-wrap: wrap;
        min-width: 0;
        row-gap: 0.25rem;
        width: 100% !important;
    }

    .stock-native-receiving-page .sbi-list-tools > .d-flex > .ml-2,
    .stock-native-shipping-page .sbi-list-tools > .d-flex > .ml-2,
    .stock-native-inventory-page .sbi-list-tools > .d-flex > .ml-2,
    .stock-native-overview-page .sbi-list-tools > .d-flex > .ml-2,
    .stock-native-mrp-page .sbi-list-tools > .d-flex > .ml-2 {
        flex: 0 0 auto;
    }

    .stock-native-receiving-page .sbi-list-tools > .d-flex > .ml-1:has(.stock-native-inline-filters),
    .stock-native-shipping-page .sbi-list-tools > .d-flex > .ml-1:has(.stock-native-inline-filters),
    .stock-native-inventory-page .sbi-list-tools > .d-flex > .ml-1:has(.stock-native-inline-filters),
    .stock-native-overview-page .sbi-list-tools > .d-flex > .ml-1:has(.stock-native-inline-filters),
    .stock-native-mrp-page .sbi-list-tools > .d-flex > .ml-1:has(.stock-native-inline-filters) {
        flex: 1 1 230px;
        min-width: 0;
    }

    .stock-native-receiving-page .stock-native-inline-filters,
    .stock-native-shipping-page .stock-native-inline-filters,
    .stock-native-inventory-page .stock-native-inline-filters,
    .stock-native-overview-page .stock-native-inline-filters,
    .stock-native-mrp-page .stock-native-inline-filters {
        min-width: 0;
        width: 100%;
    }

    .stock-native-receiving-page .stock-native-inline-filters .stock-native-search,
    .stock-native-shipping-page .stock-native-inline-filters .stock-native-search,
    .stock-native-inventory-page .stock-native-inline-filters .stock-native-search,
    .stock-native-overview-page .stock-native-inline-filters .stock-native-search,
    .stock-native-mrp-page .stock-native-inline-filters .stock-native-search {
        flex: 1 1 150px;
        max-width: none;
        min-width: 0;
    }

    .stock-native-inventory-page .stock-native-inline-filters,
    .stock-native-overview-page .stock-native-inline-filters,
    .stock-native-mrp-page .stock-native-inline-filters {
        flex-wrap: wrap;
        row-gap: 0.25rem;
    }

    .stock-native-inventory-page .stock-native-inline-filters .stock-native-search,
    .stock-native-overview-page .stock-native-inline-filters .stock-native-search,
    .stock-native-mrp-page .stock-native-inline-filters .stock-native-search {
        flex-basis: 100%;
    }

    .stock-native-inventory-page .stock-native-inline-filters > .btn-group,
    .stock-native-overview-page .stock-native-inline-filters > .btn-group,
    .stock-native-mrp-page .stock-native-inline-filters > .btn-group {
        margin-left: 0 !important;
    }
}

/* Os passos do diálogo de operação e os separadores do diálogo de detalhe são frases, não
   títulos: "Origem e destino", "Artigo e lote", "Linhas do movimento". O tema Syncfusion aplica
   `text-transform: capitalize` a `.e-tab-text`, e a frase saía com maiúscula a meio — "Origem E
   Destino". Os rótulos já vêm escritos como se leem, em todas as línguas; aqui só se deixa de
   lhes mexer. Os separadores da lista de alterações/exceções do planeamento seguem a mesma
   regra: têm de se ler exatamente como a opção de menu que abre o diálogo. */
.e-tab.stock-native-operation-tabs .e-tab-header .e-toolbar-item .e-tab-text,
.e-tab.stock-receipt-detail-tabs .e-tab-header .e-toolbar-item .e-tab-text,
.e-tab.planning-exception-tabs .e-tab-header .e-toolbar-item .e-tab-text {
    text-transform: none;
}
