@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');

/*html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}*/

@font-face {
    font-family: 'Roboto-Light';
    src: url('../css/open-iconic/font/fonts/Roboto-Light.ttf') format('truetype');
}

html, body {
    font-family: 'Roboto-Light';
}

.language-selector {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
    font-size: .82rem;
}

.language-selector label {
    margin: 0;
    white-space: nowrap;
}

.language-selector__select,
.language-selector__suggest {
    min-height: 2rem;
    border: 1px solid #b7b7b7;
    border-radius: .3rem;
    background: #fff;
    color: #222;
    padding: .2rem .55rem;
}

.language-selector__suggest {
    cursor: pointer;
}

.language-selector__suggest:disabled {
    cursor: wait;
    opacity: .65;
}

.language-selector__status {
    max-width: 20rem;
    color: #555;
}

.landing-language-selector {
    position: fixed;
    z-index: 1301;
    top: .75rem;
    right: 1rem;
    padding: .45rem .6rem;
    border-radius: .4rem;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .16);
}

@media (max-width: 700px) {
    .language-selector label,
    .language-selector__status {
        display: none;
    }

    .landing-language-selector {
        position: static;
        display: flex;
        justify-content: flex-end;
        box-shadow: none;
    }
}

h1:focus {
    outline: none;
}

