﻿.sn-numero {
    text-align: center;
}
.sn-ano {
    text-align: center;
}
.sn-falta {
    text-align: center;
}
.sn-faltas {
    text-align: center;
}
.sn-cpf {
    text-align: center;
}
.sn-cnpj {
    text-align: center;
}
.sn-e-mail {}
.sn-email {}
.sn-cep {
    text-align: center;
}
.sn-ddd {
    text-align: center;
}
.sn-telefonesemddd {
    text-align: center;
}
.sn-telefone {
    text-align: center;
}
.sn-nota {}
.sn-valor {
    text-align: right;
}
.sn-mes {}
.sn-data {
    text-align: center;
}
.sn-hora {
    text-align: center;
}
.sn-sexo {}
.sn-btn-salvar {
    padding-left: 38px !important;
    background: url(../rar/transparente_branco/btnSalvar.png) no-repeat;
    background-position: left;
}
.sn-btn-editar {
    padding-left: 38px !important;
    background: url(../rar/transparente_branco/btnEditar.png) no-repeat;
    background-position: left;
}
.sn-btn-cancelar {
    padding-left: 38px !important;
    background: url(../rar/transparente_branco/btnCancelar.png) no-repeat;
    background-position: left;
}
.sn-btn-novo {
    padding-left: 38px !important;
    background: url(../rar/transparente_branco/btnNovo.png) no-repeat;
    background-position: left;
}
.sn-btn-excluir {
    padding-left: 38px !important;
    background: url(../rar/transparente_branco/btnExcluir.png) no-repeat;
    background-position: left;
}
.sn-btn-enviar {
    padding-left: 38px !important;
    background: url(../rar/transparente_branco/btnEnviar.png) no-repeat;
    background-position: left;
}
.sn-btn-voltar {
    padding-left: 38px !important;
    background: url(../rar/transparente_branco/btnVoltar.png) no-repeat;
    background-position: left;
}
.sn-btn-avancar {
    padding-left: 38px !important;
    background: url(../rar/transparente_branco/btnIr.png) no-repeat;
    background-position: left;
}
.sn-table-btn-salvar {
    padding-left: 38px !important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    background: url(../rar/transparente_branco/btnSalvar.png) no-repeat;
    background-position: left;
    background-size: 30px;
}
.sn-table-btn-editar {
    padding-left: 25px !important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    background: url(../rar/transparente_branco/btnEditar.png) no-repeat;
    background-position: left;
    background-size: 24px;
}
.sn-table-btn-cancelar {
    padding-left: 38px !important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    background: url(../rar/transparente_branco/btnCancelar.png) no-repeat;
    background-position: left;
    background-size: 30px;
}
.sn-table-btn-novo {
    padding-left: 38px !important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    background: url(../rar/transparente_branco/btnNovo.png) no-repeat;
    background-position: left;
    background-size: 30px;
}
.sn-table-btn-excluir {
    padding-left: 38px !important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    background: url(../rar/transparente_branco/btnExcluir.png) no-repeat;
    background-position: left;
    background-size: 30px;
}
.sn-table-btn-enviar {
    padding-left: 38px !important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    background: url(../rar/transparente_branco/btnEnviar.png) no-repeat;
    background-position: left;
    background-size: 30px;
}
.sn-table-btn-voltar {
    padding-left: 38px !important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    background: url(../rar/transparente_branco/btnVoltar.png) no-repeat;
    background-position: left;
}
.sn-table-btn-avancar {
    padding-left: 38px !important;
    padding-bottom: 2px !important;
    padding-top: 2px !important;
    background: url(../rar/transparente_branco/btnIr.png) no-repeat;
    background-position: left;
    background-size: 30px;
}
.sn-table-btn {
    padding-bottom: 2px !important;
    padding-top: 2px !important;
}
/* Zebra opaco para tabelas com colunas fixas (evita transparência no sticky) */
.sn-table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #f2f2f2 !important;
}
.sn-table-striped > tbody > tr:nth-of-type(even) > * {
    background-color: #ffffff !important;
}

