/* 
    Created on : 02/04/2018, 14:33:51
    Author     : Ti4
*/

.container_left_20 {
    padding-left: 20px !important;
}

.container_left_10 {
    padding-left: 10px !important;
}

.container_right_10 {
    padding-right: 10px !important;
}

.container_20 {
    padding: 20px !important;
}

.container_10 {
    padding: 5px 10px !important;
}

.container_5 {
    padding: 5px !important;
}

.container_2 {
    padding: 2px !important;
}

/* Responsive Container */

.container-s-5 {
    padding: 5px !important;
}

.container-s-10 {
    padding: 10px !important;
}

.container-s-20 {
    padding: 20px !important;
}

.container-small {
    width: 110px;
    /*flex: 1 1 110px; !* stretching *!*/
    /*flex: 0 1 100px; !* no-stretching *!*/
    /*margin: 10px 0px  0px  0px;*/
}

.container-medium {
    width: 140px;
    /*flex: 0 1 150px; !* no-stretching *!*/
    /*margin: 10px 0px  0px  0px;*/
}

.container-large {
    width: 180px;
    /*flex: 0 1 200px; !* no-stretching *!*/
    /*margin: 10px 0px  0px  0px;*/
}


@media only screen and (min-width: 601px) {
    .container-image-m-5 {
        padding: 5px !important;
        max-width: 300px;
        max-height: 300px;
        width: auto;
        height: auto;
    }

    .container-m-5 {
        padding: 5px !important;
    }

    .container-m-10 {
        padding: 10px !important;
    }

    .container-m-20 {
        padding: 20px !important;
    }
}

@media only screen and (min-width: 993px) {
    .container-image-l-5 {
        padding: 5px !important;
        max-width: 300px;
        max-height: 300px;
        width: auto;
        height: auto;
    }

    .container-l-5 {
        padding: 5px !important;
    }

    .container-l-10 {
        padding: 10px !important;
    }

    .container-l-20 {
        padding: 20px !important;
    }
}

@media only screen and (min-width: 1201px) {
    .container-xl-5 {
        padding: 5px !important;
    }

    .container-xl-10 {
        padding: 10px !important;
    }

    .container-xl-20 {
        padding: 20px !important;
    }
}

/* Análise histórico ordem — grade e espaçamento */
.kanban-sidebar-pad {
    padding-right: 1.5rem;
}

@media only screen and (min-width: 993px) {
    .kanban-sidebar-pad {
        padding-right: 2.25rem;
    }

    .kanban-main-pad {
        padding-left: 2.25rem;
        border-left: 1px solid #e0e0e0;
    }
}

.kanban-deposito-status {
    display: block;
    margin-top: 0.12rem;
    font-size: 0.72rem;
    line-height: 1.25;
}

.kanban-tabela-grid .kanban-tr-cab {
    margin-bottom: 0;
    border-top: 1px solid #bdbdbd;
    border-bottom: 2px solid #bdbdbd;
    background-color: #fafafa;
}

.kanban-tabela-grid .kanban-tr {
    margin-bottom: 0 !important;
    border-bottom: 1px solid #e0e0e0;
}

.kanban-tabela-grid .kanban-tr-cab .col,
.kanban-tabela-grid .kanban-tr .col {
    border-right: 1px solid #e0e0e0;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    min-height: 2.75rem;
    box-sizing: border-box;
}

.kanban-tabela-grid .kanban-tr-cab .col:first-child,
.kanban-tabela-grid .kanban-tr .col:first-child {
    border-left: 1px solid #e0e0e0;
}

.kanban-tabela-grid .kanban-tr-cab .col:last-child,
.kanban-tabela-grid .kanban-tr .col:last-child {
    border-right: 1px solid #e0e0e0;
}

/* Sub-abas e painéis — análise histórico ordem */
.kanban-subtabs {
    margin-bottom: 0.75rem;
    border-bottom: 1px solid #e0e0e0;
}

.kanban-subtab {
    cursor: pointer;
    padding: 0.5rem 0.25rem;
    border-bottom: 3px solid transparent;
}

.kanban-subtab-ativa {
    border-bottom-color: #42a5f5;
}

.kanban-subpanel {
    display: none;
}

.kanban-subpanel-ativo {
    display: block;
}

.kanban-subaba-titulo {
    cursor: pointer;
}

.kanban-titulo-linha {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    width: 100%;
}

.kanban-titulo-texto {
    flex: 1 1 auto;
    min-width: 0;
}

.kanban-titulo-acoes {
    flex: 0 0 auto;
}

.kanban-dep-card-linha {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.45rem;
}

.kanban-dep-card-esq {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.kanban-dep-card-main {
    padding: 0.45rem 0.65rem;
    border: 1px solid #c8e6c9;
}

.kanban-dep-main-liberado {
    background: #546e7a;
    border-radius: 5px;
    color: #ffffff;
}

.kanban-board .kanban-dep-main-liberado,
.kanban-board .kanban-dep-main-liberado * {
    color: #ffffff !important;
}

.kanban-dep-main-bloqueado {
    background: #ffffff;
    border-color: #e0e0e0;
    color: #212121;
}

.kanban-dep-seq-quadrado {
    flex: 0 0 auto;
    min-width: 2.1rem;
    min-height: 2.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 0.35rem;
    border: 1px solid #bdbdbd;
    border-radius: 4px;
    background: #fafafa;
    font-size: 0.8rem;
    line-height: 1.2;
    text-align: center;
}

/* Linha de raias (Materialize col no invólucro; flex na row — ver CSS::RAIA_* e CSS::KANBAN_*) */
.kanban-raias-wrap.row {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    gap: 0;
}

.kanban-raias-wrap.row>.col {
    float: none;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    min-height: 0;
}

/* Análise → Transformação tem 4 raias fixas — força 25% por coluna (override Materialize l3 + flex-wrap). */
.kanban-raias-wrap.row>.col.l3 {
    flex: 0 0 25%;
    max-width: 25%;
    width: 25%;
}

.kanban-raias-wrap.row>.col>.kanban-col {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    max-height: 78vh;
}

/* Separação vertical entre raias via border-right (mockup): substitui divs separadoras. */
.kanban-raias-wrap.row>.raia-shell:not(:last-child)>.kanban-col {
    border-right: 1px solid #e0e0e0;
}

/* Caso a versão antiga do PHP ainda injete a div separadora (cache do navegador / build velho),
   escondemos para não consumir largura na linha das raias. */
.kanban-raias-wrap.row>.oper-proc-config-separador {
    display: none;
}

/* Estado vazio discreto da Análise → Transformação: texto centralizado, sem caixa-card. */
.analise-sep-estado-vazio-discreto {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1.5rem 0.75rem;
    color: #9e9e9e;
    font-style: italic;
    background: transparent;
    border: 0;
    box-shadow: none;
}

@media (max-width: 992px) {
    .kanban-raias-wrap.row {
        flex-wrap: wrap;
    }

    .kanban-raias-wrap.row>.col.l3 {
        flex: 0 0 100%;
        max-width: 100%;
        width: 100%;
    }

    .kanban-raias-wrap.row>.raia-shell:not(:last-child)>.kanban-col {
        border-right: 0;
        border-bottom: 1px solid #e0e0e0;
    }
}

/* Análise operação — espaçamento entre raias (gap substitui border-right colado) */
.analise-sep-painel .kanban-raias-wrap.row,
.oper-proc-painel .kanban-raias-wrap.row {
    gap: 10px;
}

.analise-sep-painel .kanban-raias-wrap.row>.raia-shell:not(:last-child)>.kanban-col,
.oper-proc-painel .kanban-raias-wrap.row>.raia-shell:not(:last-child)>.kanban-col {
    border-right: 0;
}

@media only screen and (min-width: 993px) {

    .analise-sep-painel .kanban-raias-wrap.row>.col,
    .oper-proc-painel .kanban-raias-wrap.row>.col {
        flex: 1 1 0;
        max-width: none;
        width: auto;
        min-width: 0;
    }
}

.kanban-emp-campo {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.45rem;
    row-gap: 0.15rem;
    margin-bottom: 0.55rem;
    padding-bottom: 0.2rem;
    font-size: 0.85rem;
    line-height: 1.35;
}

.kanban-emp-campo>*:first-child {
    flex-shrink: 0;
}

.kanban-card-registro {
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    padding: 0.65rem 0.65rem;
    margin-bottom: 0.6rem;
    background: #fff;
}

.kanban-card-dep {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.kanban-board .kanban-card-dep.kanban-card-registro {
    border-radius: 4px;
}

.kanban-rotulo-valor {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.25rem;
    margin-bottom: 0.45rem;
    font-size: 0.85rem;
    line-height: 1.35;
}

.kanban-display-semantico {
    flex: 1 1 100%;
    min-width: 0;
}

/*
 * Kanban read-only (escopo .kanban-board em Container.css):
 * Dicas na aba usam atributo title / CampoDisplay::setTooltipSomenteTituloHtml — o microtip (pseudo CSS)
 * é recortado pelo overflow do .kanban-col-conteudo; z-index não resolve.
 * Modificadores no invólucro da raia (CSS::RAIA_SHELL_*), sem classe por nome de raia.
 */
.raia-shell-corpo-contido .kanban-col-conteudo {
    overflow-x: hidden;
    overflow-y: auto;
}

.kanban-board.raia-shell-cards-fonte-em,
.kanban-board.raia-shell-cards-fonte-em .kanban-card-registro,
.kanban-board.raia-shell-cards-fonte-em .kanban-card-registro .estrutura_elemento_flutuante,
.kanban-board.raia-shell-cards-fonte-em .kanban-card-registro .estrutura_elemento_flutuante p,
.kanban-board.raia-shell-cards-fonte-em .kanban-col-cabecalho,
.kanban-board.raia-shell-cards-fonte-em .kanban-col-cabecalho *,
.kanban-board.raia-shell-cards-fonte-em .kanban-separador-registro,
.kanban-board.raia-shell-cards-fonte-em .kanban-separador-registro *,
.kanban-board.raia-shell-cards-fonte-em .kanban-rotulo-valor,
.kanban-board.raia-shell-cards-fonte-em .kanban-emp-campo,
.kanban-board.raia-shell-cards-fonte-em .kanban-item-dep-chip,
.kanban-board.raia-shell-cards-fonte-em .font_size_1_2em {
    font-size: 1em;
}

.kanban-board .kanban-item-cab-linha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    margin-bottom: 0.35rem;
    line-height: 1.35;
}

.kanban-board .kanban-item-inline-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    flex: 1 1 auto;
    min-width: 0;
}

