/*
 * Padrão global de modais desktop do Conecta PCSE.
 *
 * Esta folha é carregada depois do CSS das páginas e repõe a aparência
 * original do tema: superfícies retas e translúcidas separadas para
 * cabeçalho, corpo e rodapé. Não existem skins ou exceções por módulo.
 */

@media (min-width: 768px) {
    :is(#pcse-desktop-modal-standard, .modal) {
        --bs-modal-padding: 0.625rem !important;
        --bs-modal-color: initial !important;
        --bs-modal-bg: hsla(0, 0%, 100%, 0.15) !important;
        --bs-modal-border-color: var(--bs-border-color) !important;
        --bs-modal-border-width: 0 !important;
        --bs-modal-border-radius: 0 !important;
        --bs-modal-inner-border-radius: 0 !important;
        --bs-modal-box-shadow: 0 0.5rem 1rem rgba(var(--bs-body-color-rgb), 0.075) !important;
        --bs-modal-header-padding-x: 0.625rem !important;
        --bs-modal-header-padding-y: 0.625rem !important;
        --bs-modal-header-padding: 0.625rem 0.625rem !important;
        --bs-modal-header-border-width: 0 !important;
        --bs-modal-title-line-height: 1.5 !important;
        --bs-modal-footer-gap: 0.5rem !important;
        --bs-modal-footer-border-width: 0 !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog {
        position: relative;
        inset: auto !important;
        display: block;
        width: auto !important;
        max-width: var(--bs-modal-width) !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: var(--bs-modal-margin) auto !important;
        padding: 0 !important;
        align-items: normal;
        pointer-events: none;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog-centered {
        display: flex;
        min-height: calc(100% - var(--bs-modal-margin) * 2) !important;
        align-items: center;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog-scrollable {
        height: calc(100% - var(--bs-modal-margin) * 2) !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog-scrollable
        > .modal-content {
        max-height: 100% !important;
        overflow: hidden !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal).show
        .modal-dialog {
        transform: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        > .modal-content {
        position: relative;
        display: flex;
        width: 100%;
        height: auto !important;
        min-height: 0 !important;
        max-height: none;
        flex-direction: column;
        overflow: visible;
        color: var(--bs-modal-color);
        border: var(--bs-modal-border-width) solid var(--bs-modal-border-color) !important;
        border-radius: var(--bs-modal-border-radius) !important;
        outline: 0;
        background: none !important;
        box-shadow: var(--bs-modal-box-shadow) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        pointer-events: auto;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        > .modal-content::before,
    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        > .modal-content::after {
        display: none !important;
        content: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        > .modal-content
        > :is(.modal-header, .modal-body, .modal-footer) {
        position: relative !important;
        z-index: auto;
        min-height: 0;
        margin-right: 0 !important;
        margin-left: 0 !important;
        color: inherit;
        border-radius: 0 !important;
        background: var(--bs-modal-bg) !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        > .modal-content
        > .modal-header {
        display: flex;
        flex: 0 0 auto;
        align-items: center;
        gap: 0;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding: var(--bs-modal-header-padding) !important;
        border: 0 !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        > .modal-content
        > .modal-body {
        flex: 1 1 auto;
        margin-top: 0.09375rem !important;
        margin-bottom: 0 !important;
        padding: var(--bs-modal-padding) !important;
        overflow: visible;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog-scrollable
        > .modal-content
        > .modal-body {
        overflow-y: auto !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        > .modal-content
        > .modal-footer {
        display: flex;
        flex: 0 0 auto;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-end;
        gap: 0;
        margin-top: 0.09375rem !important;
        margin-bottom: 0 !important;
        padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5) !important;
        border: 0 !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        > .modal-content
        > .modal-footer
        > * {
        margin: calc(var(--bs-modal-footer-gap) * 0.5) !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .modal-title {
        margin-top: 0;
        margin-bottom: 0;
        color: var(--bs-heading-color) !important;
        font-size: 0.9375rem;
        font-weight: 500;
        line-height: var(--bs-modal-title-line-height);
        letter-spacing: normal;
        text-transform: none;
    }

    /*
     * Alguns refactors envolveram o título em um bloco com selo, kicker e
     * subtítulo. No desktop, só o título pertence ao cabeçalho original.
     */
    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .modal-header
        > :has(> .modal-title):not(.modal-title) {
        display: contents !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .modal-header
        > :has(> .modal-title):not(.modal-title)
        > :not(.modal-title),
    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .modal-header
        > [aria-hidden="true"],
    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .modal-title
        > :is(iconify-icon, i, svg) {
        display: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .modal-header
        .btn-close {
        box-sizing: content-box;
        width: 1em;
        min-width: 0;
        height: 1em;
        min-height: 0;
        flex: 0 0 auto;
        margin:
            calc(var(--bs-modal-header-padding-y) * -0.5)
            calc(var(--bs-modal-header-padding-x) * -0.5)
            calc(var(--bs-modal-header-padding-y) * -0.5)
            auto !important;
        padding:
            calc(var(--bs-modal-header-padding-y) * 0.5)
            calc(var(--bs-modal-header-padding-x) * 0.5) !important;
        color: var(--bs-btn-close-color) !important;
        border: 0 !important;
        border-radius: 0.35rem !important;
        background: transparent var(--bs-btn-close-bg) center / 1em auto no-repeat !important;
        box-shadow: none;
        filter: none !important;
        opacity: var(--bs-btn-close-opacity) !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .modal-header
        .btn-close:hover {
        opacity: var(--bs-btn-close-hover-opacity) !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .modal-header
        .btn-close:focus {
        outline: 0;
        box-shadow: var(--bs-btn-close-focus-shadow) !important;
        opacity: var(--bs-btn-close-focus-opacity) !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        :is(
            .form-control,
            .form-select,
            .select2-selection,
            .input-group-text
        ) {
        border-radius: 0 !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .form-label {
        display: inline-block !important;
        margin-bottom: 0.5rem !important;
        color: inherit !important;
        font-size: inherit !important;
        font-weight: 400 !important;
        letter-spacing: normal !important;
        text-transform: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .form-control {
        min-height: 0 !important;
        padding: 0.35rem 0.625rem !important;
        color: var(--bs-body-color) !important;
        font-size: 0.75rem !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
        border: var(--bs-border-width) solid var(--bs-border-color) !important;
        background-color: transparent !important;
        box-shadow: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .form-control::file-selector-button {
        height: auto !important;
        margin: -0.35rem -0.625rem !important;
        margin-inline-end: 0.625rem !important;
        padding: 0.35rem 0.625rem !important;
        color: var(--bs-body-color) !important;
        font-size: inherit !important;
        font-weight: 400 !important;
        line-height: inherit !important;
        border: 0 solid !important;
        border-inline-end-width: var(--bs-border-width) !important;
        border-radius: 0 !important;
        background-color: var(--bs-tertiary-bg) !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        .form-select {
        min-height: 0 !important;
        padding: 0.35rem 1.875rem 0.35rem 0.625rem !important;
        color: var(--bs-body-color) !important;
        font-size: 0.75rem !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
        border: var(--bs-border-width) solid var(--bs-border-color) !important;
        background-color: transparent !important;
        box-shadow: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal)
        .modal-dialog
        :is(button, .btn):not(.btn-close) {
        border-radius: 0 !important;
    }

    .modal-backdrop.show {
        background: rgba(0, 0, 0, 0.5) !important;
        opacity: 1 !important;
        backdrop-filter: blur(6px) !important;
        -webkit-backdrop-filter: blur(6px) !important;
    }

    /*
     * Única exceção desktop: o modal de Avisos preserva exatamente o vidro
     * arredondado consolidado em produção. Os demais modais continuam retos.
     */
    body :is(#pcse-desktop-modal-standard, .modal.aviso-modal)
        .modal-dialog
        > .modal-content {
        overflow: hidden !important;
        border: 1px solid rgba(255, 255, 255, 0.18) !important;
        border-radius: 18px !important;
        background: transparent !important;
        box-shadow: 0 26px 64px rgba(0, 0, 0, 0.55) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal.aviso-modal)
        .modal-dialog
        > .modal-content
        > .modal-header.aviso-modal__header {
        display: flex !important;
        min-height: 0 !important;
        align-items: flex-start !important;
        gap: 0.9rem !important;
        padding: 1.2rem 1.4rem 1.05rem !important;
        border: 0 !important;
        border-bottom: 1px solid var(--aviso-border) !important;
        border-radius: 0 !important;
        background: rgba(255, 255, 255, 0.15) !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal.aviso-modal)
        .modal-dialog
        .modal-header
        > .aviso-modal__icon {
        display: inline-flex !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal.aviso-modal)
        .modal-dialog
        .modal-header
        > .aviso-modal__heading:has(> .modal-title) {
        display: block !important;
        min-width: 0;
        flex: 1;
    }

    body :is(#pcse-desktop-modal-standard, .modal.aviso-modal)
        .modal-dialog
        .modal-header
        > .aviso-modal__heading:has(> .modal-title)
        > .aviso-modal__kicker {
        display: inline-flex !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal.aviso-modal)
        .modal-dialog
        .modal-header
        > .aviso-modal__heading:has(> .modal-title)
        > .aviso-modal__meta {
        display: flex !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal.aviso-modal)
        .modal-dialog
        .modal-title.aviso-modal__title {
        margin: 0.15rem 0 0 !important;
        color: var(--aviso-ink) !important;
        font-size: 1.18rem !important;
        font-weight: 700 !important;
        line-height: 1.3 !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal.aviso-modal)
        .modal-dialog
        > .modal-content
        > .modal-body.aviso-modal__body {
        padding: 1.35rem 1.4rem !important;
        overflow: auto !important;
        background: rgba(255, 255, 255, 0.15) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body :is(#pcse-desktop-modal-standard, .modal.aviso-modal)
        .modal-dialog
        > .modal-content
        > .modal-footer.aviso-modal__footer {
        min-height: 0 !important;
        padding: 0.95rem 1.4rem !important;
        border: 0 !important;
        border-top: 1px solid var(--aviso-border) !important;
        background: rgba(255, 255, 255, 0.15) !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
}