/* -------------------------------------------------------------------------
   .table-responsive (Bootstrap): a CAIXA tem 100% da largura do pai; só ela
   rola (overflow-x:auto). A <table> pode ser mais larga que a caixa.
   Pais com overflow:hidden para a grid não esticar o master.
   ------------------------------------------------------------------------- */

#areaCorpo table.tblCorpo {
    table-layout: fixed;
    width: 100% !important;
}

#areaCorpo td.tblAreaLivre {
    max-width: 100%;
}

#fxSistema #fxAreaLivre,
#areaCorpo #fxAreaLivre {
    min-width: 0;
    max-width: 100%;
    /* overflow-x aqui quebrava position:sticky do #fxMenu */
    box-sizing: border-box;
}

#fxSistema #fxAreaLivre > table,
#areaCorpo #fxAreaLivre > table {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden;
}

#fxSistema #fxMenu,
#areaCorpo #fxMenu {
    flex-shrink: 0;
    align-self: flex-start;
    box-sizing: border-box;
}

#fxSistema #fxMenu,
#areaCorpo #fxMenu,
#fxSistema #menu-content,
#areaCorpo #menu-content,
#fxSistema #fxMenu .jquery-accordion-menu,
#areaCorpo #fxMenu .jquery-accordion-menu {
    background-color: #fff;
}

#fxMenuFundo {
    pointer-events: none;
}

#fxViewMenuFloat {
    padding: 0 !important;
}

#fxViewMenuFloat #icoViewMenuFloat {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    margin: 0;
    padding: 0;
    font-size: 1.15rem;
}

#fxSistema #fxAreaLivre .tblBarraCentral,
#areaCorpo #fxAreaLivre .tblBarraCentral {
    width: 100% !important;
    max-width: var(--content-max-width, 1280px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    table-layout: fixed !important;
    box-sizing: border-box;
}

#fxSistema #fxAreaLivre .barraCentralCelula,
#areaCorpo #fxAreaLivre .barraCentralCelula {
    overflow-x: hidden;
    max-width: 100%;
    min-width: 0;
}

#fxSistema #dvMasterGestorConteudo,
#areaCorpo #dvMasterGestorConteudo,
#fxSistema #dvMasterGestorConteudo .container-fluid,
#areaCorpo #dvMasterGestorConteudo .container-fluid,
#fxSistema #dvMasterGestorConteudo .container,
#areaCorpo #dvMasterGestorConteudo .container,
#fxSistema #dvMasterGestorConteudo .card:not(.card .card):not(:has(.pesquisaCelula)),
#areaCorpo #dvMasterGestorConteudo .card:not(.card .card):not(:has(.pesquisaCelula)),
#fxSistema #dvMasterGestorConteudo .card-body,
#areaCorpo #dvMasterGestorConteudo .card-body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    box-sizing: border-box;
}

/* Firefox: overflow-x:hidden no .card vira overflow-y:auto e a lista do autocomplete
   fica presa numa barra de rolagem vertical dentro do card (Chrome ignora o abspos).
   Não usar position:relative no .pesquisaCelula — desloca a lista no Firefox
   (o ACT calcula left/top em coordenadas de página). Posição final: snReposListaPesquisa. */
#fxSistema #dvMasterGestorConteudo .card:has(.pesquisaCelula),
#areaCorpo #dvMasterGestorConteudo .card:has(.pesquisaCelula),
#dvPesquisa.card,
#dvPesquisa {
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
}

.pesquisaCelula {
    overflow: visible !important;
}

.divListaPesquisa {
    z-index: 10000 !important;
    max-height: min(50vh, 320px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-sizing: border-box;
}

/* Bootstrap: wrapper = largura do pai */
#fxSistema .table-responsive,
#areaCorpo .table-responsive {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
    border: var(--bs-border-width, 1px) solid var(--bs-border-color, #dee2e6);
    border-radius: var(--bs-border-radius, 0.375rem);
}

/* GridView: tabela pode ultrapassar a caixa; scroll fica no .table-responsive */
#fxSistema .table-responsive > table.table,
#areaCorpo .table-responsive > table.table,
#fxSistema .table-responsive > div > table.table,
#areaCorpo .table-responsive > div > table.table {
    width: max-content;
    min-width: 100%;
    max-width: none;
    margin-bottom: 0;
    table-layout: auto;
}

