.domain-toolbar,
.domain-actions {
    display: flex;
    gap: .75rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.domain-grid:not(.semantic-field-grid) {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
}

.domain-grid > .field {
    grid-column: span 4;
}

.domain-grid > .wide {
    grid-column: 1 / -1;
}

.domain-card {
    min-width: 0;
    padding: 1.15rem;
    border: 1px solid var(--line, #dbe2ea);
    border-radius: 18px;
    background: #fff;
}

.domain-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: .8rem;
    margin-bottom: 1rem;
}

.domain-kpis article {
    padding: 1rem;
    border: 1px solid #e1e8ed;
    border-radius: 16px;
    background: #f4f7f9;
}

.domain-kpis span,
.domain-kpis small {
    display: block;
    color: #61717c;
}

.domain-kpis strong {
    display: block;
    margin-top: .3rem;
    font-size: 1.2rem;
}

.domain-table-wrap {
    max-width: 100%;
    overflow: auto;
    border: 1px solid #e1e8ed;
    border-radius: 16px;
}

.domain-table {
    width: 100%;
    min-width: 47.5rem;
    border-collapse: collapse;
}

.domain-table th,
.domain-table td {
    padding: .8rem;
    border-bottom: 1px solid #e8edf1;
    text-align: left;
    vertical-align: top;
}

.domain-table th {
    background: #f4f7f9;
    font-size: .78rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.domain-empty {
    padding: 2rem;
    color: #61717c;
    text-align: center;
}

.domain-tabs {
    display: flex;
    gap: .45rem;
    margin-bottom: 1rem;
    padding-bottom: .4rem;
    overflow: auto;
}

.domain-tabs a {
    padding: .6rem .9rem;
    border: 1px solid #d8e1e7;
    border-radius: 999px;
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}

.domain-tabs a.active {
    border-color: #173e36;
    background: #173e36;
    color: #fff;
}

.domain-modal {
    position: fixed;
    z-index: 2800;
    inset: 0;
    display: grid;
    isolation: isolate;
    place-items: center;
    padding: max(12px, 3vh) max(10px, 2vw);
    background: rgba(10, 25, 22, .58);
}

.domain-modal[hidden] {
    display: none;
}

.domain-modal .modal-card {
    display: flex;
    flex-direction: column;
    width: min(61.25rem, 100%);
    max-height: 94dvh;
    overflow: visible !important;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}

.domain-modal .modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.2rem;
    border-bottom: 1px solid #e1e8ed;
}

.domain-modal .modal-body {
    padding: 1.2rem;
    overflow: auto;
    overscroll-behavior: contain;
}

.domain-modal .modal-foot {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .7rem;
    padding: 1rem 1.2rem;
    border-top: 1px solid #e1e8ed;
    background: #fff;
}

.domain-modal .modal-close {
    flex: 0 0 44px;
    width: 44px !important;
    min-width: 44px !important;
    inline-size: 44px !important;
    min-inline-size: 44px !important;
    height: 44px !important;
}

.remote-box {
    position: relative;
}

.remote-results {
    position: absolute;
    z-index: 40;
    top: 100%;
    right: 0;
    left: 0;
    max-height: 14.375rem;
    overflow: auto;
    border: 1px solid #cfd9df;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(20, 40, 35, .14);
}

.remote-results[hidden] {
    display: none;
}

.remote-results button {
    display: block;
    width: 100%;
    min-height: 44px;
    padding: .7rem .8rem;
    border: 0;
    background: #fff;
    text-align: left;
}

.remote-results button:hover,
.remote-results button:focus {
    background: #eef5f2;
}

.remote-results-status {
    padding: .75rem .875rem;
    color: #52637a;
    font-size: .875rem;
    line-height: 1.35;
}

.conditional[hidden] {
    display: none !important;
}

.purchase-items {
    display: grid;
    gap: .75rem;
}

.purchase-item {
    display: grid;
    grid-template-columns: 1fr 1.8fr .7fr .7fr .9fr auto;
    align-items: end;
    gap: .55rem;
    padding: .8rem;
    border-radius: 14px;
    background: #f5f8f9;
}

.kanban {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    max-width: 100%;
}

.kanban-column {
    min-width: 0;
    min-height: 15rem;
    padding: .8rem;
    border-radius: 16px;
    background: #eef3f4;
}

.kanban-card {
    display: block;
    min-width: 0;
    margin-top: .7rem;
    padding: .8rem;
    overflow-wrap: anywhere;
    border: 1px solid #dce5e8;
    border-radius: 13px;
    background: #fff;
    color: inherit;
    text-decoration: none;
}

.timeline-compact {
    display: grid;
    gap: .65rem;
}

.timeline-compact > div {
    padding: .35rem .7rem;
    border-left: 3px solid #2d7664;
}

.qr-video {
    width: 100%;
    max-height: 20.625rem;
    border-radius: 14px;
    background: #0a1513;
}

.native-control-free input[type="number"]::-webkit-inner-spin-button,
.native-control-free input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.native-control-free input[type="number"] {
    -moz-appearance: textfield;
}

.section-stack {
    display: grid;
    gap: 1rem;
}

.summary-list {
    display: grid;
    gap: .5rem;
}

.summary-list > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid #e5ebef;
}