/* Grade Qtd. pedida | Saldo | Endereço (raia Itens) */
.kanban-board .kanban-item-metricas-grade-3 {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0.5rem 0.75rem;
    width: 100%;
}

.kanban-board .kanban-item-metrica-col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.kanban-board .kanban-item-metrica-label-linha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.35rem;
    line-height: 1.3;
}

.kanban-board .kanban-item-end-icon-falha {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    margin-left: 0.1rem;
}

.kanban-board .kanban-item-metrica-valor-linha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

/* Card item: produto + alertas (esq.) e displays numéricos de saldo (dir.) */
.kanban-board .kanban-item-body-duplo {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.25rem;
    width: 100%;
    margin-bottom: 0.5rem;
}

.kanban-board .kanban-item-col-alertas {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.kanban-board .kanban-item-col-displays {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
    min-width: 5.5rem;
}

.kanban-board .kanban-item-alerta-linha {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
    line-height: 1.35;
    font-size: 0.78rem;
    font-weight: 500;
}

.kanban-board .analise-sep-linha-emissao.analise-sep-fundo-amarelo .kanban-item-alerta-linha {
    color: #e65100;
}

.kanban-board .analise-sep-linha-emissao.analise-sep-fundo-amarelo .kanban-item-alerta-linha .svg-orange svg path {
    fill: #e65100 !important;
}

.kanban-board .analise-sep-linha-emissao.analise-sep-fundo-vermelho .kanban-item-alerta-linha {
    color: #c62828;
}

.kanban-board .analise-sep-linha-emissao.analise-sep-fundo-vermelho .kanban-item-alerta-linha .svg-red svg path {
    fill: #c62828 !important;
}

.kanban-board .kanban-item-display-bloco {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    align-items: center;
}

.kanban-board .kanban-item-display-legenda {
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
    color: #212121;
    width: 100%;
}

.kanban-board .kanban-item-display-caixa {
    box-sizing: border-box;
    border: 2px solid #212121;
    background: #fff;
    padding: 0.35rem 0.55rem;
    text-align: center;
    min-width: 4.5rem;
    min-height: 2.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.kanban-board .kanban-item-metrica-caixa-demanda {
    border-color: #9e9e9e;
    background: #ffffff;
}

.kanban-board .kanban-item-metrica-caixa-demanda .kanban-item-display-valor {
    color: #212121 !important;
}

.kanban-board .kanban-item-metrica-caixa-saldo {
    border-color: #212121;
    background: #ffffff;
}

.kanban-board .kanban-item-metrica-caixa-saldo .kanban-item-display-valor {
    color: #1565c0 !important;
    font-weight: 700;
}

.kanban-board .kanban-item-metrica-caixa-reservas {
    border-color: #FFC100;
    background: #FFC100;
}

.kanban-board .kanban-item-metrica-caixa-reservas .kanban-item-display-valor {
    color: #212121 !important;
}

.kanban-board .kanban-item-metrica-caixa-falta {
    border-color: #ff0000;
    background: #ff0000;
}

.kanban-board .kanban-item-metrica-caixa-falta .kanban-item-display-valor {
    color: #ffffff !important;
}

.kanban-board .kanban-item-corpo-vertical {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    width: 100%;
}

.kanban-board .kanban-item-chips-metricas-linha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    width: 100%;
}

.kanban-board .kanban-item-dep-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.6rem;
    background: #546e7a;
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.25;
}

.kanban-board .kanban-item-metricas-caixas-linha {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem 0.45rem;
    flex: 1 1 auto;
    min-width: 0;
}

.kanban-board .kanban-item-metricas-caixas-linha .kanban-item-display-bloco {
    flex: 0 0 auto;
    min-width: 3.5rem;
}

.kanban-board .kanban-config-bloco-destaque {
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    padding: 0.55rem 0.65rem;
    margin-bottom: 0.65rem;
    background: #fafafa;
}

.kanban-board .kanban-config-bloco-titulo {
    font-size: 0.78rem;
    font-weight: 600;
    margin-bottom: 0.4rem;
}

.kanban-board .kanban-config-bloco-corpo {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.kanban-board .kanban-config-status-pill {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    justify-content: center;
    min-width: 3.25rem;
    padding: 0.35rem 0.65rem;
    background: #546e7a;
    color: #ffffff;
    font-weight: 700;
    font-size: 0.95rem;
}

.kanban-board .kanban-config-status-pill--sim {
    background: #546e7a;
    border-radius: 5px;

    color: #ffffff;
}

.kanban-board .kanban-config-status-pill--nao {
    background: #546e7a;
    border-radius: 5px;
    color: #ffffff;
}

.kanban-board .kanban-config-aviso-linha {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    line-height: 1.35;
}

.kanban-board .kanban-config-doc-pills-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.kanban-board .kanban-config-doc-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.28rem 0.55rem;
    font-size: 0.78rem;
    font-weight: 600;
    border-radius: 5px;

    letter-spacing: 0.02em;
}

.kanban-board .kanban-config-doc-pill-ok {
    background: #2e7d32;
    color: #ffffff;
    border: 1px solid #1b5e20;
}

.kanban-board .kanban-config-doc-pill-critico {
    background: #ff0000;
    color: #ffffff;
    border: 1px solid #b71c1c;
}

.kanban-board .kanban-config-doc-pill-neutro {
    background: #546e7a;
    color: #ffffff;
    border: 1px solid #37474f;
}

.kanban-board .kanban-config-alerta-critico-linha {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    line-height: 1.35;
    margin-top: 0.15rem;
}

/* Ícone SVG (CampoDisplay): fill padrão é preto; alinhar ao texto vermelho (classes no wrapper .estrutura_elemento_flutuante) */
.kanban-board .kanban-config-alerta-critico-linha .estrutura_elemento_flutuante svg path {
    fill: currentColor;
}

/* Status “Liberado” / “Bloqueado” sob o nome do depósito: pill sólida (conteúdo interno do card) */
.kanban-board .kanban-dep-status-liberado {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin-top: 0.18rem;
    padding: 0.22rem 0.55rem;
    background: #2e7d32;
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.25;
}

.kanban-board .kanban-dep-status-bloqueado {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin-top: 0.18rem;
    padding: 0.22rem 0.55rem;
    background: #f9a825;
    color: #212121;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.25;
}

.kanban-board .kanban-item-display-valor {
    font-weight: 700;
}

.kanban-board .kanban-item-end-linha {
    margin: 0.15rem 0 0.35rem;
    line-height: 1.35;
}

.kanban-board .kanban-item-chip-so-valor {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0 !important;
}

.kanban-board .kanban-metricas-dep-linha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.45rem;
    line-height: 1.35;
}

.kanban-board .kanban-metricas-so-display {
    margin-top: 0.15rem;
}

.kanban-board .kanban-fila-qty-wrap .estrutura_elemento_flutuante {
    align-self: center;
}

/* CampoDisplay TYPE_SQUARE + sem-*: fundo sólido e contraste (mesma linguagem da raia Reservas) */
.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-verde>div:first-child {
    background-color: #2e7d32 !important;
    color: #ffffff !important;
    border: 1px solid #1b5e20 !important;
    border-radius: 5px !important;
    padding: 0.38rem 0.65rem !important;
}

.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-verde>div:first-child p {
    color: #ffffff !important;
}

.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-erro>div:first-child {
    background-color: #c62828 !important;
    color: #ffffff !important;
    border: 1px solid #b71c1c !important;
    border-radius: 5px !important;
    padding: 0.38rem 0.65rem !important;
}

.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-erro>div:first-child p {
    color: #ffffff !important;
}

.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-alerta>div:first-child {
    background-color: #FFC100 !important;
    color: #212121 !important;
    border: 1px solid #FFC100 !important;
    border-radius: 5px !important;
    padding: 0.38rem 0.65rem !important;
}

.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-alerta>div:first-child p {
    color: #212121 !important;
}

.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-laranja>div:first-child {
    background-color: #f4511e !important;
    color: #ffffff !important;
    border: 1px solid #d84315 !important;
    border-radius: 5px !important;
    padding: 0.38rem 0.65rem !important;
}

.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-laranja>div:first-child p {
    color: #ffffff !important;
}

.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-neutro>div:first-child {
    background-color: #546e7a !important;
    color: #ffffff !important;
    border: 1px solid #37474f !important;
    border-radius: 5px !important;
    padding: 0.38rem 0.65rem !important;
}