#fxSistema .table-responsive > div,
#areaCorpo .table-responsive > div {
    display: block;
    min-width: 100%;
    vertical-align: top;
}

/* div-limit (externo) / div-limited (table-responsive limitado) — largura fixada em _gestor.js */
#fxSistema .div-limit,
#areaCorpo .div-limit {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

#fxSistema .table-responsive.div-limited,
#areaCorpo .table-responsive.div-limited {
    display: block;
    max-width: 100%;
    box-sizing: border-box;
}

/* GridView repetidor (ShowHeader=False): não expandir layout como <table> */
#fxSistema table.sn-gvw-layout-repeater,
#areaCorpo table.sn-gvw-layout-repeater {
    display: block !important;
    width: 100% !important;
    max-width: 100%;
    border: none !important;
}

#fxSistema table.sn-gvw-layout-repeater > tbody,
#areaCorpo table.sn-gvw-layout-repeater > tbody,
#fxSistema table.sn-gvw-layout-repeater > tbody > tr,
#areaCorpo table.sn-gvw-layout-repeater > tbody > tr,
#fxSistema table.sn-gvw-layout-repeater > tbody > tr > td,
#areaCorpo table.sn-gvw-layout-repeater > tbody > tr > td {
    display: block;
    width: 100% !important;
    max-width: 100%;
    padding: 0;
    border: none;
}

#fxSistema .div-limit .card,
#areaCorpo .div-limit .card,
#fxSistema .div-limit .card-body,
#areaCorpo .div-limit .card-body {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

#fxSistema .div-limit .sn-tbl-responsive-nav,
#areaCorpo .div-limit .sn-tbl-responsive-nav {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
}

/* Scroll lateral: [◀] [tabela] [▶] — botão fora do div; tabela desconta 18px por botão visível */
#fxSistema .sn-tbl-responsive-nav,
#areaCorpo .sn-tbl-responsive-nav {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border: var(--bs-border-width, 1px) solid var(--bs-border-color, #dee2e6);
    border-radius: var(--bs-border-radius, 0.375rem);
    overflow: hidden;
    background-color: #fff;
}

#fxSistema .sn-tbl-responsive-nav > .table-responsive,
#areaCorpo .sn-tbl-responsive-nav > .table-responsive {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
    border: none !important;
    border-radius: 0 !important;
    scroll-padding-right: 2px;
}

#fxSistema .sn-tbl-responsive-nav:not(.sn-tem-scroll-esq) > .table-responsive,
#areaCorpo .sn-tbl-responsive-nav:not(.sn-tem-scroll-esq) > .table-responsive {
    border-top-left-radius: var(--bs-border-radius, 0.375rem) !important;
    border-bottom-left-radius: var(--bs-border-radius, 0.375rem) !important;
}

#fxSistema .sn-tbl-responsive-nav:not(.sn-tem-scroll-dir) > .table-responsive,
#areaCorpo .sn-tbl-responsive-nav:not(.sn-tem-scroll-dir) > .table-responsive {
    border-top-right-radius: var(--bs-border-radius, 0.375rem) !important;
    border-bottom-right-radius: var(--bs-border-radius, 0.375rem) !important;
}

#fxSistema .sn-tbl-responsive-nav.sn-tbl-nav-medindo > .table-responsive,
#areaCorpo .sn-tbl-responsive-nav.sn-tbl-nav-medindo > .table-responsive {
    flex: 1 1 100%;
    width: 100%;
}

