﻿/* =============================================================================
   PrincipalInternoShell.css
   Shell interno unificado com o visual do ambiente externo.
   Usa var(--color-primary-strong) para herdar a cor do município via
   EstiloInterno.ashx (que substitui #004697 pela cor configurada).
   ============================================================================= */

/* ---------------------------------------------------------------------------
   Acessibilidade: skip link
   --------------------------------------------------------------------------- */
.DisplayNone {
    display: none !important;
}

.Bold {
    font-weight: 600;
}

body .skip-link {
    position: absolute;
    left: 16px;
    top: -48px;
    z-index: 1000;
    padding: 10px 14px;
    border-radius: 10px;
    font-weight: bold;
}

    body .skip-link:focus {
        top: 16px;
    }

/* ---------------------------------------------------------------------------
   Shell base
   --------------------------------------------------------------------------- */
body {
    font-family: var(--font-family-base, "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif);
    font-size: var(--font-size-md, 14px);
    line-height: var(--font-line-height-base, 1.5);
}

    /* ---------------------------------------------------------------------------
   Banner: identidade + login + acessibilidade
   --------------------------------------------------------------------------- */
    body #banner {
        width: 100%;
        position: relative;
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px 20px;
        margin: 0 0 0 0;
        padding: 16px 12px 14px;
        border: 0;
        box-shadow: none;
    }

        body #banner .sistema {
            display: inline-flex !important;
            flex: 1 1 auto;
            min-width: 0;
            align-items: center;
            gap: 18px;
            padding-top: 0;
        }

        body #banner #municipio {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

            body #banner #municipio img,
            body #menu-mobile #logo-mobile img {
                width: auto;
                max-width: 150px;
                max-height: 70px;
            }

        body #banner #logo {
            display: inline-flex;
            flex-direction: column;
            justify-content: center;
            gap: 2px;
            min-width: 0;
            padding-top: 0;
            font-size: 30px;
            font-weight: 700;
            line-height: 1;
            letter-spacing: 0;
            text-decoration: none;
            max-width: 100%;
            white-space: nowrap;
        }

            body #banner #logo small {
                position: static;
                margin-top: -2px;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.1;
                letter-spacing: 0;
                text-transform: none;
            }

        body #banner #divLogin {
            position: static;
            display: block !important;
            align-self: flex-start;
            width: auto;
            max-width: none;
            margin: 0 0 0 0;
            padding: 40px 10px 0 0;
            border: 0;
            border-radius: 0;
            box-shadow: none;
            text-align: right;
        }

            body #banner #divLogin i,
            body #banner #divLogin a,
            body #banner #divLogin span,
            body #banner #divLogin label {
                font-size: 0.9em;
            }

            body #banner #divLogin .login {
                display: inline-block;
            }

            body #banner #divLogin .sair {
                display: inline-block;
                min-width: 0;
                margin-left: 6px;
                padding: 0;
                border: 0;
                box-shadow: none;
            }

        body #banner ul.acessibilidade {
            position: absolute !important;
            top: 10px;
            right: 10px !important;
            left: auto !important;
            display: flex;
            flex-wrap: nowrap;
            align-items: center;
            justify-content: flex-end;
            width: auto;
            margin: 0;
            padding: 0;
            white-space: nowrap;
        }

            body #banner ul.acessibilidade > li {
                float: none;
                display: inline-flex;
                align-items: center;
                margin: 0;
            }

            body #banner ul.acessibilidade .ajuda {
                margin: 0 6px 0 0;
                padding: 0;
            }
    /* ---------------------------------------------------------------------------
   Navbar: menu interno + atalhos de navegação
   --------------------------------------------------------------------------- */
    body .navbar.navbar-default {
        margin-bottom: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

        body .navbar.navbar-default .container-fluid {
            margin: 0 10% 0 10%;
            padding-left: 12px;
            padding-right: 12px;
        }

        body .navbar.navbar-default #menu-topo {
            display: flex !important;
            align-items: center;
            justify-content: flex-start;
            gap: 0;
            padding-left: 0;
            padding-right: 0;
            border-top: 0;
            box-shadow: none;
        }
    /* ---------------------------------------------------------------------------
   Navbar links: sobrescreve padrões do Bootstrap para navbar escura
   --------------------------------------------------------------------------- */
    /* Flex layout: cancela float do Bootstrap dentro do container flex */
    body #divMenu .nav.navbar-nav {
        display: flex;
        flex-direction: row;
        align-items: stretch;
        flex-wrap: nowrap;
        float: none;
        margin: 0;
    }

        body #divMenu .nav.navbar-nav > li {
            float: none;
            display: flex;
            align-items: stretch;
            position: relative;
        }

            body #divMenu .nav.navbar-nav > li > a {
                display: flex;
                align-items: center;
                gap: 6px;
                font-size: 1.35rem;
                font-weight: 800;
                padding: 0 16px;
                min-height: 50px;
                white-space: nowrap;
            }

                body #divMenu .nav.navbar-nav > li > a:hover,
                body #divMenu .nav.navbar-nav > li > a:focus {
                    text-decoration: none;
                }
        /* Dropdown popup */
        body #divMenu .nav.navbar-nav .dropdown-menu {
            border: 0;
            border-radius: 0 0 6px 6px;
            min-width: 220px;
            margin-top: 0;
            padding: 4px 0;
        }

            body #divMenu .nav.navbar-nav .dropdown-menu > li > a {
                padding: 8px 16px;
                font-size: 1.2rem;
                font-weight: 400;
            }

                body #divMenu .nav.navbar-nav .dropdown-menu > li > a:hover,
                body #divMenu .nav.navbar-nav .dropdown-menu > li > a:focus {
                    text-decoration: none;
                }

            body #divMenu .nav.navbar-nav .dropdown-menu > .dropdown-header {
                font-size: 1.2rem;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: 0.06em;
                padding: 10px 16px 4px;
            }

            body #divMenu .nav.navbar-nav .dropdown-menu > .divider {
                margin: 4px 0;
            }
        /* ---------------------------------------------------------------------------
   Mega menu: 3 colunas (Utilitários)
   O li.liUtilitario fica com position:static para que o dropdown posicione
   relativo ao #divMenu (position:relative), alinhando pela esquerda com o
   primeiro item do menu.
   --------------------------------------------------------------------------- */
        /* Remove o position:relative do li trigger — herda do #divMenu */
        body #divMenu .nav.navbar-nav li.liUtilitario {
            position: static;
        }

        body #divMenu .nav.navbar-nav .open > .dropdown-menu.dropdown-menu-megamenu {
            display: flex !important;
            flex-direction: row;
            align-items: stretch;
            padding: 0;
            min-width: 660px;
            left: 0;
            right: auto;
        }

        body #divMenu .nav.navbar-nav .dropdown-menu.dropdown-menu-megamenu .megamenu-coluna {
            flex: 1 1 0;
            min-width: 0;
            padding: 8px 0 12px;
            list-style: none;
        }

            body #divMenu .nav.navbar-nav .dropdown-menu.dropdown-menu-megamenu .megamenu-coluna:last-child {
                border-right: none;
            }

            body #divMenu .nav.navbar-nav .dropdown-menu.dropdown-menu-megamenu .megamenu-coluna > ul {
                list-style: none;
                margin: 0;
                padding: 0;
            }

                body #divMenu .nav.navbar-nav .dropdown-menu.dropdown-menu-megamenu .megamenu-coluna > ul > .dropdown-header {
                    font-size: 1.2rem;
                    font-weight: 700;
                    text-transform: uppercase;
                    letter-spacing: 0.06em;
                    padding: 10px 16px 6px;
                    white-space: nowrap;
                }

                body #divMenu .nav.navbar-nav .dropdown-menu.dropdown-menu-megamenu .megamenu-coluna > ul > li > a {
                    display: block;
                    padding: 7px 16px;
                    font-size: 1.2rem;
                    font-weight: 400;
                    white-space: nowrap;
                }

                    body #divMenu .nav.navbar-nav .dropdown-menu.dropdown-menu-megamenu .megamenu-coluna > ul > li > a:hover,
                    body #divMenu .nav.navbar-nav .dropdown-menu.dropdown-menu-megamenu .megamenu-coluna > ul > li > a:focus {
                        text-decoration: none;
                    }

    body .navbar.navbar-default #divMenu {
        flex: 1 1 auto;
        overflow: visible;
        position: relative;
    }
    /* menu ul gerado pelo ucMenu1/ucMenu2 legados */
    body div#divMenu ul#ulMenu {
        display: flex !important;
        align-items: stretch;
        flex-wrap: wrap;
        gap: 0;
        margin: 0;
        padding: 0;
        list-style: none;
        white-space: normal;
        bottom: auto;
    }

    body div#divMenu li.separador {
        display: none;
    }

    body div#divMenu li.botao,
    body div#divMenu li.botaoDisabled,
    body div#divMenu li.botaoPressionado {
        display: block;
        width: auto !important;
        height: auto !important;
        margin: 0;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0;
        box-shadow: none;
        line-height: normal;
        vertical-align: top;
        position: relative;
    }

        body div#divMenu li.botao > *,
        body div#divMenu li.botaoDisabled > *,
        body div#divMenu li.botaoPressionado > * {
            display: block;
            overflow: visible;
            table-layout: auto;
        }

    body div#divMenu span.titulo,
    body div#divMenu span.tituloDisabled {
        position: static;
        left: auto;
        top: auto;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        min-height: 50px;
        padding: 15px 16px;
        font-size: 0.95rem;
        font-weight: 700;
        line-height: 1.2;
        cursor: pointer;
    }

        body div#divMenu span.titulo a,
        body div#divMenu span.tituloDisabled a,
        body div#divMenu span.tituloDisabled {
            color: inherit;
        }

    body div#divMenu span.menu-trigger-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 10px;
        height: 10px;
    }

        body div#divMenu span.menu-trigger-icon::before {
            content: "";
            width: 0;
            height: 0;
            border-top: 5px solid currentColor;
        }

    body div#divMenu div.subMenu {
        position: absolute;
        top: 100%;
        left: 0;
        z-index: 100;
        margin: 0;
        border: 0;
        border-radius: 0 0 6px 6px;
    }

    body div#divMenu li.botaoPressionado:last-child div.subMenu {
        right: 0;
        left: auto;
    }

    body div#divMenu div.subMenu ul {
        padding: 8px 0;
    }

    body div#divMenu div.subMenu li {
        margin-left: 0;
        padding: 0;
        background-image: none;
    }

        body div#divMenu div.subMenu li a {
            display: block;
            padding: 8px 16px;
            border-radius: 0;
        }

            body div#divMenu div.subMenu li a:hover,
            body div#divMenu div.subMenu li a:focus {
                text-decoration: none;
            }

        body div#divMenu div.subMenu li.titulo,
        body div#divMenu div.subMenu li.tituloDisabled {
            padding: 8px 16px 6px;
        }
    /* ---------------------------------------------------------------------------
   Área de conteúdo principal
   --------------------------------------------------------------------------- */
    body #Principal.centralizador {
        margin: 0 10% 0 10%;
        padding: 15px 0 15px 0;
    }

    body #Conteudo {
        display: block;
    }

    body #divConteudo {
        max-width: none;
        margin: 0;
        border: 0;
        padding-bottom: 20px;
        border-radius: 14px;
        overflow: visible;
    }

        body #divConteudo > .conteudoPagina,
        body #divConteudo > div.conteudoPagina {
            padding: 20px;
        }
    /* ---------------------------------------------------------------------------
   Componentes de página: cabeçalho, busca, listas e cards de resultado
   --------------------------------------------------------------------------- */
    body .topoPagina {
        display: block;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px 20px;
        padding: 0 0 5px;
        border: 0;
        box-shadow: none;
    }

    body #TituloPagina,
    body .TituloPagina,
    body .cw-titulo-pagina {
        margin: 0;
        padding: 18px 20px 16px;
        border-bottom: 0;
    }

        body #TituloPagina .tituloPagina,
        body .TituloPagina .tituloPagina,
        body .cw-titulo-pagina .tituloPagina,
        body #TituloPagina > span,
        body .TituloPagina > span {
            display: block;
            font-size: 21px;
            font-weight: 700;
            line-height: 1.2;
        }

        body #TituloPagina .subTituloPagina,
        body .TituloPagina .subTituloPagina,
        body .cw-titulo-pagina .subTituloPagina {
            display: block;
            margin-top: 4px;
            font-size: 1em;
            line-height: 1.45;
        }

        body #TituloPagina > .subTituloPagina,
        body .TituloPagina > .subTituloPagina,
        body .cw-titulo-pagina > .subTituloPagina {
            display: block;
            margin-top: 4px;
            font-size: 12px !important;
            font-weight: 600 !important;
            line-height: 1.45;
        }

    body .topoPagina .menuContexto {
        margin-left: auto;
        padding-top: 4px;
    }

    body .SubTituloPagina,
    body .SubTituloPagina.Vazio {
        min-height: 0;
        margin-bottom: 12px;
    }

    body div.busca {
        padding: 16px 18px;
    }

        body div.busca table#tblFiltroSimples {
            width: auto !important;
            margin-left: auto;
            margin-right: auto;
        }

    body .pesquisaContainer {
        display: flex;
        align-items: center;
        width: min(100%, 680px);
        min-height: 46px;
        height: auto;
        margin-top: 0;
        padding: 4px;
        box-sizing: border-box;
    }

        body .pesquisaContainer .txbPesquisa {
            flex: 1 1 auto;
            width: auto;
            min-width: 0;
            padding: 0 14px;
            line-height: 34px;
        }

        body .pesquisaContainer .btnPesquisa {
            flex: 0 0 auto;
            width: auto;
            min-width: 108px;
            height: 36px;
            line-height: 36px;
            border-radius: 999px;
            font-weight: bold;
        }

            body .pesquisaContainer .btnPesquisa:hover,
            body .pesquisaContainer .btnPesquisa:focus {
                text-decoration: none;
            }

    body div.busca ul.listas {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        padding-top: 12px;
    }

        body div.busca ul.listas li {
            display: block;
        }

        body div.busca ul.listas a {
            display: inline-flex;
            align-items: center;
            min-height: 34px;
            padding: 0 14px;
            border-radius: 999px;
            transition: background-color 120ms ease, color 120ms ease;
        }

            body div.busca ul.listas a:hover,
            body div.busca ul.listas a:focus {
                text-decoration: none;
            }

            body div.busca ul.listas a.selecionado {
                font-weight: bold;
            }

    body .descricaoFiltroAvancado {
        margin-bottom: 10px;
        padding: 10px 14px;
        border-radius: 14px;
    }

    body div#divPaginacao {
        padding-top: 14px;
        padding-bottom: 10px;
    }

    body .selected-page,
    body .pagination-point {
        border-radius: 10px;
        padding: 7px 10px;
    }

    body #divResultado .objeto,
    body .divResultado .objeto {
        margin: 0;
        padding: 10px 20px 10px 20px;
        border-left-width: 6px;
        border-radius: 0 18px 18px 0;
        transition: box-shadow 120ms ease;
    }

        body #divResultado .objeto:hover,
        body #divResultado .objeto:focus-within,
        body .divResultado .objeto:hover,
        body .divResultado .objeto:focus-within {
            margin-left: 0;
            border-left-width: 6px;
        }

        body #divResultado .objeto .propriedadePrincipal,
        body .divResultado .objeto .propriedadePrincipal {
            padding-bottom: 8px;
            margin-bottom: 8px;
        }

        body #divResultado .objeto .propriedadeObjeto,
        body .divResultado .objeto .propriedadeObjeto {
            white-space: normal;
        }

            body #divResultado .objeto .propriedadeObjeto .propriedadeValor,
            body .divResultado .objeto .propriedadeObjeto .propriedadeValor {
                overflow: visible;
                word-break: break-word;
            }
    /* ---------------------------------------------------------------------------
   Listas P0: Convênio, Programa, Prestação de Contas, Convenente
   --------------------------------------------------------------------------- */
    body .listaInternaP0 #divResultado {
        overflow-x: auto;
    }

        body .listaInternaP0 #divResultado .GridView,
        body .listaInternaP0 #divResultado .GridView.Bordas {
            min-width: 860px;
        }

    body .listaInternaP0 .grupo.bloco {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 18px;
        width: 100% !important;
        margin-top: 10px;
    }

        body .listaInternaP0 .grupo.bloco .propriedadeObjeto.container {
            box-sizing: border-box;
        }

    body .listaInternaP0 .propriedadePrincipal.container {
        width: 100% !important;
    }

        body .listaInternaP0 .propriedadePrincipal.container .ListaLinksURL {
            margin-left: 12px;
        }

    body .listaProgramaConvenioP0 .note {
        position: static;
        right: auto;
        width: auto;
        max-width: 320px;
        height: auto;
        margin: 0 0 14px auto;
        padding: 12px 16px;
        border-radius: 16px;
    }

    body .listaPrestacaoContasP0 #divProvidencia,
    body .listaConvenioP0 #divProvidencia {
        margin-bottom: 16px;
        padding: 18px;
        border-radius: 16px;
    }

        body .listaPrestacaoContasP0 #divProvidencia .botoes,
        body .listaConvenioP0 #divProvidencia .botoes {
            margin-top: 12px;
        }

    body .listaConvenenteP0 .grupo.bloco .propriedadeObjeto.container > div {
        float: none !important;
        width: 100% !important;
    }

    body .listaConvenenteP0 .grupo.bloco .propriedadeObjeto.container .AlignRight {
        text-align: left;
    }
    /* ---------------------------------------------------------------------------
   Mobile: menu hambúrguer (oculto no desktop)
   --------------------------------------------------------------------------- */
    body #menu-mobile {
        display: none;
    }