.kanban-board .estrutura_elemento_flutuante.kanban-display-semantico.kanban-sem-neutro>div:first-child p {
    color: #ffffff !important;
}

/* ============================================================
   KANBAN — Semáforo sólido SSOT (quantitativos + badges OK/NOK)
   Usar CSS::KANBAN_SEM_QTD_* e CSS::KANBAN_SEM_BADGE_* em qualquer
   kanban. Cores alinhadas a kanban-sem-verde/erro/alerta/neutro acima.
   Proibido: fundo pastel (#e8f5e9), outline-only ou #hex por tela.
   ============================================================ */

.kanban-board .kanban-sem-qtd,
.kanban-board .kanban-sem-qtd-cinza,
.kanban-board .kanban-sem-qtd-verde,
.kanban-board .kanban-sem-qtd-amarelo,
.kanban-board .kanban-sem-qtd-vermelho,
.oper-proc-rota-linha-topo .kanban-sem-qtd,
.oper-proc-rota-linha-topo .kanban-sem-qtd-cinza,
.oper-proc-rota-linha-topo .kanban-sem-qtd-verde,
.oper-proc-rota-linha-topo .kanban-sem-qtd-amarelo,
.oper-proc-rota-linha-topo .kanban-sem-qtd-vermelho {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.85rem;
    min-height: 1.85rem;
    padding: 0.2rem 0.45rem;
    border-radius: 5px;
    border: 1px solid #37474f;
    background: #546e7a;
    color: #ffffff;
    font-weight: 700;
    font-size: 0.82rem;
    line-height: 1;
    flex-shrink: 0;
    box-sizing: border-box;
}

.kanban-board .kanban-sem-badge,
.kanban-board .kanban-sem-badge-cinza,
.kanban-board .kanban-sem-badge-verde,
.kanban-board .kanban-sem-badge-amarelo,
.kanban-board .kanban-sem-badge-vermelho {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.22rem 0.5rem;
    border-radius: 5px;
    border: 1px solid #37474f;
    background: #546e7a;
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.25;
    box-sizing: border-box;
}

.kanban-board .kanban-sem-qtd-verde,
.kanban-board .kanban-sem-badge-verde,
.oper-proc-rota-linha-topo .kanban-sem-qtd-verde {
    background: #2e7d32;
    border-color: #1b5e20;
    color: #ffffff;
}

.kanban-board .kanban-sem-qtd-amarelo,
.kanban-board .kanban-sem-badge-amarelo,
.oper-proc-rota-linha-topo .kanban-sem-qtd-amarelo {
    background: #ffc107;
    border-color: #f9a825;
    color: #212121;
}

.kanban-board .kanban-sem-qtd-vermelho,
.kanban-board .kanban-sem-badge-vermelho,
.oper-proc-rota-linha-topo .kanban-sem-qtd-vermelho,
.kanban-board.collapsible .collapsible-header .analise-sep-badges-grupo .kanban-sem-qtd-vermelho {
    background: #c62828;
    border-color: #b71c1c;
    color: #ffffff;
}

/* Análise integração — colapsável cadastro rotina: texto à esquerda, badges SSOT à direita */
.kanban-board.collapsible .collapsible-header {
    align-items: center;
}

.kanban-board.collapsible .collapsible-header>.analise-sep-linha-conteudo {
    flex: 1 1 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    width: 100%;
}

.kanban-board.collapsible .collapsible-header .analise-sep-linha-conteudo>.analise-sep-badges-grupo {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
    margin-left: auto;
}

.kanban-board .kanban-sem-qtd-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
    margin-left: auto;
    padding-left: 0.75rem;
}

.kanban-board .kanban-sem-badge-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

/* Análise histórico ordem: faixa de métricas + atalho config */
.kanban-board .kanban-metricas-fila {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.35rem 0.5rem;
    margin: 0.2rem 0 0.1rem;
    padding-top: 0.32rem;
    border-top: 1px solid #f0f0f0;
    font-size: 1em;
    line-height: 1.35;
}

.kanban-board .kanban-metricas-fila .kanban-linha-rotulo-qtd,
.kanban-board .kanban-metricas-fila .kanban-rotulo-valor {
    margin-bottom: 0 !important;
    flex: 0 1 auto;
}

.kanban-board .kanban-metricas-fila .kanban-display-semantico {
    flex: 0 1 auto;
}

.kanban-board .kanban-metricas-linha-cheia {
    flex: 1 0 100%;
    width: 100%;
    min-width: 100%;
}

.kanban-board .kanban-metricas-bloco-dep {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    flex: 0 1 auto;
    min-width: 5rem;
    padding: 0.12rem 0.32rem;
    background: #fafafa;
    border-radius: 3px;
    border: 1px solid #eceff1;
}

.kanban-board .kanban-config-atalho-min.field_show.field_botao.display_icone .field_container .field_botao_item {
    padding-left: 0.32rem !important;
    padding-right: 0.32rem !important;
    min-height: 2.1rem;
    min-width: 2.1rem;
}

.kanban-linha-rotulo-qtd {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.4rem;
    row-gap: 0.15rem;
    margin-bottom: 0.45rem;
    font-size: 0.85rem;
    line-height: 1.35;
}

.kanban-info-paragrafo {
    margin-top: 0.45rem;
    font-size: 0.82rem;
    line-height: 1.4;
}

@media (max-width: 992px) {
    .kanban-raias-wrap.row>.col>.kanban-col {
        max-height: none;
    }
}

.kanban-dep-selecionado {
    box-shadow: 0 0 0 2px #42a5f5 inset;
}