#fxSistema .sn-tbl-scroll-esq,
#fxSistema .sn-tbl-scroll-dir,
#areaCorpo .sn-tbl-scroll-esq,
#areaCorpo .sn-tbl-scroll-dir {
    flex: 0 0 18px;
    width: 18px;
    min-width: 18px;
    align-self: stretch;
    padding: 0;
    margin: 0;
    line-height: 1;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fffef0;
    box-shadow: none;
    cursor: pointer;
    transition: background-color 0.15s ease;
    border: 1px solid #6c757d;
    border-radius: 0;
    box-sizing: border-box;
    color: #212529;
}

#fxSistema .sn-tbl-scroll-esq,
#areaCorpo .sn-tbl-scroll-esq {
    border-right: 1px solid #6c757d;
    border-top-left-radius: var(--bs-border-radius, 0.375rem);
    border-bottom-left-radius: var(--bs-border-radius, 0.375rem);
}

#fxSistema .sn-tbl-scroll-dir,
#areaCorpo .sn-tbl-scroll-dir {
    border-left: 1px solid #6c757d;
    border-top-right-radius: var(--bs-border-radius, 0.375rem);
    border-bottom-right-radius: var(--bs-border-radius, 0.375rem);
}

#fxSistema .sn-tbl-responsive-nav.sn-tbl-nav-medindo .sn-tbl-scroll-esq,
#fxSistema .sn-tbl-responsive-nav.sn-tbl-nav-medindo .sn-tbl-scroll-dir,
#areaCorpo .sn-tbl-responsive-nav.sn-tbl-nav-medindo .sn-tbl-scroll-esq,
#areaCorpo .sn-tbl-responsive-nav.sn-tbl-nav-medindo .sn-tbl-scroll-dir {
    flex: 0 0 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    border-width: 0 !important;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
}

#fxSistema .sn-tbl-scroll-seta,
#areaCorpo .sn-tbl-scroll-seta {
    display: block;
    width: 0;
    height: 0;
    line-height: 0;
    font-size: 0;
}

#fxSistema .sn-tbl-scroll-seta-esq,
#areaCorpo .sn-tbl-scroll-seta-esq {
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-right: 9px solid #212529;
}

#fxSistema .sn-tbl-scroll-seta-dir,
#areaCorpo .sn-tbl-scroll-seta-dir {
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 9px solid #212529;
}

#fxSistema .sn-tbl-scroll-esq:hover,
#fxSistema .sn-tbl-scroll-dir:hover,
#areaCorpo .sn-tbl-scroll-esq:hover,
#areaCorpo .sn-tbl-scroll-dir:hover {
    background-color: #fff9db;
}

#fxSistema .sn-tbl-scroll-esq:hover .sn-tbl-scroll-seta-esq,
#areaCorpo .sn-tbl-scroll-esq:hover .sn-tbl-scroll-seta-esq {
    border-right-color: #212529;
}

#fxSistema .sn-tbl-scroll-dir:hover .sn-tbl-scroll-seta-dir,
#areaCorpo .sn-tbl-scroll-dir:hover .sn-tbl-scroll-seta-dir {
    border-left-color: #212529;
}

#fxSistema .sn-tbl-scroll-esq.d-none,
#fxSistema .sn-tbl-scroll-dir.d-none,
#areaCorpo .sn-tbl-scroll-esq.d-none,
#areaCorpo .sn-tbl-scroll-dir.d-none {
    display: none !important;
}

#fxSistema .sn-tbl-responsive-nav.sn-tbl-responsive-nav--scrollavel > .table-responsive,
#areaCorpo .sn-tbl-responsive-nav.sn-tbl-responsive-nav--scrollavel > .table-responsive {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

#fxSistema .sn-tbl-responsive-nav.sn-tbl-responsive-nav--scrollavel > .table-responsive::-webkit-scrollbar,
#areaCorpo .sn-tbl-responsive-nav.sn-tbl-responsive-nav--scrollavel > .table-responsive::-webkit-scrollbar {
    height: 0;
}

/* Barra de ações acima do .table-responsive (fora do nav; alinhada à direita com ◀ ▶) */
#fxSistema .sn-barra-tbl-acoes,
#areaCorpo .sn-barra-tbl-acoes {
    width: 100%;
    max-width: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.35rem;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
}