.modal-open {
    overflow: hidden;
}

/* Formulários operacionais: composição compartilhada por páginas e modais de domínio. */
.operational-form-shell,
.operational-modal-card {
    container-type: inline-size;
}

.operational-form-shell {
    width: 100%;
    min-width: 0;
    margin-inline: 0;
}

.operational-form,
.operational-form-body {
    display: grid;
    gap: .875rem;
    min-width: 0;
}

.domain-modal .operational-modal-card {
    width: min(73.75rem, calc(100vw - 1.5rem)) !important;
    max-height: min(94dvh, 64rem) !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
}

.domain-modal .operational-modal-card--compact {
    width: min(48rem, calc(100vw - 1.5rem)) !important;
}

.operational-modal-form {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
}

.domain-modal .operational-form-body,
.domain-modal .operational-modal-form > .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(20, 38, 92, .34) transparent;
}

.domain-modal .operational-form-body::-webkit-scrollbar,
.domain-modal .operational-modal-form > .modal-body::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

.domain-modal .operational-modal-card > .modal-head,
.domain-modal .operational-modal-form > .modal-foot {
    flex: 0 0 auto;
    position: relative !important;
    inset-block: auto !important;
    width: 100% !important;
    inline-size: 100% !important;
    margin: 0 !important;
}

.domain-modal .operational-modal-card > .modal-head {
    grid-template-columns: minmax(0, 1fr) 44px !important;
    padding: 1rem 1.2rem !important;
}

.domain-modal .operational-modal-form > .modal-foot {
    padding: 1rem 1.2rem !important;
}

.operational-form-section {
    display: grid;
    gap: .875rem;
    padding: clamp(.9rem, 1.4cqi, 1.35rem);
    border-radius: 14px;
}

.operational-section-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
    padding-bottom: .8rem;
    border-bottom: 1px solid #e5ebef;
}

.operational-section-header > * {
    min-width: 0;
}

.operational-section-copy {
    display: grid;
    flex: 1 1 auto;
    grid-template-columns: minmax(0, 48rem) minmax(min(100%, 18rem), 32rem);
    justify-content: start;
    gap: .2rem 1rem;
    min-width: 0;
    max-width: none;
}

.operational-section-copy > :is(.operational-section-kicker, h2, h3) {
    grid-column: 1;
}

.operational-section-header :is(h2, h3),
.operational-section-header p {
    margin: 0;
}

.operational-section-header :is(h2, h3) {
    font-size: 1.125rem;
    line-height: 1.25;
}

.operational-section-header p {
    max-width: 48ch;
    color: #61717c;
    font-size: .82rem;
    line-height: 1.4;
    text-align: right;
}

.operational-section-copy p {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    max-width: 48ch;
    text-align: left;
}

.operational-section-kicker {
    display: block;
    margin-bottom: .2rem;
    color: #2d7664;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.operational-form-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    min-width: 0;
    gap: .75rem .875rem;
    align-items: start;
}

.operational-field-span-2 { grid-column: span 2; }
.operational-field-span-3 { grid-column: span 3; }
.operational-field-span-4 { grid-column: span 4; }
.operational-field-span-6 { grid-column: span 6; }
.operational-field-span-9 { grid-column: span 9; }
.operational-field-span-12 { grid-column: 1 / -1; }

.operational-form :is(.field, .operational-static-field),
.operational-form-body :is(.field, .operational-static-field),
.operational-modal-form :is(.field, .operational-static-field) {
    min-width: 0;
    max-width: 100%;
    margin: 0 !important;
}

.operational-form .field > *,
.operational-form-body .field > *,
.operational-modal-form .field > * {
    min-width: 0;
    max-width: 100%;
}

.operational-form :is(input, select, .custom-select-trigger),
.operational-form-body :is(input, select, .custom-select-trigger),
.operational-modal-form :is(input, select, .custom-select-trigger),
.remote-control .btn,
.operational-form-actions .btn,
.domain-modal .operational-modal-form > .modal-foot .btn {
    min-height: 44px !important;
}