.kanban-fila-bloco {
    margin-top: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

/* Área de drop da fila (início/fim): padding mínimo facilita soltar antes da 1ª ou após a última linha */
.kanban-fila-lista {
    min-height: 2.5rem;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

/**
 * e-SHIP — realce de zonas de drop durante arraste.
 * PHP: App\Enum\CSS (ESHIP_DND_ROOT, ESHIP_DND_ROOT_DRAGGING, ESHIP_DND_DROP_TARGET).
 * JS: Geral.js — listener delegado em document (dragstart/dragend em capture), mesmos nomes de classe.
 */
.eship-dnd-root.eship-dnd-root--dragging .eship-dnd-drop-target {
    outline: 2px dashed #1976d2;
    outline-offset: 3px;
    border-radius: 4px;
    background-color: rgba(25, 118, 210, 0.07);
    box-shadow: inset 0 0 0 1px rgba(25, 118, 210, 0.25);
    transition: outline-color 0.12s ease, background-color 0.12s ease, box-shadow 0.12s ease;
}

.kanban-fila-linha {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-height: 2.75rem;
}

.kanban-fila-main {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.kanban-fila-sep-direita {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    flex-shrink: 0;
}

.kanban-sep-reg-direita-itens {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    border-bottom: 1px solid #d7d7d7;
    padding: 6px 0;
    margin: 12px 0 8px 0;
}

.kanban-fila-item {
    cursor: grab;
    border-left: 3px dashed #bdbdbd;
}

.kanban-fila-item:hover {
    border-left-color: #1976d2;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.kanban-board .kanban-fila-item-ordem-atual {
    background-color: #eceff1;
}

.kanban-stack {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
}

.kanban {
    display: flex;
    flex-direction: row;
    gap: 0.75rem;
    width: 100%;
    align-items: stretch;
}

.kanban-linha {
    display: flex;
    flex-direction: row;
    gap: 0.75rem;
    width: 100%;
    align-items: stretch;
}

.kanban-col {
    flex: 1 1 0;
    min-width: 0;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    background: #fafafa;
    display: flex;
    flex-direction: column;
    max-height: 70vh;
}

.kanban-col-ativa {
    box-shadow: 0 0 0 2px #1976d2;
    background: #fff;
}

.kanban-titulo {
    font-weight: 600;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #e0e0e0;
    background: #f5f5f5;
}

.kanban-col-conteudo {
    flex: 1 1 auto;
    overflow: auto;
    min-height: 0;
    padding: 0.5rem;
}

/* Análise operação — aba Separação (raias por tipo picking) */
.kanban-board .analise-sep-raia.kanban-col {
    background: #ffffff;
    border: 1px solid #e0e0e0;
}

.kanban-board .analise-sep-raia .kanban-titulo {
    background: #ffffff;
    border-bottom: 1px solid #eeeeee;
    padding: 0.45rem 0.65rem 0.4rem;
}

.kanban-board .analise-sep-raia .kanban-col-conteudo {
    padding: 0;
    background: #ffffff;
}

.kanban-board .analise-sep-cabecalho {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

/* Separação — delimitação de drop só durante arraste (ver .eship-dnd-drop-target global). */
.kanban-board .analise-sep-cabecalho-drop-nova-emissao.kanban-titulo {
    box-sizing: border-box;
    border-radius: 4px;
}

.kanban-board .analise-sep-card-drop-unificar.analise-sep-linha-emissao {
    box-sizing: border-box;
    border-radius: 2px;
}

.kanban-board .analise-sep-zona-drop-ativa.eship-dnd-drop-target,
.eship-dnd-root.eship-dnd-root--dragging .analise-sep-zona-drop-ativa.eship-dnd-drop-target {
    outline: 2px dashed #1976d2;
    outline-offset: 2px;
    background-color: rgba(25, 118, 210, 0.08);
    box-shadow: inset 0 0 0 1px rgba(25, 118, 210, 0.2);
}

.kanban-board .analise-sep-titulo-linha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem 0.5rem;
    width: 100%;
    min-height: 2.2rem;
    box-sizing: border-box;
}

.kanban-board .analise-sep-titulo-texto {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.25;
    color: #212121;
    padding-right: 0.35rem;
}

/* Coluna com título empilhado sobre subtítulo (V3 — Análise → Transformação).
   Funciona em conjunto com .analise-sep-titulo-linha para produzir
   [funil-esquerda] [coluna: título / subtítulo]. */
.kanban-board .analise-sep-titulo-textos {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    flex: 1 1 auto;
    min-width: 0;
}

.kanban-board .analise-sep-badge-pct,
.oper-proc-kpi-faixa .analise-sep-badge-pct {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.85rem;
    min-height: 2.1rem;
    padding: 0.35rem 0.75rem;
    border-radius: 6px;
    background: #f5f5f5;
    border: 1px solid #e0e0e0;
    color: #212121;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.2;
    flex-shrink: 0;
    box-sizing: border-box;
}

.kanban-board .analise-sep-badge-pct-amarelo,
.oper-proc-kpi-faixa .analise-sep-badge-pct-amarelo {
    background: #ffc107;
    border-color: #f9a825;
    color: #212121;
}

.kanban-board .analise-sep-badge-pct-verde,
.oper-proc-kpi-faixa .analise-sep-badge-pct-verde {
    background: #2e7d32;
    border-color: #1b5e20;
    color: #ffffff;
}

.kanban-board .analise-sep-badge-pct-vermelho,
.oper-proc-kpi-faixa .analise-sep-badge-pct-vermelho {
    background: #c62828;
    border-color: #b71c1c;
    color: #ffffff;
}

.kanban-board .analise-sep-metricas-linha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.45rem;
    width: 100%;
    line-height: 1.35;
}

.kanban-board .analise-sep-metrica-caixa {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.45rem;
    border: 1px solid #e0e0e0;
    border-radius: 3px;
    background: #f5f5f5;
    color: #757575;
    font-size: 0.82rem;
    font-weight: 600;
}

/* Modificador "sólido" do badge numérico (Análise → Transformação Raias 2/3).
   Zera fundo e borda cinza herdados do <p> interno do CampoDisplay::montarSquare,
   deixando aparecer a cor sólida do <div> wrapper definida por setCorFundo().
   A cor do texto herda do wrapper, que já passa por ajustaCorTextoContraste()
   (branco em fundos escuros / preto em fundos claros). */
.kanban-board .analise-sep-metrica-caixa-solida {
    background: transparent;
    border-color: transparent;
    color: inherit;
}

.kanban-board .analise-sep-metrica-texto,
.oper-proc-kpi-faixa .analise-sep-metrica-texto {
    font-size: 0.82rem;
    font-weight: 600;
    color: #757575;
}

.kanban-board .analise-sep-metrica-destaque {
    font-size: 0.9rem;
    font-weight: 700;
    color: #212121;
}

.kanban-board .analise-sep-lista {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.kanban-board .analise-sep-linha-emissao {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    min-height: 2rem;
    border-bottom: 1px solid #eeeeee;
    background: #ffffff;
    box-sizing: border-box;
    border-radius: 2px;
}

.oper-proc-painel .kanban-board .analise-sep-lista .analise-sep-linha-emissao:last-child,
.analise-sep-painel .kanban-board .analise-sep-lista .analise-sep-linha-emissao:last-child {
    border-bottom: none;
}

.kanban-board .analise-sep-linha-emissao:not(:has(.oper-proc-linha-picking-conteudo)):not(.analise-sep-linha-ordem) {
    max-height: 2.15rem;
}

.kanban-board .analise-sep-linha-emissao.analise-sep-fundo-verde {
    background: #e8f5e9;
}

.kanban-board .analise-sep-linha-emissao.analise-sep-fundo-amarelo {
    background: #fff8e1;
}

.kanban-board .analise-sep-linha-emissao.analise-sep-fundo-vermelho {
    background: #ffebee;
}

.kanban-board .analise-sep-barra-status {
    flex: 0 0 5px;
    width: 5px;
    min-height: 100%;
    align-self: stretch;
}

.kanban-board .analise-sep-barra-verde {
    background: #2e7d32;
}

.kanban-board .analise-sep-barra-amarelo {
    background: #ffc107;
}

.kanban-board .analise-sep-barra-cinza {
    background: #bdbdbd;
}

.kanban-board .analise-sep-barra-vermelho {
    background: #c62828;
}

.kanban-board .analise-sep-linha-emissao>.analise-sep-linha-conteudo:not(.oper-proc-linha-picking-conteudo) {
    flex: 1 1 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    min-width: 0;
    padding: 0.25rem 0.45rem 0.25rem 0.65rem;
    box-sizing: border-box;
}

.kanban-board .analise-sep-linha-emissao:not(:has(.oper-proc-linha-picking-conteudo)):not(.analise-sep-linha-ordem)>.analise-sep-linha-conteudo {
    max-height: 2.15rem;
}

.kanban-board .analise-sep-linha-emissao .analise-sep-linha-conteudo.oper-proc-linha-picking-conteudo {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.4rem 0.6rem 0.45rem 0.7rem;
}

.kanban-board .analise-sep-linha-emissao .oper-proc-linha-picking-principal {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem;
    width: 100%;
}

.kanban-board .analise-sep-linha-emissao .oper-proc-linha-picking-produto {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
}

.kanban-board .analise-sep-linha-emissao .oper-proc-linha-picking-alerta {
    width: 100%;
    padding: 0;
    margin-top: 0.35rem;
}

.kanban-board .analise-sep-linha-emissao .oper-proc-linha-picking-usuarios {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem 0.65rem;
    width: 100%;
    margin-top: 0.2rem;
}

.kanban-board .analise-sep-linha-emissao .oper-proc-linha-picking-usuario-texto {
    font-size: 0.75rem;
    font-weight: 600;
    color: #616161;
    background: none;
    padding: 0;
    line-height: 1.3;
}

.kanban-board .analise-sep-linha-emissao:has(.kanban-item-alerta-linha) {
    min-height: 3.15rem;
    max-height: none;
}

.kanban-board .analise-sep-linha-emissao:has(.oper-proc-linha-picking-conteudo) {
    max-height: none;
}

.kanban-board .analise-sep-linha-emissao:has(.oper-proc-linha-picking-conteudo)>.analise-sep-linha-conteudo {
    max-height: none;
}

.kanban-board .analise-sep-emissao-id {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.95rem;
    font-weight: 500;
    color: #212121;
    text-align: left;
    line-height: 1.35;
    word-break: break-all;
}

.kanban-board .analise-sep-acao {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    line-height: 1;
    font-size: 0.78rem;
    color: #616161;
    text-decoration: none;
}

.kanban-board .analise-sep-acao .display {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    padding: 0;
    margin: 0;
}

.kanban-board .analise-sep-acao .display svg {
    width: 14px;
    height: 14px;
}

.analise-legenda-pill-wrap {
    gap: 0.5rem 0.75rem;
}

.analise-legenda-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem 0.9rem 0.35rem 0.5rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 500;
    line-height: 1.25;
    min-height: 1.85rem;
    box-sizing: border-box;
}

.analise-legenda-pill-circulo {
    flex: 0 0 0.8rem;
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 50%;
    background: #ffffff;
}

.analise-legenda-pill-texto {
    white-space: nowrap;
}

.analise-legenda-pill-verde {
    background: #e8f5e9;
    color: #1b5e20;
}

.analise-legenda-pill-amarelo {
    background: #fff8e1;
    color: #212121;
}

.analise-legenda-pill-amarelo-solido {
    background: #ffc107;
    border: 1px solid #f9a825;
    color: #212121;
}

.analise-legenda-pill-vermelho {
    background: #c62828;
    color: #ffffff;
}

.analise-legenda-pill-branco {
    background: #ffffff;
    color: #212121;
    border: 1px solid #e0e0e0;
}

/* Análise Transformação — pills categoria (cinza/azul/roxo) e card selecionado.
   Cores vinculadas a App\Enum\EnumCores:
   - CINZA          (#888888)  : "em estoque"      → CSS::ANALISE_LEGENDA_PILL_CINZA
   - AZUL           (#42a5f5)  : "em transformação"→ CSS::ANALISE_LEGENDA_PILL_AZUL
   - ROXO           (#75438A)  : "a produzir"      → CSS::ANALISE_LEGENDA_PILL_ROXO
   - AMARELO_ESHIP  (#FFC100)  : card selecionado  → CSS::ANALISE_TRANS_CARD_SELECIONADO */
.analise-legenda-pill-cinza {
    background: #888888;
    color: #ffffff;
}

.analise-legenda-pill-azul {
    background: #42a5f5;
    color: #ffffff;
}

.analise-legenda-pill-roxo {
    background: #75438A;
    color: #ffffff;
}

/* P11.B — Rodapé global da Análise → Transformação.
   Cada `.analise-rodape-indicador-caixa` agrupa um display numérico
   (CampoDisplay TYPE_SQUARE) + um Text com o rótulo (`back orders`,
   `transformações`, `índice de fragmentação`). O `gap` cria o respiro entre
   número e rótulo; o `padding-right` separa indicadores adjacentes na
   mesma linha. Sem `#hex` novo — apenas espaçamento. */
.analise-rodape-indicador-caixa {
    gap: 0.4rem;
    padding-right: 0.75rem;
}

/* P11.D — botão-link "Selecionar todos" / "Limpar seleção" no cabeçalho das
   raias clicáveis (Demanda — Raia 1 e Consumo — Raia 3). Cor `#616161` /
   hover `#424242` já circulam em outras regras do Container.css
   (`.oper-proc-pill-cinza`, `.popover-filtro-raia-titulo`). O
   `margin-left: auto` empurra o botão para a ponta direita do flex
   `analise-sep-titulo-linha` (`justify-content: space-between` já garante
   alinhamento básico, mas o `auto` fortalece em re-arranjos). */
.analise-trans-selecionar-todos-link {
    cursor: pointer;
    color: #616161;
    font-size: 0.75rem;
    font-weight: 600;
    text-decoration: underline;
    user-select: none;
    margin-left: auto;
    line-height: 1.25;
}

.analise-trans-selecionar-todos-link:hover {
    color: #424242;
}

.analise-trans-card-selecionado {
    border: 2px solid #FFC100;
    box-shadow: 0 0 0 1px rgba(255, 193, 0, 0.25);
}

/* Cards clicáveis das Raias 1 (Demanda) e 3 (Consumo) da Análise →
   Transformação (P8.B). Aplica apenas affordance (cursor + leve realce de
   hover) — reutiliza as cores neutras já presentes no painel para não
   introduzir tokens novos. O destaque amarelo de seleção continua sendo
   `.analise-trans-card-selecionado`, que sobrepõe a borda padrão. */
.analise-sep-painel .kanban-board .analise-trans-card-clicavel {
    cursor: pointer;
}

.analise-sep-painel .kanban-board .analise-trans-card-clicavel:hover:not(.analise-trans-card-selecionado) {
    background: #f5f5f5;
}

/* Análise operação — raias kanban (processo emissão + aba Separação) */
.oper-proc-painel .kanban-board .analise-sep-raia.kanban-raia:hover,
.analise-sep-painel .kanban-board .analise-sep-raia.kanban-raia:hover {
    box-shadow: none;
    transform: none;
}

.oper-proc-painel .kanban-board .analise-sep-raia.kanban-raia,
.analise-sep-painel .kanban-board .analise-sep-raia.kanban-raia {
    transition: none;
}

.oper-proc-painel .kanban-board .analise-sep-raia.kanban-col,
.analise-sep-painel .kanban-board .analise-sep-raia.kanban-col {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.oper-proc-painel .kanban-board .analise-sep-raia>.kanban-titulo,
.analise-sep-painel .kanban-board .analise-sep-raia>.kanban-titulo {
    flex: 0 0 auto;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
    min-height: 4.85rem;
    box-sizing: border-box;
}

.oper-proc-painel .kanban-board .analise-sep-raia>.kanban-titulo .analise-sep-cabecalho,
.analise-sep-painel .kanban-board .analise-sep-raia>.kanban-titulo .analise-sep-cabecalho {
    min-height: 3.5rem;
    justify-content: flex-start;
}

.oper-proc-painel .kanban-board .analise-sep-raia .kanban-col-conteudo,
.analise-sep-painel .kanban-board .analise-sep-raia .kanban-col-conteudo {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-height: 0;
    padding: 0.5rem 0.5rem 0.35rem;
    box-sizing: border-box;
}

.oper-proc-painel .kanban-board .analise-sep-lista,
.analise-sep-painel .kanban-board .analise-sep-lista {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 0;
}

/* Cards da Análise → Transformação ganham respiro entre si conforme mockup
   Figma 83:422. A Análise → Emissão (oper-proc-painel) continua com gap 0. */
.analise-sep-painel .kanban-board .analise-sep-lista {
    gap: 0.4rem;
}

.oper-proc-painel .kanban-board .analise-sep-linha-ordem,
.analise-sep-painel .kanban-board .analise-sep-linha-ordem {
    max-height: none;
    min-height: auto;
}

/* Override de coluna preservado APENAS para a Análise → Emissão
   (`oper-proc-painel`). A Análise → Transformação (`analise-sep-painel`) volta
   para uma única linha horizontal — herda `flex-direction: row` da regra base
   `.kanban-board .analise-sep-linha-emissao > .analise-sep-linha-conteudo`. */
.oper-proc-painel .kanban-board .analise-sep-linha-ordem>.analise-sep-linha-conteudo {
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    max-height: none;
    padding: 0.35rem 0.5rem 0.35rem 0.65rem;
}

.oper-proc-painel .kanban-board .analise-sep-linha-ordem-corpo,
.analise-sep-painel .kanban-board .analise-sep-linha-ordem-corpo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    width: 100%;
    min-width: 0;
}

.oper-proc-painel .kanban-board .analise-sep-linha-ordem .analise-sep-linha-ordem-sub,
.oper-proc-painel .kanban-board .analise-sep-linha-ordem .analise-sep-emissao-id,
.analise-sep-painel .kanban-board .analise-sep-linha-ordem .analise-sep-linha-ordem-sub,
.analise-sep-painel .kanban-board .analise-sep-linha-ordem .analise-sep-emissao-id {
    color: #212121;
}

.oper-proc-painel .kanban-board .analise-sep-linha-ordem-sub,
.analise-sep-painel .kanban-board .analise-sep-linha-ordem-sub {
    display: block;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.35;
    width: 100%;
}

/* ============================================================
   P7 (Análise → Transformação) — padronização visual dos 4
   raias. Escopo restrito a `.analise-sep-painel` para preservar
   `.oper-proc-painel` (Análise → Emissão) inalterada.
   ============================================================ */

/* Cabeçalho: título 1rem mantendo FONT_BOLD; subtítulo 0.875rem
   (já vem com FONT_WEIGHT_S). Sobrescreve o 1.15rem original
   aplicado em `.analise-sep-titulo-texto` para ambos os painéis. */
.analise-sep-painel .kanban-board .analise-sep-cabecalho {
    font-size: 1rem;
}

.analise-sep-painel .kanban-board .analise-sep-titulo-textos {
    font-size: 0.875rem;
}

.analise-sep-painel .kanban-board .analise-sep-titulo-texto {
    font-size: 1rem;
}

/* Conteúdo dos cards uniformemente em 0.85em — herdado pelos
   filhos sem font-size explícito; o badge numérico (que possui
   `font-size: 0.82rem` próprio) recebe override abaixo. */
.analise-sep-painel .kanban-board .analise-sep-linha-conteudo {
    font-size: 0.85em;
}

.analise-sep-painel .kanban-board .analise-sep-linha-conteudo .analise-sep-metrica-caixa {
    font-size: 0.85em;
}

/* Padding interno de 0.5rem em todos os 4 lados do conteúdo do
   card — preserva a barra lateral colorida `.analise-sep-barra-status`
   que vive FORA do `.analise-sep-linha-conteudo` (filho direto do
   card `.analise-sep-linha-emissao`). Vale para Raia 1 (linha-ordem)
   e Raias 2/3/4 (linha-emissao base). */
.analise-sep-painel .kanban-board .analise-sep-linha-emissao>.analise-sep-linha-conteudo {
    padding: 0.5rem;
}

/* Relaxa o `max-height: 2.15rem` herdado da regra base — necessário
   porque o padding maior (0.5rem) + descrições longas ultrapassam o
   cap antigo. Só para a Análise → Transformação. */
.analise-sep-painel .kanban-board .analise-sep-linha-emissao:not(:has(.oper-proc-linha-picking-conteudo)):not(.analise-sep-linha-ordem),
.analise-sep-painel .kanban-board .analise-sep-linha-emissao:not(:has(.oper-proc-linha-picking-conteudo)):not(.analise-sep-linha-ordem)>.analise-sep-linha-conteudo {
    max-height: none;
}

/* Raia 4 (Em processo) — atalhos lado a lado; códigos empilhados abaixo */
.analise-sep-painel .kanban-board .analise-sep-em-processo-corpo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    flex: 1 1 auto;
    min-width: 0;
}

.analise-sep-painel .kanban-board .analise-sep-em-processo-atalhos {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: nowrap;
}

/* Atalhos análise operação — ícone circular + rótulo pill (sem borda no <a> wrapper) */
.field_body.field_link>a.field_container.oper-proc-atalho-analise,
.field_body.field_link>a.field_link_atalho.oper-proc-atalho-analise,
a.field_link_atalho.field_container.oper-proc-atalho-analise,
a.field_link_atalho.oper-proc-atalho-analise {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    border: none;
    background: transparent;
    padding: 0;
    gap: 0;
    text-decoration: none;
    line-height: 1.2;
    min-height: auto;
    max-width: 100%;
}

.field_body.field_link>a.oper-proc-atalho-analise>div,
a.field_link_atalho.oper-proc-atalho-analise>div {
    display: inline-flex;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
    min-width: 0;
}

.field_body.field_link>a.oper-proc-atalho-analise .estrutura_elemento_flutuante,
a.field_link_atalho.oper-proc-atalho-analise .estrutura_elemento_flutuante {
    border: 1px solid #bdbdbd;
    border-radius: 50%;
    background: #ffffff;
    padding: 0.25rem;
    flex-shrink: 0;
    margin-right: -0.55rem;
    z-index: 1;
}

.field_body.field_link>a.oper-proc-atalho-analise .estrutura_elemento_flutuante .display,
a.field_link_atalho.oper-proc-atalho-analise .estrutura_elemento_flutuante .display {
    margin: 0;
    line-height: 0;
}

.field_body.field_link>a.oper-proc-atalho-analise>div>span,
.field_body.field_link>a.oper-proc-atalho-analise span:not(.display):not(.estrutura_elemento_flutuante),
a.field_link_atalho.oper-proc-atalho-analise>div>span,
a.field_link_atalho.oper-proc-atalho-analise span:not(.display):not(.estrutura_elemento_flutuante) {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    visibility: visible;
    opacity: 1;
    padding: 0.35rem 0.9rem 0.35rem 0.75rem;
    border: 1px solid #bdbdbd;
    border-radius: 4px;
    background: #ffffff;
    font-size: 0.85rem;
    font-weight: 600;
    color: #212121;
    white-space: nowrap;
    line-height: 1.2;
    min-width: min-content;
}

.kanban-board .analise-sep-acao .field_body.field_link {
    flex-shrink: 0;
}

.kanban-board .analise-sep-acao .field_body.field_link>a.oper-proc-atalho-analise>div>span,
.kanban-board .field_body.field_link>a.oper-proc-atalho-analise>div>span {
    color: #212121;
}

.analise-sep-painel .kanban-board a.field_link_atalho.oper-proc-atalho-analise,
.analise-sep-painel .kanban-board .field_body.field_link>a.oper-proc-atalho-analise,
.oper-proc-painel .kanban-board a.field_link_atalho.oper-proc-atalho-analise,
.oper-proc-painel .kanban-board .field_body.field_link>a.oper-proc-atalho-analise {
    text-decoration: none;
}

.analise-sep-painel .kanban-board a.field_link_atalho.oper-proc-atalho-analise .display,
.analise-sep-painel .kanban-board .field_body.field_link>a.oper-proc-atalho-analise .display,
.oper-proc-painel .kanban-board a.field_link_atalho.oper-proc-atalho-analise .display,
.oper-proc-painel .kanban-board .field_body.field_link>a.oper-proc-atalho-analise .display {
    margin: 0;
}

/* Legado: atalhos kanban ainda com oper-proc-botao-topo no <a> — manter compatibilidade mínima */
.analise-sep-painel .kanban-board a.field_link_atalho.oper-proc-botao-topo,
.oper-proc-painel .kanban-board a.field_link_atalho.oper-proc-botao-topo {
    text-decoration: none;
    gap: 0.25rem;
}

.analise-sep-painel .kanban-board a.field_link_atalho.oper-proc-botao-topo .display,
.oper-proc-painel .kanban-board a.field_link_atalho.oper-proc-botao-topo .display {
    margin: 0;
}

/* Caixas de quantidade SEMPRE alinhadas à direita do card —
   independentemente do tamanho da descrição. Para a Raia 2
   (Necessidades) os múltiplos badges são agrupados em
   `.analise-sep-badges-grupo` para que o `margin-left: auto`
   atue no grupo inteiro. */
.analise-sep-painel .kanban-board .analise-sep-linha-conteudo>.analise-sep-metrica-caixa,
.analise-sep-painel .kanban-board .analise-sep-linha-conteudo>.analise-sep-badge-pct,
.analise-sep-painel .kanban-board .analise-sep-linha-conteudo>.analise-sep-badges-grupo {
    margin-left: auto;
}

.analise-sep-painel .kanban-board .analise-sep-linha-conteudo>.analise-sep-badges-grupo {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.analise-sep-painel .kanban-board .analise-sep-badges-grupo .kanban-sem-qtd,
.analise-sep-painel .kanban-board .analise-sep-badges-grupo .kanban-sem-qtd-verde,
.analise-sep-painel .kanban-board .analise-sep-badges-grupo .kanban-sem-qtd-amarelo,
.analise-sep-painel .kanban-board .analise-sep-badges-grupo .kanban-sem-qtd-vermelho {
    min-width: 1.85rem;
    min-height: 1.85rem;
}

.oper-proc-painel,
.analise-sep-painel {
    width: 100%;
}

.oper-proc-topo {
    width: 100%;
    margin-bottom: 0.75rem;
    gap: 0.75rem 1rem;
}

.oper-proc-emissao-col {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    flex-shrink: 0;
}

.oper-proc-id-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fafafa;
    font-size: 1.35rem;
    font-weight: 700;
}

.oper-proc-acoes-topo {
    flex: 0 1 auto;
    gap: 0.5rem 0.75rem;
}

.oper-proc-botao-topo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem 0.9rem;
    border: 1px solid #bdbdbd;
    border-radius: 4px;
    background: #ffffff;
    font-size: 0.85rem;
    font-weight: 600;
    color: #212121;
    line-height: 1.2;
}