/* ---------------------------------------------------------------------------
   Responsivo — até 991px
   --------------------------------------------------------------------------- */
@media screen and (max-width: 991px) {
    body #banner {
        gap: 10px 16px;
    }

        body #banner #divLogin,
        body #banner ul.acessibilidade {
            justify-self: start;
        }

    body .navbar.navbar-default #menu-topo {
        flex-direction: column;
        align-items: stretch;
    }
}
/* ---------------------------------------------------------------------------
   Responsivo — até 767px (hamburger ativado)
   --------------------------------------------------------------------------- */
@media screen and (max-width: 767px) {
    body #banner #logo,
    body #banner #divLogin a,
    body #banner ul.acessibilidade a,
    body #menu-mobile #municipio-mobile {
        display: inline-flex;
        min-height: 44px;
        align-items: center;
    }

    body #banner ul.acessibilidade a {
        display: inline-flex;
        justify-content: center;
        min-width: 44px;
        padding: 8px 10px;
    }

    body #banner ul.acessibilidade .ajuda a {
        min-width: 68px;
    }

    body .navbar.navbar-default .navbar-toggle {
        min-width: 44px;
        min-height: 44px;
    }

    body #banner #logo {
        font-size: 1.5rem;
    }

    body #menu-mobile {
        display: block;
    }

        body #menu-mobile #logo-mobile,
        body #menu-mobile #municipio-mobile {
            display: inline-flex;
            align-items: center;
            text-decoration: none;
        }

        body #menu-mobile #municipio-mobile {
            flex-direction: column;
            align-items: flex-start;
            margin-left: 12px;
            font-size: 1rem;
            font-weight: 700;
            line-height: 1.1;
        }

            body #menu-mobile #municipio-mobile small {
                font-size: 0.78rem;
                font-weight: 400;
            }

    body .navbar.navbar-default .navbar-toggle {
        margin-right: 0;
    }

        body .navbar.navbar-default .navbar-toggle .icon-bar {
        }

    body .navbar.navbar-default #menu-topo {
        display: none !important;
        gap: 0;
    }

        body .navbar.navbar-default #menu-topo.in {
            display: block !important;
        }

    body .navbar.navbar-default #ulMenu {
        display: block !important;
        width: 100%;
    }

        body .navbar.navbar-default #ulMenu > li > .titulo,
        body .navbar.navbar-default #ulMenu > li > .tituloDisabled,
        body div#divMenu span.titulo,
        body div#divMenu span.tituloDisabled {
            padding: 12px 0;
        }

    body #Principal.centralizador {
        padding-top: 15px;
    }
}
/* ---------------------------------------------------------------------------
   Responsivo — até 900px: banner colapsa verticalmente
   --------------------------------------------------------------------------- */