:root {
    --app-primary: var(--mud-palette-primary, #2e7d32);
    --app-success: var(--mud-palette-success, #2e7d32);
    --app-info: var(--mud-palette-info, #0288d1);
    --app-warning: var(--mud-palette-warning, #ed6c02);
    --app-error: var(--mud-palette-error, #d32f2f);
    --app-primary-border: color-mix(in srgb, var(--app-primary) 82%, black);
    --app-primary-focus: color-mix(in srgb, var(--app-primary) 34%, transparent);
    --app-primary-soft: color-mix(in srgb, var(--app-primary) 8%, #f8fafc);
    --app-primary-soft-hover: color-mix(in srgb, var(--app-primary) 14%, #eef2f7);
    --app-primary-light-border: color-mix(in srgb, var(--app-primary) 16%, #dfe7ef);
    --app-primary-card-border: color-mix(in srgb, var(--app-primary) 14%, transparent);
    --app-primary-card-bg: color-mix(in srgb, var(--app-primary) 8%, rgba(255, 255, 255, 0.92));
    --app-primary-shadow: color-mix(in srgb, var(--app-primary) 12%, rgba(15, 23, 42, 0.1));
    --app-success-soft: color-mix(in srgb, var(--app-success) 12%, white);
    --app-info-soft: color-mix(in srgb, var(--app-info) 12%, white);
    --app-warning-soft: color-mix(in srgb, var(--app-warning) 16%, white);
    --app-error-soft: color-mix(in srgb, var(--app-error) 12%, white);
    --app-error-soft-strong: color-mix(in srgb, var(--app-error) 74%, transparent);
    --app-error-focus: color-mix(in srgb, var(--app-error) 22%, transparent);
    --app-error-card-border: color-mix(in srgb, var(--app-error) 18%, transparent);
    --app-error-card-bg: color-mix(in srgb, var(--app-error) 12%, rgba(255, 255, 255, 0.96));
}

a, .btn-link {
    color: var(--app-primary);
}

.btn-primary {
    color: #fff;
    background-color: var(--app-primary);
    border-color: var(--app-primary-border);
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--app-primary-focus);
}

.btn:not(.btn-link):not(:disabled),
.mud-button-root:not(.mud-icon-button-root):not(.mud-disabled) {
    filter: brightness(1.04);
}

.mud-icon-button-root:not(.mud-disabled) {
    filter: brightness(1.08);
}

.content {
    padding-top: 1.1rem;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

.blazor-error-boundary::after {
    content: "An error has occurred."
}

.avatar-user {
    color: white !important;
    font-weight: 600;
    font-size: 0.7rem;
}

.avatar-empty {
    background-color: #9e9e9e; /* cinza padrão */
}

.mud-timeline-item-dot {
    box-shadow: none !important;
}

.viagem-grid-status tr.viagem-status-entregue td {
    background-color: #edf8ef;
    background-image: linear-gradient(to top, rgba(46, 125, 50, 0.12) 0%, rgba(46, 125, 50, 0.06) 14%, rgba(46, 125, 50, 0) 25%);
    background-repeat: no-repeat;
    border-bottom: 1px solid rgba(46, 125, 50, 0.22);
}

.viagem-grid-status tr.viagem-status-entregue td:first-child {
    box-shadow: inset 4px 0 0 #2e7d32;
}

.viagem-grid-status tr.viagem-status-atrasada td {
    background-color: #fdeeee;
}

.viagem-grid-status tr.viagem-status-atrasada td:first-child {
    box-shadow: inset 4px 0 0 #d32f2f;
}

.viagem-grid-status tr.viagem-status-andamento td {
    background-color: #fff4e5;
}

.viagem-grid-status tr.viagem-status-andamento td:first-child {
    box-shadow: inset 4px 0 0 #ed6c02;
}

.viagem-grid-status tr.viagem-status-sem-movimentacao td {
    background-image: linear-gradient(to top, rgba(211, 47, 47, 0.12) 0%, rgba(211, 47, 47, 0.06) 14%, rgba(211, 47, 47, 0) 25%);
    background-repeat: no-repeat;
    border-bottom: 1px solid rgba(211, 47, 47, 0.22);
}

.viagem-grid-status tr.viagem-status-entregue.viagem-status-sem-movimentacao td:first-child {
    box-shadow: inset 4px 0 0 #2e7d32;
}

.viagem-grid-status tr.viagem-status-atrasada.viagem-status-sem-movimentacao td:first-child {
    box-shadow: inset 4px 0 0 #d32f2f;
}

.viagem-grid-status tr.viagem-status-andamento.viagem-status-sem-movimentacao td:first-child {
    box-shadow: inset 4px 0 0 #ed6c02;
}

.viagem-grid-status tr.linha-tooltip td:first-child {
    position: relative;
}

.viagem-grid-status tr.linha-tooltip:hover td {
    position: relative;
    z-index: 1;
}

.viagem-grid-status tr.linha-tooltip:hover td:first-child {
    z-index: 5;
}

.viagem-grid-status tr.linha-tooltip:hover td:first-child::after {
    content: var(--viagem-alert-tooltip);
    position: absolute;
    left: 42px;
    top: calc(100% - 8px);
    bottom: auto;
    z-index: 2400;
    padding: 6px 8px;
    border-radius: 4px;
    background-color: rgba(33, 33, 33, 0.96);
    color: #ffffff;
    font-size: 0.75rem;
    line-height: 1.2;
    white-space: nowrap;
    pointer-events: none;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
}

.mud-tooltip,
.mud-tooltip-root,
.mud-popover {
    z-index: 2400 !important;
}

.viagem-grid-status tr.linha-clicavel td {
    cursor: pointer;
}

.viagem-grid-status tr.linha-clicavel:hover td {
    filter: brightness(0.985);
}

.viagem-hierarquia-celula {
    width: 44px;
}

.viagem-hierarquia-botao {
    color: #64748b !important;
}

.viagem-acoes-linha {
    cursor: default;
}

.viagem-acoes-linha .mud-button-root {
    cursor: pointer;
}

.viagem-acoes-linha-compacta .mud-icon-button-root {
    width: 30px;
    height: 30px;
    padding: 4px;
}

.viagem-detalhe {
    padding: 12px 18px 18px 52px;
    background: #ffffff;
}

.viagem-resumo,
.viagem-lista-card {
    border: 1px solid #dfe7ef;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08) !important;
}

.viagem-resumo {
    background: #ffffff;
}

.viagem-resumo-topo {
    gap: 12px;
    flex-wrap: wrap;
    padding-bottom: 14px;
    border-bottom: 1px solid #eef2f7;
}

.viagem-resumo-titulo {
    color: #1f2937;
    line-height: 1.2;
}

.viagem-resumo-subtitulo {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
    min-width: 0;
    color: #475569;
    line-height: 1.35;
    text-align: right;
}

.viagem-resumo-subtitulo span {
    padding: 2px 7px;
    border-radius: 999px;
    background: #f8fafc;
    color: #64748b;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.viagem-resumo-alertas {
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.viagem-resumo-alerta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: #f8fafc;
}

.viagem-resumo-alerta .mud-icon-root {
    font-size: 1.1rem;
}

.viagem-resumo-lateral {
    flex-wrap: wrap;
    min-width: 320px;
    max-width: 58%;
}

.viagem-resumo-corpo {
    margin-top: 14px;
}

.viagem-resumo-label {
    color: #64748b;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.viagem-resumo-secao {
    min-width: 0;
    padding: 0;
}

.viagem-rota-item p,
.viagem-dados-lista strong {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.viagem-rota-lista {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0;
    padding: 14px 20px 16px;
    overflow-y: auto;
}

.viagem-rota-item {
    position: relative;
    min-width: 0;
    padding: 0 0 14px 22px;
}

.viagem-rota-item:last-child {
    padding-bottom: 0;
}

.viagem-rota-item::before {
    content: "";
    position: absolute;
    left: 1px;
    top: 5px;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary, #4caf50) 60%, #94a3b8);
}

.viagem-rota-item:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 17px;
    bottom: -4px;
    width: 1px;
    background: #e2e8f0;
}

.viagem-rota-item span,
.viagem-dados-lista span {
    display: block;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
}

.viagem-rota-item p {
    margin: 2px 0 0;
    color: #1f2937;
    font-size: 0.83rem;
    line-height: 1.35;
}

.viagem-dados-lista {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 18px;
    row-gap: 10px;
    margin-top: 8px;
}

.viagem-dados-lista div {
    min-width: 0;
}

.viagem-dados-lista strong {
    margin-top: 2px;
    color: #1f2937;
    font-size: 0.83rem;
    font-weight: 600;
    line-height: 1.35;
}

@media (max-width: 1200px) {
    .viagem-dados-lista {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

.viagem-lista-grid {
    align-items: stretch;
    margin-top: 2px;
}

.viagem-lista-coluna {
    display: flex;
    align-items: stretch;
}

.viagem-lista-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.viagem-lista-card .mud-table {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.viagem-lista-cabecalho {
    flex: 0 0 auto;
    min-height: 50px;
    height: auto;
    padding: 12px 20px 10px;
    border-bottom: 1px solid #eef2f7;
    background: #fbfdff;
}

.viagem-lista-cabecalho .mud-typography-h6 {
    color: #334155;
    font-size: 0.92rem;
    font-weight: 500;
    letter-spacing: 0;
}

.viagem-lista-vazia {
    padding: 16px 20px;
    color: #64748b !important;
}

.viagem-lista-card .mud-table-container {
    flex: 1 1 auto;
    margin-top: 0;
}

.viagem-lista-card .mud-table-root {
    table-layout: fixed;
    width: 100%;
}

.viagem-lista-card .mud-table-head th {
    color: #64748b !important;
    font-size: 0.76rem;
    font-weight: 600;
    background: #ffffff;
}

.viagem-lista-card .mud-table-row td {
    color: #263445;
    padding-top: 11px;
    padding-bottom: 11px;
    border-color: #edf2f7;
    vertical-align: top;
}

.viagem-lista-card .mud-table-head th:first-child,
.viagem-lista-card .mud-table-row td:first-child {
    padding-left: 20px;
}

.viagem-lista-card .mud-table-head th:last-child,
.viagem-lista-card .mud-table-row td:last-child {
    padding-right: 20px;
}

.viagem-lista-card .mud-table-row:hover td {
    background: #fbfdfc;
}

@media (min-width: 960px) {
    .viagem-lista-grid > .mud-grid-item:first-child {
        flex-basis: 66.666667%;
        max-width: 66.666667%;
    }

    .viagem-lista-grid > .mud-grid-item:last-child {
        flex-basis: 33.333333%;
        max-width: 33.333333%;
    }
}

@media (max-width: 900px) {
    .viagem-detalhe {
        padding: 10px 12px 16px;
    }

    .viagem-resumo-corpo {
        margin-top: 14px;
    }

    .viagem-resumo-secao {
        padding: 0;
    }

    .viagem-resumo-alertas {
        justify-content: flex-start;
    }

    .viagem-resumo-lateral {
        align-items: flex-start !important;
        justify-content: flex-start !important;
        min-width: 0;
        max-width: none;
        width: 100%;
    }

    .viagem-resumo-subtitulo {
        justify-content: flex-start;
        text-align: left;
    }

    .viagem-dados-lista {
        grid-template-columns: 1fr;
    }
}

.viagem-grid-status .mud-table-toolbar {
    height: auto;
    min-height: 0;
    align-items: stretch;
    padding: 0;
    position: relative;
    z-index: 1;
}

.viagem-grid-status .mud-table-container {
    margin-top: 12px;
    position: relative;
    z-index: 30;
}

.viagem-grid-status .mud-table-root .mud-table-head th,
.viagem-grid-status .mud-table-root .mud-table-body td {
    border-left: 0 !important;
    border-right: 0 !important;
    box-shadow: none !important;
}

.viagem-grid-fake-shell {
    --viagem-toolbar-height: 56px;
    position: relative;
}

.viagem-grid-fake-shell-admin {
    --viagem-toolbar-height: 119px;
    --c1: 2%;
    --c2: 5%;
    --c3: 12%;
    --c4: 11%;
    --c5: 6%;
    --c6: 9%;
    --c7: 9%;
    --c8: 18%;
    --c9: 18%;
    --c10: 6%;
}

.viagem-grid-fake-shell-empresa {
    --viagem-toolbar-height: 56px;
    --c1: 2%;
    --c2: 5%;
    --c3: 10%;
    --c4: 7%;
    --c5: 6%;
    --c6: 9%;
    --c7: 8%;
    --c8: 10%;
    --c9: 16.5%;
    --c10: 16.5%;
    --c11: 6%;
}

.viagem-grid-fake-shell .mud-table-toolbar {
    position: static;
    top: auto;
    z-index: auto;
    background: #ffffff;
    min-height: var(--viagem-toolbar-height);
}

.viagem-grid-status .mud-table-root {
    table-layout: fixed !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse;
}

.viagem-grid-status .mud-table-root .mud-table-head th {
    color: var(--mud-palette-text-primary) !important;
}

.viagem-grid-fake-shell .mud-table-head {
    position: relative;
    z-index: 9000;
}

.viagem-grid-fake-shell .mud-table-head th {
    position: sticky;
    top: 0;
    z-index: 9000 !important;
    background: #ffffff !important;
    box-shadow: 0 1px 0 #dfe7ef, 0 6px 14px rgba(15, 23, 42, 0.08);
}

/* larguras fixas para manter o header alinhado com o grid */
.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(1),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(1) {
    width: var(--c1) !important;
    min-width: var(--c1) !important;
    max-width: var(--c1) !important;
}

.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(2),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(2) {
    width: var(--c2) !important;
    min-width: var(--c2) !important;
    max-width: var(--c2) !important;
}

.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(3),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(3) {
    width: var(--c3) !important;
    min-width: var(--c3) !important;
    max-width: var(--c3) !important;
}

.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(4),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(4) {
    width: var(--c4) !important;
    min-width: var(--c4) !important;
    max-width: var(--c4) !important;
}

.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(5),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(5) {
    width: var(--c5) !important;
    min-width: var(--c5) !important;
    max-width: var(--c5) !important;
}

.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(6),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(6) {
    width: var(--c6) !important;
    min-width: var(--c6) !important;
    max-width: var(--c6) !important;
}

.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(7),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(7) {
    width: var(--c7) !important;
    min-width: var(--c7) !important;
    max-width: var(--c7) !important;
}

.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(8),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(8) {
    width: var(--c8) !important;
    min-width: var(--c8) !important;
    max-width: var(--c8) !important;
}

.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(9),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(9) {
    width: var(--c9) !important;
    min-width: var(--c9) !important;
    max-width: var(--c9) !important;
}

.viagem-grid-status .mud-table-root .mud-table-head th:nth-child(10),
.viagem-grid-status .mud-table-root .mud-table-body td:nth-child(10) {
    width: var(--c10) !important;
    min-width: var(--c10) !important;
    max-width: var(--c10) !important;
}

.viagem-grid-empresa .mud-table-root .mud-table-head th:nth-child(11),
.viagem-grid-empresa .mud-table-root .mud-table-body td:nth-child(11) {
    width: var(--c11) !important;
    min-width: var(--c11) !important;
    max-width: var(--c11) !important;
}

.viagem-grid-admin .mud-table-root .mud-table-head th:nth-child(10),
.viagem-grid-admin .mud-table-root .mud-table-body td:nth-child(10),
.viagem-grid-empresa .mud-table-root .mud-table-head th:nth-child(11),
.viagem-grid-empresa .mud-table-root .mud-table-body td:nth-child(11) {
    white-space: nowrap;
}

.viagem-grid-status .mud-table-root tbody td,
.viagem-grid-status .mud-table-root thead th {
    outline: none;
    outline-offset: 0;
}

.viagem-grid-status .viagem-lista-card .mud-table-head,
.viagem-grid-status .viagem-lista-card .mud-table-head th {
    position: static;
    top: auto;
    z-index: auto !important;
    box-shadow: none;
}

.viagem-grid-status .viagem-lista-card .mud-table-head th,
.viagem-grid-status .viagem-lista-card .mud-table-row td {
    min-width: 0 !important;
    max-width: none !important;
}

.viagem-grid-status .viagem-lista-card .mud-table-head th:nth-child(1),
.viagem-grid-status .viagem-lista-card .mud-table-row td:nth-child(1) {
    width: 24% !important;
    min-width: 24% !important;
    max-width: 24% !important;
}

.viagem-grid-status .viagem-lista-card .mud-table-head th:nth-child(2),
.viagem-grid-status .viagem-lista-card .mud-table-row td:nth-child(2) {
    width: 48% !important;
    min-width: 48% !important;
    max-width: 48% !important;
}

.viagem-grid-status .viagem-lista-card .mud-table-head th:nth-child(3),
.viagem-grid-status .viagem-lista-card .mud-table-row td:nth-child(3) {
    width: 28% !important;
    min-width: 28% !important;
    max-width: 28% !important;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .viagem-grid-fake-shell .mud-table-toolbar {
        position: static;
        top: auto;
        z-index: auto;
    }

    .viagem-grid-fake-shell .mud-table-container {
        margin-top: 12px;
    }

    .viagem-grid-fake-shell .mud-table-head,
    .viagem-grid-fake-shell .mud-table-head th {
        position: static;
        top: auto;
        z-index: auto;
        box-shadow: none;
    }

    .viagem-grid-admin .mud-table-head th,
    .viagem-grid-admin .mud-table-body td,
    .viagem-grid-empresa .mud-table-head th,
    .viagem-grid-empresa .mud-table-body td {
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
    }
}

.operational-filter-toolbar {
    width: 100%;
    box-sizing: border-box;
    padding: 20px 20px 0;
    --op-primary: var(--mud-palette-primary, #4caf50);
    --op-primary-dark: var(--mud-palette-primary-darken, #2e7d32);
    --op-surface: #ffffff;
    --op-line: #e5eaf1;
    --op-muted: color-mix(in srgb, var(--op-primary) 62%, #64748b);
    --op-badge-bg: #fef3c7;
    --op-badge-text: #92400e;
    --op-filter-size: 40px;
    --op-icon-size: 1.42rem;
    --op-badge-size: 18px;
}

.operational-filter-header,
.operational-filter-row {
    width: 100%;
}

.operational-filter-header {
    min-height: 52px;
    gap: 28px;
    align-items: flex-start !important;
}

.operational-filter-header .mud-typography-h6 {
    flex: 0 0 auto;
    line-height: 1.3;
}

.operational-filter-header .mud-spacer {
    flex: 1 1 300px;
    min-width: 160px;
}

.operational-filter-search {
    flex: 0 1 clamp(560px, 52vw, 900px);
    max-width: clamp(560px, 52vw, 900px);
    min-width: 360px;
}

.operational-filter-row {
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 18px !important;
    padding: 2px 0 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    margin-bottom: 0;
}

@media (max-width: 900px) {
    .operational-filter-header {
        flex-wrap: wrap;
        gap: 10px;
    }

    .operational-filter-header .mud-spacer {
        display: none;
    }

    .operational-filter-search {
        flex: 1 1 100%;
        max-width: 100%;
        min-width: 0;
    }
}

.operational-filter-button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    min-width: var(--op-filter-size) !important;
    width: var(--op-filter-size);
    height: var(--op-filter-size);
    padding: 0 !important;
    border: 0 !important;
    border-radius: 8px;
    background: transparent !important;
    background-color: transparent !important;
    overflow: visible !important;
    color: var(--op-muted) !important;
    opacity: 0.82;
    box-shadow: none !important;
    transition: color 0.16s ease, transform 0.16s ease, opacity 0.16s ease;
    transform-origin: center;
    cursor: pointer;
    transform: translateY(7px);
}

.operational-filter-button::after {
    content: none;
}

.operational-filter-button:hover,
.operational-filter-button:focus-visible {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--op-primary) !important;
    box-shadow: none !important;
    opacity: 1;
    transform: translateY(7px) scale(1.08);
}

.operational-filter-button:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--op-primary) 38%, transparent);
    outline-offset: 2px;
}

.operational-filter-button-active {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--op-primary) !important;
    opacity: 1;
    box-shadow: none !important;
}

.operational-filter-button:disabled {
    cursor: default;
    opacity: 0.38;
    transform: translateY(7px);
}

.operational-filter-button .mud-icon-root {
    font-size: var(--op-icon-size);
    filter: none;
}

.operational-filter-button-active .mud-icon-root {
    filter:
        drop-shadow(0 7px 12px color-mix(in srgb, var(--op-primary) 36%, transparent))
        drop-shadow(0 2px 3px color-mix(in srgb, var(--op-primary-dark) 28%, transparent));
}

.operational-filter-badge {
    position: absolute;
    z-index: 2;
    top: 3px;
    right: -2px;
    min-width: 20px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    border: 0;
    border-radius: 999px;
    background: var(--app-warning);
    color: #ffffff;
    font-family: "Inter", "Roboto", "Segoe UI", Arial, sans-serif;
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1;
    box-shadow: none;
}

.operational-filter-button-active .operational-filter-badge {
    background: var(--app-warning);
    color: #ffffff;
    box-shadow: none;
}

.operational-filter-clear {
    --op-clear-icon-size: calc(var(--op-icon-size) * 0.3);
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 8px;
    width: calc(var(--op-clear-icon-size) + 1px);
    height: calc(var(--op-clear-icon-size) + 1px);
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--app-error-soft-strong);
    color: #ffffff !important;
    cursor: pointer;
    transform: translateY(11px);
}

.operational-filter-clear .mud-icon-root {
    font-size: var(--op-clear-icon-size);
}

.operational-filter-clear:hover {
    background: var(--app-error-soft-strong);
    color: #ffffff !important;
    transform: translateY(11px);
}

.operational-filter-clear:focus-visible {
    outline: 2px solid var(--app-error-focus);
    outline-offset: 2px;
}

.operational-company-filter-shell {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: var(--op-filter-size);
    height: var(--op-filter-size);
    min-height: var(--op-filter-size);
}

.operational-company-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 19;
    background: transparent;
}

.operational-company-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 20;
    width: min(300px, calc(100vw - 32px));
    max-height: 320px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 6px;
    border: 1px solid var(--op-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.14), 0 2px 8px rgba(15, 23, 42, 0.06);
}

.operational-company-menu-item {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 9px 10px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #334155;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.14s ease, color 0.14s ease;
}

.operational-company-menu-item:hover,
.operational-company-menu-item:focus-visible {
    background: #f8fafc;
    color: var(--op-primary);
    outline: none;
}

.operational-company-menu-item-active {
    background: color-mix(in srgb, var(--op-primary) 10%, #ffffff);
    color: var(--op-primary);
    font-weight: 700;
}

.operational-company-menu-item span:first-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.operational-company-menu-item span:last-child {
    min-width: 28px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 0.72rem;
    font-weight: 700;
    text-align: center;
}

.operational-company-menu-item-active span:last-child {
    background: color-mix(in srgb, var(--op-primary) 16%, #ffffff);
    color: var(--op-primary);
}

.pagina-viagem-detalhes {
    max-width: 100%;
    margin: 0 auto;
}

.cabecalho-viagem-fixo {
    position: sticky;
    top: calc(3.5rem + 10px);
    z-index: 8;
    margin-bottom: 16px;
    padding: 12px 14px;
    border: 1px solid #dfe7ef;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.12), 0 2px 8px rgba(15, 23, 42, 0.05);
    backdrop-filter: blur(8px);
}

.cabecalho-viagem-conteudo {
    display: grid;
    grid-template-columns: minmax(160px, 0.75fr) minmax(360px, 1.4fr) auto;
    align-items: center;
    gap: 14px;
}

.dado-cabecalho-viagem,
.dado-cabecalho-viagem div {
    min-width: 0;
}

.linha-titulo-viagem {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.titulo-viagem {
    color: #1f2937;
    font-weight: 700;
    line-height: 1.2;
}

.status-viagem {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 26px;
    padding: 4px 9px;
    border-radius: 999px;
    background: #eef2f7;
    color: #475569;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.status-viagem .mud-icon-root {
    font-size: 0.98rem;
}

.status-viagem-sucesso {
    background: var(--app-success-soft);
    color: var(--app-success);
}

.status-viagem-alerta {
    background: var(--app-warning-soft);
    color: var(--app-warning);
}

.status-viagem-erro {
    background: var(--app-error-soft);
    color: var(--app-error);
}

.status-viagem-info {
    background: var(--app-info-soft);
    color: var(--app-info);
}

.dados-cabecalho-viagem {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.dado-cabecalho-viagem {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    background: #f8fafc;
    color: #1f2937;
}

.rotulo-cabecalho-viagem,
.dado-cabecalho-viagem strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rotulo-cabecalho-viagem {
    color: #64748b;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.1;
    margin-bottom: 5px;
}

.dado-cabecalho-viagem strong {
    color: #1f2937;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
}

.acoes-cabecalho-viagem {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.btn-add-movimentacao {
    height: 34px;
    border-radius: 8px !important;
    font-weight: 700 !important;
    box-shadow: 0 7px 16px rgba(15, 23, 42, 0.14) !important;
}

.btn-acao-cabecalho {
    width: 34px !important;
    height: 34px !important;
    border: 1px solid var(--app-primary-light-border) !important;
    border-radius: 8px !important;
    background: var(--app-primary-soft) !important;
    color: var(--app-primary) !important;
    transition: transform 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}

.btn-acao-cabecalho:hover,
.btn-acao-cabecalho:focus-visible {
    background: var(--app-primary-soft-hover) !important;
    box-shadow: 0 8px 18px var(--app-primary-shadow);
    transform: translateY(-1px);
}

.secao-com-ancora {
    scroll-margin-top: 132px;
}

@media (max-width: 1080px) {
    .cabecalho-viagem-conteudo {
        grid-template-columns: 1fr;
    }

    .acoes-cabecalho-viagem {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

@media (max-width: 640.98px) {
    .cabecalho-viagem-fixo {
        top: 8px;
        padding: 10px;
    }

    .dados-cabecalho-viagem {
        grid-template-columns: 1fr;
    }
}

.document-grid {
    align-items: stretch;
}

.document-card-item {
    display: flex;
}

.document-card-item > .mud-paper {
    width: 100%;
}

.document-card {
    height: 100%;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 10%, #dbe4ea);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(14, 30, 37, 0.08);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.document-card:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--mud-palette-primary) 18%, #dbe4ea);
    box-shadow: 0 16px 32px rgba(14, 30, 37, 0.12);
}

.document-card__surface {
    height: 100%;
    padding: 0;
}

.document-card__preview {
    position: relative;
    min-height: 196px;
    overflow: hidden;
    border-radius: inherit;
    background:
        radial-gradient(circle at top left, color-mix(in srgb, var(--mud-palette-primary) 16%, #ffffff) 0%, transparent 44%),
        linear-gradient(180deg, color-mix(in srgb, var(--mud-palette-primary) 4%, #ffffff) 0%, color-mix(in srgb, var(--mud-palette-primary) 8%, #f3f7f8) 100%);
    aspect-ratio: 4 / 3;
    isolation: isolate;
}

.document-card__preview::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: inherit;
    pointer-events: none;
    z-index: 4;
}

.document-card__preview--empty {
    background:
        radial-gradient(circle at top left, color-mix(in srgb, var(--mud-palette-primary) 20%, #ffffff) 0%, transparent 45%),
        linear-gradient(135deg, color-mix(in srgb, var(--mud-palette-primary) 10%, #ffffff), color-mix(in srgb, var(--mud-palette-primary) 4%, #eef4f5));
}

.document-card__image,
.document-card__pdf-frame {
    width: 100%;
    height: 100%;
    display: block;
}

.document-card__image {
    object-fit: cover;
    transition: transform .35s ease;
}

.document-card:hover .document-card__image {
    transform: scale(1.03);
}

.document-card__pdf-frame {
    border: 0;
    background: #ffffff;
    pointer-events: none;
}

.document-card__toolbar {
    position: absolute;
    top: 0.65rem;
    left: 0.65rem;
    right: 0.65rem;
    z-index: 5;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    pointer-events: none;
}

.document-card__type-pill {
    display: inline-flex;
    align-items: center;
    min-height: 1.65rem;
    max-width: calc(100% - 5rem);
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    color: color-mix(in srgb, var(--mud-palette-text-primary) 76%, var(--mud-palette-primary) 24%);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    box-shadow: 0 8px 20px rgba(7, 16, 23, 0.12);
    backdrop-filter: blur(10px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.document-card__action-group {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
    pointer-events: auto;
}

.document-card__icon-button.mud-icon-button-root {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    border: 1px solid var(--app-primary-card-border);
    background: var(--app-primary-card-bg);
    color: var(--app-primary);
    box-shadow: 0 10px 24px rgba(7, 16, 23, 0.14);
    backdrop-filter: blur(10px);
}

.document-card__icon-button--danger.mud-icon-button-root {
    background: var(--app-error-card-bg);
    border-color: var(--app-error-card-border);
    color: var(--app-error);
}

.document-card__content {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 3rem 0.85rem 0.8rem;
    background: linear-gradient(180deg, rgba(7, 16, 23, 0) 0%, rgba(7, 16, 23, 0.52) 42%, rgba(7, 16, 23, 0.86) 100%);
    color: #ffffff;
    pointer-events: none;
}

.document-card__title {
    color: #ffffff;
    line-height: 1.25;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
    display: -webkit-box;
    overflow: hidden;
    word-break: break-word;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.document-card__description {
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.32;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.22);
    display: -webkit-box;
    overflow: hidden;
    word-break: break-word;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.document-card__preview-button {
    position: absolute;
    inset: 0;
    z-index: 1;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.document-card__preview-button:focus-visible {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: -3px;
}

.document-card__pdf-placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    padding: 1rem;
    background:
        radial-gradient(circle at bottom right, color-mix(in srgb, var(--mud-palette-primary) 18%, #ffffff) 0%, transparent 52%),
        linear-gradient(135deg, color-mix(in srgb, var(--mud-palette-primary) 14%, #ffffff), color-mix(in srgb, var(--mud-palette-primary) 4%, #f5f7fa));
}

.document-card__pdf-thumb {
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
    background: #ffffff;
    pointer-events: none;
}

.document-card__pdf-sheet {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    width: min(68%, 9.5rem);
    height: 76%;
    min-height: 8.5rem;
    padding: 0.9rem 0.8rem;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%);
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 10%, #e0e7eb);
    box-shadow:
        0 18px 30px rgba(14, 30, 37, 0.12),
        0 6px 14px rgba(14, 30, 37, 0.06);
    transform: translateY(-0.2rem) rotate(-2deg);
}

.document-card__pdf-sheet-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    color: color-mix(in srgb, var(--mud-palette-text-secondary) 74%, var(--mud-palette-primary) 26%);
}

.document-card__pdf-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.55rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--mud-palette-primary), color-mix(in srgb, var(--mud-palette-primary) 68%, #ffffff));
    color: #ffffff;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.06em;
}

.document-card__pdf-sheet-body {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.document-card__pdf-line {
    display: block;
    height: 0.5rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary) 12%, #dce6ec);
}

.document-card__pdf-line--strong {
    height: 0.68rem;
    width: 78%;
    background: color-mix(in srgb, var(--mud-palette-primary) 18%, #d1dee7);
}

.document-card__pdf-line--short {
    width: 56%;
}

.document-card__file-fallback,
.document-card__empty-state {
    display: grid;
    place-items: center;
    gap: 0.4rem;
    width: 100%;
    height: 100%;
    padding: 1rem;
    text-align: center;
}

.document-card__file-fallback {
    color: color-mix(in srgb, var(--mud-palette-text-secondary) 72%, var(--mud-palette-primary) 28%);
}

.document-card__empty-state {
    color: color-mix(in srgb, var(--mud-palette-text-secondary) 78%, var(--mud-palette-primary) 22%);
    font-size: 0.82rem;
    font-weight: 700;
}

@media (max-width: 767.98px) {
    .document-card__preview {
        min-height: 172px;
    }

    .document-card__toolbar {
        top: 0.55rem;
        left: 0.55rem;
        right: 0.55rem;
    }

    .document-card__content {
        padding: 2.8rem 0.75rem 0.72rem;
    }

    .document-card__pdf-sheet {
        width: min(72%, 8.6rem);
        min-height: 7.8rem;
    }
}

.document-preview-dialog {
    width: min(1100px, 96vw);
    max-width: min(1100px, 96vw);
    margin: 2vh auto;
    border-radius: 20px;
}

.document-preview__subtitle {
    color: var(--mud-palette-text-secondary);
}

.document-preview__body {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: min(72vh, 760px);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 14%, #d8dee4);
    border-radius: 16px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--mud-palette-primary) 5%, #ffffff), color-mix(in srgb, var(--mud-palette-primary) 8%, #f4f6f8));
}

.document-preview__frame {
    width: 100%;
    min-height: min(72vh, 760px);
    display: block;
    border: 0;
    background: #ffffff;
}

.document-preview__image {
    display: block;
    max-width: 100%;
    max-height: min(72vh, 760px);
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .document-card__preview {
        min-height: 160px;
    }

    .document-card__header {
        min-height: auto;
    }

    .document-card__surface {
        padding: 0.85rem;
    }

    .document-card__pdf-sheet {
        width: min(100%, 10.75rem);
    }

    .document-card__preview-hint {
        right: 0.65rem;
        bottom: 0.65rem;
    }

    .document-preview__body,
    .document-preview__frame {
        min-height: 64vh;
    }
}
