﻿/* ============================================================
   TEMA / HARMONIA â€” tokens de cor + botoes flat unificados
   (camada sobre o tema cupertino; nao troca o tema)
   ============================================================ */
:root {
    --primary: #1E6FB8;
    --primary-hover: #175A96;
    --primary-dark: #134a7c;
    --primary-contrast: #ffffff;
    --primary-soft: #E9F1F8;

    /* neutros com leve vies azul (escolhidos, nao cinza puro) */
    --bg: #eef2f6;          /* fundo de pagina */
    --surface: #ffffff;     /* cards / paineis */
    --surface-2: #f6f8fb;   /* zebra / faixas sutis */
    --text: #26313d;        /* texto principal (slate) */
    --text-muted: #64707d;  /* texto secundario */
    --border: #d5dce3;      /* borda neutra */
    --border-strong: #c2cbd4;

    /* raio (escala) */
    --radius: 6px;
    --radius-md: 8px;
    --radius-lg: 14px;

    /* sombra (mesma linguagem do card do login) */
    --shadow-sm: 0 1px 2px rgba(16,42,67,.06), 0 1px 3px rgba(16,42,67,.08);
    --shadow-md: 0 4px 12px rgba(16,42,67,.08), 0 2px 6px rgba(16,42,67,.06);
    --shadow-lg: 0 18px 40px rgba(19,74,124,.16), 0 6px 16px rgba(0,0,0,.08);

    /* espacamento (escala 4px) */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;

    /* tipografia */
    --app-font: 'Inter', 'Segoe UI', system-ui, Roboto, 'Helvetica Neue', Arial, sans-serif;

    /* altura padrao dos campos de formulario (inputs, selects, mascaras) */
    --field-h: 38px;
}

/* ===== Fundacao: fonte da aplicacao em todas as telas/componentes =====
   bootstrap.css carrega depois; !important garante a fonte no body,
   nos componentes PrimeFaces (.ui-widget) e nos controles nativos.     */
body,
.ui-widget, .ui-widget .ui-widget,
.ui-inputfield, .ui-selectonemenu, .ui-autocomplete-input,
.ui-button, .ui-panel, .ui-dialog, .ui-datatable,
input, select, textarea, button, .form-control, .btn {
    font-family: var(--app-font) !important;
}
body {
    color: var(--text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* barra de rolagem fina e on-palette (global) */
* { scrollbar-width: thin; scrollbar-color: var(--primary) #eef2f6; }
*::-webkit-scrollbar { width: 9px; height: 9px; }
*::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 8px; }
*::-webkit-scrollbar-thumb:hover { background: var(--primary-hover); }
*::-webkit-scrollbar-track { background: #eef2f6; }

/* ===== Tipografia base (14px de conteudo; tabelas em 13px) ===== */
body,
.ui-widget,
.ui-inputfield, .ui-selectonemenu, .ui-button, .ui-panel, .ui-dialog {
    font-size: 14px !important;
}
.ui-datatable thead th, .ui-datatable tbody td {
    font-size: 13px !important;
}

/* ITEM 3 â€” campos de formulario: borda, raio e foco consistentes */
.ui-inputfield,
.ui-selectonemenu,
.ui-autocomplete-input {
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    box-shadow: none !important;
    background-image: none !important;
    transition: border-color .15s ease, box-shadow .15s ease;
}
input.ui-inputtext, textarea.ui-inputtext {
    padding: 6px 10px !important;
}
.ui-inputfield:enabled:hover,
.ui-selectonemenu:not(.ui-state-disabled):hover {
    border-color: var(--primary) !important;
}
.ui-inputfield:enabled:focus,
.ui-selectonemenu.ui-state-focus,
.ui-selectonemenu:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 0.15rem rgba(30, 111, 184, 0.20) !important;
    outline: none !important;
}

/* selectOneMenu: trigger (seta) alinhado e encostado ao box */
.ui-selectonemenu {
    display: inline-flex !important;
    align-items: stretch;
    overflow: hidden;
}
.ui-selectonemenu.w-100 {
    display: flex !important;
}
.ui-selectonemenu .ui-selectonemenu-label {
    flex: 1 1 auto;
    border: none !important;
    background: transparent !important;
}
.ui-selectonemenu .ui-selectonemenu-trigger {
    display: flex !important;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    width: 30px !important;
    border: none !important;
    border-left: 1px solid var(--border) !important;
    background: transparent !important;
    margin: 0 !important;
}

/* autoComplete com dropdown: caixa unica com a seta discreta (igual ao selectOneMenu) */
.ui-autocomplete {
    display: flex !important;
    width: 100%;
    align-items: stretch;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    overflow: hidden;
    background: #fff;
}
.ui-autocomplete:hover {
    border-color: var(--primary) !important;
}
.ui-autocomplete:focus-within {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 0.15rem rgba(30, 111, 184, 0.20) !important;
}
.ui-autocomplete .ui-autocomplete-input {
    flex: 1 1 auto;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.ui-autocomplete .ui-autocomplete-input:focus {
    box-shadow: none !important;
}
.ui-autocomplete .ui-autocomplete-dropdown {
    margin: 0 !important;
    align-self: stretch;
    height: auto !important;
    width: 30px !important;
    box-sizing: border-box;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ui-autocomplete .ui-autocomplete-dropdown:hover,
.ui-autocomplete .ui-autocomplete-dropdown:focus,
.ui-autocomplete .ui-autocomplete-dropdown.ui-state-hover,
.ui-autocomplete .ui-autocomplete-dropdown.ui-state-active {
    background: transparent !important;
    border: none !important;
    color: inherit !important;
}
.ui-autocomplete .ui-autocomplete-dropdown .ui-icon {
    filter: none !important;
}

/* upload: barra e conteudo neutros (branco) para nao brigar com o botao primario */
.ui-fileupload .ui-fileupload-buttonbar,
.ui-fileupload .ui-fileupload-content,
.ui-fileupload-buttonbar.ui-widget-header {
    background: #fff !important;
    border-color: var(--border) !important;
}

/* botoes padrao (Pesquisar, Inicio, Sair, dialogos...) flat na cor primaria */
.ui-button {
    background: var(--primary) !important;
    background-image: none !important;
    border: 1px solid var(--primary) !important;
    color: var(--primary-contrast) !important;
    border-radius: var(--radius) !important;
    text-shadow: none !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12) !important;
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.ui-button:hover, .ui-button:focus {
    background: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.20) !important;
    transform: translateY(-1px);
}
/* manter flat: ghost/outline, mini-botoes de grid, paginacao e dropdown de autocomplete */
.btn-secundario.ui-button,
.btn-acao.ui-button,
.ui-paginator .ui-button,
button.ui-autocomplete-dropdown {
    box-shadow: none !important;
}
.btn-secundario.ui-button:hover,
.btn-acao.ui-button:hover,
.ui-paginator .ui-button:hover,
button.ui-autocomplete-dropdown:hover {
    transform: none;
}
.ui-button .ui-button-text { color: var(--primary-contrast) !important; }
.ui-button .ui-icon { color: var(--primary-contrast) !important; }
/* icones sprite (jQuery UI) dos botoes solidos: deixar brancos como o texto.
   Nao afeta PrimeIcons (.pi) dos botoes de acao, que tem cor propria. */
.ui-button .ui-icon:not(.pi) {
    filter: brightness(0) invert(1);
}

/* base */
* {

    margin: 0px;
    padding: 0px;
}

html {
    width:100%;
}

body {
    display: flex;
    flex-direction: column;
    font-size: 12px;
    color: var(--text);
    font-family: var(--app-font);
    padding-bottom: 30px;
    text-align: center;
    width:100%;
}






/*
Nos selectonemenu do primefaces o texto estava ficando alinhado  direita. Isso resolve o problema. 
*/
.ui-selectonemenu-label {
    text-align: left;
}


/* miolo */

#menu {
    float: left;
    width: 165px;
    /**/
    float: none;
    width: 228px;
}


@media all and (max-width: 600px) {
    body {
	display: flex;
	flex-direction: column;
	font-size: 16px;
	color: #000;
	font-family: helvetica, arial, sans-serif;
	padding-bottom: 30px;
	text-align: center;
    }
    table{
	display: block;
	width: 100%;

    }
    tbody{
	display: block;
	width: 100%;

    }
    tbody tr{
	display: block;
	width: 100%;

    }
    tbody tr td{
	display: block;
	width: 100%;
    }
    .ui-panelgrid-cell{
	display: block;
	width: 180px;
    }
    tbody tr td input{
	display: block;
	width: 258px ;


    }
    tbody tr td input #email{
	display: block;
	width: 258px ;


    }
    tbody tr td label{
	display: block;
	font-size: 15px;
	text-align: left;


    }
    tbody tr td span{
	display:none;
    }
    table[role=grid]{
	display:flex;
	flex-direction: column;

	width: 100%;
	font-size: 12px;

    }
    table[role=grid] tbody tr td{
	display:flex;
	flex-direction: column;

	width: 100%;
	font-size: 12px;

    }

}

@media screen and (max-width: 480px) {
    .text {
	font-size: 26px;
    }
    h1 {
	font-size: 2.2rem;
    }
    h2 {
	margin: 1.5em 0 0.5em 0;
	font-size: 2rem;
    }
    body {
	display: flex;
	flex-direction: column;
	font-size: 16px;
	color: #0001FF;
	font-family: helvetica, arial, sans-serif;
	padding-bottom: 30px;
	text-align: center;
    }

    #menu {
	float: left;
	width: 165px;
	display: flex;
	flex-direction: column;
    }


    table{
	display: block;
	width: 100%;

    }
    tbody{
	display: block;
	width: 100%;

    }
    tbody tr{
	display: block;
	width: 100%;

    }
    tbody tr td{
	display: block;
	width: 100%;
    }
    .ui-panelgrid-cell{
	display: block;
	width: 180px;
    }
    tbody tr td input{
	display: block;
	width: 244px;
	border: 2px solid red;
	border-radius: 4px;


    }
    tbody tr td input #email{
	display: block;
	width: 258px ;


    }
    tbody tr td label{
	display: block;
	font-size: 15px;
	text-align: left;


    }
    tbody tr td span{
	display:none;
    }
    table[role=grid]{
	display:flex;
	flex-direction: column;
	width:100%;
	overflow-x:visible;
	font-size: 12px;

    }
    table[role=grid] tbody tr td{
	display:flex;
	flex-direction: column;

	width: 100%;
	font-size: 12px;

    }
    table tbody tr td table tbody tr td input{
	width:100%;

    }
    table tbody tr td table tbody tr td input[id="formvalidacao:ano"]{
	width:50%;

    }

}