@media screen and (max-width: 900px) {
    body #banner {
        padding: 10px 14px 0;
    }

        body #banner .sistema {
            flex: 1 1 540px;
            flex-wrap: wrap;
        }

        body #banner #divLogin {
            display: flex !important;
            flex-wrap: wrap;
            justify-content: flex-start;
            align-items: center;
            gap: 8px;
            width: 100%;
            max-width: 100%;
            margin-left: 0;
            padding: 0;
            box-shadow: none;
            text-align: left;
        }

            body #banner #divLogin i,
            body #banner #divLogin a,
            body #banner #divLogin span,
            body #banner #divLogin label {
            }

        body #banner ul.acessibilidade {
            position: static !important;
            justify-content: flex-start;
            flex-wrap: wrap;
            width: 100%;
            padding-bottom: 8px;
        }
}

@media screen and (max-width: 767px) {
    body #banner {
        display: none !important;
    }

    body .navbar.navbar-default .container-fluid {
        width: 100%;
        margin: 0;
        padding-left: 0;
        padding-right: 0;
    }

    body .navbar.navbar-default #menu-mobile {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 10px 12px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body .navbar.navbar-default .navbar-toggle {
        order: 3;
        margin-left: auto;
    }

    body .navbar.navbar-default #menu-topo.in {
        display: block !important;
        width: 100%;
        overflow: visible;
    }

    body #divMenu,
    body #divMenu .nav.navbar-nav {
        display: block !important;
        width: 100%;
        margin: 0;
        padding: 0;
        float: none;
    }

        body #divMenu .nav.navbar-nav > li {
            display: block;
            width: 100%;
            float: none;
        }

            body #divMenu .nav.navbar-nav > li > a,
            body #divMenu .nav.navbar-nav > li > span,
            body div#divMenu span.titulo,
            body div#divMenu span.tituloDisabled {
                display: flex;
                width: 100%;
                min-height: 46px;
                align-items: center;
                padding: 12px 18px;
                white-space: normal;
            }

        body #divMenu .nav.navbar-nav .dropdown-menu {
            position: static;
            float: none;
            width: 100%;
            min-width: 0;
            box-shadow: none;
        }
}

