/* 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 {
    display: block !important;
    content: attr(data-brand-context) !important;
}

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

/* Contrato global 2026.81: controles contidos em qualquer viewport e módulo. */
:where(.form, .domain-grid, .filter-row:not(.semantic-filter-grid), .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;
}

: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 {
    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 reutilizável com SVG real para diálogos fora do cabeçalho modal legado. */
.dialog-close-control--svg {
    display: inline-grid;
    place-items: center;
    flex: 0 0 44px;
    inline-size: 44px;
    min-inline-size: 44px;
    block-size: 44px;
    min-block-size: 44px;
    padding: 0;
    border: 1px solid #b9c7da;
    border-radius: 9px;
    background: #f5f8fc;
    color: #14265c;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.dialog-close-control--svg .dialog-close-icon {
    inline-size: 22px;
    block-size: 22px;
    flex: none;
    pointer-events: none;
}

.dialog-close-control--svg:is(:hover, :focus-visible) {
    border-color: #1648c9;
    background: #eaf1ff;
    outline: 3px solid rgba(22, 72, 201, .2);
    outline-offset: 2px;
}

/* Galeria reutilizável: navegação por toque/teclado e ampliação contida no viewport. */
.media-gallery {
    display: grid;
    gap: 12px;
    min-inline-size: 0;
    max-inline-size: 100%;
}

.media-gallery-stage {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 8px;
    min-inline-size: 0;
}

.media-gallery-nav,
.media-gallery-thumbnails > button {
    display: inline-grid;
    place-items: center;
    min-inline-size: 44px;
    min-block-size: 44px;
    padding: 0;
}

.media-gallery-nav svg {
    inline-size: 22px;
    block-size: 22px;
}

.media-gallery-active {
    display: grid;
    gap: 8px;
    min-inline-size: 0;
    padding: 8px;
    border: 1px solid #d5deeb;
    background: #f8fafc;
    color: #14213d;
}

.media-gallery-active img,
.media-gallery-dialog-panel img {
    display: block;
    inline-size: 100%;
    max-inline-size: 100%;
    block-size: auto;
    max-block-size: min(68dvh, 760px);
    object-fit: contain;
}

.media-gallery-active span,
.media-gallery-counter {
    min-inline-size: 0;
    margin: 0;
    overflow-wrap: anywhere;
    word-break: normal;
}

.media-gallery-thumbnails {
    display: flex;
    gap: 8px;
    max-inline-size: 100%;
    padding-block: 2px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.media-gallery-thumbnails > button {
    flex: 0 0 64px;
    inline-size: 64px;
    block-size: 64px;
    border: 2px solid transparent;
    background: #eef3f8;
}

.media-gallery-thumbnails > button[aria-current="true"] {
    border-color: #1648c9;
}

.media-gallery-thumbnails img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
}

.media-gallery-dialog {
    position: fixed;
    inset: 0;
    z-index: 7600;
    display: grid;
    place-items: center;
    padding: 12px;
    background: rgba(4, 13, 38, .78);
}

.media-gallery-dialog[hidden] {
    display: none;
}

.media-gallery-dialog-panel {
    position: relative;
    display: grid;
    place-items: center;
    inline-size: min(100%, 1120px);
    max-block-size: calc(100dvh - 24px);
    padding: 56px 12px 12px;
    overflow: auto;
    border-radius: 12px;
    background: #081739;
}

.media-gallery-dialog-panel > .dialog-close-control {
    position: absolute;
    inset-block-start: 8px;
    inset-inline-end: 8px;
}

@media (max-width: 390px) {
    .media-gallery-stage {
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        gap: 4px;
    }
}

/* 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 do mapa: símbolo e forma acompanham a cor, sem expor o número do ativo. */
.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: 44px !important;
    min-inline-size: 44px !important;
    block-size: 44px !important;
    min-block-size: 44px !important;
    padding: 0 !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: 16px !important;
    font-weight: 950 !important;
    line-height: 1.1 !important;
    overflow: visible !important;
    text-align: center !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.disponivel { background: #15803d !important; }
.map-identifier-marker.vendido { background: #c62828 !important; }
.map-identifier-marker.alugado { background: #facc15 !important; color: #3f3100 !important; }
.map-identifier-marker.em_transporte { background: #ea580c !important; }
.map-identifier-marker:is(.reservado,.manutencao,.inativo) { background: #52647e !important; }
.map-identifier-marker.tracking-stale { border-style: dashed !important; }
.map-identifier-marker.tracking-offline,
.map-identifier-marker.tracking-consent_required,
.map-identifier-marker.tracking-vehicle_required { box-shadow: 0 0 0 4px #fff, 0 0 0 7px #991b1b, 0 8px 22px rgba(7,27,62,.34) !important; }

.container-map-legend { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:10px 16px;border-bottom:1px solid #e4ebf1;background:#fff; }
.container-map-legend span { display:flex;align-items:center;gap:7px;color:#44546a;font-size:11px;font-weight:800; }
.container-map-legend i { display:grid;place-items:center;width:23px;height:23px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #cbd5e1;color:#fff;font-size:10px;font-style:normal;font-weight:950; }
.container-map-legend .is-available { background:#15803d; }
.container-map-legend .is-sold { background:#c62828; }
.container-map-legend .is-rented { background:#facc15;color:#3f3100; }
.container-map-legend .is-transport { background:#ea580c; }
.container-map-legend-note { grid-column:1/-1;color:#64748b;font-size:10px;font-weight:700;line-height:1.35; }
.map-result-item em.tracking-alert { color:#991b1b!important; }
.map-detail-modal .map-tracking-heading { margin:12px 20px 0;color:#071b70;font-size:14px; }
.map-detail-modal dl.map-tracking-data { padding-top:0!important; }
@media(max-width:380px){.container-map-legend{grid-template-columns:1fr}.container-map-legend-note{grid-column:auto}}

.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"] {
    display: flex;
    flex-flow: row wrap;
    align-items: flex-end;
    align-content: flex-end;
}

.semantic-filter-grid[data-filter-layout="fields"] > :is(.semantic-filter-group, [data-semantic-filter-group="primary"]) {
    display: flex;
    flex: 1 1 auto;
    flex-flow: row wrap;
    align-items: flex-end;
    gap: .65rem;
}

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

.semantic-filter-grid[data-filter-layout="fields"] > .filter-search-field,
.semantic-filter-grid[data-filter-layout="fields"] > :is(.semantic-filter-group, [data-semantic-filter-group="primary"]) > .filter-search-field {
    flex-grow: 3;
}

.semantic-filter-grid[data-filter-layout="fields"] > :is(.filter-period-field, [data-semantic-filter-group="period"]) {
    flex: 1 1 max-content;
    min-inline-size: min-content;
}

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

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

.field-label-line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .375rem;
    min-inline-size: 0;
}

.field-label-text {
    color: #27364d;
    font-family: inherit;
    font-size: var(--ds-form-label-size);
    font-weight: var(--ds-form-label-weight);
    line-height: var(--ds-form-label-line-height);
    letter-spacing: var(--ds-form-label-letter-spacing);
}

.field-label-meta {
    min-inline-size: 0;
    overflow: hidden;
    color: var(--ds-muted);
    font-family: inherit;
    font-size: var(--ds-form-meta-size);
    font-weight: var(--ds-form-meta-weight);
    line-height: var(--ds-form-meta-line-height);
    letter-spacing: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.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;
    inline-size: 100%;
    min-inline-size: 0;
    max-inline-size: 100%;
    block-size: 44px;
    min-block-size: 44px;
}

.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;
}

.semantic-filter-period {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: .375rem;
    min-inline-size: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.semantic-filter-period > legend {
    display: block;
    float: none;
    inline-size: auto;
    margin: 0;
    padding: 0;
}

.semantic-filter-period-controls {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    gap: .5rem;
    inline-size: fit-content;
    max-inline-size: 100%;
    min-inline-size: 0;
}

.semantic-filter-grid[data-filter-layout="fields"] .semantic-filter-period-controls > .segmented-control {
    flex: 0 0 max-content;
    inline-size: auto;
    min-inline-size: max-content;
}

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

.semantic-filter-grid[data-filter-layout="fields"] .segmented-control[data-segmented-layout="balanced"] {
    grid-template-columns: repeat(3, minmax(max-content, 1fr));
    min-inline-size: min-content;
}

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

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

.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) {
        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="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="compound"] > :is(.filter-group-primary, [data-semantic-filter-group="primary"]) > :last-child {
        grid-column: 1;
    }

    .semantic-inline-actions,
    .semantic-form-grid .form-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        inline-size: 100%;
    }

    .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) .segmented-control {
    overflow: hidden !important;
}

body:not(.map-page) .segmented-control[data-segmented-layout="balanced"] {
    grid-template-columns: repeat(3, minmax(max-content, 1fr)) !important;
    inline-size: 100% !important;
    min-inline-size: min-content !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;
}

/* Pares semanticamente relacionados: seleção curta + identidade/busca longa. */
.semantic-field-grid {
    display: flex;
    flex-flow: row wrap;
    align-items: start;
    gap: 12px;
    min-inline-size: 0;
    inline-size: 100%;
}

.semantic-field-grid > [data-field-size] {
    min-inline-size: min(100%, min-content);
    margin: 0;
}

.semantic-field-grid > [data-field-size="short"] { flex: 1 1 9rem; max-inline-size: 16rem; }
.semantic-field-grid > [data-field-size="medium"] { flex: 2 1 14rem; max-inline-size: 24rem; }
.semantic-field-grid > [data-field-size="long"] { flex: 4 1 20rem; max-inline-size: 42rem; }
.semantic-field-grid > [data-field-size="full"],
.semantic-field-grid > .wide:not([data-field-size]) { flex: 1 0 100%; max-inline-size: 100%; }
.semantic-field-grid > [data-field-content="atomic"] { flex-basis: max-content; }

.semantic-field-grid :is(input:not([type="hidden"]), select, button, .custom-select-trigger, .autocomplete-input) {
    min-block-size: 44px;
    min-inline-size: 0;
    max-inline-size: 100%;
}

.semantic-field-grid :is(textarea, [data-field-size="full"]) {
    min-inline-size: 0;
    max-inline-size: 100%;
}

.semantic-related-fields {
    box-sizing: border-box;
    display: flex;
    flex-flow: row wrap;
    grid-column: 1 / -1;
    gap: 12px;
    align-items: start;
    inline-size: 100%;
    min-inline-size: 0;
    max-inline-size: 100%;
    margin: 0;
}

.semantic-related-fields--compact-identity > [data-related-field="compact"] { flex: .62 0 min-content; }
.semantic-related-fields--compact-identity > [data-related-field="identity"] { flex: 1.65 0 min-content; }

.semantic-related-fields > .field {
    min-inline-size: min-content;
    margin: 0;
}

.semantic-related-fields > [hidden] {
    display: none;
}

.semantic-related-fields :is(input:not([type="hidden"]), select, button, .custom-select-trigger, .autocomplete-input) {
    min-block-size: 44px;
}

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;
    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;
}

/* === /Contrato global de alinhamento de campos e ações 2026.91 === */

/* === Contrato global de diálogos, escala e navegação 2026.92 ===
   A caixa externa nunca rola. Cabeçalho e ações permanecem estáveis; somente
   o conteúdo interno recebe rolagem. As regras são semânticas e independem de
   rota, id ou consumidor. */
:root {
    --dialog-overlay-gap: 12px;
    --dialog-panel-max-inline: 72rem;
    --dialog-footer-reserve: 8rem;
    --dialog-title-size: 1.25rem;
    --dialog-copy-size: .8125rem;
    --dialog-control-size: .875rem;
}

html,
body {
    max-inline-size: 100%;
    overflow-x: clip;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

html:has(body.modal-open),
body.modal-open {
    block-size: 100% !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
}

html body:not(.map-page) .app {
    zoom: 1 !important;
}

[data-dialog-contract] {
    z-index: 2800;
    display: grid;
    isolation: isolate;
    place-items: center;
    background: rgba(10, 25, 22, .58);
}

[data-dialog-contract][hidden] {
    display: none;
}

[data-dialog-contract][data-dialog-size="compact"] {
    --dialog-overlay-gap: 12px;
    --dialog-panel-inline-size: fit-content;
    --dialog-panel-container-type: normal;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) {
    position: fixed !important;
    box-sizing: border-box !important;
    inset: 0 !important;
    max-inline-size: 100vw !important;
    max-block-size: 100dvh !important;
    padding: var(--dialog-overlay-gap) !important;
    overflow: hidden !important;
    overscroll-behavior: contain !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) > :is(.modal-card, .modal-panel, [role="dialog"]) {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    inline-size: var(--dialog-panel-inline-size, min(var(--dialog-panel-max-inline), 100%)) !important;
    max-inline-size: 100% !important;
    block-size: auto !important;
    max-block-size: 100% !important;
    min-inline-size: 0 !important;
    min-block-size: 0 !important;
    margin: auto !important;
    padding: 0 !important;
    overflow: hidden !important;
    overscroll-behavior: contain !important;
    border: 1px solid var(--ds-border, #d9e3ed);
    border-radius: var(--ds-radius, .75rem);
    background: #fff;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
    container-type: var(--dialog-panel-container-type, inline-size);
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-header, .modal-head, .modal-header, [role="dialog"] > header) {
    position: relative !important;
    z-index: 3 !important;
    display: grid !important;
    flex: 0 0 auto !important;
    grid-template-columns: minmax(0, 1fr) 44px !important;
    align-items: start !important;
    gap: .75rem !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    margin: 0 !important;
    padding: 1rem 1.125rem !important;
    border-bottom: 1px solid var(--ds-border, #d9e3ed) !important;
    background: #fff !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-header, .modal-head, .modal-header, [role="dialog"] > header) > :first-child {
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-header, .modal-head, .modal-header, [role="dialog"] > header) :is(h1, h2, h3) {
    margin: 0 !important;
    font-size: var(--dialog-title-size) !important;
    line-height: 1.2 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-header, .modal-head, .modal-header, [role="dialog"] > header) p {
    max-inline-size: 72ch !important;
    margin: .3rem 0 0 !important;
    color: var(--ds-muted, #607089) !important;
    font-size: var(--dialog-copy-size) !important;
    line-height: 1.4 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-close-control, .modal-close, [data-close-modal][aria-label], [data-client-modal-close][aria-label], [data-close-finance-settlement][aria-label]) {
    box-sizing: border-box !important;
    flex: 0 0 44px !important;
    inline-size: 44px !important;
    min-inline-size: 44px !important;
    max-inline-size: 44px !important;
    block-size: 44px !important;
    min-block-size: 44px !important;
    max-block-size: 44px !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-form, .modal-card > form, .modal-panel > form) {
    position: static !important;
    flex: 1 1 auto !important;
    min-inline-size: 0 !important;
    min-block-size: 0 !important;
    max-block-size: 100% !important;
    padding: 1rem 1.125rem var(--dialog-footer-reserve) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(20, 38, 92, .34) transparent !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-form, .modal-card > form, .modal-panel > form):has(> :is(.dialog-contract-body, .modal-body)) {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    overflow: hidden !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) .dialog-contract-body {
    flex: 1 1 auto !important;
    min-inline-size: 0 !important;
    min-block-size: 0 !important;
    max-inline-size: 100% !important;
    padding: var(--ds-space-sm) 1.125rem !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(20, 38, 92, .34) transparent !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-form, .modal-card > form, .modal-panel > form):not(:has(> .dialog-contract-body)) > .dialog-contract-footer {
    position: absolute !important;
    z-index: 4 !important;
    inset-inline: 0 !important;
    inset-block-end: 0 !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-footer, .modal-foot, .modal-actions, .form-actions) {
    box-sizing: border-box !important;
    display: flex !important;
    flex: 0 0 auto !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: end !important;
    gap: .625rem !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    margin: 0 !important;
    padding: var(--ds-space-sm) 1.125rem calc(var(--ds-space-sm) + env(safe-area-inset-bottom)) !important;
    border-top: 1px solid var(--ds-border, #d9e3ed) !important;
    background: #fff !important;
    box-shadow: 0 -8px 18px rgba(15, 27, 61, .06) !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-footer, .modal-foot, .modal-actions, .form-actions) :is(button, .btn, a, label) {
    box-sizing: border-box;
    flex: 0 0 auto;
    flex-shrink: 0;
    inline-size: max-content;
    max-inline-size: 100%;
    min-inline-size: 44px !important;
    min-block-size: 44px !important;
    white-space: nowrap;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .custom-select-trigger) {
    min-block-size: 44px !important;
    font-size: var(--dialog-control-size) !important;
    line-height: 1.35 !important;
}

html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(label, legend, small, p, span, strong) {
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: none !important;
}

html body:not(.map-page) .app :is(.kpi, .dashboard-kpi, .dashboard-mini-kpi, .dashboard-signal, .finance-grid > div, .finance-grid > a) strong,
html body:not(.map-page) .app .finance-v2-kpi strong {
    font-size: 1.5rem !important;
    line-height: 1.1 !important;
}

html body:not(.map-page) .app [class*="modal-backdrop"]:has(> [role="dialog"]) {
    box-sizing: border-box !important;
    position: fixed !important;
    inset: 0 !important;
    max-inline-size: 100vw !important;
    max-block-size: 100dvh !important;
    padding: var(--dialog-overlay-gap) !important;
    overflow: hidden !important;
    overscroll-behavior: contain !important;
}

html body:not(.map-page) .app [class*="modal-backdrop"] > [role="dialog"] {
    box-sizing: border-box !important;
    min-inline-size: 0 !important;
    min-block-size: 0 !important;
    max-inline-size: 100% !important;
    max-block-size: 100% !important;
    overflow: hidden !important;
}

html body:not(.map-page) .app [class*="modal-backdrop"] > [role="dialog"] > header button[aria-label] {
    box-sizing: border-box !important;
    inline-size: 44px !important;
    min-inline-size: 44px !important;
    block-size: 44px !important;
    min-block-size: 44px !important;
    font-size: 1.25rem !important;
    line-height: 1 !important;
}

@media (max-width: 560px) {
    :root {
        --dialog-overlay-gap: 0px;
        --dialog-footer-reserve: 8.5rem;
        --dialog-control-size: 1rem;
    }

    html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]:not([data-dialog-size="compact"])) > :is(.modal-card, .modal-panel, [role="dialog"]) {
        inline-size: 100% !important;
        block-size: 100% !important;
        max-block-size: 100% !important;
        border-radius: 0 !important;
    }

    html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-header, .modal-head, .modal-header, [role="dialog"] > header) {
        padding: .75rem .875rem !important;
    }

    html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) .dialog-contract-body,
    html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-form, .modal-card > form, .modal-panel > form) {
        padding-inline: .875rem !important;
    }

    html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-footer, .modal-foot, .modal-actions, .form-actions) {
        padding-inline: .875rem !important;
    }

    html body:not(.map-page) .app :is(.modal, .domain-modal, [data-dialog-contract]) :is(.dialog-contract-footer, .modal-foot, .modal-actions, .form-actions) :is(button, .btn, a, label) {
        inline-size: auto !important;
        min-inline-size: 44px !important;
    }

    .semantic-field-grid > [data-field-size],
    .semantic-field-grid > .wide:not([data-field-size]) {
        flex: 1 0 100%;
        max-inline-size: 100%;
    }
}
/* === /Contrato global de diálogos, escala e navegação 2026.92 === */

/* === Workspace de viewport 2026.93 ===
   A primeira linha e o cabecalho real da pagina; o workspace recebe apenas
   o espaco restante. Nao ha spacer flexivel, altura artificial ou scroll
   duplo, e o contrato independe de rota e dominio. */
body:has([data-viewport-workspace]) {
    min-height: 100dvh !important;
    overflow: hidden !important;
}

body .content:has([data-viewport-workspace]) {
    height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

body .content:has([data-viewport-workspace]) > .page {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

html body .content .page > .page-sheet:has(> [data-viewport-workspace]) {
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: clamp(8px, .65vw, 12px) !important;
    gap: 8px !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    align-content: stretch !important;
    overflow: hidden !important;
}

html body .content .page > .page-sheet:has(> [data-viewport-workspace]) > .page-header[data-page-header] {
    display: grid !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 0 8px !important;
}

html body .content .page > .page-sheet:has(> [data-viewport-workspace]) > [data-viewport-workspace] {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
}

body .content:has([data-viewport-workspace]) > .footer {
    display: none !important;
}
/* === /Workspace de viewport 2026.93 === */