.oper-proc-solucionar-opcoes {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.65rem;
    width: 100%;
    text-align: left;
}

.oper-proc-solucionar-opcao {
    display: block;
    width: 100%;
    border: 1px solid #bdbdbd;
    border-radius: 6px;
    background: #fafafa;
    padding: 0.7rem 0.85rem;
    text-align: left;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.oper-proc-solucionar-opcao:hover {
    background: #f0f4ff;
    border-color: #1976d2;
    box-shadow: 0 1px 4px rgba(25, 118, 210, 0.12);
}

.oper-proc-solucionar-opcao-conteudo {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.75rem;
    width: 100%;
}

.oper-proc-solucionar-opcao-texto {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
    flex: 1 1 auto;
    min-width: 0;
    gap: 0.3rem;
}

.oper-proc-solucionar-opcao .oper-proc-solucionar-opcao-conteudo>.field_container,
.oper-proc-solucionar-opcao .oper-proc-solucionar-opcao-conteudo>.field_link {
    flex-shrink: 0;
    margin: 0;
}

.oper-proc-solucionar-opcao .field_link_atalho,
.oper-proc-solucionar-opcao .field_link {
    border: none;
    background: transparent;
    padding: 0;
    min-height: auto;
}

.oper-proc-solucionar-opcao .field_link_atalho .display,
.oper-proc-solucionar-opcao .field_link .display {
    margin: 0;
}

.oper-proc-config-topo {
    flex: 1 1 auto;
    justify-content: center;
    gap: 0.75rem 1rem;
    margin-left: auto;
    min-width: 0;
}

.oper-proc-config-item {
    font-size: 0.85rem;
    font-weight: 600;
    color: #424242;
    line-height: 1.3;
    white-space: nowrap;
}

.oper-proc-config-separador {
    width: 1px;
    align-self: stretch;
    min-height: 1.5rem;
    background: #bdbdbd;
    flex-shrink: 0;
}

.oper-proc-fila-rotulo {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border: 1px solid #bdbdbd;
    border-radius: 4px;
    background: #ffffff;
    font-size: 0.85rem;
    font-weight: 600;
    color: #424242;
    line-height: 1.2;
    white-space: nowrap;
}

.oper-proc-kpi-faixa {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    width: 100%;
    margin-bottom: 0.65rem;
    padding: 0.35rem 0.65rem 0.45rem;
    border-bottom: 1px solid #eeeeee;
    box-sizing: border-box;
}

.oper-proc-kpi-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.kanban-board .analise-sep-titulo-linha .oper-proc-kpi-caixa {
    flex-shrink: 0;
}

.oper-proc-kpi-caixa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    min-height: 2.2rem;
    padding: 0.35rem 0.65rem;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    background: #f5f5f5;
    color: #212121;
    font-weight: 700;
    font-size: 1rem;
    box-sizing: border-box;
}