/* ---------------------------------------------------------------------------
   Resumo de validacao
   --------------------------------------------------------------------------- */
body .AvisoDeErro,
body .ValidationSummary,
body .validation-summary-errors,
body div[id*="ValidationSummary"],
body div[id*="vs"] {
    box-sizing: border-box;
    margin: 12px 0 16px;
    padding: 12px 14px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
}

    body .AvisoDeErro *,
    body .ValidationSummary *,
    body .validation-summary-errors *,
    body div[id*="ValidationSummary"] *,
    body div[id*="vs"] * {
        color: inherit !important;
        font-size: inherit;
        line-height: inherit;
    }

    body .AvisoDeErro ul,
    body .ValidationSummary ul,
    body .validation-summary-errors ul,
    body div[id*="ValidationSummary"] ul,
    body div[id*="vs"] ul {
        margin: 6px 0 0 18px;
        padding: 0;
        list-style-position: outside;
    }

    body .AvisoDeErro li,
    body .ValidationSummary li,
    body .validation-summary-errors li,
    body div[id*="ValidationSummary"] li,
    body div[id*="vs"] li {
        margin: 3px 0;
        padding-left: 2px;
    }

body .validation-summary-valid {
    display: none;
}

/* ---------------------------------------------------------------------------
   Componentes reutilizaveis do tema municipal
   --------------------------------------------------------------------------- */