@media screen and (max-width: 320px) {
    .text {
	font-size: 16px;
    }
    h1 {
	font-size: 2.2rem;
    }
    h2 {
	margin: 1.5em 0 0.5em 0;
	font-size: 2rem;
    }
    body {

	display: flex;
	flex-direction: column;
	font-size: 16px;
	color: #0001FF;
	font-family: helvetica, arial, sans-serif;
	padding-bottom: 30px;
	text-align: center;

    }

    #menu {
	float: left;
	width: 165px;
	display: flex;
	flex-direction: column;
    }

}


/** rodape **/
#rodape, footer {

    align-items: center;
    background-color: var(--primary);
    width: 100%;
    position: fixed;
    bottom: 0;
    padding: 8px 0px;
    text-align: center;
    font-size: 10px;
    color: #FFF;
    display: block;
    box-shadow: 0 -1px 6px rgba(0, 0, 0, 0.12);
}

/* ITEM 4 â€” barra superior primaria (sidebar-heading + navbar), alinhados */
.sidebar-heading.bg-light, .navbar.bg-light {
    background-color: var(--primary) !important;
    border-bottom: none !important;
    height: 64px;
    min-height: 64px;
    display: flex;
    align-items: center;
}
.navbar.bg-light { padding-top: 0 !important; padding-bottom: 0 !important; }
.navbar.bg-light .container-fluid { height: 100%; align-items: center; }
.navbar.bg-light [id$='sidebarToggle'] { align-items: center !important; }
.navbar.bg-light .mt-2 { margin-top: 0 !important; }
.navbar.bg-light h5 { margin: 0 !important; }
.navbar.bg-light .fs-4 { margin-top: 0 !important; }
.sidebar-heading { padding: 0 14px !important; }
.sidebar-heading > div {
    display: flex;
    align-items: center;
    gap: 8px;
}
.sidebar-heading h5 {
    color: #fff !important;
    margin: 0 !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    white-space: nowrap;
}
.sidebar-heading img {
    flex: 0 0 auto;
    background: #fff;
    border-radius: 8px;
    padding: 5px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    box-sizing: content-box;
}
.navbar.bg-light .text-dark { color: #fff !important; }
.navbar.bg-light .btn-light {
    background: transparent !important;
    color: #fff !important;
    border: none !important;
}

/* TITULO */
h2 {
    display: block;
    position: relative;
    overflow: hidden;
    color: #2B2926;
    text-align: left;
    height: auto;
    margin-bottom: 10px;
    border-bottom: 1px solid;
    clear: both;
    font-size: x-large;
    width: 100%;
}

/* FORM */
input, textarea, select {
    display: block;
    margin-bottom: 3px !important;
}

textarea {
    width: 300px;
}

input:not (.ui-widget ), textarea:not (.ui-widget ), select {
    -moz-border-radius: 5px 5px 5px 5px;
    -webkit-border-radius: 5px 5px 5px 5px;
    border-radius: 5px 5px 5px 5px;
    background: url("../resources/imagens/txt.gif") repeat-x scroll 0 0
	transparent;
    border: 1px solid #999999;
    padding: 5px 2px;
}

label {
    display: block;
    float: left;
    margin-right: 20px;
    text-align: right;
    width: 120px;
}

input:after {
    clear: both;
}

.ui-spinner {
    float: left;
    margin-left: 303px;
}


.ui-editor {
    margin-left: 140px;
    margin-bottom: 5px;
    width: 600px !important;
}

input[type=submit], button {
    margin: 0 auto;
}

input[type=submit] {
    background: url("../resources/imagens/fundo_botao.gif") repeat-x scroll
	0 0 #2A2A2A;
    border: 1px solid #272727;
    color: #FFFFFF;
    cursor: pointer;
    padding: 3px;
    position: relative;
    text-shadow: 1px 1px 0 #000000;
    -moz-border-radius: 5px 5px 5px 5px;
    -webkit-border-radius: 5px 5px 5px 5px;
    border-radius: 5px 5px 5px 5px;
}

table button {
    margin: 0 4px;
}

.acoes {
    text-align: center;
}

form {
    margin-bottom: 10px;
    position: relative;
    text-align: left;
}

form fieldset {
    padding: 10px 0px 10px 10px;
    margin: 5px 0 10px 0;
    text-align: left;
    width: 887px;
}

form .ui-fieldset {
    width: 873px;
}

.ui-tabs {
    clear: both;
    margin-bottom: 20px;
}

.ui-tabs fieldset {
    width: 830px;
}

form fieldset legend {
    font-weight: bold;
    padding: 0px 5px;
}

form .campos {
    display: block;
    position: relative;
    overflow: hidden;
}

/* tabela zebrada */
table.dados {
    height: auto;
    margin-bottom: 10px;
    width: 100%;
}

table.dados tr th {
    background-color: #0B0F19;
    color: #fff;
    color: 1em;
    padding: 10px;
}

table.dados tr td {
    padding: 5px 10px;
}

.campos tbody tr td {
    padding-top: 10px;
    text-align: left;
}

.dados {
    width: 100%;
}

.par {
    background-color: #F0F9FF;
}

.impar {
    background: none repeat scroll 0 0 #DDDDDD;
}

/* validacao */
.erros {
    margin: 0 0 10px 0;
    padding: 0 8px;
    clear: both;
}

.erros li {
    display: inline;
    list-style-position: inside;
    list-style-type: none;
    color: #C22;
    background: #FFDFDF;
    border: 2px solid #DF7D7D;
    float: left;
    padding: 6px;
    margin: 3px;
}

.ui-datatable .ui-datatable-data .ui-datatable-odd td {
    background-color: #F2F5F9;
}

.ui-datatable .ui-datatable-data .ui-datatable-even td {
    background-color: #FFFFFF;
}


.ui-widget-header .ui-inputfield, .ui-widget-content .ui-inputfield {
    font-weight: normal;
    width: 100%;
}

.ui-menu .ui-menuitem-link {
    width: 100% !important;
}

.ui-menu {
    width: 100% !important;
    padding: 0 !important;
    border: none !important;
}

.ui-menu .ui-menu-list .ui-widget-header {
    width: 100% !important;
}

li.ui-corner-all {
    border-radius: inherit !important;
}

.ui-outputlabel{
    text-align: left !important;
}

.ui-inputfield {
    width: 100% !important;
}

.mr-40{
    margin-right: 40px;
}

.mr-10{
    margin-right: 10px;
}

.pr-20{
    padding-right: 20px;
}

.pr-30{
    padding-right: 30px;
}

.formulario{
    padding: 1.5rem !important;
}

/* impede que conteudo largo (tabelas) empurre o layout flex alem da viewport;
   a coluna de conteudo pode encolher e a tabela larga rola no proprio container */
#wrapper > .w-100 { min-width: 0; }
.tela-gerenciar .ui-datatable { overflow-x: auto; }
/* rotulos de busca: nao herdam a largura fixa global de <label> (evita quebra em 2 linhas) */
.tela-gerenciar .ui-outputlabel { float: none !important; width: auto !important; white-space: nowrap; }
/* acordeao "Outras opcoes de pesquisa": conteudo com fundo claro (nao cinza) */
.tela-gerenciar .ui-accordion .ui-accordion-content { background: #fff !important; }
/* coluna Tipo/motivo mais estreita (texto quebra), liberando largura para o Status */
.ui-datatable td.col-tipo, .ui-datatable th.col-tipo { max-width: 230px; white-space: normal; }
/* status: fica em 1 linha quando ha espaco (tela larga) e quebra quando aperta (tela pequena) */
.ui-datatable td .status-badge { white-space: normal; }
/* paginador: contador + seletor de registros a esquerda; navegacao (e exportar) a direita */
.tela-gerenciar .ui-paginator-bottom {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 2.4em;
    position: relative;
}
/* "Exportar" fixo a direita, fora do fluxo (nao desloca o centro) */
.tela-gerenciar .ui-paginator-bottom .export-wrap {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
}
.tela-gerenciar .ui-paginator-bottom > * { align-self: center; vertical-align: middle; float: none !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.tela-gerenciar .ui-paginator-bottom .ui-paginator-current { margin: 0; }
.tela-gerenciar .ui-paginator-bottom .ui-paginator-current::after { content: "\00B7"; margin-left: 6px; color: #888; }
.tela-gerenciar .ui-paginator-bottom .ui-paginator-rpp-options { margin: 0 !important; }

@media screen and (max-width: 991px) {
    #divCorpo{
	display: contents !important;

    }
    .formulario{
	padding: 0 !important;
	margin-left: 30px !important;
	margin-right: 30px !important;
	margin-top: 20px !important;
    }
}

.ui-selectonemenu{
    min-width: auto !important;
}

table{
    table-layout: auto !important;
}

table thead th{
    text-align: left !important;
}

div.ui-paginator.ui-widget-header{
    background: var(--primary-soft) !important;
}

.ui-autocomplete {
    display: flex !important;
}

.ui-inputfield {
    box-shadow: none !important;
    padding: 8px !important;
    box-sizing: border-box !important;
}

.ui-button{
    font-weight: 400 !important;
}

.ui-button-text-icon-left .ui-button-text {
    padding: 0.8em 1em 0.8em 1.8em !important;
}

button.ui-autocomplete-dropdown{
    margin-top: 0 !important;
}

button.ui-button ui-button-icon-left ui-icon {
    margin-top: -9px !important;
}

button:focus{
    color: #2779aa !important;
}

.ui-datatable thead th, .ui-datatable tbody td, .ui-datatable tfoot td, .ui-datatable tfoot th {
    padding: 6px 10px !important;
}

/* remove sublinhado dos links de exportacao (Excel/PDF) no paginador */
.ui-paginator a {
    text-decoration: none !important;
}

/* espacamento vertical um pouco mais compacto na Gerenciar Solicitacoes */
.tela-gerenciar .mb-3 {
    margin-bottom: 0.375rem !important;
}

/* botoes de acao apenas com icone (rotulo vira title/hint) */
.btn-acao.ui-button.ui-button-icon-only {
    width: 3.1em;
    height: 2.3em;
    border-radius: 6px;
}
/* neutraliza a caixa 16px/overflow do .ui-icon (tema cupertino) que cortava o glifo */
.btn-acao .ui-button-icon-left {
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    text-indent: 0 !important;
    background: none !important;
    font-size: 1.4rem;
    margin-top: -0.7rem !important;
    margin-left: -0.7rem !important;
}

/* opcao 3: cor semantica dos botoes de acao */
/* Esquema C (outline): Visualizar e Anexar com contorno colorido e fundo claro */
.btn-acao-view.ui-button {
    background: #2196F3 !important;
    border: 1px solid #1976D2 !important;
}
.btn-acao-view.ui-button:hover {
    background: #1976D2 !important;
}
.btn-acao-view .ui-icon, .btn-acao-view .pi {
    color: #fff !important;
}
.btn-acao-attach.ui-button {
    background: #20C997 !important;
    border: 1px solid #17A982 !important;
}
.btn-acao-attach.ui-button:hover {
    background: #17A982 !important;
}
.btn-acao-attach .ui-icon, .btn-acao-attach .pi {
    color: #fff !important;
}

/* Disponibilizar (solido verde) */
.btn-acao-ok.ui-button {
    background: #28a745 !important;
    border: 1px solid #1e7e34 !important;
}
.btn-acao-ok.ui-button:hover {
    background: #218838 !important;
}
.btn-acao-ok .ui-icon, .btn-acao-ok .pi {
    color: #fff !important;
}
/* Rejeitar (solido vermelho) */
.btn-acao-danger.ui-button {
    background: #DC3545 !important;
    border: 1px solid #b02a37 !important;
}
.btn-acao-danger.ui-button:hover {
    background: #c82333 !important;
}
.btn-acao-danger .ui-icon, .btn-acao-danger .pi {
    color: #fff !important;
}
/* Inativar (solido bordo), distinto do vermelho do Rejeitar */
.btn-acao-inativar.ui-button {
    background: #A94E5C !important;
    border: 1px solid #8F3F4C !important;
}
.btn-acao-inativar.ui-button:hover {
    background: #8F3F4C !important;
}
.btn-acao-inativar .ui-icon, .btn-acao-inativar .pi {
    color: #fff !important;
}

/* coluna Acoes: botoes lado a lado (horizontal), numa linha */
.ui-datatable td.col-acoes {
    white-space: nowrap;
}
.ui-datatable td.col-acoes .btn-acao.ui-button {
    display: inline-block;
    vertical-align: middle;
    margin: 3px !important;
}

/* centralizar cabecalho e celulas de colunas marcadas */
.ui-datatable th.txt-center, .ui-datatable td.txt-center {
    text-align: center !important;
}
/* coluna de texto longo (ex.: Certidao) alinhada a esquerda */
.ui-datatable th.col-certidao, .ui-datatable td.col-certidao {
    text-align: left !important;
}
/* grid da consulta: larguras de coluna so no modo tabela (>640px);
   no reflow (<=640px) as celulas empilham em 100% da largura */
@media (min-width: 641px) {
    .grid-consulta .ui-datatable-tablewrapper > table { table-layout: fixed !important; width: 100% !important; }
    .grid-consulta thead th:nth-child(1) { width: 4%; }
    .grid-consulta thead th:nth-child(2) { width: 13%; }
    .grid-consulta thead th:nth-child(3) { width: 15%; }
    .grid-consulta thead th:nth-child(4) { width: 11%; }
    .grid-consulta thead th:nth-child(5) { width: 20%; }
    .grid-consulta thead th:nth-child(6) { width: 18%; }
    .grid-consulta thead th:nth-child(7) { width: 19%; }
}
.grid-consulta td.col-certidao { white-space: normal; word-break: break-word; }
/* cabecalhos: quebra natural (nos espacos) + fonte um pouco menor p/ caber nas colunas */
.grid-consulta thead th { white-space: normal !important; font-size: 12px; line-height: 1.2; }

/* botoes de acao do grid da consulta: PrimeIcons (glifo de fonte) + texto.
   O tema cupertino esconde o .ui-icon (sprite 16px/text-indent), entao liberamos
   a caixa para o glifo pi aparecer, sem as margens negativas dos botoes so-icone. */
.btn-acao-grid .ui-button-icon-left {
    background: none !important;
    text-indent: 0 !important;
    overflow: visible !important;
    width: auto !important;
    height: auto !important;
    margin-top: -0.5em !important;
    margin-left: 0 !important;
}
.btn-acao-grid .ui-button-icon-left.pi { font-size: 0.9rem; }

/* grid da consulta no modo empilhado (<=640px): rotulos em destaque e alinhados,
   valor a direita; linha de acao com botao centralizado e sem rotulo */
@media (max-width: 640px) {
    .grid-stack.ui-datatable-reflow .ui-datatable-data td {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 14px;
        text-align: right !important;
        padding: 8px 14px !important;
    }
    .grid-stack.ui-datatable-reflow .ui-datatable-data td .ui-column-title {
        font-weight: 600 !important;
        color: var(--text, #1f2d3d) !important;
        text-align: left !important;
        width: auto !important;
        max-width: 55% !important;
        flex: 0 0 auto !important;
        margin: 0 !important;
        padding: 0 !important;
        white-space: normal !important;
    }
    .grid-stack.ui-datatable-reflow .ui-datatable-data td.col-certidao { text-align: right !important; }
    .grid-stack.ui-datatable-reflow .ui-datatable-data td.col-acoes { justify-content: center !important; }
    .grid-stack.ui-datatable-reflow .ui-datatable-data td.col-acoes .ui-column-title { display: none !important; }
    .grid-stack.ui-datatable-reflow .ui-datatable-data td.col-acoes:not(:has(button)) { display: none !important; }
    /* no empilhado ha espaco a direita: badge de status em uma linha so */
    .grid-stack.ui-datatable-reflow .ui-datatable-data td .status-badge {
        white-space: nowrap !important;
        max-width: none !important;
    }
}

/* badge de status das solicitacoes */
.status-badge {
    display: inline-block;
    padding: 2px 8px !important;
    border-radius: 10px;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: #fff !important;
    border: 1px solid transparent !important;
    text-decoration: none !important;
    white-space: nowrap;
    line-height: 1.5;
    transition: box-shadow .15s ease, filter .15s ease, transform .15s ease;
}
/* highlight ao passar o mouse */
.status-badge:hover {
    filter: brightness(1.08);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.28);
}
a.status-badge { cursor: pointer; }
a.status-badge:hover { transform: translateY(-1px); }
/* solido: fundo na cor cheia, texto branco */
.status-badge-1 { background: #f0ad4e !important; } /* Em processamento */
.status-badge-2 { background: #5bc0de !important; } /* Aguardando disponibilização */
.status-badge-3 { background: #28a745 !important; } /* Disponibilizada */
.status-badge-4 { background: #DC3545 !important; } /* Rejeitada */
.status-badge-5 { background: #6c757d !important; } /* Inativada */

.row>.col, .row>[class*=col-] {
    padding-right: 5px;
    padding-left: 5px;
}

*, ::after, ::before {
    box-sizing: border-box;
}

.ui-messages{
    margin-bottom: 30px;
}

.ui-toolbar, .ui-datatable thead th.ui-state-default {
    background: var(--primary-soft) !important;
}
/* cabecalho dos dialogos: primario + texto branco */
.ui-dialog .ui-dialog-titlebar {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: #fff !important;
}
.ui-dialog .ui-dialog-titlebar .ui-dialog-title,
.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-icon {
    color: #fff !important;
}
.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-icon .ui-icon {
    filter: brightness(0) invert(1);
}

button.ui-state-default {
    border: 1px solid var(--primary) !important;
    background: var(--primary) !important;
    color: var(--primary-contrast) !important;
}
button.ui-state-default:hover, button.ui-state-hover, button.ui-state-active,
button.ui-state-default:focus {
    background: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: var(--primary-contrast) !important;
}

.ui-selectonemenu-trigger .ui-state-default {
    border: 1px solid #aed0ea;
    background: #fff !important;
}

/* botao de dropdown do autocomplete: primario solido, encostado (ver bloco .ui-autocomplete) */

.ui-selectonemenu .ui-selectonemenu-trigger {
    border-left: none !important;
    background: transparent !important;
}

div[id$=tabOutrasOpcoesPesquisa] .ui-selectonemenu .ui-selectonemenu-trigger {
    background: #fff !important;
}

.ui-icon-triangle-1-s {
    background-position: -60px 5px !important;
}

div.ui-selectonemenu{
    background: transparent !important;
}

#botaoInicio, #botaoLogin, #botaoSair {
    background: rgba(255, 255, 255, 0.10) !important;
    border: none !important;
    box-shadow: none !important;
    color: #fff !important;
    border-radius: 8px !important;
    padding: 6px 14px !important;
    font-weight: 400 !important;
    text-shadow: none !important;
    transition: background-color .15s ease !important;
}
#botaoInicio .ui-button-text, #botaoLogin .ui-button-text, #botaoSair .ui-button-text,
#botaoInicio .ui-icon, #botaoLogin .ui-icon, #botaoSair .ui-icon {
    color: #fff !important;
}
/* navbar azul: icones sprite em branco */
#botaoInicio .ui-icon, #botaoLogin .ui-icon, #botaoSair .ui-icon {
    filter: brightness(0) invert(1) !important;
}
#botaoInicio:hover, #botaoLogin:hover, #botaoSair:hover,
#botaoInicio:focus, #botaoLogin:focus, #botaoSair:focus {
    background: rgba(255, 255, 255, 0.20) !important;
    border-color: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}

.ui-corner-left {
    border-bottom-right-radius: 6px !important;
    border-top-right-radius: 6px !important;
}

.ui-chkbox .ui-state-default{
    background: #fff !important;
}


.ui-chkbox .ui-state-active{
    background: var(--primary) !important;
    border-color: var(--primary) !important;
}

.ui-accordion .ui-state-active {
    background: var(--primary) !important;
}

.ui-accordion .ui-state-default {
    background: var(--primary-soft);
}

/* affordance: deixar claro que o cabecalho do accordion e clicavel */
.ui-accordion .ui-accordion-header {
    cursor: pointer;
    transition: background-color .15s ease;
}
.ui-accordion .ui-accordion-header:hover {
    background: #bfe0f5 !important;
}
.ui-accordion .ui-accordion-header .ui-icon {
    transform: scale(1.15);
}

.ui-chkbox-box ui-state-active{
    background: #3baae3 !important;
}

.ui-dialog .ui-dialog-content {
    background: #fff !important;
}

.template-nav-menu{
    background-color: var(--primary-soft) !important;
    border-left: 3px solid var(--primary) !important;
}

/* ITEM 5 â€” menu lateral: hover e cabecalhos coerentes com a paleta */
#menu a.list-group-item {
    transition: background-color .12s ease, color .12s ease, border-color .12s ease;
}
#menu a.list-group-item-action:not(.template-nav-menu) {
    border-left: 3px solid transparent !important;
}
#menu a.list-group-item-action:hover,
#menu a.list-group-item-action:focus {
    background-color: var(--primary-soft) !important;
    color: var(--primary-hover) !important;
    border-left-color: var(--primary) !important;
}
/* cabecalhos de secao em destaque primario */
#menu a.template-nav-menu {
    color: var(--primary) !important;
    font-weight: 600 !important;
}