.oper-proc-kpi-caixa-amarelo {
    background: #ffc107;
    border-color: #f9a825;
    color: #212121;
}

.oper-proc-kpi-caixa-vermelho {
    background: #c62828;
    border-color: #b71c1c;
    color: #ffffff;
}

.oper-proc-kpi-caixa-verde {
    background: #2e7d32;
    border-color: #1b5e20;
    color: #ffffff;
}

.oper-proc-kpi-caixa-reserva {
    visibility: hidden;
    pointer-events: none;
}

.oper-proc-kpi-caixa-azul {
    background: #e3f2fd;
    border-color: #bbdefb;
    color: #1565c0;
}

.oper-proc-kpi-pill {
    display: inline-flex;
    padding: 0.15rem 0.65rem;
    border: 1px solid #1976d2;
    border-radius: 999px;
    color: #1976d2;
    font-size: 0.78rem;
    font-weight: 600;
    background: #fff;
}

.oper-proc-pill-azul {
    display: inline-flex;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    background: #e3f2fd;
    color: #1565c0;
    font-size: 0.75rem;
    font-weight: 600;
}

.oper-proc-pill-cinza,
.oper-proc-pill-amarelo,
.oper-proc-pill-vermelho,
.oper-proc-pill-verde {
    /* @deprecated — semáforo kanban: usar kanban-sem-badge-* (SSOT sólido). */
    display: inline-flex;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    margin-left: 0.25rem;
}

.oper-proc-pill-cinza {
    background: #eeeeee;
    color: #616161;
}

.oper-proc-pill-amarelo {
    background: #fff8e1;
    color: #f57f17;
}

.oper-proc-pill-vermelho {
    background: #ffebee;
    color: #c62828;
}

.oper-proc-pill-verde {
    background: #e8f5e9;
    color: #2e7d32;
}

/* Raia Confronto — 3 linhas verticais (NFe, badges, destinatário) */
.kanban-board .analise-sep-linha-emissao:has(> .oper-proc-confronto-card) {
    max-height: none;
    align-items: stretch;
}

.kanban-board .analise-sep-linha-emissao>.analise-sep-linha-conteudo.oper-proc-confronto-card {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.4rem;
    max-height: none;
    padding: 0.55rem 0.65rem;
}