body .theme-surface,
body .theme-card {
    border-radius: var(--component-card-radius, 8px);
}

body .theme-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4, 8px);
    font-family: var(--font-family-display, inherit);
    font-size: var(--font-size-md, 14px);
    font-weight: var(--font-weight-bold, 700);
    line-height: var(--font-line-height-base, 1.5);
    padding: var(--space-4, 8px) var(--space-6, 20px);
}

body .theme-link {
    font-weight: var(--font-weight-semibold, 600);
}

body .theme-pill {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: var(--font-size-sm, 11px);
    font-weight: var(--font-weight-bold, 700);
    line-height: 1.2;
    white-space: nowrap;
}

body .cw-text-danger {
    color: var(--color-danger, #d9534f) !important;
}

/* ---------------------------------------------------------------------------
   Datepicker
   --------------------------------------------------------------------------- */
body .ui-datepicker {
    box-sizing: border-box;
    width: 220px !important;
    padding: 4px 4px 2px;
    border-radius: 4px;
    font-size: 11px;
    line-height: 1.35;
    z-index: 9999 !important;
}

    body .ui-datepicker .ui-datepicker-header {
        min-height: 28px;
        padding: 3px 26px;
        border: 0;
        border-radius: 3px;
    }

    body .ui-datepicker .ui-datepicker-title {
        display: flex;
        justify-content: center;
        gap: 4px;
        margin: 0;
        line-height: 22px;
    }

    body .ui-datepicker select.ui-datepicker-month,
    body .ui-datepicker select.ui-datepicker-year,
    body .ui-datepicker select.ui-datepicker-month-year {
        width: auto !important;
        min-width: 72px;
        height: 22px;
        min-height: 22px;
        margin: 0;
        padding: 1px 4px;
        border-radius: 2px;
        font-size: 11px;
        line-height: 1.2;
        box-sizing: border-box;
    }

    body .ui-datepicker .ui-datepicker-prev,
    body .ui-datepicker .ui-datepicker-next {
        top: 4px;
        width: 20px;
        height: 20px;
    }

    body .ui-datepicker .ui-datepicker-prev {
        left: 4px;
    }

    body .ui-datepicker .ui-datepicker-next {
        right: 4px;
    }

    body .ui-datepicker table {
        margin: 4px 0 0;
        font-size: 11px;
    }

    body .ui-datepicker th {
        padding: 4px 2px;
        font-size: 11px;
        line-height: 1.25;
    }

    body .ui-datepicker td {
        padding: 1px;
    }

        body .ui-datepicker td span,
        body .ui-datepicker td a {
            min-height: 22px;
            padding: 4px 5px;
            border-radius: 2px;
            font-size: 11px;
            line-height: 1.25;
            text-align: right;
            box-sizing: border-box;
        }
/* ---------------------------------------------------------------------------
   Responsivo — conteúdo e listas em telas menores
   --------------------------------------------------------------------------- */
@media screen and (max-width: 720px) {
    body .topoPagina {
        gap: 10px;
        padding: 0 0 12px;
    }

    body div.busca {
        padding: 14px;
    }

    body .pesquisaContainer {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        border-radius: 20px;
        padding: 8px;
        gap: 8px;
    }

        body .pesquisaContainer .btnPesquisa {
            width: 100%;
            min-width: 0;
        }

    body .TituloPagina .tituloPagina,
    body #TituloPagina .tituloPagina,
    body .cw-titulo-pagina .tituloPagina,
    body .TituloPagina > span,
    body #TituloPagina > span {
        font-size: 18px;
    }

    body #TituloPagina .subTituloPagina,
    body .TituloPagina .subTituloPagina,
    body .cw-titulo-pagina .subTituloPagina {
        font-size: 11px;
    }

    body #divResultado .objeto .propriedadeObjeto,
    body .divResultado .objeto .propriedadeObjeto {
        display: block !important;
        width: 100% !important;
    }

    body .listaInternaP0 #divResultado .GridView,
    body .listaInternaP0 #divResultado .GridView.Bordas {
        min-width: 720px;
    }

    body .listaInternaP0 #divPaginacao > table,
    body .listaInternaP0 #divPaginacao > table > tbody,
    body .listaInternaP0 #divPaginacao > table > tbody > tr,
    body .listaInternaP0 #tblPaginacao,
    body .listaInternaP0 #tblPaginacao > tbody,
    body .listaInternaP0 #tblPaginacao > tbody > tr {
        display: block;
        width: 100%;
    }

        body .listaInternaP0 #divPaginacao > table > tbody > tr > td,
        body .listaInternaP0 #tblPaginacao > tbody > tr > td {
            display: block;
            width: 100% !important;
            padding: 0;
            border-left: 0 !important;
            text-align: left !important;
            box-sizing: border-box;
        }

            body .listaInternaP0 #divPaginacao > table > tbody > tr > td + td,
            body .listaInternaP0 #tblPaginacao > tbody > tr > td + td {
                margin-top: 10px;
            }

        body .listaInternaP0 #tblPaginacao .mobileSize {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 8px;
            width: 100%;
        }

            body .listaInternaP0 #tblPaginacao .mobileSize .pagination-point,
            body .listaInternaP0 #tblPaginacao .mobileSize .selected-page {
                margin: 0;
            }

        body .listaInternaP0 #tblPaginacao select,
        body .listaInternaP0 #tblPaginacao .PaginacaoItem {
            margin-top: 4px;
        }

    body .listaProgramaConvenioP0 .note {
        max-width: none;
        margin-left: 0;
    }
}

