/* Contratos globais do lote operacional 2026-08: uma única fonte para shell, modais e campos. */
:root {
    --field-short: 16ch;
    --field-medium: 54ch;
    --field-document: 24ch;
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.page.is-partial-loading {
    position: relative;
    cursor: progress;
}

.page.is-partial-loading::after {
    content: "";
    position: absolute;
    z-index: 1200;
    inset: 0 0 auto;
    block-size: 3px;
    background: linear-gradient(90deg, transparent, var(--ds-accent), transparent);
    background-size: 45% 100%;
    animation: partial-navigation-progress 1s linear infinite;
}

@keyframes partial-navigation-progress {
    from { background-position: -60% 0; }
    to { background-position: 160% 0; }
}

.brand {
    min-block-size: 0 !important;
    margin: 0 0 12px !important;
    padding: 7px 5px 12px !important;
    border: 0 !important;
    border-block-end: 1px solid rgba(255, 255, 255, .18) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.brand img {
    inline-size: min(100%, 224px) !important;
    max-block-size: 58px !important;
    filter: none !important;
}

.brand::after {
    content: none !important;
}

.company-filter .company-select,
.company-filter .company-select .custom-select-trigger,
.company-filter .company-select .custom-select-menu {
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
}

.company-select .custom-select-menu {
    overflow-x: hidden !important;
}

.company-select .custom-select-option {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: .2rem !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    padding: .65rem .7rem !important;
    white-space: normal !important;
    text-align: start !important;
}

.company-select .custom-select-option strong,
.company-select .custom-select-option span {
    display: block !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.company-select .custom-select-option span {
    color: #52647e !important;
    font-size: .72rem !important;
    font-weight: 650 !important;
}

.company-select .custom-select-option:is(:hover, :focus-visible) {
    outline: 2px solid var(--ds-accent) !important;
    outline-offset: -2px !important;
}

.company-select .custom-select-option.is-selected span {
    color: rgba(255, 255, 255, .86) !important;
}

/* Contrato global 2026.81: controles contidos em qualquer viewport e módulo. */
:where(.form, .domain-grid, .filter-row, .map-filter-row, .toolbar, .actions, .page-header, .modal-head, .modal-foot) > *,
:where(.field, .form-field, .custom-select, .date-picker, .file-picker) {
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    box-sizing: border-box !important;
}

:where(.field, .form-field) > :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .custom-select, .file-picker),
:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .custom-select, .custom-select-trigger, .file-picker) {
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    box-sizing: border-box !important;
}

:where(.field, .form-field) > label {
    max-inline-size: 100% !important;
    line-height: 1.35 !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    hyphens: none !important;
}

:where(input:not([type="checkbox"]):not([type="radio"]), select, .custom-select-trigger) {
    min-block-size: 44px !important;
    block-size: auto !important;
    line-height: 1.25 !important;
}

:where(input:not([type="checkbox"]):not([type="radio"]), select) {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.custom-select-trigger {
    display: flex !important;
    align-items: center !important;
    padding-block: .625rem !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.custom-select-trigger > .custom-select-trigger-label {
    display: block !important;
    flex: 1 1 auto !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    word-break: normal !important;
}

.custom-select-option {
    min-block-size: 44px !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    line-height: 1.3 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    white-space: normal !important;
}

:where(button, .btn) {
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    min-block-size: 44px !important;
    block-size: auto !important;
    line-height: 1.2 !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    hyphens: none !important;
}

:where(button, .btn):focus-visible,
.custom-select-trigger:focus-visible {
    outline: 3px solid rgba(22, 72, 201, .22) !important;
    outline-offset: 2px !important;
}

/* O título pode reduzir; a ação de fechamento jamais colapsa ou quebra. */
.modal-card > .modal-head,
.domain-modal .modal-head {
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: start !important;
}

.modal-head > :first-child,
.modal-head > h2 {
    min-inline-size: 0 !important;
    overflow-wrap: anywhere !important;
}

.modal-head > :is(button, label, a)[data-close-modal],
.modal-head > .modal-close,
.modal-head > .dialog-close-control,
.modal-head > :is(button, label, a)[data-close-finance-settlement] {
    flex: 0 0 auto !important;
    inline-size: 44px !important;
    min-inline-size: 44px !important;
    min-block-size: 44px !important;
    padding: 0 !important;
    border: 1px solid #b9c7da !important;
    border-radius: 9px !important;
    background: #f5f8fc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314265c' stroke-width='2.25' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / 21px 21px no-repeat !important;
    color: transparent !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-indent: 0 !important;
    font-size: 0 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

/* Fechamento de diálogo é sempre um controle quadrado visível, nunca uma barra vazia. */
.modal-head > .dialog-close-control {
    flex: 0 0 44px !important;
    inline-size: 44px !important;
    min-inline-size: 44px !important;
    min-block-size: 44px !important;
}

.modal-head > .modal-close::before,
.modal-head > .modal-close::after {
    content: none !important;
}

.modal-head > :is(button, label, a)[data-close-modal]:is(:hover, :focus-visible),
.modal-head > .modal-close:is(:hover, :focus-visible),
.modal-head > .dialog-close-control:is(:hover, :focus-visible),
.modal-head > :is(button, label, a)[data-close-finance-settlement]:is(:hover, :focus-visible) {
    border-color: #1648c9 !important;
    outline: 3px solid rgba(22, 72, 201, .2) !important;
    outline-offset: 2px !important;
}

/* Marcador semântico reutilizável: o identificador inteiro permanece legível. */
.map-identifier-icon {
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
}

.map-identifier-marker {
    position: absolute !important;
    inset: 50% auto auto 50% !important;
    display: inline-grid !important;
    place-items: center !important;
    inline-size: max-content !important;
    min-inline-size: 44px !important;
    min-block-size: 44px !important;
    max-inline-size: min(240px, calc(100vw - 24px)) !important;
    padding: 5px 12px !important;
    transform: translate(-50%, -50%) !important;
    border: 3px solid #fff !important;
    border-radius: 999px !important;
    background: var(--blue, #073b70) !important;
    box-shadow: 0 8px 22px rgba(7, 27, 62, .34) !important;
    color: #fff !important;
    font-size: clamp(9px, .72rem, 12px) !important;
    font-weight: 950 !important;
    line-height: 1.1 !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
    white-space: normal !important;
}

.map-identifier-marker:is(:hover, :focus-visible) {
    z-index: 2 !important;
    outline: 3px solid rgba(14, 165, 233, .32) !important;
    outline-offset: 2px !important;
}

.map-identifier-marker:is(.vendido, .inativo) { background: #52647e !important; }
.map-identifier-marker.alugado { background: #6d28d9 !important; }
.map-identifier-marker.reservado { background: #b45309 !important; }
.map-identifier-marker.em_transporte { background: #1d4ed8 !important; }

.finance-nature-field {
    justify-self: start !important;
}

.finance-nature-toggle {
    display: inline-grid !important;
    grid-template-columns: repeat(2, max-content) !important;
    inline-size: max-content !important;
    max-inline-size: 100% !important;
    justify-self: start !important;
}

.finance-nature-toggle > button {
    inline-size: auto !important;
    min-inline-size: max-content !important;
    padding-inline: .85rem !important;
    white-space: nowrap !important;
}

.finance-period-date-filter .date-filter-panel {
    --date-filter-panel-width: min(680px, calc(100vw - 24px)) !important;
}

.finance-period-date-filter [data-finance-period-field][hidden] {
    display: none !important;
}

.finance-period-date-filter .finance-period-mode-field { grid-column: 1 / 5 !important; }
.finance-period-date-filter .finance-period-month-field,
.finance-period-date-filter .finance-period-year-field { grid-column: 5 / 9 !important; }
.finance-period-date-filter .finance-period-start-field { grid-column: 5 / 9 !important; }
.finance-period-date-filter .finance-period-end-field { grid-column: 9 / 13 !important; }

@media (max-width: 1020px) {
    body:not(.map-page) .menu-btn.mobile-menu-trigger {
        inset: 0 auto auto 0 !important;
        inline-size: 100% !important;
        max-inline-size: none !important;
        min-block-size: 54px !important;
        margin: 0 !important;
        padding-inline: 54px !important;
        justify-content: flex-start !important;
        border-radius: 0 !important;
    }

    body:not(.map-page) .menu-btn.mobile-menu-trigger .btn-icon {
        position: absolute !important;
        inset-inline-start: 16px !important;
        flex: 0 0 auto !important;
    }
}

@media (max-width: 680px) {
    body:not(.map-page) .segmented-control.finance-nature-toggle {
        display: inline-grid !important;
        grid-template-columns: repeat(2, max-content) !important;
        inline-size: max-content !important;
        max-inline-size: 100% !important;
    }

    .finance-period-date-filter .finance-period-mode-field,
    .finance-period-date-filter .finance-period-month-field,
    .finance-period-date-filter .finance-period-year-field,
    .finance-period-date-filter .finance-period-start-field,
    .finance-period-date-filter .finance-period-end-field {
        grid-column: 1 / -1 !important;
    }
}

.domain-modal .modal-card {
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    overflow: hidden !important;
}

.domain-modal .modal-body {
    min-block-size: 0 !important;
    overflow: auto !important;
    overscroll-behavior: contain;
}

/* Largura semântica: curta, média e longa conforme a função do dado. */
body:not(.map-page) :is(.field, .form-field) {
    min-inline-size: 0;
}

body:not(.map-page) :is(.field, .form-field):is([data-field-kind="short"], [data-field-kind="status"], [data-field-kind="date"], [data-field-kind="quantity"], [data-field-kind="code"]) {
    inline-size: min(100%, var(--field-short));
    justify-self: start;
}

body:not(.map-page) :is(.field, .form-field):is([data-field-kind="partner"], [data-field-kind="company"], [data-field-kind="supplier"], [data-field-kind="responsible"], [data-field-kind="category"], .field-medium) {
    inline-size: min(100%, var(--field-medium));
    max-inline-size: 100%;
    justify-self: start;
}

body:not(.map-page) :is(.field, .form-field):is([data-field-kind="long"], [data-field-kind="description"], [data-field-kind="address"], .wide) {
    inline-size: 100%;
}

body:not(.map-page) :is(.commercial-client-field, [data-field-kind="partner"]) :is(.autocomplete-control, .autocomplete-input, .autocomplete-menu) {
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
}

body:not(.map-page) :is(input, select, textarea, button, .btn, .custom-select-trigger) {
    max-inline-size: 100%;
}

body:not(.map-page) :is(button, .btn, .status-pill, .filter-chip) {
    overflow-wrap: normal !important;
    word-break: normal !important;
}

body:not(.map-page) :is(td, th, .card, .page-panel, .detail-section, .modal-card) {
    min-inline-size: 0;
    overflow-wrap: anywhere;
    word-break: normal;
}

body:not(.map-page) :is([data-value-kind="money"], [data-value-kind="date"], [data-value-kind="number"], .money, time) {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.quote-items-editor { display: grid; gap: .7rem; }
.quote-items-heading { display: flex; align-items: center; justify-content: space-between; gap: .65rem; flex-wrap: wrap; }
.quote-items-heading > .btn { margin-inline-start: auto; white-space: nowrap; }
.quote-items-list { display: grid; gap: .8rem; }
.quote-item-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; padding: .8rem; border: 1px solid var(--ds-border); border-radius: var(--ds-radius); background: var(--ds-surface-soft); }
.quote-item-row > .wide { grid-column: span 2; }
.quote-item-footer { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; padding-block-start: .2rem; }
.quote-item-summary { min-inline-size: 0; color: var(--ds-muted); font-size: .78rem; font-weight: 800; }
.quote-item-actions { flex: 0 0 auto; }
.quote-item-actions .btn { white-space: nowrap; }

@media (max-width: 920px) {
    .quote-item-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .quote-item-row > .wide { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
    .quote-item-row { grid-template-columns: minmax(0, 1fr); }
    .quote-item-row > .wide { grid-column: 1; }
    .quote-item-footer { align-items: stretch; flex-direction: column; }
    .quote-item-actions { align-self: stretch; }
    .quote-item-actions .btn { inline-size: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .page.is-partial-loading::after { animation-duration: 2s; }
}

/* Cabeçalho canônico: navegação/título à esquerda e comandos da página à direita. */
:root {
    --page-action-primary: var(--ds-primary);
    --page-action-primary-hover: #0b2559;
    --page-action-secondary: #ffffff;
    --page-action-secondary-hover: #f2f6fb;
    --page-action-danger: #b42318;
    --page-action-danger-hover: #8f1c13;
    --page-action-disabled: #e6ebf1;
    --page-action-disabled-text: #718096;
    --page-action-focus: rgba(10, 167, 223, .34);
}

body:not(.map-page) .page-header[data-page-header] {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center !important;
    justify-content: space-between !important;
    column-gap: clamp(14px, 2vw, 32px) !important;
    row-gap: 12px !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
}

body:not(.map-page) .page-header-main {
    display: flex !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    gap: 10px !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
}

body:not(.map-page) .page-header-leading {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    gap: 8px !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
}

body:not(.map-page) .page-header[data-page-header] .page-header-copy {
    grid-column: auto !important;
    grid-row: auto !important;
    flex: 1 1 auto !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
}

body:not(.map-page) .page-header[data-page-header] .page-header-copy :is(h1, p) {
    margin-inline: 0 !important;
    max-inline-size: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

body:not(.map-page) .page-header[data-page-header] .page-header-actions {
    display: flex !important;
    grid-column: auto !important;
    grid-row: auto !important;
    flex: 0 1 auto !important;
    align-self: center !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    min-inline-size: 0 !important;
    max-inline-size: min(52%, 920px) !important;
    margin-inline-start: auto !important;
    flex-wrap: wrap !important;
}

body:not(.map-page) .page-header-actions > :is(form, nav, div) {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-inline-size: 0;
    max-inline-size: 100%;
    margin: 0;
    flex-wrap: wrap;
}

body:not(.map-page) .page-intro-note {
    min-inline-size: 0;
    max-inline-size: 90ch;
    margin: 0;
    padding: 10px 12px;
    color: var(--ds-muted);
    border-inline-start: 3px solid var(--ds-accent);
    background: var(--ds-surface-soft);
    line-height: 1.45;
}

body:not(.map-page) .page-view-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

body:not(.map-page) :is(.page-header-leading, .page-header-actions) :is(.btn, button, a, summary) {
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    hyphens: none !important;
}

body:not(.map-page) :is(.btn, button.btn, a.btn, label.btn) {
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .15s ease !important;
}

body:not(.map-page) :is(.btn, button.btn, a.btn, label.btn):not(.alt):not(.danger):not(:disabled):not([aria-disabled="true"]):hover {
    background: var(--page-action-primary-hover) !important;
    border-color: var(--page-action-primary-hover) !important;
}

body:not(.map-page) :is(.btn.alt, button.btn.alt, a.btn.alt, label.btn.alt):not(:disabled):not([aria-disabled="true"]):hover {
    background: var(--page-action-secondary-hover) !important;
    border-color: #9cafc6 !important;
}

body:not(.map-page) :is(.btn.danger, button.btn.danger, a.btn.danger, label.btn.danger) {
    color: #fff !important;
    background: var(--page-action-danger) !important;
    border-color: var(--page-action-danger) !important;
}

body:not(.map-page) :is(.btn.danger, button.btn.danger, a.btn.danger, label.btn.danger):not(:disabled):not([aria-disabled="true"]):hover {
    background: var(--page-action-danger-hover) !important;
    border-color: var(--page-action-danger-hover) !important;
}

body:not(.map-page) :is(.btn, button.btn, a.btn, label.btn):focus-visible {
    outline: 3px solid var(--page-action-focus) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 1px #fff !important;
}

body:not(.map-page) :is(.btn, button.btn, a.btn, label.btn):active:not(:disabled):not([aria-disabled="true"]) {
    transform: translateY(0) !important;
    box-shadow: inset 0 1px 2px rgba(7, 27, 62, .2) !important;
}

body:not(.map-page) :is(.btn, button.btn, a.btn, label.btn):is(:disabled, [disabled], [aria-disabled="true"]) {
    color: var(--page-action-disabled-text) !important;
    background: var(--page-action-disabled) !important;
    border-color: #cfd7e2 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    opacity: .78 !important;
    pointer-events: none !important;
    transform: none !important;
}

@container (max-width: 760px) {
    body:not(.map-page) .page-header[data-page-header] {
        align-items: stretch !important;
        flex-direction: column !important;
    }

    body:not(.map-page) .page-header[data-page-header] .page-header-actions {
        inline-size: 100% !important;
        max-inline-size: 100% !important;
        margin-inline-start: 0 !important;
        justify-content: flex-start !important;
    }
}

@container (max-width: 480px) {
    body:not(.map-page) .page-header-main {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    body:not(.map-page) .page-header-leading {
        inline-size: 100% !important;
    }

    body:not(.map-page) .page-header[data-page-header] .page-header-actions > :is(.btn, button.btn, a.btn, label.btn),
    body:not(.map-page) .page-header[data-page-header] .page-header-actions > :is(form, nav, div) > :is(.btn, button.btn, a.btn, label.btn) {
        flex: 1 1 min(100%, 12rem) !important;
    }
}

/* Contrato responsivo global 2026.84: tabelas densas nunca comprimem palavras. */
body:not(.map-page) :is(
    .table-wrap,
    .table-scroll,
    .registration-table,
    .config-table,
    .finance-table-scroll,
    .fiscal-table-scroll,
    .domain-table-wrap,
    .driver-table-wrap,
    .rental-scroll,
    .sale-scroll,
    .os-scroll,
    .op-table,
    .proposal-table
) {
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin !important;
    scrollbar-color: #8797ac #eef3f8 !important;
    -webkit-overflow-scrolling: touch;
}

body:not(.map-page) :is(
    .table-wrap,
    .table-scroll,
    .registration-table,
    .config-table,
    .finance-table-scroll,
    .fiscal-table-scroll,
    .domain-table-wrap,
    .driver-table-wrap,
    .rental-scroll,
    .sale-scroll,
    .os-scroll,
    .op-table,
    .proposal-table
)::-webkit-scrollbar {
    inline-size: 9px !important;
    block-size: 9px !important;
}

body:not(.map-page) :is(
    .table-wrap,
    .table-scroll,
    .registration-table,
    .config-table,
    .finance-table-scroll,
    .fiscal-table-scroll,
    .domain-table-wrap,
    .driver-table-wrap,
    .rental-scroll,
    .sale-scroll,
    .os-scroll,
    .op-table,
    .proposal-table
)::-webkit-scrollbar-thumb {
    border: 2px solid #eef3f8 !important;
    border-radius: 999px !important;
    background: #8797ac !important;
}

body:not(.map-page) table :is(th, td) {
    min-inline-size: 0 !important;
    max-inline-size: 34rem !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

body:not(.map-page) table td {
    white-space: normal !important;
}

body:not(.map-page) table th {
    white-space: nowrap !important;
}

body:not(.map-page) :is(
    .table-wrap,
    .table-scroll,
    .registration-table,
    .config-table,
    .finance-table-scroll,
    .fiscal-table-scroll,
    .domain-table-wrap,
    .driver-table-wrap,
    .rental-scroll,
    .sale-scroll,
    .os-scroll,
    .op-table,
    .proposal-table
):focus-visible {
    outline: 3px solid rgba(10, 167, 223, .3) !important;
    outline-offset: 2px !important;
}

@media (max-width: 900px) {
    body:not(.map-page) :is(.table-wrap, .table-scroll, .registration-table, .config-table, .finance-table-scroll, .fiscal-table-scroll, .domain-table-wrap) > table:is(.mobile-card-table, .responsive-data-table) {
        inline-size: 100% !important;
        min-inline-size: 0 !important;
        max-inline-size: 100% !important;
    }

    body:not(.map-page) :is(.mobile-table-wrap, .responsive-data-table-wrap) {
        overflow: visible !important;
        border: 0 !important;
        background: transparent !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) {
        display: block !important;
        inline-size: 100% !important;
        min-inline-size: 0 !important;
        max-inline-size: 100% !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) thead {
        position: absolute !important;
        inline-size: 1px !important;
        block-size: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) tbody {
        display: grid !important;
        gap: .75rem !important;
        inline-size: 100% !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) tbody > tr:not(.mobile-table-empty, .responsive-data-empty, .table-empty-row) {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        min-inline-size: 0 !important;
        padding: .65rem !important;
        overflow: hidden !important;
        border: 1px solid var(--ds-border) !important;
        border-radius: var(--ds-radius) !important;
        background: #fff !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) tbody > tr:not(.mobile-table-empty, .responsive-data-empty, .table-empty-row) > td {
        display: grid !important;
        grid-template-columns: minmax(7.5rem, 38%) minmax(0, 1fr) !important;
        align-items: start !important;
        gap: .5rem !important;
        min-inline-size: 0 !important;
        max-inline-size: none !important;
        padding: .6rem !important;
        overflow: visible !important;
        border: 0 !important;
        border-bottom: 1px solid #edf1f5 !important;
        background: #fff !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
        text-align: start !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) td::before {
        content: attr(data-label);
        min-inline-size: 0;
        color: var(--ds-muted);
        font-size: .68rem;
        font-weight: 900;
        letter-spacing: .04em;
        line-height: 1.35;
        overflow-wrap: normal;
        word-break: normal;
        text-transform: uppercase;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) :is(.table-col-actions, .data-table-actions, .finance-col-actions) {
        position: static !important;
        grid-column: 1 / -1 !important;
        min-inline-size: 0 !important;
        max-inline-size: none !important;
        box-shadow: none !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) :is(.table-col-actions, .data-table-actions, .finance-col-actions) :is(.actions, [data-action-menu]) {
        inline-size: max-content !important;
        max-inline-size: 100% !important;
        justify-content: flex-end !important;
        margin-inline-start: auto !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) :is(.table-col-actions, .data-table-actions, .finance-col-actions) :is(.btn, .table-action-summary) {
        inline-size: max-content !important;
        max-inline-size: 100% !important;
        justify-content: center !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) :is(.mobile-table-empty, .responsive-data-empty, .table-empty-row),
    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) :is(.mobile-table-empty, .responsive-data-empty, .table-empty-row) > td {
        display: block !important;
        inline-size: 100% !important;
        min-inline-size: 0 !important;
        max-inline-size: none !important;
        padding: 0 !important;
        border: 0 !important;
    }

    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) :is(.mobile-table-empty, .responsive-data-empty, .table-empty-row) > td::before {
        content: none !important;
    }
}

/* Global contract: headings and shared actions never split words by character. */
body:not(.map-page) .page-header[data-page-header] .page-header-copy :is(h1, h2),
body:not(.map-page) .section-heading.section-heading :is(h1, h2),
body:not(.map-page) :is(.page-header-actions, .filter-actions) :is(.btn, button, a) {
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

/* Contrato semântico global 2026.86: cabeçalhos, valores e ações compartilham a coluna. */
html body .app [data-page-sheet] table:not([data-semantic-table="off"]) {
    inline-size: 100% !important;
    min-inline-size: max-content !important;
    max-inline-size: none !important;
    table-layout: auto !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td) {
    vertical-align: middle !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td, .table-cell-clamp, .status-pill, .reconciliation-status, .btn, .table-action-summary),
html body .app [data-page-sheet] table:not([data-semantic-table="off"]) td::before {
    min-inline-size: min-content !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-text,
html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-identifier {
    text-align: start !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-identifier,
html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-number,
html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-money,
html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-date {
    font-variant-numeric: tabular-nums !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-number,
html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-money,
html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-date {
    text-align: end !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td):is(
    .table-col-identifier,
    .table-col-number,
    .table-col-money,
    .table-col-date,
    .table-col-status,
    .table-col-actions
) {
    white-space: nowrap !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-status {
    text-align: center !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) :is(th, td).table-col-actions {
    position: static !important;
    z-index: auto !important;
    inset: auto !important;
    inline-size: auto !important;
    min-inline-size: 0 !important;
    max-inline-size: none !important;
    text-align: end !important;
    white-space: nowrap !important;
    background: inherit !important;
    box-shadow: none !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) td.table-col-actions > :is(.actions, [data-action-menu], .btn, a, button, form) {
    inline-size: max-content !important;
    max-inline-size: 100% !important;
    margin-inline-start: auto !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) td.table-col-actions :is(.btn, .table-action-summary) {
    min-block-size: 44px !important;
    inline-size: max-content !important;
    max-inline-size: 100% !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) > tbody > tr:hover > td {
    background: #f8fbff !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) > tbody > tr:is(.is-selected, [aria-selected="true"]) > td {
    background: #edf8fd !important;
}

html body .app [data-page-sheet] table:not([data-semantic-table="off"]) .table-empty-row,
html body .app [data-page-sheet] table:not([data-semantic-table="off"]) .table-empty-row > td {
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: none !important;
    text-align: center !important;
    white-space: normal !important;
}

@media (max-width: 900px) {
    html body .app [data-page-sheet] table:not([data-semantic-table="off"]):is(.mobile-card-table, .responsive-data-table) {
        min-inline-size: 0 !important;
        max-inline-size: 100% !important;
    }

    html body .app [data-page-sheet] table:not([data-semantic-table="off"]):is(.mobile-card-table, .responsive-data-table) :is(th, td).table-col-actions {
        text-align: start !important;
    }
}

/* Fechamento do contrato global de controles: prevalece sobre densidades locais antigas. */
html .custom-select .custom-select-trigger {
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    min-block-size: 44px !important;
    block-size: auto !important;
    padding-block: .625rem !important;
    overflow: hidden !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
}

html .custom-select .custom-select-trigger > .custom-select-trigger-label {
    display: block !important;
    flex: 1 1 auto !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    word-break: normal !important;
}

html .custom-select .custom-select-option {
    min-block-size: 44px !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    white-space: normal !important;
}

:root input:not([type="checkbox"]):not([type="radio"]),
:root select,
:root textarea {
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    min-block-size: 44px !important;
    block-size: auto !important;
    line-height: 1.25 !important;
    box-sizing: border-box !important;
}

html body .app :is(button, .btn):not(.compact-control) {
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    min-block-size: 44px !important;
    min-height: 44px !important;
    block-size: auto !important;
    height: auto !important;
    line-height: 1.2 !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    hyphens: none !important;
}

@media (max-width: 560px) {
    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) tbody > tr:not(.mobile-table-empty, .responsive-data-empty, .table-empty-row) {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@media (max-width: 380px) {
    body:not(.map-page) :is(.mobile-card-table, .responsive-data-table) tbody > tr:not(.mobile-table-empty, .responsive-data-empty, .table-empty-row) > td {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: .25rem !important;
    }
}

/* Contrato semântico 2026.85: Status e Ações pertencem à mesma linha. */
body:not(.map-page) table.status-actions-table > thead > tr {
    --operational-row-surface: #eef3f8;
    background: var(--operational-row-surface) !important;
}

body:not(.map-page) table.status-actions-table > thead > tr > th {
    background: var(--operational-row-surface) !important;
}

body:not(.map-page) table.status-actions-table > tbody > tr {
    --operational-row-surface: #fff;
    background: var(--operational-row-surface) !important;
}

body:not(.map-page) table.status-actions-table > tbody > tr > td {
    background: var(--operational-row-surface) !important;
}

body:not(.map-page) table.status-actions-table > tbody > tr:hover {
    --operational-row-surface: #f8fbff;
}

body:not(.map-page) table.status-actions-table > tbody > tr.is-selected {
    --operational-row-surface: #edf8fd;
}

body:not(.map-page) table.status-actions-table :is(
    th.table-col-status,
    td.table-col-status,
    th.finance-col-status,
    td.finance-col-status
) {
    vertical-align: middle !important;
    text-align: center !important;
}

body:not(.map-page) table.status-actions-table :is(
    td.table-col-status,
    td.finance-col-status
) > :is(.status-pill, .reconciliation-status) {
    justify-content: center !important;
    margin-inline: auto !important;
    vertical-align: middle !important;
}

body:not(.map-page) table.status-actions-table :is(
    th.table-col-actions,
    td.table-col-actions,
    th.finance-col-actions,
    td.finance-col-actions
) {
    position: static !important;
    z-index: auto !important;
    inset-inline-end: auto !important;
    vertical-align: middle !important;
    background: var(--operational-row-surface) !important;
    box-shadow: none !important;
}

body:not(.map-page) table.status-actions-table :is(
    td.table-col-actions,
    td.finance-col-actions
) > :is(.btn, .actions, [data-action-menu]) {
    margin-block: auto !important;
}

@media (max-width: 900px) {
    body:not(.map-page) table.status-actions-table :is(
        td.table-col-status,
        td.finance-col-status
    ) > :is(.status-pill, .reconciliation-status) {
        justify-self: start !important;
        margin-inline: 0 !important;
    }
}

/* Contratos semânticos globais 2026.88: layout intrínseco, filtros e vazios. */
.semantic-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.65rem, 1vw, 1rem);
    inline-size: 100%;
    min-inline-size: 0;
}

.semantic-card-grid > *,
.semantic-card {
    min-inline-size: 0;
    max-inline-size: 100%;
}

.semantic-card :is(h2, h3, h4, small, strong, span, p),
.semantic-no-shatter,
.semantic-filter-grid :is(label, legend, button, .btn),
.semantic-data-table :is(th, .status-pill, .table-action-summary),
.semantic-data-table td::before {
    overflow-wrap: normal;
    word-break: keep-all;
    hyphens: none;
}

.semantic-section-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem 1rem;
    inline-size: 100%;
    min-inline-size: 0;
    max-inline-size: 100%;
    flex-wrap: wrap;
}

.semantic-section-copy {
    flex: 1 1 auto;
    min-inline-size: 0;
    max-inline-size: 100%;
}

.semantic-section-header > :is(.actions, .filter-actions, .registration-filter-actions) {
    flex: 0 1 auto;
    min-inline-size: 0;
    max-inline-size: 100%;
    margin-inline-start: auto;
}

.semantic-filter-grid {
    container-type: inline-size;
    display: grid;
    align-items: end;
    gap: .65rem;
    inline-size: 100%;
    min-inline-size: 0;
    max-inline-size: 100%;
}

.semantic-filter-grid > *,
.semantic-filter-group,
.semantic-form-grid > * {
    min-inline-size: 0;
    max-inline-size: 100%;
}

.semantic-filter-grid[data-filter-layout="fields"] {
    /* Supera somente os templates legados que também usam !important. */
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)) !important;
}

.semantic-filter-grid[data-filter-layout="fields"] > .filter-search-field {
    grid-column: span 2;
}

.semantic-filter-grid[data-filter-layout="fields"] > :is(.filter-actions, .registration-filter-actions) {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
    margin-inline-start: auto;
    white-space: nowrap;
}

.semantic-filter-grid[data-filter-layout="compound"] {
    display: grid !important;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) max-content !important;
}

.semantic-filter-grid[data-filter-layout="compound"] > :is(.filter-group-primary, [data-semantic-filter-group="primary"]) {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.semantic-filter-grid[data-filter-layout="compound"] > :is(.filter-group-period, [data-semantic-filter-group="period"]) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.semantic-filter-grid[data-filter-layout="compound"] > .filter-submit {
    inline-size: auto;
    min-inline-size: 0;
}

.semantic-inline-actions,
.semantic-form-grid,
.semantic-selection-panel,
.semantic-form-grid .form-actions {
    min-inline-size: 0;
    max-inline-size: 100%;
}

.semantic-inline-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
    flex-wrap: wrap;
}

.semantic-selection-panel {
    display: grid;
    gap: .75rem;
    inline-size: 100%;
}

.semantic-data-table {
    inline-size: 100%;
    table-layout: auto;
}

.semantic-data-table :is(th, td) {
    vertical-align: middle;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.semantic-empty-state {
    display: grid;
    position: sticky;
    inset-inline-start: 0;
    place-items: center;
    align-content: center;
    gap: .35rem;
    inline-size: var(--semantic-scroll-viewport, 100%);
    max-inline-size: var(--semantic-scroll-viewport, 100%);
    box-sizing: border-box;
    margin-inline: 0 auto;
    min-block-size: clamp(7rem, 16cqi, 11rem);
    padding: clamp(1rem, 3cqi, 2rem);
    border: 1px dashed var(--ds-border-strong);
    border-radius: var(--ds-radius, .75rem);
    background: var(--ds-surface-soft, #f7f8fa);
    color: var(--ds-muted);
    text-align: center;
}

.semantic-empty-state > :is(strong, small) {
    max-inline-size: 62ch;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

html body .app .semantic-empty-state {
    /* A largura acompanha o viewport interno da tabela, inclusive após resize. */
    inline-size: var(--semantic-scroll-viewport, 100%);
    max-inline-size: var(--semantic-scroll-viewport, 100%);
    width: var(--semantic-scroll-viewport, 100%);
    max-width: var(--semantic-scroll-viewport, 100%);
    margin-inline: 0 auto;
}

:is(.semantic-table-empty, [data-semantic-table-empty]) > td {
    padding: .75rem;
    white-space: normal;
}

:is(.semantic-table-empty, [data-semantic-table-empty]) > td::before {
    content: none;
}

.viewport-fullscreen-toggle {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    inline-size: 44px;
    min-inline-size: 44px;
    block-size: 44px;
    min-block-size: 44px;
    padding: 0;
    border: 1px solid var(--ds-border-strong);
    border-radius: .6rem;
    background: var(--ds-surface, #fff);
    color: var(--ds-primary);
}

.viewport-fullscreen-toggle > svg {
    inline-size: 1.25rem;
    block-size: 1.25rem;
    pointer-events: none;
}

.company-filter :is(select, .company-select, .custom-select) {
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
}

.company-filter .company-select .custom-select-trigger {
    inline-size: 100% !important;
    width: 100% !important;
    min-block-size: 44px;
    block-size: 44px !important;
    padding-block: .5rem;
    white-space: nowrap;
    overflow: hidden !important;
}

.company-filter .company-select .custom-select-trigger .custom-select-trigger-label {
    display: block !important;
    flex: 1 1 auto !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

@container (max-width: 76rem) {
    .semantic-filter-grid[data-filter-layout="compound"] {
        grid-template-columns: minmax(0, 1fr) max-content !important;
    }

    .semantic-filter-grid[data-filter-layout="compound"] > :is(.filter-group-primary, .filter-group-period, [data-semantic-filter-group]) {
        grid-column: 1;
    }

    .semantic-filter-grid[data-filter-layout="compound"] > .filter-submit {
        grid-column: 2;
        grid-row: 2;
    }
}

@container (max-width: 48rem) {
    .semantic-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .semantic-card-grid--uniform > * {
        min-block-size: 7.5rem;
    }

    .semantic-section-header > :is(.actions, .filter-actions, .registration-filter-actions),
    .semantic-filter-grid[data-filter-layout="fields"] > :is(.filter-actions, .registration-filter-actions) {
        inline-size: 100%;
        margin-inline-start: 0;
    }

    .semantic-filter-grid[data-filter-layout="compound"] {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .semantic-filter-grid[data-filter-layout="compound"] > :is(.filter-group-primary, .filter-group-period, [data-semantic-filter-group], .filter-submit) {
        grid-column: 1;
        grid-row: auto;
    }

    .semantic-filter-grid[data-filter-layout="compound"] > :is(.filter-group-primary, [data-semantic-filter-group="primary"]) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .semantic-filter-grid[data-filter-layout="compound"] > :is(.filter-group-primary, [data-semantic-filter-group="primary"]) > :last-child {
        grid-column: 1 / -1;
    }

    .semantic-filter-grid[data-filter-layout="compound"] > .filter-submit {
        inline-size: 100%;
    }
}

@container (max-width: 30rem) {
    .semantic-card-grid,
    .semantic-filter-grid[data-filter-layout="fields"],
    .semantic-filter-grid[data-filter-layout="compound"] > :is(.filter-group-primary, .filter-group-period, [data-semantic-filter-group]) {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .semantic-filter-grid[data-filter-layout="fields"] > .filter-search-field,
    .semantic-filter-grid[data-filter-layout="compound"] > :is(.filter-group-primary, [data-semantic-filter-group="primary"]) > :last-child {
        grid-column: 1;
    }

    .semantic-filter-grid[data-filter-layout="fields"] > :is(.filter-actions, .registration-filter-actions),
    .semantic-inline-actions,
    .semantic-form-grid .form-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        inline-size: 100%;
    }

    .semantic-filter-grid[data-filter-layout="fields"] > :is(.filter-actions, .registration-filter-actions) > *,
    .semantic-inline-actions > *,
    .semantic-form-grid .form-actions > * {
        inline-size: 100%;
    }
}

/* === Contrato global de alinhamento de campos e ações 2026.91 === */
html body:not(.map-page) .app :is(h1, h2, h3),
html body:not(.map-page) .app :is(.card, .page-panel, .listing-card, .operational-section, .modal-card) :is(h1, h2, h3) {
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] {
    display: flex !important;
    flex-flow: row wrap !important;
    align-items: flex-end !important;
    align-content: flex-end !important;
    gap: .65rem !important;
}

body:not(.map-page) .semantic-filter-grid--grouped[data-filter-layout="fields"] {
    inline-size: 100% !important;
    max-inline-size: 112rem !important;
    margin-inline: auto !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > :is(.semantic-filter-group, [data-semantic-filter-group="primary"]) {
    display: contents !important;
}

body:not(.map-page) .semantic-filter-grid--grouped[data-filter-layout="fields"] > [data-semantic-filter-group="primary"] {
    display: flex !important;
    flex: 1 1 44rem !important;
    flex-flow: row wrap !important;
    align-items: flex-end !important;
    gap: .65rem !important;
    inline-size: auto !important;
    max-inline-size: 56rem !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .field,
body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .field,
body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > [data-semantic-filter-group="primary"] > .field {
    display: flex !important;
    flex: 1 1 10rem !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    gap: .375rem !important;
    inline-size: auto !important;
    min-inline-size: 0 !important;
    max-inline-size: 20rem !important;
    margin: 0 !important;
}

body:not(.map-page) .semantic-filter-grid--grouped[data-filter-layout="fields"] > [data-semantic-filter-group="primary"] > .field {
    flex: 1 1 10rem !important;
    max-inline-size: 14rem !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .filter-search-field,
body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .filter-search-field,
body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > [data-semantic-filter-group="primary"] > .filter-search-field {
    flex: 2 1 18rem !important;
    max-inline-size: none !important;
}

body:not(.map-page) .semantic-filter-grid--grouped[data-filter-layout="fields"] > [data-semantic-filter-group="primary"] > .filter-search-field {
    flex: 1.6 1 20rem !important;
    max-inline-size: 26rem !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > :is(.filter-period-field, [data-semantic-filter-group="period"]) {
    flex: 2 1 42rem !important;
    max-inline-size: 48rem !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .filter-actions,
body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .registration-filter-actions,
body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .filter-submit,
body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .filter-actions,
body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .registration-filter-actions,
body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > [data-semantic-filter-group="primary"] > .filter-actions {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    align-self: flex-end !important;
    justify-content: flex-end !important;
    gap: .5rem !important;
    inline-size: auto !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    min-block-size: 44px !important;
    margin: 0 0 0 auto !important;
    white-space: nowrap !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] :is(label, legend, button, .btn, .custom-select-trigger) {
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] :is(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
    select,
    .custom-select,
    .custom-select-trigger,
    .date-picker,
    .segmented-control
) {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    block-size: 44px !important;
    min-block-size: 44px !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] .field > :is(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
    select,
    .custom-select,
    .custom-select-trigger,
    .date-picker,
    .segmented-control
) {
    flex: 0 0 44px !important;
}

body:not(.map-page) .segmented-control {
    overflow: hidden !important;
}

body:not(.map-page) .segmented-control > button:is(.active, [aria-selected="true"], :active) {
    box-shadow: inset 0 0 0 1px rgba(7, 27, 112, .14) !important;
}

body:not(.map-page) .segmented-control > button:focus-visible {
    outline: 2px solid rgba(22, 72, 201, .42) !important;
    outline-offset: -2px !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] .segmented-control {
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    box-shadow: inset 0 0 0 1px var(--ds-border-strong, #b9c4d3) !important;
}

body:not(.map-page) .semantic-filter-period {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    gap: .375rem !important;
    min-inline-size: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

body:not(.map-page) .semantic-filter-period > legend {
    display: block !important;
    float: none !important;
    inline-size: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

body:not(.map-page) .semantic-filter-period-controls {
    display: flex !important;
    align-items: center !important;
    gap: .5rem !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] .semantic-filter-period-controls > :is(.segmented-control, .finance-period-values) {
    flex: 1 1 0 !important;
    inline-size: auto !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
}

body:not(.map-page) .semantic-filter-period-controls .finance-period-values {
    block-size: 44px !important;
}

body:not(.map-page) .semantic-filter-grid--grouped .semantic-filter-period-controls {
    display: grid !important;
    grid-template-columns: minmax(15rem, .75fr) minmax(22rem, 1.25fr) !important;
}

body:not(.map-page) .semantic-filter-grid--grouped .semantic-filter-period-controls > :is(.segmented-control, .finance-period-values) {
    inline-size: 100% !important;
    min-inline-size: 0 !important;
}

body:not(.map-page) .semantic-filter-grid--grouped .finance-period-values > .field {
    min-inline-size: min(100%, 10.5rem) !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] .segmented-control > button {
    box-sizing: border-box !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    block-size: 44px !important;
    min-block-size: 44px !important;
    margin: 0 !important;
    border: 0 !important;
    padding: .5rem !important;
    transform: none !important;
    transition: background-color .16s ease, color .16s ease, box-shadow .16s ease !important;
}

body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] .segmented-control > button:is(:hover, :focus-visible, :active, .active, [aria-selected="true"]) {
    margin: 0 !important;
    border: 0 !important;
    padding: .5rem !important;
    transform: none !important;
}

body:not(.map-page) .semantic-form-grid[data-form-layout="inline-selection"] {
    display: flex !important;
    align-items: flex-end !important;
    gap: .65rem !important;
}

body:not(.map-page) .semantic-form-grid[data-form-layout="inline-selection"] > .field {
    flex: 1 1 auto !important;
    inline-size: auto !important;
    min-inline-size: 0 !important;
    max-inline-size: none !important;
    margin: 0 !important;
}

body:not(.map-page) .semantic-form-grid[data-form-layout="inline-selection"] > .form-actions {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    align-self: flex-end !important;
    justify-content: flex-end !important;
    inline-size: auto !important;
    block-size: 44px !important;
    min-block-size: 44px !important;
    padding: 0 !important;
    margin: 0 0 0 auto !important;
}

body:not(.map-page) .semantic-form-grid[data-form-layout="inline-selection"] :is(select, .custom-select, .custom-select-trigger) {
    box-sizing: border-box !important;
    block-size: 44px !important;
    min-block-size: 44px !important;
}

/* O acionador pertence ao componente global e deve manter o alvo touch completo. */
body:not(.map-page) .date-picker {
    grid-template-columns: minmax(0, 1fr) 44px !important;
}

body:not(.map-page) .date-picker-trigger {
    box-sizing: border-box !important;
    inline-size: 44px !important;
    min-inline-size: 44px !important;
    block-size: 44px !important;
    min-block-size: 44px !important;
}

@container (max-width: 48rem) {
    body:not(.map-page) .semantic-filter-grid--grouped[data-filter-layout="fields"] > [data-semantic-filter-group="primary"],
    body:not(.map-page) .semantic-filter-grid--grouped[data-filter-layout="fields"] > [data-semantic-filter-group="period"] {
        flex-basis: 100% !important;
        inline-size: 100% !important;
        max-inline-size: none !important;
    }

    body:not(.map-page) .semantic-filter-grid--grouped .semantic-filter-period-controls {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .field,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .field,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > [data-semantic-filter-group="primary"] > .field {
        flex: 1 1 calc(50% - .325rem) !important;
        max-inline-size: none !important;
    }

    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .filter-search-field,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .filter-period-field,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .filter-search-field,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > [data-semantic-filter-group="primary"] > .filter-search-field {
        flex-basis: 100% !important;
    }

    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .filter-actions,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .registration-filter-actions,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .filter-submit,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .filter-actions,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .registration-filter-actions {
        flex-basis: 100% !important;
        inline-size: 100% !important;
        margin-inline-start: 0 !important;
    }
}

@container (max-width: 30rem) {
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .field,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .filter-period-field,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .field,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > [data-semantic-filter-group="primary"] > .field {
        flex-basis: 100% !important;
    }

    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .filter-actions,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .registration-filter-actions,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .filter-actions,
    body:not(.map-page) .semantic-filter-grid[data-filter-layout="fields"] > .semantic-filter-group > .registration-filter-actions {
        display: grid !important;
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)) !important;
        white-space: normal !important;
    }

    body:not(.map-page) .semantic-filter-period-controls,
    body:not(.map-page) .semantic-form-grid[data-form-layout="inline-selection"] {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    body:not(.map-page) .semantic-filter-grid--grouped .semantic-filter-period-controls .finance-period-values {
        flex-direction: column !important;
        block-size: auto !important;
    }

    body:not(.map-page) .semantic-filter-grid--grouped .semantic-filter-period-controls .finance-period-values > .field {
        inline-size: 100% !important;
        min-inline-size: 0 !important;
    }

    body:not(.map-page) .semantic-form-grid[data-form-layout="inline-selection"] > :is(.field, .form-actions),
    body:not(.map-page) .semantic-filter-period-controls > :is(.segmented-control, .finance-period-values) {
        inline-size: 100% !important;
    }
}

body:not(.map-page) .semantic-filter-grid--grouped[data-filter-layout="fields"] > .filter-submit {
    flex: 0 0 auto !important;
    inline-size: max-content !important;
    min-inline-size: 44px !important;
    max-inline-size: 100% !important;
    margin-inline-start: auto !important;
}
/* === /Contrato global de alinhamento de campos e ações 2026.91 === */