.oper-proc-confronto-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    width: 100%;
}

.oper-proc-confronto-linha {
    display: block;
    width: 100%;
    min-width: 0;
}

.oper-proc-confronto-titulo {
    display: block;
    font-size: 0.95rem;
    font-weight: 700;
    color: #212121;
    line-height: 1.3;
    word-break: break-word;
}

.oper-proc-confronto-badges,
.kanban-sem-badge-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.oper-proc-confronto-subtexto {
    display: block;
    font-size: 0.82rem;
    font-weight: 400;
    color: #212121;
    line-height: 1.35;
    word-break: break-word;
}

.oper-proc-linha-produto {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 0.65rem 0;
    border-bottom: 1px solid #eeeeee;
}

.kanban-board .analise-sep-linha-emissao .oper-proc-apontamento-linha-principal {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
}

.kanban-board .analise-sep-linha-emissao .oper-proc-apontamento-linha-principal .oper-proc-linha-picking-produto {
    flex: 1 1 auto;
    min-width: 0;
    padding-right: 0.35rem;
    line-height: 1.35;
}

.oper-proc-bloco-ordem {
    display: block;
    width: 100%;
    margin-bottom: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 6px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #212121;
}

.oper-proc-bloco-ordem-amarelo {
    background: #fff59d;
}

.oper-proc-bloco-ordem-vermelho {
    background: #ef9a9a;
    color: #fff;
}

.oper-proc-bloco-ordem-verde {
    background: #a5d6a7;
}

.oper-proc-bloco-sub {
    font-size: 0.78rem;
    font-weight: 500;
    margin-top: 0.25rem;
    opacity: 0.9;
}

.oper-proc-alerta-linha {
    font-size: 0.75rem;
    margin-top: 0.25rem;
    padding-left: 0.25rem;
}

.oper-proc-alerta-vermelho {
    color: #c62828;
}

.oper-proc-alerta-amarelo {
    color: #f57f17;
}

.oper-proc-rota-lista {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    width: 100%;
    padding: 0.5rem 0;
}

.oper-proc-rota-historico-filtro-wrap {
    width: 100%;
    margin-bottom: 0;
    padding: 0.35rem 0.5rem;
    border-radius: 4px;
    background: #fafafa;
    border: 1px solid #eceff1;
    box-sizing: border-box;
}

.oper-proc-rota-historico-filtro-wrap .mt-row {
    margin-bottom: 0;
}

.oper-proc-rota-historico-filtro-wrap .toggle-box {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.oper-proc-rota-historico-filtro-wrap .toggle-box-elem {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    min-width: auto;
}

.oper-proc-rota-historico-card-qtd-existente {
    min-width: auto;
    text-align: left;
    line-height: 1.35;
}

.oper-proc-rota-historico-card-qtd-existente p {
    margin: 0;
    font-weight: 700;
    line-height: 1.35;
    white-space: normal;
    word-break: break-word;
}

.oper-proc-rota-historico-card-qtd-square-wrap {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    margin-bottom: 0.35rem;
    text-align: left;
}

.oper-proc-rota-historico-card-qtd-square-wrap .oper-proc-rota-historico-card-qtd-square {
    min-width: 1Em;
    text-align: left;
    font-weight: 700;
    line-height: 1.2;
}

.oper-proc-rota-historico-card-qtd-square-wrap .oper-proc-rota-historico-card-qtd-square p {
    margin: 0;
    font-weight: 700;
}

.oper-proc-rota-grupo {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    width: 100%;
}

.oper-proc-rota-grupo-titulo {
    text-align: right;
    font-size: 0.82rem;
    font-weight: 700;
    color: #616161;
    padding-right: 0.25rem;
}

.oper-proc-rota-linha {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #eeeeee;
}

.oper-proc-rota-linha-topo {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem 0.65rem;
    width: 100%;
    padding-left: 0.7rem;
    box-sizing: border-box;
}

.oper-proc-rota-linha-corpo {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    column-gap: 0.75rem;
    row-gap: 0.35rem;
    flex: 1 1 auto;
    min-width: 0;
}

.oper-proc-rota-linha-produto {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
    word-break: break-word;
}

.oper-proc-rota-linha-codigo {
    font-size: 0.82rem;
    font-weight: 600;
    color: #424242;
}

.oper-proc-rota-linha-descricao {
    font-size: 0.8rem;
    color: #212121;
}

.oper-proc-rota-linha-pills {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    flex: 0 1 auto;
    margin-left: auto;
    padding-left: 0.25rem;
}

.oper-proc-rota-posicoes {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem 0.65rem;
    width: 100%;
    padding-left: 2.5rem;
}

.oper-proc-rota-sem-posicao {
    width: 100%;
    max-width: 28rem;
    padding: 0.35rem 0 0.35rem calc(0.7rem + 1.85rem + 0.75rem);
    box-sizing: border-box;
}

.oper-proc-rota-sem-posicao .kanban-item-alerta-linha {
    font-size: 0.82rem;
    font-weight: 600;
}

.oper-proc-rota-card {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 7.5rem;
    max-width: 11rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: #f5f5f5;
    font-size: 0.72rem;
    line-height: 1.25;
}

.oper-proc-rota-card-primario {
    border-width: 2px;
    border-color: #1976d2;
    background: #ffffff;
}

.oper-proc-rota-card-alerta {
    background: #ffcdd2;
    border-color: #ef9a9a;
}

.oper-proc-rota-card-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    margin-top: 0.15rem;
}

.oper-proc-rota-alerta-msg {
    width: 100%;
    max-width: 11rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: #f57f17;
    text-align: center;
    line-height: 1.2;
    padding-top: 0.15rem;
}

.oper-proc-rota-enderecamento-fieldset {
    width: 100%;
    margin: 0;
    padding: 0.45rem 0.65rem 0.55rem;
    box-sizing: border-box;
}

.oper-proc-rota-enderecamento-fieldset>legend {
    font-size: 0.82rem;
    font-weight: 700;
    color: #616161;
    padding: 0 0.35rem;
}

.oper-proc-rota-enderecamento-conteudo {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
}

.oper-proc-rota-historico-wrap {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
}

.oper-proc-rota-historico-cabecalho {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
    padding: 0.35rem 0 0.5rem;
    box-sizing: border-box;
}

.oper-proc-rota-historico-titulo {
    line-height: 1.25;
}

.oper-proc-rota-historico-titulo-texto {
    font-size: 1rem;
    font-weight: 700;
    color: #37474f;
}

.oper-proc-rota-historico-raias-wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.oper-proc-rota-historico-raias-cabecalho,
.oper-proc-rota-historico-linha,
.oper-proc-rota-historico-linha-total,
.oper-proc-rota-historico-grid-raias {
    display: grid;
    grid-template-columns: minmax(7rem, 1fr) minmax(10rem, 1.4fr) minmax(7rem, 1fr);
    gap: 0.45rem;
    width: 100%;
    align-items: stretch;
}

.oper-proc-rota-historico-linha-total {
    align-items: center;
}

.oper-proc-rota-historico-raia-col {
    min-width: 0;
}

.oper-proc-rota-historico-raia-titulo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: 100%;
    padding: 0.45rem 0.5rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-align: center;
    color: #37474f;
    border-radius: 4px;
    background: #eceff1;
    box-sizing: border-box;
}

.oper-proc-rota-historico-raia-titulo-texto {
    line-height: 1.25;
}