/* Compatibilidade global: links de retorno devem ficar alinhados a direita. */
a[id$="hlkRetornar"],
a[id$="hlk_Retornar"],
a[id$="hlkRetornar2"],
a[id$="hlkRetornarConvenio"],
a[id$="hlkRetornarPrincipal"],
a[id$="hlkVoltar"],
a[id$="HyperLink2"][href*="Convenente.Lista.aspx"] {
    display: block;
    width: fit-content;
    margin-left: auto;
    text-align: right;
}

/* Popups jQuery UI padronizados pelo Scripts/principal.js */
.cw-dialog-padrao.ui-dialog {
    max-width: calc(100vw - 32px);
    padding: 0;
    border-radius: 8px;
    overflow: hidden;
    box-sizing: border-box;
}

.cw-dialog-padrao .ui-dialog-titlebar {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 0 52px 0 18px;
    border: 0;
    border-radius: 0;
    box-sizing: border-box;
}

.cw-dialog-padrao .ui-dialog-title {
    float: none;
    width: auto;
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0;
    white-space: normal;
}

.cw-dialog-padrao.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close {
    top: 50% !important;
    right: 14px !important;
    width: 30px !important;
    height: 30px !important;
    margin: 0 0 0 !important;
    padding: 0 !important;
    border-radius: 50%;
    box-sizing: border-box;
}

    .cw-dialog-padrao.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon {
        position: static !important;
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        margin: 0 !important;
        background-image: none !important;
        color: transparent !important;
        font-size: 0 !important;
        text-indent: 0;
    }

        .cw-dialog-padrao.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon::after {
            content: "×";
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 100%;
            font-family: Arial, sans-serif;
            font-size: 24px;
            font-weight: 700;
            line-height: 1;
        }

    .cw-dialog-padrao.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-button-text {
        display: none;
    }

.cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content {
    max-height: calc(100vh - 160px) !important;
    padding: 18px 20px 16px !important;
    overflow: auto;
    box-sizing: border-box;
}

    .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content table {
        width: 100%;
        margin: 0;
        border-collapse: collapse;
    }

        .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content table td {
            padding: 7px 8px;
            vertical-align: top;
            font-size: 13px;
            line-height: 1.35;
        }

            .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content table td:first-child,
            .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content table td.Width15,
            .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content table td.titulo {
                width: 150px;
                max-width: 220px;
                font-weight: 700;
            }

.cw-dialog-padrao:not(.dialog-lista-popup) input[type="text"],
.cw-dialog-padrao:not(.dialog-lista-popup) input[type="password"],
.cw-dialog-padrao:not(.dialog-lista-popup) input[type="number"],
.cw-dialog-padrao:not(.dialog-lista-popup) select,
.cw-dialog-padrao:not(.dialog-lista-popup) textarea,
.cw-dialog-padrao:not(.dialog-lista-popup) .cw-combobox-input {
    min-height: 34px;
    max-width: 100%;
    padding: 7px 9px;
    border-width: 1px;
    border-style: solid;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.35;
    box-sizing: border-box;
}

.cw-dialog-padrao:not(.dialog-lista-popup) textarea {
    min-height: 92px;
    resize: vertical;
}

.cw-dialog-padrao:not(.dialog-lista-popup) .AvisoDeErro,
.cw-dialog-padrao:not(.dialog-lista-popup) .Erro,
.cw-dialog-padrao:not(.dialog-lista-popup) .validation-summary-errors {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-width: 1px;
    border-style: solid;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.4;
}

.cw-dialog-padrao:not(.dialog-lista-popup) .Buttons,
.cw-dialog-padrao:not(.dialog-lista-popup) .buttonsDialog,
.cw-dialog-padrao:not(.dialog-lista-popup) .popup-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
    padding-top: 14px;
    clear: both;
}

.cw-dialog-padrao:not(.dialog-lista-popup) .button,
.cw-dialog-padrao:not(.dialog-lista-popup) input[type="submit"],
.cw-dialog-padrao:not(.dialog-lista-popup) input[type="button"],
.cw-dialog-padrao:not(.dialog-lista-popup) button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 14px;
    border-width: 1px;
    border-style: solid;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    cursor: pointer;
    box-sizing: border-box;
}