.operational-form :is(label, small, p, h2, h3),
.operational-form-body :is(label, small, p, h2, h3),
.operational-modal-form :is(label, small, p, h2, h3) {
    word-break: normal;
    overflow-wrap: break-word;
}

.operational-form textarea,
.operational-form-body textarea,
.operational-modal-form textarea {
    min-height: 6rem !important;
    resize: vertical;
}

.operational-static-field {
    display: grid;
    align-content: center;
    min-width: 0;
    min-height: 3.25rem;
    padding: .65rem .8rem;
    border: 1px dashed #c9d8d3;
    border-radius: 12px;
    background: #f5f8f7;
}

.operational-static-field span {
    color: #61717c;
    font-size: .72rem;
}

.operational-static-field strong {
    overflow: hidden;
    font-size: .88rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.remote-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .5rem;
    min-width: 0;
}

.remote-control .btn {
    max-width: 14rem;
    white-space: normal;
}

.operational-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
    min-height: 0;
    padding: 0 0 .25rem;
}

/* Mapa privativo: o domínio consome integralmente a área cedida pelo shell. */
.map-domain-stage {
    position: relative !important;
    isolation: isolate;
    inline-size: 100% !important;
    block-size: 100% !important;
    min-inline-size: 0 !important;
    min-block-size: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #dce8ef !important;
    box-shadow: none !important;
}