.sn-barra-tbl-acoes {
    box-sizing: border-box;
}

.sn-barra-tbl-acoes .sn-tbl-exportar .dropdown-menu {
    z-index: 1055;
    min-width: 7rem;
}

.sn-barra-tbl-acoes .btn-sm {
    padding: 0.25rem 0.5rem;
    line-height: 1.2;
}

/* Destaque ao passar o mouse nas linhas (padrão portal) */
#fxSistema table.table > tbody > tr:hover > td,
#areaCorpo table.table > tbody > tr:hover > td {
    background-color: #fff8d6 !important;
}

/* Etiquetas (Label) acima de TextBox/DropDownList em card de formulário: sempre à esquerda.
   Não centralizar o nome do campo. Título do card e botões do footer podem ficar ao centro. */
.container .card-body .form-label,
.container-fluid .card-body .form-label {
    display: block;
    width: 100%;
    text-align: left !important;
}
.container .card-body .row .form-label,
.container .card-body [class*="col-"] .form-label,
.container-fluid .card-body .row .form-label,
.container-fluid .card-body [class*="col-"] .form-label {
    display: block;
    width: 100%;
    text-align: left !important;
}
.container .card-body table .form-label,
.container .card-body .table .form-label,
.container-fluid .card-body table .form-label,
.container-fluid .card-body .table .form-label {
    display: inline;
    width: auto;
}

/* CheckBox — etiqueta no topo; ícone no meio do espaço que sobra.
   Não brigar com o extender (left:0;top:0). O ícone fica num box 23px;
   o box é centralizado no .sn-toggle-espaco (flex:1). */
.sn-toggle-campo {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    text-align: center !important;
}
.sn-toggle-campo .form-label,
.container .card-body .sn-toggle-campo .form-label,
.container-fluid .card-body .sn-toggle-campo .form-label {
    display: block !important;
    flex: 0 0 auto;
    width: 100%;
    text-align: center !important;
}
.sn-toggle-espaco {
    flex: 1 1 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: calc(1.5em + 0.75rem + 2px);
}
.sn-toggle-campo .sn-toggle-box {
    position: relative !important;
    width: 23px !important;
    height: 23px !important;
    min-width: 23px !important;
    min-height: 23px !important;
    max-width: 23px !important;
    flex: 0 0 23px !important;
}
.sn-toggle-campo .sn-toggle-box input[type="checkbox"] {
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    opacity: 0;
}

/* Toggle (ajaxToolkit) + etiqueta — juntos e alinhados à esquerda (só lista/tabela) */
.sn-toggle-linha {
    display: inline-flex !important;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem;
    text-align: left !important;
    width: auto;
    max-width: 100%;
}
.sn-toggle-linha > span {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem;
    text-align: left !important;
}
.sn-toggle-linha label,
.sn-toggle-linha .form-label,
.sn-toggle-linha span.label {
    margin: 0 !important;
    margin-left: 0 !important;
    margin-inline-start: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
    display: inline !important;
}
.sn-toggle-linha img {
    flex: 0 0 auto;
    vertical-align: middle;
}

/*
  LastPass: ícone acima do textbox via script/sn-lastpass-icone-acima.js
  (transform no host). Padding só no texto — posição do ícone segue a borda do input.
*/
input:has(+ [data-lastpass-icon-root]) {
    padding-right: 40px !important;
    box-sizing: border-box;
}

/* Segurar para ver senha — botão absoluto no pai (sem wrapper no input) */
.sn-senha-pai {
    position: relative;
}
.sn-senha-pai > input.sn-senha-input {
    padding-right: 2.5rem !important;
    box-sizing: border-box;
}
.sn-senha-ver {
    position: absolute;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0.25rem;
    background: transparent;
    color: #6c757d;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    touch-action: none;
}
.sn-senha-ver:hover,
.sn-senha-ver-ativo {
    color: #212529;
    background: rgba(0, 0, 0, 0.06);
}
.sn-senha-ver i {
    font-size: 1.15rem;
    line-height: 1;
    pointer-events: none;
}