.oper-proc-rota-historico-raia-titulo-icone-wrap {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.oper-proc-rota-historico-raia-titulo-icone-wrap .oper-proc-rota-historico-raia-titulo-icone svg {
    display: block;
    width: 1rem;
    height: 1rem;
    fill: currentColor;
}

.oper-proc-rota-historico-raia-col-central .oper-proc-rota-historico-raia-titulo {
    background: #e3f2fd;
    color: #1565c0;
}

.oper-proc-rota-historico-raias-corpo {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    width: 100%;
}

.oper-proc-rota-historico-bloco-posicao {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    width: 100%;
}

.oper-proc-rota-historico-raia-col-entrada,
.oper-proc-rota-historico-raia-col-saida {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.oper-proc-rota-historico-linha-celula.oper-proc-rota-historico-raia-col-entrada,
.oper-proc-rota-historico-linha-celula.oper-proc-rota-historico-raia-col-saida {
    justify-content: center;
    align-items: center;
}

.oper-proc-rota-historico-raia-col-entrada .oper-proc-rota-historico-cartoes-stack,
.oper-proc-rota-historico-raia-col-saida .oper-proc-rota-historico-cartoes-stack {
    width: 100%;
    max-width: 100%;
    align-items: stretch;
}

.oper-proc-rota-historico-card-movimento-coluna {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    align-items: stretch;
}

.oper-proc-rota-historico-raia-col-entrada .oper-proc-rota-historico-card-entrada,
.oper-proc-rota-historico-raia-col-saida .oper-proc-rota-historico-card-saida {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.oper-proc-rota-historico-total-pill {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    width: fit-content;
    max-width: 100%;
    padding: 0.35rem 0.55rem;
    border-radius: 4px;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    box-sizing: border-box;
}

.oper-proc-rota-historico-total-pill-rotulo {
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.25;
}

.oper-proc-rota-historico-total-pill-valor {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.15;
}

.oper-proc-rota-historico-total-pill-entrada {
    border: 1px solid #a5d6a7;
    background: #f1f8e9;
    color: #33691e;
}

.oper-proc-rota-historico-total-pill-saida {
    border: 1px solid #ffcc80;
    background: #fff8e1;
    color: #e65100;
}

.oper-proc-rota-historico-detalhe-colapsavel {
    width: 100%;
    margin-top: 0.05rem;
}

.oper-proc-rota-historico-detalhe-colapsavel .oper-proc-rota-historico-linha {
    margin-top: 0.25rem;
}

.oper-proc-rota-historico-detalhe-colapsavel .oper-proc-rota-historico-registros-corpo {
    margin-top: 0.25rem;
}

.oper-proc-rota-historico-registros-corpo {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    width: 100%;
}

.oper-proc-rota-historico-registro-data-linha {
    align-items: flex-start;
}

.oper-proc-rota-historico-registro-data-linha + .oper-proc-rota-historico-registro-data-linha {
    padding-top: 0.4rem;
    border-top: 1px dashed #cfd8dc;
}

.oper-proc-rota-historico-linha-celula.oper-proc-rota-historico-raia-col-central .oper-proc-rota-historico-separador-data-wrap {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
}

.oper-proc-rota-historico-separador-data {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.2rem 0.65rem;
    font-size: 0.68rem;
    font-weight: 700;
    color: #546e7a;
    background: #eceff1;
    border: 1px solid #cfd8dc;
    border-radius: 999px;
    white-space: nowrap;
    line-height: 1.25;
    box-sizing: border-box;
}

.oper-proc-rota-historico-detalhe-summary {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.75rem 0.9rem;
    min-height: 2.85rem;
    font-size: 0.84rem;
    font-weight: 600;
    color: #455a64;
    cursor: pointer;
    list-style: none;
    border-radius: 6px;
    border: 1px solid #b0bec5;
    background: #eceff1;
    box-sizing: border-box;
    user-select: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.oper-proc-rota-historico-detalhe-summary:hover {
    background: #e3f2fd;
    border-color: #64b5f6;
    box-shadow: 0 1px 4px rgba(21, 101, 192, 0.15);
}

.oper-proc-rota-historico-detalhe-summary:active {
    background: #bbdefb;
    border-color: #1565c0;
}

.oper-proc-rota-historico-detalhe-summary-conteudo {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.65rem;
    width: 100%;
    min-height: 2rem;
}

.oper-proc-rota-historico-detalhe-summary-texto {
    flex: 1;
    min-width: 0;
    line-height: 1.35;
}

.oper-proc-rota-historico-detalhe-seta-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    background: #1565c0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22);
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
    overflow: hidden;
}

.oper-proc-rota-historico-detalhe-summary:hover .oper-proc-rota-historico-detalhe-seta-wrap {
    background: #0d47a1;
    box-shadow: 0 2px 5px rgba(13, 71, 161, 0.35);
}

.oper-proc-rota-historico-detalhe-seta-wrap .estrutura_elemento_flutuante.oper-proc-rota-historico-detalhe-seta-icone {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    line-height: 0;
    transition: transform 0.15s ease;
}

.oper-proc-rota-historico-detalhe-seta-wrap .estrutura_elemento_flutuante.oper-proc-rota-historico-detalhe-seta-icone>.display {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    min-width: 0;
    min-height: 0;
}

.oper-proc-rota-historico-detalhe-seta-wrap .oper-proc-rota-historico-detalhe-seta svg {
    display: block;
    width: 1.35rem;
    height: 1.35rem;
}

.oper-proc-rota-historico-detalhe-summary::-webkit-details-marker {
    display: none;
}

.oper-proc-rota-historico-detalhe-colapsavel[open] .oper-proc-rota-historico-detalhe-summary {
    color: #1565c0;
    background: #e3f2fd;
    border-color: #1565c0;
}

.oper-proc-rota-historico-detalhe-colapsavel[open] .oper-proc-rota-historico-detalhe-seta-wrap {
    background: #0d47a1;
}

.oper-proc-rota-historico-detalhe-colapsavel[open] .oper-proc-rota-historico-detalhe-seta-wrap .oper-proc-rota-historico-detalhe-seta-icone {
    transform: rotate(180deg);
}

.oper-proc-rota-historico-linha-celula {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.oper-proc-rota-historico-cartoes-stack {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    width: 100%;
}

.oper-proc-rota-historico-posicoes {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem 0.65rem;
    width: 100%;
}

.oper-proc-rota-historico-card {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    width: 100%;
    min-width: 9.5rem;
    max-width: 13rem;
    padding: 0.5rem 0.6rem;
    border: 1px solid #cfd8dc;
    border-radius: 6px;
    background: #fafafa;
    font-size: 0.72rem;
    line-height: 1.3;
    box-sizing: border-box;
}

.oper-proc-rota-historico-card-central {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    width: 100%;
    min-width: 10rem;
    padding: 0.55rem 0.65rem;
    border-radius: 6px;
    font-size: 0.74rem;
    line-height: 1.3;
    box-sizing: border-box;
}

.oper-proc-rota-historico-card-central-com-saldo {
    border: 1px solid #cfd8dc;
    background: #eceff1;
    color: #37474f;
}

.oper-proc-rota-historico-card-central-com-saldo .oper-proc-rota-historico-card-endereco-fixa {
    color: #37474f;
}

.oper-proc-rota-historico-card-central-sem-saldo {
    border: 2px solid #ef5350;
    background: #ffebee;
    color: #c62828;
}

.oper-proc-rota-historico-card-central-sem-saldo .oper-proc-rota-historico-card-endereco-fixa {
    color: #c62828;
}

.oper-proc-rota-historico-card-central-sem-saldo .oper-proc-rota-historico-card-movimentador,
.oper-proc-rota-historico-card-central-sem-saldo .oper-proc-rota-historico-card-deposito,
.oper-proc-rota-historico-card-central-sem-saldo .oper-proc-rota-historico-card-lote {
    color: #c62828;
}

.oper-proc-rota-historico-card-entrada {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    align-content: flex-start;
    gap: 0.35rem 0.5rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 0.45rem 0.5rem;
    border: 1px solid #a5d6a7;
    border-radius: 6px;
    background: #f1f8e9;
    font-size: 0.7rem;
    line-height: 1.25;
    box-sizing: border-box;
}

.oper-proc-rota-historico-card-saida {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    align-content: flex-start;
    gap: 0.35rem 0.5rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 0.45rem 0.5rem;
    border: 1px solid #ffcc80;
    border-radius: 6px;
    background: #fff8e1;
    font-size: 0.7rem;
    line-height: 1.25;
    box-sizing: border-box;
}

.oper-proc-rota-historico-card-entrada .oper-proc-rota-historico-card-qtd-square-wrap,
.oper-proc-rota-historico-card-saida .oper-proc-rota-historico-card-qtd-square-wrap {
    width: auto;
    margin-bottom: 0;
    flex: 0 0 auto;
}

.oper-proc-rota-historico-card-movimento-info {
    display: inline-flex;
    align-items: center;
    width: auto;
    max-width: 100%;
    min-width: 0;
    margin-top: 0;
    flex: 0 1 auto;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

.oper-proc-rota-historico-card-categoria-saida {
    font-size: 0.7rem;
    font-weight: 700;
    color: #e65100;
    word-break: break-word;
}

.oper-proc-rota-historico-card-info-categoria-saida {
    font-size: 0.68rem;
    font-weight: 600;
    color: #6d4c41;
    word-break: break-word;
}

.oper-proc-rota-historico-card-endereco-fixa {
    width: 100%;
    font-size: 0.78rem;
    font-weight: 700;
    color: #1565c0;
    word-break: break-word;
    line-height: 1.35;
}

.oper-proc-rota-historico-card-movimentador {
    width: 100%;
    font-size: 0.7rem;
    font-weight: 600;
    color: #616161;
    word-break: break-word;
}

.oper-proc-rota-historico-card-alerta {
    width: 100%;
}

.oper-proc-rota-historico-card-alerta .kanban-item-alerta-linha {
    font-size: 0.72rem;
    font-weight: 600;
}

.oper-proc-rota-historico-card-deposito {
    width: 100%;
    font-size: 0.7rem;
    font-weight: 600;
    color: #616161;
    word-break: break-word;
}

.oper-proc-rota-historico-card-lote {
    width: 100%;
    font-size: 0.7rem;
    font-weight: 600;
    color: #616161;
    word-break: break-word;
}

.oper-proc-rota-historico-card-quantidade {
    width: 100%;
    text-align: left;
    font-size: 0.72rem;
    font-weight: 700;
    color: #37474f;
    word-break: break-word;
}

.oper-proc-rota-historico-card-data {
    font-size: 0.68rem;
    font-weight: 600;
    color: #757575;
}

.oper-proc-rota-historico-card-operador {
    font-size: 0.68rem;
    font-weight: 600;
    color: #546e7a;
    word-break: break-word;
}

.oper-proc-rota-historico-card-transicao {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    width: 100%;
    min-width: 9.5rem;
    max-width: 13rem;
    padding: 0.5rem 0.6rem;
    border: 2px solid #f9a825;
    border-radius: 6px;
    background: #fff8e1;
    font-size: 0.72rem;
    line-height: 1.3;
    box-sizing: border-box;
}

.oper-proc-rota-historico-card-transicao-titulo {
    width: 100%;
    font-size: 0.76rem;
    font-weight: 700;
    color: #e65100;
    word-break: break-word;
}

.oper-proc-rota-historico-card-transicao-info {
    width: 100%;
    font-size: 0.68rem;
    font-weight: 600;
    color: #6d4c41;
    word-break: break-word;
}