.map-domain-stage > .map-viewport-canvas {
    position: absolute !important;
    z-index: 1 !important;
    inset: 0 !important;
    inline-size: 100% !important;
    block-size: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Painel lateral sobre viewport: contrato semântico reutilizável por mapas, quadros e canvases. */
.viewport-overlay-shell {
    min-inline-size: 0 !important;
}

.viewport-overlay-shell > .viewport-overlay-panel {
    position: absolute !important;
    z-index: 500 !important;
    top: .75rem !important;
    right: max(.75rem, env(safe-area-inset-right)) !important;
    bottom: auto !important;
    left: auto !important;
    box-sizing: border-box !important;
    inline-size: min(23rem, calc(100% - 3.5rem - env(safe-area-inset-left) - env(safe-area-inset-right))) !important;
    max-inline-size: calc(100% - 3.5rem - env(safe-area-inset-left) - env(safe-area-inset-right)) !important;
    min-inline-size: 0 !important;
    max-block-size: calc(100% - 1.5rem) !important;
    margin: 0 !important;
}

.viewport-overlay-panel > *,
.viewport-overlay-panel :is(form, header, div, label, input, select, button, a) {
    box-sizing: border-box;
    max-inline-size: 100%;
    min-inline-size: 0;
}

.viewport-overlay-panel-toggle {
    box-sizing: border-box !important;
    max-inline-size: calc(100% - env(safe-area-inset-left) - env(safe-area-inset-right)) !important;
}

@container (max-width: 56rem) {
    .operational-field-span-3,
    .operational-field-span-4 { grid-column: span 6; }
    .operational-field-span-9 { grid-column: 1 / -1; }
}

@container (max-width: 42rem) {
    .operational-section-header {
        display: grid;
        align-items: start;
    }

    .operational-section-header p {
        max-width: none;
        text-align: left;
    }

    .operational-section-copy {
        grid-template-columns: minmax(0, 1fr);
    }

    .operational-section-copy p {
        grid-column: 1;
        grid-row: auto;
    }

    .remote-control {
        grid-template-columns: minmax(0, 1fr);
    }

    .remote-control .btn {
        width: 100%;
        max-width: none;
    }

}

@container (max-width: 36rem) {
    .operational-field-span-2,
    .operational-field-span-3,
    .operational-field-span-4,
    .operational-field-span-6,
    .operational-field-span-9,
    .operational-field-span-12 {
        grid-column: 1 / -1;
    }

    .operational-form-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

@container (max-width: 22rem) {
    .operational-form-actions {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 900px) {
    .domain-grid > .field {
        grid-column: span 6;
    }

    .purchase-item {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .purchase-item > * {
        min-width: 0;
    }

    .kanban {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .domain-grid > .field {
        grid-column: 1 / -1;
    }

    .domain-card {
        padding: .85rem;
        border-radius: 14px;
    }

    .domain-toolbar > * {
        width: 100%;
    }

    .domain-actions {
        justify-content: stretch;
    }

    .domain-actions .btn {
        flex: 1;
    }

    .purchase-item,
    .kanban {
        grid-template-columns: minmax(0, 1fr);
    }

    .domain-modal {
        place-items: end center;
        padding: 0;
    }

    .domain-modal .modal-card {
        width: 100%;
        max-height: 96dvh;
        overflow: hidden !important;
        border-radius: 20px 20px 0 0;
    }

    .domain-modal .operational-modal-card {
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
    }

    .domain-modal .modal-body {
        min-height: 0;
        overflow: auto;
        overscroll-behavior: contain;
    }

    .domain-table {
        min-width: 40.625rem;
    }

    .viewport-overlay-shell > .viewport-overlay-panel {
        top: .5rem !important;
        right: max(.5rem, env(safe-area-inset-right)) !important;
        inline-size: calc(100% - 3rem - env(safe-area-inset-left) - env(safe-area-inset-right)) !important;
        max-inline-size: calc(100% - 3rem - env(safe-area-inset-left) - env(safe-area-inset-right)) !important;
        max-block-size: calc(100% - 1rem) !important;
    }
}

@media (min-width: 1800px) {
    .domain-grid > .field {
        grid-column: span 3;
    }

    .domain-card {
        padding: 1.35rem;
    }
}

/* Containers: formulários e propriedade legal/destinação operacional. */
.container-create-modal .modal-card {
    width: min(70rem, 100%) !important;
    max-height: min(94dvh, 62rem) !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.container-modal-form {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
}

.container-create-modal .modal-head,
.container-create-modal .modal-foot {
    flex: 0 0 auto;
}

.container-create-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: start;
}

.container-create-grid > .field {
    grid-column: span 1;
}

.container-create-grid > .wide {
    grid-column: 1 / -1;
}

.container-owner-context {
    display: grid;
    gap: .4rem;
    min-width: 0;
}

.container-owner-context > small {
    color: #61717c;
    font-size: .75rem;
    line-height: 1.4;
}

.container-create-grid > .field,
.container-movement-form > .field,
.container-maintenance-form > .field,
.container-document-form > .field,
.container-inspection-form > .field {
    display: grid;
    min-width: 0;
    grid-template-rows: minmax(1.125rem, auto) minmax(2.5rem, auto);
    align-content: start;
    gap: .375rem;
    margin: 0 !important;
}

.container-create-grid :is(input, select),
.container-movement-form :is(input, select),
.container-maintenance-form :is(input, select),
.container-document-form :is(input, select),
.container-inspection-form :is(input, select) {
    width: 100%;
    min-width: 0;
    min-height: 44px !important;
    height: auto !important;
    line-height: 1.25 !important;
}

.container-create-grid textarea,
.container-movement-form textarea,
.container-maintenance-form textarea,
.container-document-form textarea,
.container-inspection-form textarea {
    width: 100%;
    min-width: 0;
    min-height: 5.5rem !important;
    resize: vertical;
}

.container-movement-form {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    align-items: start !important;
}

/* Componente reutilizável de localização operacional. O texto nunca quebra letra por letra. */
.operational-location-picker {
    display: grid;
    min-width: 0;
    gap: .75rem;
    margin: 0;
    padding: .875rem;
    border: 1px solid #d6e0e8;
    border-radius: .75rem;
    background: #f8fbfd;
}

.operational-location-picker,
.operational-location-picker * {
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: none !important;
}

.operational-location-picker legend,
.operational-location-picker label,
.operational-location-review :is(dt, dd, span, strong, p) {
    max-width: 100%;
    white-space: normal;
}

.operational-location-picker.operational-location-picker .operational-location-review.operational-location-review :is(dt, dd, span, strong, p) {
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: none !important;
}

.operational-location-mode,
.operational-location-search {
    display: grid;
    min-width: 0;
    gap: .625rem;
}

.operational-location-search[hidden] {
    display: none;
}

.operational-location-search:not([hidden]) {
    display: contents;
}

.operational-location-query,
.operational-location-combobox-anchor {
    position: relative;
    min-width: 0;
}

.operational-location-mode > select,
.operational-location-search :is(input, select) {
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.operational-location-status {
    margin: 0;
    color: #52657c;
    font-size: .8125rem;
    line-height: 1.45;
}

.operational-location-suggestions {
    position: absolute;
    z-index: 60;
    inset-block-start: calc(100% + .25rem);
    inset-inline: 0;
    display: grid;
    width: 100%;
    max-width: 100%;
    max-height: min(18rem, 42dvh);
    gap: .375rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: .375rem;
    border: 1px solid #b9c9d8;
    border-radius: .625rem;
    background: #fff;
    box-shadow: 0 .75rem 2rem rgba(17, 38, 62, .18);
}

.operational-location-suggestions[data-placement="above"] {
    inset-block-start: auto;
    inset-block-end: calc(100% + .25rem);
}

.operational-location-suggestions[hidden] {
    display: none;
}

.operational-location-suggestion {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: .25rem;
    padding: .75rem;
    border: 1px solid #cbd9e5;
    border-radius: .625rem;
    background: #fff;
    color: #172855;
    text-align: left;
    cursor: pointer;
}

.operational-location-suggestion > :is(strong, span) {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
}

.operational-location-suggestion > span {
    color: #607089;
    font-size: .75rem;
}

.operational-location-suggestion:is(:hover, :focus-visible, [aria-selected="true"]) {
    border-color: #0aa7df;
    background: #f0faff;
}

.operational-location-review {
    display: grid;
    min-width: 0;
    gap: .75rem;
    padding: .875rem;
    border: 1px solid #86c9df;
    border-radius: .75rem;
    background: #fff;
}

.operational-location-review[hidden] {
    display: none;
}

.operational-location-review > div:first-child > :is(span, strong) {
    display: block;
}

.operational-location-review > div:first-child > span,
.operational-location-review dt {
    color: #607089;
    font-size: .6875rem;
    font-weight: 800;
    text-transform: uppercase;
}

.operational-location-review dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .625rem;
    margin: 0;
}

.operational-location-review dd {
    margin: .1875rem 0 0;
}

.operational-location-review .actions > :is(button, .btn) {
    min-width: 0;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
}

.container-maintenance-form {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
}

.container-document-form {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: start !important;
}

.container-inspection-form {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    align-items: start !important;
}

.container-movement-select-form {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: end !important;
}

.container-movement-workspace .toolbar,
.container-history-grid .toolbar {
    align-items: flex-start;
}

.domain-modal.container-intrinsic-modal > .modal-card {
    width: min(64rem, calc(100vw - 2rem)) !important;
    max-height: min(94dvh, 58rem) !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.container-intrinsic-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
}

.container-intrinsic-grid > .field {
    min-width: 0;
}

.container-intrinsic-grid > .wide {
    grid-column: 1 / -1;
}

:is(.container-movement-form, .container-maintenance-form, .container-document-form, .container-inspection-form) > .wide {
    grid-column: 1 / -1 !important;
}

.container-file-field,
.container-file-field input[type="file"] {
    max-width: 100%;
    min-width: 0;
}

.container-file-field input[type="file"] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.container-summary-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr)) !important;
}

.container-summary-grid > .detail-hero {
    grid-column: span 2;
}

.container-stock-table {
    min-width: 78rem;
}

.container-map-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.map-filter-destination {
    grid-template-columns: minmax(0, 1fr) !important;
}

.map-result-item.is-location-pending {
    border-style: dashed !important;
    background: #fffaf0 !important;
}

.map-result-item.is-location-pending > em {
    color: #92400e !important;
}

@media (max-width: 900px) {
    .container-create-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .container-movement-form,
    .container-inspection-form {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .container-document-form {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .container-intrinsic-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .container-create-modal .modal-card {
        width: 100% !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
    }

    .container-create-modal .modal-head,
    .container-create-modal .modal-foot {
        width: auto !important;
        margin-inline: 0 !important;
    }

    .container-create-grid,
    .container-intrinsic-grid,
    .container-movement-form,
    .container-maintenance-form,
    .container-document-form,
    .container-inspection-form {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .container-movement-select-form {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .container-movement-select-form .actions,
    .container-movement-select-form .btn {
        width: 100%;
    }

    .container-create-grid > .field,
    .container-intrinsic-grid > .field,
    .container-intrinsic-grid > .wide,
    .container-create-grid > .wide,
    :is(.container-movement-form, .container-maintenance-form, .container-document-form, .container-inspection-form) > .field,
    :is(.container-movement-form, .container-maintenance-form, .container-document-form, .container-inspection-form) > .wide {
        grid-column: 1 !important;
    }

    .container-summary-grid > .detail-hero {
        grid-column: 1;
    }

    .operational-location-picker {
        padding: .75rem;
    }

    .operational-location-review dl {
        grid-template-columns: minmax(0, 1fr);
    }

    .operational-location-review .actions,
    .operational-location-review .actions > :is(button, .btn) {
        width: 100%;
    }
}

/* Domínio reutilizável de propostas, serviços e assinatura de locação. */
.proposal-grid,
.rental-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.proposal-card,
.rental-summary article,
.rental-section {
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: .875rem;
    background: #fff;
    padding: 1rem;
    overflow-wrap: anywhere;
}

.proposal-card,
.rental-section {
    margin-bottom: 1rem;
}

.proposal-grid article {
    min-width: 0;
    border-radius: .625rem;
    background: #f8fbff;
    padding: .75rem;
}

.proposal-grid span,
.rental-summary span,
.rental-table th {
    color: #64748b;
    font-size: .6875rem;
    font-weight: 900;
    text-transform: uppercase;
}

.proposal-grid strong,
.rental-summary strong {
    display: block;
    margin-top: .3125rem;
}

.proposal-actions,
.rental-channel-options {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}

.rental-channel-options {
    margin-bottom: .75rem;
    border: 1px solid var(--line);
    border-radius: .75rem;
    padding: .75rem;
}

.proposal-table,
.rental-scroll {
    display: block;
    max-width: 100%;
    overflow: auto;
}

.proposal-table table,
.rental-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: auto;
}

.proposal-table :is(th, td),
.rental-table :is(th, td) {
    border-bottom: 1px solid var(--line);
    padding: .625rem;
    text-align: left;
}

.rental-status {
    display: inline-flex;
    border-radius: 999px;
    background: #e8f6fd;
    color: var(--navy);
    padding: .3125rem .5625rem;
    font-size: .6875rem;
    font-weight: 900;
    text-transform: uppercase;
}

.rental-link {
    color: var(--cyan);
    font-weight: 800;
}

.rental-location-grid,
.rental-location-values {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    min-width: 0;
}

.rental-service-toolbar {
    display: flex;
    align-items: end;
    gap: .75rem;
    flex-wrap: wrap;
}

.rental-service-toolbar .field {
    flex: 1 1 18rem;
}

.rental-service-options,
.rental-selected-services {
    display: grid;
    gap: .5rem;
    margin-top: .75rem;
}

.rental-service-option,
.rental-selected-service,
.rental-service-review li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-width: 0;
    border: 1px solid #dce7ee;
    border-radius: .75rem;
    background: #fff;
    padding: .75rem;
}

.rental-service-option {
    width: 100%;
    color: var(--navy);
    text-align: left;
}

.rental-service-option:hover,
.rental-service-option:focus-visible {
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgba(10, 167, 223, .15);
}

.rental-selected-service .field {
    margin-left: auto;
    max-width: 14rem;
}

.rental-service-create {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.rental-service-create .modal-foot {
    grid-column: 1 / -1;
}

.rental-signature-body {
    min-width: 0;
    margin: 0;
    background: #f2f7fa;
    color: var(--navy);
}

.rental-signature-shell {
    width: min(70rem, calc(100% - 2rem));
    margin: 0 auto;
    padding: clamp(1rem, 3vw, 2.5rem) 0;
}

.rental-signature-header,
.rental-signature-card {
    min-width: 0;
    border: 1px solid #dce7ee;
    border-radius: 1rem;
    background: #fff;
    padding: clamp(1rem, 3vw, 1.75rem);
    overflow-wrap: anywhere;
}

.rental-signature-header {
    margin-bottom: 1rem;
    background: var(--navy);
    color: #fff;
}

.rental-signature-header :is(h1, p),
.rental-signature-card :is(h1, h2, h3, p) {
    margin-top: 0;
}

.rental-signature-card + .rental-signature-card {
    margin-top: 1rem;
}

.rental-signature-summary dl,
.rental-signature-totals {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.rental-signature-summary dl div,
.rental-signature-totals span {
    border-radius: .75rem;
    background: #f5f9fb;
    padding: .75rem;
}

.rental-signature-summary dt {
    color: #64748b;
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
}

.rental-signature-summary dd {
    margin: .25rem 0 0;
    font-weight: 750;
}

.rental-signature-form,
.rental-location-consent {
    display: grid;
    gap: 1rem;
}

.rental-location-consent {
    min-width: 0;
    border: 1px solid #dce7ee;
    border-radius: .75rem;
    padding: 1rem;
}

.rental-consent {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: .65rem;
    border: 1px solid #dce7ee;
    border-radius: .75rem;
    padding: .85rem;
}

.rental-consent input {
    width: 1.25rem;
    height: 1.25rem;
}

.rental-service-review {
    display: grid;
    gap: .5rem;
    padding: 0;
    list-style: none;
}

.rental-signature-complete {
    margin-top: min(20vh, 8rem);
    text-align: center;
}

.rental-signature-complete > span {
    display: inline-grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: #dff7ea;
    color: #087a45;
    font-size: 2rem;
}

@media (max-width: 768px) {
    .proposal-grid,
    .rental-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .rental-location-grid,
    .rental-location-values,
    .rental-signature-summary dl,
    .rental-signature-totals,
    .rental-service-create {
        grid-template-columns: minmax(0, 1fr);
    }

    .rental-selected-service,
    .rental-service-review li {
        align-items: stretch;
        flex-direction: column;
    }

    .rental-selected-service .field {
        width: 100%;
        max-width: none;
        margin-left: 0;
    }
}

@media (max-width: 390px) {
    .proposal-grid,
    .rental-summary {
        grid-template-columns: minmax(0, 1fr);
    }
    .rental-signature-shell {
        width: min(100% - 1rem, 70rem);
    }

    .rental-signature-card,
    .rental-signature-header {
        padding: .875rem;
    }

    .rental-service-toolbar > :is(.btn, button),
    .rental-signature-form > .btn {
        width: 100%;
    }
}

.container-batch-modal-card,
.container-withdrawal-modal .modal-card {
    width: min(76rem, calc(100vw - 2rem));
}

.container-batch-items {
    display: grid;
    gap: 1rem;
}

.container-batch-item {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--line, #d9e0e8);
    border-radius: .75rem;
}

.container-batch-item > legend {
    padding-inline: .4rem;
    font-weight: 700;
}

.batch-item-grid,
.container-withdrawal-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.asset-gallery {
    display: grid;
    gap: .75rem;
    margin-bottom: 1rem;
    outline-offset: .25rem;
}

.asset-gallery-stage {
    position: relative;
    min-height: min(32rem, 55vh);
    overflow: hidden;
    border-radius: .75rem;
    background: #101827;
}

.asset-gallery-stage > img {
    width: 100%;
    height: min(32rem, 55vh);
    object-fit: contain;
}

.asset-gallery-arrow,
.asset-gallery-expand {
    position: absolute;
    z-index: 1;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 999px;
    color: #fff;
    background: rgba(16, 24, 39, .78);
}

.asset-gallery-arrow {
    top: 50%;
    width: 2.75rem;
    height: 2.75rem;
    transform: translateY(-50%);
    font-size: 1.75rem;
}

.asset-gallery-arrow.previous { left: .75rem; }
.asset-gallery-arrow.next { right: .75rem; }
.asset-gallery-expand { right: .75rem; bottom: .75rem; padding: .55rem .8rem; }

.asset-gallery-thumbnails {
    display: flex;
    gap: .5rem;
    overflow-x: auto;
    padding-bottom: .25rem;
}

.asset-gallery-thumbnails button {
    flex: 0 0 5rem;
    padding: .15rem;
    border: 2px solid transparent;
    border-radius: .5rem;
    background: transparent;
}

.asset-gallery-thumbnails button[aria-current="true"] { border-color: var(--brand, #0b6bcb); }
.asset-gallery-thumbnails img { width: 100%; height: 3.75rem; border-radius: .35rem; object-fit: cover; }
.gallery-modal .modal-card { width: min(92rem, calc(100vw - 2rem)); }
.gallery-modal .modal-body img { display: block; width: 100%; max-height: calc(100vh - 10rem); object-fit: contain; background: #101827; }

.withdrawal-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.withdrawal-facts div { padding: .75rem; border-radius: .6rem; background: var(--surface-subtle, #f5f7fa); }
.withdrawal-facts dt { color: var(--muted, #596577); font-size: .82rem; }
.withdrawal-facts dd { margin: .2rem 0 0; font-weight: 650; }

@media (max-width: 900px) {
    .batch-item-grid,
    .container-withdrawal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .withdrawal-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .container-batch-modal-card,
    .container-withdrawal-modal .modal-card,
    .gallery-modal .modal-card { width: 100%; max-height: 100dvh; border-radius: 0; }
    .batch-item-grid,
    .container-withdrawal-grid,
    .withdrawal-facts { grid-template-columns: minmax(0, 1fr); }
    .asset-gallery-stage,
    .asset-gallery-stage > img { min-height: 16rem; height: 52vh; }
}

.os-detail-summary--rich { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.os-workflow { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: .75rem; margin: 1rem 0; padding: 0; list-style: none; }
.os-workflow li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); align-items: center; gap: .55rem; min-height: 3.4rem; padding: .7rem; border: 1px solid var(--line, #d9e2ec); border-radius: .75rem; color: #65758b; }
.os-workflow li > span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: #edf2f7; font-weight: 800; }
.os-workflow li.is-complete { border-color: #9dd7bb; background: #f0fbf5; color: #17683c; }
.os-workflow li.is-current { border-color: #448acb; background: #eef7ff; color: #0b548f; box-shadow: 0 0 0 2px rgba(68, 138, 203, .12); }
.os-flow-actions, .os-inline-approval { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; }
.os-inline-approval { flex: 1 1 30rem; }
.os-admin-exception { padding: 1rem; }
.os-admin-exception summary { cursor: pointer; font-weight: 800; }
.os-exception-form, .os-occurrence-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; align-items: end; }
.os-exception-form .field:nth-child(3), .os-occurrence-form .field:nth-child(4) { grid-column: 1 / -1; }
@media (max-width: 960px) { .os-detail-summary--rich { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .os-detail-summary--rich, .os-exception-form, .os-occurrence-form { grid-template-columns: minmax(0, 1fr); } .os-workflow { grid-template-columns: minmax(0, 1fr); } }

.driver-review-page{display:grid;gap:14px;max-width:100%;min-width:0}.driver-review-nav{display:flex;gap:6px;overflow:auto;padding:4px 0;scrollbar-width:thin}.driver-review-nav a{flex:0 0 auto;border:1px solid #dce7ee;border-radius:999px;padding:8px 12px;background:#fff;color:var(--navy);font-size:12px;font-weight:850;text-decoration:none}.driver-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.driver-step{display:grid;gap:14px;padding:18px;scroll-margin-top:18px}.driver-step-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.driver-step-head span{color:#087ead;font-size:11px;font-weight:900;text-transform:uppercase}.driver-step-head h2{margin:2px 0 0}.driver-step-head p{margin:4px 0 0;color:#64748b}.driver-data-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0}.driver-data-grid div{border-bottom:1px solid #e5edf3;padding:10px}.driver-data-grid dt{color:#64748b;font-size:11px;font-weight:850;text-transform:uppercase}.driver-data-grid dd{margin:4px 0 0;color:var(--navy);font-weight:800}.driver-review-page small{display:block;margin-top:3px;color:#64748b;font-weight:500}.driver-sensitive-actions,.driver-proof-list{display:flex;flex-wrap:wrap;gap:8px}.driver-evidence-form,.driver-upload-form{display:grid;grid-template-columns:minmax(130px,190px) minmax(220px,620px) minmax(220px,620px) auto;gap:8px;align-items:end;justify-content:start}.driver-evidence-form input,.driver-evidence-form select{height:42px}.driver-upload-form{grid-template-columns:minmax(220px,520px) minmax(160px,220px) minmax(150px,190px) minmax(220px,320px) auto;padding:12px;border:1px solid #dce7ee;border-radius:12px;background:#f8fafc}.driver-vehicle-list,.driver-consents,.driver-audit-list{display:grid;gap:10px}.driver-vehicle-card,.driver-consents article,.driver-audit-list article{border:1px solid #dce7ee;border-radius:12px;padding:14px}.driver-vehicle-card>div:first-child,.driver-audit-list article{display:flex;justify-content:space-between;gap:10px}.driver-vehicle-card>p,.driver-checklist p,.driver-consents p{margin:8px 0;color:#526574}.driver-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.driver-checklist>article{border:1px solid #dce7ee;border-radius:12px;padding:12px}.driver-checklist>article>div{display:flex;justify-content:space-between;gap:10px}.driver-history-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.driver-history-grid>div{border:1px solid #dce7ee;border-radius:12px;padding:14px}.driver-history-grid p{border-bottom:1px solid #edf2f5;padding:8px 0;margin:0}.driver-decision{border:2px solid rgba(10,167,223,.35)}.driver-decision-form{display:grid;grid-template-columns:minmax(180px,240px) minmax(240px,700px) minmax(240px,700px) auto;gap:10px;align-items:end;justify-content:start}.driver-decision-form textarea{min-height:76px}.driver-restriction-form{border-top:1px solid #dce7ee;padding-top:14px}.danger-action{background:#9f2d2d}.driver-unassigned-documents{display:grid;gap:8px;border:1px dashed #cbd5e1;border-radius:12px;padding:14px}.driver-unassigned-documents h3,.driver-unassigned-documents p{margin:0}.driver-unassigned-documents p{color:#64748b}
@media(max-width:1100px){.driver-review-nav{flex-wrap:wrap;overflow:visible}.driver-review-nav a{flex:1 1 132px;text-align:center;white-space:normal}.driver-summary-grid,.driver-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-evidence-form,.driver-upload-form,.driver-decision-form{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-evidence-form .btn,.driver-upload-form .btn,.driver-decision-form .btn{width:100%}}
@media(max-width:680px){.driver-summary-grid,.driver-data-grid,.driver-checklist,.driver-history-grid,.driver-evidence-form,.driver-upload-form,.driver-decision-form{grid-template-columns:minmax(0,1fr)}.driver-step{padding:14px}.driver-step-head{flex-direction:column}.driver-audit-list article,.driver-vehicle-card>div:first-child{align-items:stretch;flex-direction:column}.driver-audit-list .btn{width:100%}}