.cw-dialog-padrao:not(.dialog-lista-popup) .cw-combobox {
    display: inline-flex;
    align-items: stretch;
    max-width: 100%;
    vertical-align: middle;
}

.cw-dialog-padrao:not(.dialog-lista-popup) .cw-combobox .cw-combobox-input {
    flex: 1 1 auto;
    min-width: 50px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

body .cw-dialog-padrao:not(.dialog-lista-popup) button.cw-combobox-toggle,
body .cw-dialog-padrao:not(.dialog-lista-popup) .cw-combobox button.cw-combobox-toggle {
    flex: 0 0 38px !important;
    width: 38px !important;
    max-width: 38px !important;
    min-width: 38px !important;
    min-height: 34px !important;
    padding: 0 !important;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    margin-left: -1px;
    overflow: hidden;
    font-size: 0;
    line-height: 1;
    white-space: nowrap;
}

body .cw-dialog-padrao:not(.dialog-lista-popup) button.cw-combobox-toggle .ui-button-text {
    display: none !important;
}

@media screen and (max-width: 640px) {
    .cw-dialog-padrao.ui-dialog {
        left: 8px !important;
        width: calc(100vw - 16px) !important;
    }

    .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content {
        padding: 14px !important;
    }

        .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content table,
        .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content tbody,
        .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content tr,
        .cw-dialog-padrao:not(.dialog-lista-popup) .ui-dialog-content td {
            display: block;
            width: 100% !important;
            max-width: none;
            padding-right: 0;
            padding-left: 0;
            box-sizing: border-box;
        }

    .cw-dialog-padrao:not(.dialog-lista-popup) .Buttons,
    .cw-dialog-padrao:not(.dialog-lista-popup) .buttonsDialog,
    .cw-dialog-padrao:not(.dialog-lista-popup) .popup-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .cw-dialog-padrao:not(.dialog-lista-popup) .button,
    .cw-dialog-padrao:not(.dialog-lista-popup) input[type="submit"],
    .cw-dialog-padrao:not(.dialog-lista-popup) input[type="button"],
    .cw-dialog-padrao:not(.dialog-lista-popup) button {
        width: 100%;
    }

    body .cw-dialog-padrao:not(.dialog-lista-popup) button.cw-combobox-toggle,
    body .cw-dialog-padrao:not(.dialog-lista-popup) .cw-combobox button.cw-combobox-toggle {
        width: 38px !important;
        max-width: 38px !important;
        min-width: 38px !important;
    }
}

/* Imagens WebForms opcionais: evita icone quebrado quando o code-behind nao define ImageUrl. */
body img:not([src]),
body img[src=""] {
    display: none !important;
}

/* Paginas auxiliares legadas: confirmacao, recuperacao, validacao e anexos */
body #divConteudo > .conteudoPagina,
body #divConteudo > div.conteudoPagina,
body #divConteudo > form > .conteudoPagina {
    max-width: 100%;
    box-sizing: border-box;
}

body #TituloPagina ~ table,
body #TituloPagina ~ .Titulo.Medium,
body #TituloPagina ~ .Width100TextCenter,
body #TituloPagina ~ .Width100TextRight,
body .conteudoPagina > table,
body .conteudoPagina > .GridView,
body .conteudoPagina > div[align="center"] {
    max-width: 100%;
    box-sizing: border-box;
}

body #TituloPagina ~ table,
body .conteudoPagina > table,
body .conteudoPagina > div[align="center"] {
    width: 100% !important;
}

body #TituloPagina ~ table td,
body .conteudoPagina > table td,
body .conteudoPagina > table th,
body .conteudoPagina > div[align="center"] {
    overflow-wrap: anywhere;
}

body .conteudoPagina input[type="text"],
body .conteudoPagina input[type="password"],
body .conteudoPagina input[type="email"],
body .conteudoPagina input[type="number"],
body .conteudoPagina input[type="file"],
body .conteudoPagina select,
body .conteudoPagina textarea {
    max-width: 100%;
    box-sizing: border-box;
}

body .conteudoPagina > div[align="center"] .GridView,
body .conteudoPagina > div[align="center"] table[id*="GV"] {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}

@media screen and (max-width: 760px) {
    body #TituloPagina ~ .Width100TextRight,
    body .conteudoPagina .Width100TextRight {
        text-align: left !important;
    }

    body #TituloPagina ~ table,
    body #TituloPagina ~ table tbody,
    body #TituloPagina ~ table tr,
    body #TituloPagina ~ table td,
    body .conteudoPagina > table,
    body .conteudoPagina > table tbody,
    body .conteudoPagina > table tr,
    body .conteudoPagina > table td {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
    }
}