/* ITEM 6 â€” raio unico nas superficies e peso de titulo consistente */
.card,
.ui-dialog,
.ui-panel,
.ui-fieldset {
    border-radius: var(--radius) !important;
}
.ui-dialog .ui-dialog-titlebar {
    border-top-left-radius: var(--radius) !important;
    border-top-right-radius: var(--radius) !important;
}
#divCorpo h1, #divCorpo h2, #divCorpo h3,
#divCorpo h4, #divCorpo h5, #divCorpo h6 {
    font-weight: 600;
}

/* barra de acoes sticky no rodape (a direita) */
.acoes-barra, .acoes-sticky {
    background: #fff;
    border: 1px solid var(--border);
    box-shadow: 0 3px 9px rgba(0, 0, 0, 0.08);
    padding: 10px 14px !important;
    border-radius: var(--radius);
}
.acoes-sticky {
    position: sticky;
    bottom: 34px;
    z-index: 5;
    justify-content: flex-end !important;
    align-items: center;
}
.acoes-sticky > * { text-align: right; }

/* botao secundario ghost/outline (Cancelar, Voltar, etc.) */
.btn-secundario.ui-button {
    background: transparent !important;
    border: 1px solid var(--primary) !important;
    color: var(--primary) !important;
}
.btn-secundario.ui-button .ui-button-text { color: var(--primary) !important; }
.btn-secundario.ui-button .ui-icon { filter: none !important; color: var(--primary) !important; }
.btn-secundario.ui-button:hover {
    background: var(--primary-soft) !important;
    color: var(--primary-hover) !important;
}
/* botao "x" (fechar) na barra de titulo dos dialogos: sem destaque no hover */
.ui-dialog .ui-dialog-titlebar-icon:hover,
.ui-dialog .ui-dialog-titlebar-icon.ui-state-hover,
.ui-dialog .ui-dialog-titlebar-icon:focus {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

/* ===== Padrao de dialogos ===== */
/* respiro interno do conteudo */
.dlg-conteudo { padding: 4px 6px 2px 6px; }
/* rodape de acoes unificado: alinhado a direita, com separador */
.dlg-acoes {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
/* nos dialogos com paineis-card: junta o rodape de botoes ao ultimo card
   (um unico card; linha sutil separando conteudo e botoes) */
.dlg-cards *:has(+ .dlg-acoes),
.dlg-cards *:has(+ .dlg-acoes) .dlg-secao:last-child {
    margin-bottom: 0 !important;
    border-bottom: none !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    box-shadow: none !important;
}
.dlg-cards .dlg-acoes {
    background: var(--surface);
    border: 1px solid var(--border);
    border-top: none;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    box-shadow: var(--shadow-sm);
    margin-top: 0;
    padding: 12px 16px;
    position: relative;
}
/* divisor interno recuado das bordas (nao encosta nas laterais) */
.dlg-cards .dlg-acoes::before {
    content: "";
    position: absolute;
    top: 0;
    left: 16px;
    right: 16px;
    height: 1px;
    background: var(--border);
}
/* campo unico empilhado: rotulo acima, campo em largura total */
.dlg-campo { display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.dlg-campo-label { font-weight: 500; text-align: left; white-space: nowrap; }
.dlg-campo .ui-selectonemenu, .dlg-campo .ui-inputfield { width: 100%; }
/* grupo de checkboxes em linha (ex.: PF / PJ / UG) */
.dlg-check-group { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.dlg-check-group span { display: inline-flex; align-items: center; gap: 6px; }
/* formulario rotulo->campo em grade responsiva */
.dlg-form { display: flex; flex-direction: column; gap: 0; align-items: stretch; }
.dlg-form > label,
.dlg-form > .ui-outputlabel {
    display: block !important;
    float: none !important;
    width: auto !important;
    text-align: left !important;
    white-space: nowrap;
    margin: 12px 0 4px !important;
    padding: 0 !important;
}
.dlg-form > label:first-child,
.dlg-form > .ui-outputlabel:first-child { margin-top: 0 !important; }
/* dialogo de detalhe: cada campo e uma linha independente (label -> valor), a prova de desalinhamento */
.dlg-linha {
    display: grid;
    grid-template-columns: minmax(160px, 215px) 1fr;
    gap: 2px 14px;
    align-items: start;
    margin-bottom: 10px;
}
.dlg-linha > label,
.dlg-linha > .ui-outputlabel {
    white-space: nowrap;
    text-align: left;
    padding-top: 4px;
    font-weight: 500;
}
/* painel de dados (somente leitura) dentro dos dialogos */
.dlg-secao {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    padding: 14px 16px;
    margin-bottom: 14px;
}
/* diálogos com paineis-card: fundo neutro para os cards "saltarem" */
.dlg-cards .ui-dialog-content { background: var(--bg) !important; }
.dlg-secao-titulo {
    font-weight: 600;
    color: var(--primary);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: 10px;
}
.dlg-secao-corpo { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 28px; }
/* variante inline: valor ao lado do rotulo (mesma linha) */
.dlg-secao-corpo.dlg-inline .dlg-linha > label,
.dlg-secao-corpo.dlg-inline .dlg-linha > .ui-outputlabel {
    display: inline !important;
    width: auto !important;
    float: none !important;
    margin-right: 6px;
}
.dlg-secao-corpo.dlg-inline .dlg-linha > div:not(.dlg-arquivo-inline) { display: inline; }
/* URLs longas: celula do grid pode encolher e o link e truncado com reticencias (.sp-url) */
.dlg-secao-corpo > .dlg-linha { min-width: 0; }
.dlg-secao-corpo.dlg-inline .dlg-linha > div.dlg-url { display: block; }
/* campos de leitura: valor na linha abaixo do rotulo (stacked) */
.dlg-secao-corpo .dlg-linha { display: block; margin-bottom: 4px; }
.dlg-secao-corpo .dlg-linha > label,
.dlg-secao-corpo .dlg-linha > .ui-outputlabel {
    display: block;
    float: none;
    width: auto;
    white-space: normal;
    text-align: left;
    padding-top: 0;
    margin-bottom: 1px;
}
@media (max-width: 640px) { .dlg-secao-corpo { grid-template-columns: 1fr; } }

/* G (dlg-certidao): espacamento compacto para reduzir rolagem */
.dlg-certidao .dlg-secao { padding: 8px 12px; margin-bottom: 8px; }
.dlg-certidao .dlg-secao-titulo { margin-bottom: 5px; }
.dlg-certidao .dlg-secao-corpo { gap: 3px 28px; }
.dlg-certidao .dlg-secao-corpo .dlg-linha { margin-bottom: 2px; }
.dlg-certidao .dlg-linha-stack { margin-top: 4px !important; margin-bottom: 2px; }
.dlg-certidao .dlg-linha-stack > label { margin-bottom: 3px; }
/* Arquivo: botao + nome ao lado do rotulo (inline), ocupando a linha */
.dlg-certidao .dlg-inline .dlg-linha > .dlg-arquivo-inline { display: inline-flex !important; vertical-align: middle; }

/* campo de acao empilhado: rotulo em cima, campo em largura total, contador abaixo/esquerda */
.dlg-linha-stack { margin-bottom: 12px; }
.dlg-linha-stack > label, .dlg-linha-stack > .ui-outputlabel {
    display: block;
    float: none;
    width: auto;
    text-align: left;
    font-weight: 500;
    margin-bottom: 6px;
}

/* contador de caracteres do textarea */
.dlg-contador { display: block; font-size: 11px; color: #8a94a0; margin-top: 4px; text-align: right; }
/* estado vazio (ex.: nenhum arquivo) */
.dlg-vazio { color: #8a94a0; font-style: italic; }

/* botoes de acao com cor semantica */
.btn-rejeitar.ui-button { background: #DC3545 !important; border-color: #DC3545 !important; }
.btn-rejeitar.ui-button:hover, .btn-rejeitar.ui-button:focus { background: #c82333 !important; border-color: #c82333 !important; }
.btn-inativar.ui-button { background: #A94E5C !important; border-color: #A94E5C !important; }
.btn-inativar.ui-button:hover, .btn-inativar.ui-button:focus { background: #8f3f4c !important; border-color: #8f3f4c !important; }

/* botoes de acao do dialogo nas cores do grid (Anexar/Disponibilizar) */
.btn-anexar.ui-button { background: #20C997 !important; border-color: #17A982 !important; }
.btn-anexar.ui-button:hover, .btn-anexar.ui-button:focus { background: #17A982 !important; border-color: #17A982 !important; }
.btn-disponibilizar.ui-button { background: #28a745 !important; border-color: #1e7e34 !important; }
.btn-disponibilizar.ui-button:hover, .btn-disponibilizar.ui-button:focus { background: #218838 !important; border-color: #1e7e34 !important; }

/* botao de upload em estilo outline (secundario) */
.upload-outline .ui-fileupload-choose.ui-button {
    background: transparent !important;
    border: 1px solid var(--primary) !important;
    color: var(--primary) !important;
    box-shadow: none !important;
}
.upload-outline .ui-fileupload-choose.ui-button .ui-button-text,
.upload-outline .ui-fileupload-choose.ui-button .ui-icon { color: var(--primary) !important; filter: none !important; }
.upload-outline .ui-fileupload-choose.ui-button:hover { background: var(--primary-soft) !important; }

/* linha do arquivo: rotulo + botao de upload + nome do arquivo na mesma linha */
.dlg-arquivo-linha { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
.dlg-arquivo-linha > label, .dlg-arquivo-linha > .ui-outputlabel { float: none; width: auto; font-weight: 500; margin: 0; }
.dlg-arquivo-inline { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.dlg-arquivo-inline .upload-botao.ui-fileupload,
.dlg-arquivo-inline .upload-botao .ui-fileupload-buttonbar {
    display: inline-block !important;
    padding: 0 !important;
    margin: 0 !important;
    vertical-align: middle;
}
.dlg-arquivo-inline .upload-botao .ui-fileupload-content { display: none !important; }
@media (max-width: 640px) {
    .dlg-linha { grid-template-columns: 1fr; gap: 2px 0; }
}
.dlg-form label, .dlg-form .ui-outputlabel { font-weight: 500; }
.dlg-form .ui-inputfield, .dlg-form .ui-selectonemenu { width: 100%; }
@media (max-width: 640px) { .dlg-form { grid-template-columns: 1fr; gap: 4px 0; } }

/* tabela de selecao em dialogos: linha toda clicavel, destaque no hover */
.tabela-selecao tbody td { padding: 4px 8px !important; }
.tabela-selecao tbody tr { cursor: pointer; }
.tabela-selecao .link-selecao {
    display: block;
    color: inherit !important;
    text-decoration: none !important;
    padding: 6px 6px;
}
.tabela-selecao tbody tr:hover,
.tabela-selecao tbody tr.ui-state-hover {
    background: var(--primary-soft) !important;
}
.tabela-selecao tbody tr:hover .link-selecao {
    color: var(--primary) !important;
    font-weight: 600;
    text-decoration: none !important;
}

/* ===== Estilos migrados de <style>/inline das paginas ===== */

/* rotulo "Exportar" e wrapper do botao de exportacao (grids) */
.lbl-exportar {
    vertical-align: middle;
    font-weight: 400;
    margin-right: 4px;
    text-decoration: none;
}
.export-wrap {
    float: right;
    padding-top: 5px;
}
/* contador "N registros encontrados" ao lado do botao de exportar (grids lazy) */
.grid-total {
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 400;
    margin-right: 8px;
    vertical-align: middle;
    white-space: nowrap;
}

/* index: titulo + grade de cards de certidoes */
.index-title {
    color: var(--primary);
    font-weight: 600;
    margin: 0;
}
.cert-card {
    border: 1px solid var(--border) !important;
    border-radius: var(--radius);
    overflow: hidden;
    transition: box-shadow .15s ease, transform .15s ease;
}
.cert-card:hover {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.10);
    transform: translateY(-2px);
}
.cert-card-header {
    color: #fff !important;
    background-color: var(--primary) !important;
    min-height: 3.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}

/* carrossel moderno (scroll-snap horizontal) */
.cert-carousel-wrap { position: relative; padding: 0 3rem; }
.cert-carousel-scroll {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 6px 2px 14px;
    scrollbar-width: thin;
    scrollbar-color: var(--primary) #e9eef3;
}
.cert-carousel-scroll::-webkit-scrollbar { height: 8px; }
.cert-carousel-scroll::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 8px; }
.cert-carousel-scroll::-webkit-scrollbar-track { background: #e9eef3; border-radius: 8px; }
.cert-slide {
    flex: 0 0 clamp(260px, 30%, 360px);
    scroll-snap-align: start;
}
.cert-slide > .card { width: 100%; height: 100%; }
/* setas de navegacao */
.cert-nav {
    position: absolute;
    top: 40%;
    transform: translateY(-50%);
    width: 2.4rem;
    height: 2.4rem;
    border: none;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cert-nav:hover { background: var(--primary-hover); }
.cert-nav-prev { left: 0; }
.cert-nav-next { right: 0; }
/* carrossel responsivo: no mobile, 1 card por vez sem cortar; setas menores */
@media (max-width: 600px) {
    .cert-carousel-wrap { padding: 0 2.2rem; }
    .cert-carousel-wrap .cert-slide { flex: 0 0 100%; }
    .cert-nav { width: 2rem; height: 2rem; font-size: 1.1rem; }
    .cert-nav-prev { left: -0.2rem; }
    .cert-nav-next { right: -0.2rem; }
}
.cert-card .card-footer {
    background: #fff;
    border-top: 1px solid var(--border);
    text-align: end;
}
a.cert-btn-solicitar, .cert-btn-solicitar.btn {
    background: var(--primary) !important;
    border: 1px solid var(--primary) !important;
    color: #fff !important;
}
a.cert-btn-solicitar:hover, .cert-btn-solicitar.btn:hover {
    background: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: #fff !important;
}
.btn-outline-primary:hover {
    color: #fff !important;
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
}

/* dialogo Anexar/Disponibilizar Certidao (escopado em .dlg-certidao) */
.dlg-certidao .ui-dialog-content {
    padding: 10px 10px 10px !important;
    overflow-x: hidden !important;
}
.dlg-wrap { width: 100%; max-width: 100%; margin: 0; padding: 0; }
.dlg-certidao .ui-fieldset, .dlg-certidao .ui-fieldset-content {
    width: 100% !important;
    max-width: 100% !important;
}
.dlg-certidao .ui-fieldset .ui-fieldset-legend {
    padding: 6px 10px !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
}
.dlg-wrap .mb-3 { margin-bottom: 1px !important; }
.sp-url {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}
.sp-label { color: #222; font-size: 0.9rem; margin-bottom: 1px; }

.center-align {
    text-align: center;
}


/* remove fundo e borda do container do upload */
.upload-botao.ui-fileupload,
.upload-botao .ui-fileupload-buttonbar,
.upload-botao.ui-widget-content {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* se ainda sobrar Ã¡rea azul por causa do content */
.upload-botao .ui-fileupload-content {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}


/* ============================================================
   C - Refinamento do chrome (topbar, menu lateral, rodape)
   afeta todas as telas via _templatepublico.xhtml
   ============================================================ */

/* Topbar: gradiente vertical (sem emenda entre heading e navbar) + profundidade */
.sidebar-heading.bg-light,
.navbar.bg-light {
    background: linear-gradient(180deg, var(--primary) 0%, var(--primary-dark) 100%) !important;
}
.navbar.bg-light {
    box-shadow: 0 2px 10px rgba(16, 42, 67, 0.18);
    position: relative;
    z-index: 5;
}
/* botoes da topbar: hover suave translucido */
#botaoInicio:hover, #botaoLogin:hover, #botaoSair:hover {
    background: rgba(255, 255, 255, 0.14) !important;
    border-radius: var(--radius) !important;
}

/* Sidebar: superficie levemente tonalizada + borda coerente */
#sidebar-wrapper {
    background: var(--surface-2);
    border-right: 1px solid var(--border) !important;
}
/* itens do menu: navegacao limpa (sem bordas boxy do list-group) */
#menu a.list-group-item {
    background: transparent !important;
    border: none !important;
    border-left: 3px solid transparent !important;
    color: var(--text) !important;
    padding-top: 0.7rem !important;
    padding-bottom: 0.7rem !important;
}
#menu a.list-group-item-action:not(.template-nav-menu) {
    font-size: 0.92rem;
    color: var(--text) !important;
}
#menu a.list-group-item-action:not(.template-nav-menu):hover,
#menu a.list-group-item-action:not(.template-nav-menu):focus {
    background: var(--primary-soft) !important;
    color: var(--primary-hover) !important;
    border-left-color: var(--primary) !important;
}
/* cabecalhos de secao: rotulo na cor da marca, divisor tonalizado + acento */
#menu a.template-nav-menu {
    background: transparent !important;
    border-left: none !important;
    border-top: 1px solid rgba(30, 111, 184, 0.20) !important; /* divisor com tom da marca */
    margin-top: 14px;
    color: var(--primary) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding-top: 1rem !important;
    padding-bottom: 0.4rem !important;
    pointer-events: none; /* action="#" - sao rotulos */
}
#menu a.template-nav-menu:first-child {
    border-top: none !important;
    margin-top: 0;
}

/* Rodape: mais discreto (gradiente sutil, texto atenuado) */
#rodape, footer {
    background: linear-gradient(180deg, var(--primary) 0%, var(--primary-dark) 100%) !important;
    font-size: 11px;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 -1px 8px rgba(16, 42, 67, 0.18);
}

/* ============================================================
   B - Cards de secao (agrupa filtros/formulario/tabela)
   ============================================================ */
/* corpo em fundo neutro para os cards brancos "saltarem" */
body { background: var(--bg); }

.card-secao {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: var(--space-5);
    margin-bottom: var(--space-5);
}
.card-secao > :last-child { margin-bottom: 0; }
/* zera o mb-3 do ultimo filho para nao dobrar espacamento */
.card-secao > .row.mb-3:last-child { margin-bottom: 0 !important; }

.card-secao-titulo {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text);
    margin: 0 0 var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--border);
}

/* rodape de acoes do card: filete inset simples (no fluxo, recuado, com respiro acima) */
.card-secao .acoes-sticky,
.card-secao .acoes-barra {
    background: transparent !important;
    border: none !important;
    border-top: 1px solid var(--border) !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: var(--space-4) 0 0 !important;
    margin: var(--space-5) 0 0 !important;
}
/* a linha do rodape acompanha a largura do conteudo do card */
.card-secao .row.mb-3 > .acoes-barra { margin-top: 0 !important; }

/* ============================================================
   D - Polimento de tabelas (cabecalho, zebra, hover)
   ============================================================ */
/* cabecalho: rotulo com acento inferior e leve espacamento */
.ui-datatable thead th,
.ui-datatable thead th.ui-state-default {
    background: var(--surface-2) !important;
    color: var(--primary-hover) !important;
    font-weight: 600 !important;
    letter-spacing: .01em;
    border-bottom: 2px solid var(--border-strong) !important;
    vertical-align: middle !important;
}
/* celulas: separadores neutros e alinhamento vertical */
.ui-datatable tbody td {
    border-color: var(--border) !important;
    vertical-align: middle !important;
}
/* zebra via tokens */
.ui-datatable .ui-datatable-data .ui-datatable-odd td { background-color: var(--surface-2) !important; }
.ui-datatable .ui-datatable-data .ui-datatable-even td { background-color: var(--surface) !important; }
/* hover de linha: destaque na cor da marca (vence a zebra) */
.ui-datatable .ui-datatable-data tr:hover td,
.ui-datatable tbody tr:hover td {
    background-color: var(--primary-soft) !important;
    transition: background-color .12s ease;
}

/* ============================================================
   D - Polimento: campos/rotulos (1), botoes (2), micro-interacoes (3)
   ============================================================ */

/* (1) rotulos de campo dentro dos cards: bloco limpo, peso e respiro */
.card-secao .ui-outputlabel,
.card-secao label.w-100 {
    float: none !important;
    width: auto !important;
    text-align: left !important;
    display: block;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 6px;
}
/* placeholder mais discreto e coerente com os neutros */
.ui-inputfield::placeholder,
.ui-inputtextarea::placeholder,
.form-control::placeholder,
input::placeholder, textarea::placeholder {
    color: var(--text-muted) !important;
    opacity: .75;
}

/* (2) botoes de acao do grid: leve realce no hover */
.btn-acao.ui-button {
    transition: filter .12s ease, box-shadow .12s ease !important;
}
.btn-acao.ui-button:hover {
    filter: brightness(.94);
}

/* (3) foco por teclado visivel (acessibilidade) */
a:focus-visible,
.ui-button:focus-visible,
.ui-inputfield:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--primary) !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}
/* respeita quem prefere menos movimento */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; }
    .ui-button:hover { transform: none !important; }
}

/* ============================================================
   Ajuste fino - tabela moderna (so separadores horizontais)
   + paginador com a fonte/estilo do app
   ============================================================ */
/* remove linhas verticais e bordas do container (ja esta dentro do card) */
.ui-datatable, .ui-datatable-tablewrapper, .ui-datatable table { border: 0 !important; }
.ui-datatable thead th,
.ui-datatable tbody td {
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 0 !important;
}
.ui-datatable tbody td { border-bottom: 1px solid var(--border) !important; }
.ui-datatable thead th { border-bottom: 2px solid var(--border-strong) !important; }

/* paginador: fonte Inter e tamanho coerente (fim do "grosseiro") */
.ui-paginator, .ui-paginator * {
    font-family: var(--app-font) !important;
}
.ui-paginator { font-size: 13px !important; }
.ui-paginator .ui-paginator-current { color: var(--text-muted) !important; font-weight: 500 !important; }

/* botoes de pagina e navegacao: quadrados flat, ativos em primaria */
.ui-paginator .ui-paginator-page,
.ui-paginator .ui-paginator-first,
.ui-paginator .ui-paginator-prev,
.ui-paginator .ui-paginator-next,
.ui-paginator .ui-paginator-last {
    min-width: 30px !important;
    height: 30px !important;
    line-height: 28px !important;
    margin: 0 2px !important;
    padding: 0 6px !important;
    border: 1px solid var(--border) !important;
    background: var(--surface) !important;
    color: var(--primary-hover) !important;
    border-radius: var(--radius-sm) !important;
    box-shadow: none !important;
    text-shadow: none !important;
    font-weight: 600 !important;
    transition: background-color .12s ease, border-color .12s ease;
}
.ui-paginator .ui-paginator-page:hover,
.ui-paginator .ui-paginator-first:hover,
.ui-paginator .ui-paginator-prev:hover,
.ui-paginator .ui-paginator-next:hover,
.ui-paginator .ui-paginator-last:hover {
    background: var(--primary-soft) !important;
    border-color: var(--primary) !important;
    color: var(--primary-hover) !important;
}
.ui-paginator .ui-paginator-page.ui-state-active {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: #fff !important;
}
/* dropdown "itens por pagina" alinhado ao mesmo desenho */
.ui-paginator .ui-paginator-rpp-options {
    height: 30px !important;
    border-radius: var(--radius-sm) !important;
    border: 1px solid var(--border) !important;
}

/* corrige icones do paginador: sprite 16x16 sem vazamento + centralizacao */
.ui-paginator .ui-paginator-first,
.ui-paginator .ui-paginator-prev,
.ui-paginator .ui-paginator-next,
.ui-paginator .ui-paginator-last {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: normal !important;
}
.ui-paginator .ui-icon {
    width: 16px !important;
    height: 16px !important;
    line-height: 16px !important;
    overflow: hidden !important;
    background-repeat: no-repeat !important;
    text-indent: -99999px !important;
    display: inline-block !important;
    vertical-align: middle !important;
}

/* ============================================================
   Grid: recolor dos ultimos resquicios do tema antigo (cupertino)
   ============================================================ */
/* cabecalho da tabela: neutro + texto primario (vence .ui-state-default) */
.ui-datatable thead th.ui-state-default,
.ui-toolbar {
    background: var(--surface-2) !important;
    color: var(--primary-hover) !important;
}

/* acordeao "Outras opcoes de pesquisa": neutro + texto primario */
.ui-accordion .ui-accordion-header.ui-state-default,
.ui-accordion .ui-state-default {
    background: var(--surface-2) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
}
.ui-accordion .ui-accordion-header,
.ui-accordion .ui-accordion-header a {
    color: var(--primary-hover) !important;
    font-weight: 600 !important;
}
.ui-accordion .ui-accordion-header.ui-state-hover,
.ui-accordion .ui-accordion-header:hover {
    background: var(--primary-soft) !important;
    border-color: var(--primary) !important;
}
/* aberto: faixa primaria com texto/icone brancos */
.ui-accordion .ui-state-active,
.ui-accordion .ui-accordion-header.ui-state-active {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
}
.ui-accordion .ui-state-active,
.ui-accordion .ui-state-active a { color: #fff !important; }
.ui-accordion .ui-state-active .ui-icon { filter: brightness(0) invert(1); }

/* rodape da tabela: dropdown de itens por pagina no mesmo tamanho (13px) */
.ui-paginator .ui-paginator-rpp-options,
.ui-paginator select.ui-paginator-rpp-options {
    font-size: 13px !important;
}

/* ============================================================
   Topbar: sem risco vertical, profundidade continua e logo do login
   ============================================================ */
/* (1) tira a borda da sidebar que cortava a barra azul; separador so abaixo
   (na borda esquerda do conteudo, que comeca abaixo da barra) */
#sidebar-wrapper { border-right: none !important; }

/* (2) profundidade continua sob toda a barra (heading + navbar) */
.sidebar-heading.bg-light {
    box-shadow: 0 2px 10px rgba(16, 42, 67, 0.18);
    position: relative;
    z-index: 5;
}

/* (3) logo do topbar = imagem do login (vertical), em branco, sem caixa */
.sidebar-heading img {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    filter: brightness(0) invert(1);
    width: auto !important;
    max-height: 42px !important;
}

/* ============================================================
   Padroniza fundo dos selects (branco, igual inputs/autocomplete)
   ============================================================ */
.ui-selectonemenu,
.ui-selectonemenu.ui-state-default,
.ui-selectonemenu.ui-state-hover,
.ui-selectonemenu.ui-state-focus,
.ui-selectonemenu.ui-state-active {
    background: var(--surface) !important;
    background-image: none !important;
}
.ui-selectonemenu .ui-selectonemenu-label,
.ui-selectonemenu .ui-selectonemenu-trigger {
    background: transparent !important;
}
/* painel de opcoes tambem branco */
.ui-selectonemenu-panel,
.ui-selectonemenu-items { background: var(--surface) !important; }

/* status-badge: uma linha so em telas largas; quebra (2 linhas) em telas menores */
@media (min-width: 1367px) {
    .ui-datatable td .status-badge { white-space: nowrap !important; }
}
@media (max-width: 1366px) {
    .ui-datatable td .status-badge { white-space: normal !important; max-width: 112px; }
}

/* ============================================================
   Ajustes: margens do template, labels de dialogo, colunas de grid
   ============================================================ */
/* (0) reduz as margens do conteudo (topo/laterais) */

/* (3) labels dos dialogos com o mesmo destaque das demais telas (600 + texto) */
.dlg-conteudo .ui-outputlabel,
.dlg-secao .ui-outputlabel,
.dlg-linha-stack > .ui-outputlabel,
.dlg-arquivo-linha > .ui-outputlabel {
    font-weight: 600 !important;
    color: var(--text) !important;
}

/* (4) divisao vertical minima e sutil entre colunas dos grids (toda a app) */
.ui-datatable thead th:not(:last-child),
.ui-datatable tbody td:not(:last-child) {
    border-right: 1px solid rgba(23, 49, 77, 0.06) !important;
}

/* ============================================================
   Template mais compacto (espacamentos reduzidos)
   ============================================================ */
#divCorpo { min-width: 0; background: var(--bg); border-left: 1px solid var(--border); padding: 22px 24px !important; }
/* remove o padding externo do .formulario (o card ja fornece o respiro interno) */
.formulario { padding: 0 !important; }
.card-secao { padding: 26px 32px; margin-bottom: 16px; }
.card-secao .row.mb-3 { margin-bottom: 12px !important; }
/* rodape de acoes com menos respiro acima na versao compacta */
.card-secao .acoes-sticky,
.card-secao .acoes-barra { margin-top: 16px !important; padding-top: 12px !important; }

/* ============================================================
   Confirm dialog padronizado (Sim primario, Nao ghost)
   ============================================================ */
.ui-confirm-dialog .ui-dialog-content,
.ui-confirm-dialog .ui-dialog-content.ui-widget-content {
    padding: 18px 26px 12px !important;
    background: var(--surface) !important;
    border: none !important;
    display: flex;
    align-items: center;
    gap: 12px;
}
.ui-confirm-dialog .ui-confirm-dialog-message {
    font-size: 14px !important;
    color: var(--text) !important;
    line-height: 1.45;
    margin: 0 !important;
    vertical-align: middle;
}
.ui-confirm-dialog .ui-confirm-dialog-severity,
.ui-confirm-dialog .ui-dialog-content > .ui-icon {
    color: var(--primary) !important;
    flex: 0 0 auto;
    margin: 0 !important;
}
/* area dos botoes: divisor interno recuado (linha via background, robusto) */
.ui-confirm-dialog .ui-dialog-buttonpane,
.ui-confirm-dialog .ui-dialog-buttonpane.ui-widget-content,
.ui-confirm-dialog .ui-dialog-footer,
.ui-confirm-dialog .ui-dialog-footer.ui-widget-content {
    background-color: var(--surface) !important;
    background-image: linear-gradient(var(--border), var(--border)) !important;
    background-repeat: no-repeat !important;
    background-position: 16px top !important;
    background-size: calc(100% - 32px) 1px !important;
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 14px 26px !important;
    display: flex !important;
    justify-content: flex-end !important;
    gap: 8px !important;
}
.ui-confirm-dialog .ui-dialog-buttonpane .ui-button {
    float: none !important;
    margin: 0 !important;
}
/* Sim = .ui-button primario padrao; Nao = ghost/contorno */
.ui-confirm-dialog .ui-dialog-buttonpane .ui-confirmdialog-no.ui-button,
.ui-confirmdialog-no.ui-button {
    background: transparent !important;
    background-image: none !important;
    border: 1px solid var(--primary) !important;
    color: var(--primary) !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
.ui-confirm-dialog .ui-dialog-buttonpane .ui-confirmdialog-no .ui-button-text,
.ui-confirmdialog-no.ui-button .ui-button-text,
.ui-confirm-dialog .ui-dialog-buttonpane .ui-confirmdialog-no .ui-icon,
.ui-confirmdialog-no.ui-button .ui-icon { color: var(--primary) !important; }
.ui-confirmdialog-no.ui-button:hover {
    background: var(--primary-soft) !important;
    transform: none !important;
}

/* ============================================================
   Confirm dialog - separador robusto (independe de .buttonpane/.footer)
   mira o container que e' pai direto do botao "Sim"
   ============================================================ */
*:has(> .ui-confirmdialog-yes.ui-button) {
    /* linha sutil desenhada via background (robusto - nao depende de ::before) */
    background-color: var(--surface) !important;
    background-image: linear-gradient(var(--border), var(--border)) !important;
    background-repeat: no-repeat !important;
    background-position: 16px top !important;
    background-size: calc(100% - 32px) 1px !important;
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 14px 26px !important;
    display: flex !important;
    justify-content: flex-end !important;
    gap: 8px !important;
}

/* o h:form da navbar nao deve quebrar o layout flex (botoes Inicio/Sair no lugar) */
.navbar .container-fluid > form { display: contents; }

/* ============================================================
   Mensagens (p:growl / p:messages) - visual moderno em card
   ============================================================ */
/* --- Growl (toasts, canto superior direito) --- */
.ui-growl { top: 78px !important; }
.ui-growl-item-container {
    background: var(--surface) !important;
    border: 1px solid var(--border) !important;
    border-left: 4px solid var(--primary) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-lg) !important;
    color: var(--text) !important;
    opacity: 1 !important;
    filter: none !important;
    margin-bottom: 10px !important;
}
.ui-growl-item { padding: 13px 14px !important; }
.ui-growl-title {
    font-weight: 700 !important;
    color: var(--text) !important;
    font-size: 13px !important;
    display: block;
    margin-bottom: 2px;
}
.ui-growl-message { text-align: left !important; }
.ui-growl-message p, .ui-growl-message {
    color: var(--text-muted) !important;
    font-size: 12.5px !important;
    line-height: 1.4;
}
.ui-growl-title { text-align: left !important; }
.ui-growl-icon-close { color: var(--text-muted) !important; opacity: .7; }
.ui-growl-icon-close:hover { opacity: 1; }
/* severidade: faixa lateral e icone */
.ui-growl-item-container.ui-growl-info    { border-left-color: var(--primary) !important; background: #eef5fb !important; }
.ui-growl-item-container.ui-growl-warn    { border-left-color: #f0ad4e !important; background: #fff8ec !important; }
.ui-growl-item-container.ui-growl-error,
.ui-growl-item-container.ui-growl-fatal   { border-left-color: #DC3545 !important; background: #fdeeee !important; }
.ui-growl-item-container.ui-growl-error .ui-growl-title,
.ui-growl-item-container.ui-growl-fatal .ui-growl-title { color: #b02a37 !important; }
.ui-growl-item-container.ui-growl-warn .ui-growl-title { color: #9a6b16 !important; }

/* --- Messages (inline) --- */
.ui-messages {
    border: 1px solid var(--border) !important;
    border-left: 4px solid var(--primary) !important;
    border-radius: var(--radius-md) !important;
    background: var(--surface) !important;
    box-shadow: var(--shadow-sm) !important;
    color: var(--text) !important;
    padding: 12px 14px !important;
    margin-bottom: 16px !important;
}
.ui-messages.ui-messages-error   { border-left-color: #DC3545 !important; }
.ui-messages.ui-messages-warn    { border-left-color: #f0ad4e !important; }
.ui-messages.ui-messages-info    { border-left-color: var(--primary) !important; }
.ui-messages .ui-messages-error-summary,
.ui-messages .ui-messages-error-detail { color: #b02a37 !important; }
.ui-messages .ui-messages-warn-summary,
.ui-messages .ui-messages-warn-detail  { color: #9a6b16 !important; }
.ui-messages ul { margin: 0 !important; }

/* ============================================================
   Estado de erro em campos/labels (substitui a faixa vermelha do cupertino)
   ============================================================ */
.ui-outputlabel.ui-state-error,
label.ui-state-error,
.ui-outputlabel.ui-state-error .ui-outputlabel-rfi {
    background: transparent !important;
    background-image: none !important;
    border: none !important;
    color: #DC3545 !important;
    font-weight: 600 !important;
    padding: 0 !important;
}
/* campo invalido: borda vermelha + halo suave (sem fundo vermelho) */
.ui-inputfield.ui-state-error,
.ui-state-error.ui-inputfield,
.ui-selectonemenu.ui-state-error,
.ui-inputtextarea.ui-state-error,
.ui-autocomplete.ui-state-error {
    border-color: #DC3545 !important;
    box-shadow: 0 0 0 0.15rem rgba(220, 53, 69, 0.18) !important;
    background: var(--surface) !important;
}

/* ============================================================
   Ajustes: alinhamento do titulo (toggle) + reCAPTCHA
   ============================================================ */
/* titulo ao lado do botao sanduiche: centralizado verticalmente */
.navbar.bg-light [id$='sidebarToggle'] {
    display: flex !important;
    align-items: center !important;
    gap: 6px;
}
.navbar.bg-light [id$='sidebarToggle'] .btn-light {
    display: flex !important;
    align-items: center !important;
    padding: 2px 8px !important;
    line-height: 1 !important;
}
.navbar.bg-light [id$='sidebarToggle'] .fs-4 {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
}
.navbar.bg-light [id$='sidebarToggle'] h5 { margin: 0 !important; line-height: 1 !important; }

/* reCAPTCHA alinhado aos campos (mesmo recuo dos cols) */
.card-secao .g-recaptcha { margin-left: 5px; }

/* ============================================================
   Botoes Alterar/Excluir (grid de tipos de certidao)
   ============================================================ */
.btn-alterar.ui-button { margin-right: 6px !important; }
.btn-excluir.ui-button {
    background: #DC3545 !important;
    border-color: #DC3545 !important;
    color: #fff !important;
}
.btn-excluir.ui-button:hover {
    background: #b02a37 !important;
    border-color: #b02a37 !important;
}
.btn-excluir.ui-button .ui-button-text, .btn-excluir.ui-button .ui-icon { color: #fff !important; }

/* contador de caracteres de textarea (alinhado a esquerda) */
.contador-campo {
    display: block;
    text-align: right;
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 4px;
}

/* ============================================================
   NORMALIZACAO DE CAMPOS - altura/box uniformes em toda a app
   (bloco final: vence os paddings conflitantes anteriores;
    inputs, selects, mascaras e autocomplete com a mesma altura)
   ============================================================ */
input.ui-inputtext,
.ui-inputmask,
.ui-selectonemenu,
.ui-autocomplete,
.ui-calendar,
input.form-control,
select.form-control {
    height: var(--field-h) !important;
    min-height: var(--field-h) !important;
    box-sizing: border-box !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    vertical-align: top;
}
input.ui-inputtext,
.ui-inputmask,
input.form-control,
select.form-control {
    padding: 0 12px !important;
}
/* select: padding no rotulo (que ocupa a altura e centraliza o texto) */
.ui-selectonemenu {
    display: inline-flex !important;
    align-items: stretch !important;
    padding: 0 !important;
}
.ui-selectonemenu .ui-selectonemenu-label {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    padding: 0 12px !important;
    line-height: 1.2 !important;
}
/* autocomplete: container manda na altura; input interno preenche */
.ui-autocomplete { padding: 0 !important; align-items: stretch !important; }
.ui-autocomplete .ui-autocomplete-input {
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 12px !important;
}
/* calendar (campo de data): input interno preenche o container */
.ui-calendar > input.ui-inputtext {
    height: 100% !important;
    min-height: 0 !important;
}
/* textarea: mesma linguagem visual, porem com altura livre */
textarea.ui-inputtext {
    min-height: calc(var(--field-h) * 1.7) !important;
    padding: 8px 12px !important;
    line-height: 1.45 !important;
    box-sizing: border-box !important;
}

/* campo composto Numero/Ano da certidao: numero flexivel + ano estreito */
.campo-num-ano { display: flex; gap: 8px; align-items: stretch; width: 100%; }
.campo-num-ano .num { flex: 0 0 150px; width: 150px; min-width: 0; }
.campo-num-ano .ano { flex: 0 0 88px; width: 88px; }

/* checkbox alinhado verticalmente aos selects/inputs da mesma linha */
.campo-check { display: flex; align-items: center; height: var(--field-h); }
.campo-check .ui-chkbox { margin-right: 8px; }

/* rotulos de campo com altura uniforme (2 linhas): os campos da mesma linha
   alinham no topo mesmo quando um rotulo quebra (escopo: telas de cadastro) */
.form-cadastro .row > [class*="col-"] > .ui-outputlabel,
.form-cadastro .row > [class*="col-"] > label {
    display: block;
    float: none !important;
    width: auto !important;
    line-height: 1.2;
    margin-bottom: 4px;
    white-space: nowrap;
}
/* checkbox alinhado ao box do campo vizinho: desce ao fundo da coluna
   (a coluna vira flex e o checkbox, com altura de campo, encosta na base) */
.card-secao .row > [class*="col-"]:has(> .campo-check) {
    display: flex;
    flex-direction: column;
}
.card-secao .row > [class*="col-"] > .campo-check {
    margin-top: auto;
}

/* nome do arquivo anexado (label abaixo do botao de upload) */
.anexo-nome { display: block; margin-top: 6px; font-size: 12px; color: var(--text-muted); }
.anexo-nome .ui-commandlink, .anexo-nome .ui-commandlink span { color: var(--primary) !important; text-decoration: none; }

/* checkbox + rotulo longo (multi-linha) inline: alinha o checkbox ao centro
   da primeira linha do texto */
.check-inline { gap: 8px; }
.check-inline .ui-chkbox { margin-top: 3px; flex: 0 0 auto; }

/* footer/sumario (totais) das datatables: seguir o tema (nao o cinza do cupertino) */
.ui-datatable tfoot td,
.ui-datatable .ui-datatable-tfoot td,
.ui-datatable tfoot th {
    background: var(--primary-soft) !important;
    color: var(--text) !important;
    font-weight: 600 !important;
    border-color: var(--border) !important;
    background-image: none !important;
}

/* callout de informacao (aviso no topo de formularios) - linguagem do tema */
.aviso-info {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: var(--primary-soft);
    border: 1px solid var(--border);
    border-left: 4px solid var(--primary);
    border-radius: var(--radius-md);
    padding: 12px 16px;
    color: var(--text);
    font-size: 13px;
    line-height: 1.45;
}
.aviso-info .pi { color: var(--primary); font-size: 16px; margin-top: 1px; flex: 0 0 auto; }

/* dialogo tipo certidao: checkbox "Exige periodo" inline (checkbox a esquerda do rotulo) */
.dlg-check-inline { display: flex; align-items: center; gap: 8px; margin: 12px 0 4px; }
.dlg-check-inline label, .dlg-check-inline .ui-outputlabel {
    margin: 0 !important; float: none !important; width: auto !important;
    font-weight: 500 !important; white-space: nowrap; line-height: 1;
}
/* grupo PF/PJ/UG: checkbox centralizado com o texto do label */
.dlg-check-group .ui-chkbox, .dlg-check-inline .ui-chkbox { margin: 0 !important; }
.dlg-check-group .ui-chkbox .ui-chkbox-box, .dlg-check-inline .ui-chkbox .ui-chkbox-box { margin: 0 !important; }

/* alinhamento vertical fino: caixa do checkbox centralizada com o texto do rotulo */
.dlg-check-inline, .dlg-check-group span { line-height: 1; }
.dlg-check-inline .ui-chkbox, .dlg-check-group .ui-chkbox {
    display: inline-flex; align-items: center; height: auto;
}

/* checkbox com itemLabel (PrimeFaces selectBooleanCheckbox): caixa e rotulo centralizados */
.ui-selectbooleancheckbox { display: inline-flex !important; align-items: center; }
.ui-selectbooleancheckbox .ui-chkbox-label { line-height: 1; margin: 0 0 0 6px; }

/* paginador em uma unica linha (todos os grids): registros/pagina + navegacao + exportar */
.ui-paginator-bottom {
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 2.4em;
    position: relative;
}
.ui-paginator-bottom > * { align-self: center; float: none !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.ui-paginator-bottom .ui-paginator-rpp-options { margin: 0 !important; }
.ui-paginator-bottom .export-wrap { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); }

/* espacamento entre os numeros de pagina do paginador */
.ui-paginator .ui-paginator-pages { display: inline-flex; gap: 4px; }
.ui-paginator .ui-paginator-page { margin: 0 !important; min-width: 1.9em; text-align: center; }
.ui-paginator .ui-paginator-first, .ui-paginator .ui-paginator-prev,
.ui-paginator .ui-paginator-next, .ui-paginator .ui-paginator-last { margin: 0 2px !important; }

/* indicador de campo obrigatorio (asterisco) - padrao unico em toda a app */
.ui-outputlabel-rfi { color: #DC3545 !important; margin-left: 3px !important; font-weight: 600; }

/* formularios em que TODOS os campos sao obrigatorios: sem asterisco, com nota unica */
.form-req-todos .ui-outputlabel-rfi { display: none !important; }
.nota-obrigatorios { display: block; font-size: 12.5px; color: var(--text-muted); margin: 0 0 14px; }

/* labels aninhados em paineis condicionais (ex.: CPF/CNPJ/UG) tambem seguem o padrao
   de altura, para nao desalinhar o campo em relacao aos vizinhos */
.form-cadastro .row > [class*="col-"] .ui-outputlabel {
    display: block;
    float: none !important;
    width: auto !important;
    line-height: 1.2;
    margin-bottom: 4px;
}
/* excecao: rotulo de checkbox inline volta ao normal */
.form-cadastro .campo-check .ui-outputlabel {
    display: inline !important;
    margin: 0 !important;
    line-height: 1.1 !important;
}

/* ===== Responsividade mobile: topbar em 1 linha + reCAPTCHA dentro do card ===== */
@media (max-width: 767px) {
    .navbar.bg-light .container-fluid { flex-wrap: nowrap !important; }
    /* titulo ao lado do menu encolhe com reticencias (ex.: "Solicitar Cer...") */
    .navbar.bg-light [id$="sidebarToggle"] { flex: 1 1 auto; min-width: 0; }
    .navbar.bg-light [id$="sidebarToggle"] .fs-4 { min-width: 0; overflow: hidden; }
    .navbar.bg-light h5 { display: block !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .navbar.bg-light .mt-2 { flex: 0 0 auto; } /* botoes nao encolhem */
}
@media (max-width: 575px) {
    .card-secao { padding: 18px 16px !important; }
    .formulario { margin-left: 10px !important; margin-right: 10px !important; }
}
/* reCAPTCHA fluido: o wrap ocupa a largura e o JS escala o widget p/ preencher */
.captcha-wrap { width: 100%; overflow: hidden; }
