
/*******GED EMPRESARIAL**************/
body {background-color: #f3f3f4;}

#side-menu .nav-header {background: none;}

.sidebar-collapse .nav > li > a {
    color: #ffffff;
}

/* Cor/altura da SIDEBAR do extranet. Escopado em .navbar-static-side (a sidebar
   tem navbar-default + navbar-static-side); antes era só .navbar-default e vazava
   para a navbar horizontal da assinatura pública (navbar-fixed-top), esticando-a
   até quase a viewport inteira e tampando o conteúdo. */
.navbar-static-side.navbar-default {
    background-color: #428bca;
    height:calc(100% - 40px);
}

.navbar-static-side .nav > li.active, .navbar-static-side .nav > li > a:hover, .navbar-static-side .nav > li > a:focus {
    border-left: 4px solid #d9d9d9;
    background: #3674a9;
}

.nav.nav-second-level > li.active { border-left: 4px solid #d9d9d9; }

.nav-header .text-muted {
    color: #ffffff;
}

#tabRelat.nav > li.active, #tabRelat.nav > li > a:hover, #tabRelat.nav > li > a:focus {
    border-left: none !important;
    background: #fff !important;
}
#tabRelat.nav > li > a {
    color: #428bca !important;
}
#tabRelat.nav-tabs>li.active>a, #tabRelat.nav-tabs>li.active>a:hover, #tabRelat.nav-tabs>li.active>a:focus {
    color: #555 !important;
}

.mini-navbar .nav-second-level {background-color: #3674a9;}
.btn-primary {
    background-color: #1a5182;
    border-color: #1a5182;
    color: #FFFFFF;
}
.btn-green {
    background-color: #45AD51;
    border-color: #45AD51;
    color: #FFFFFF;
}
.btn-green:hover, .btn-green:focus, .btn-green:active, .btn-green.active, .open .dropdown-toggle.btn-green {
    background-color: #60cf6d;
    border-color: #60cf6d;
    color: #FFFFFF;
}

.navbar-header .btn-primary, .navbar-header .btn-info {
    float: left;     
    margin-top: 12px;
    line-height: 20px;
    padding: 7px 15px;
}
.navbar-header .btn-info {
    margin-left: 3px;
}
.navbar-header .minimalize-styl-2 {
    margin: 12px 5px 5px 10px;
}

.box-solicitacao-topo {
    margin-left: 5px;
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary {
    background-color: #2671b4;
    border-color: #2671b4;
    color: #FFFFFF;
}


#fieldset-SelCategoria a.btn, #fieldset-SelFuncionario a.btn, .input-group .input-group-btn a.btn {
    margin-top: 23px;
    margin-bottom: 0px;
}
#fm_enviarArquivo .input-group .btnSelectCat a.btn, #fm_enviarArquivo .input-group .input-group-btn a.btn, 
#fm_contrato .input-group .btnSelectFunc a.btn, #fm_contrato .input-group .btnSelectCat a.btn {
    margin-top: 23px;
}

#fieldset-SelCategoria .linkViewTreeCat a.btn { margin-left:5px; border-radius: 3px !important;}

.ibox-title {
	min-height:48px;
    height:auto;
}
.img-category {
    float: left;
    margin-right: 15px;
}
.ibox-rodape {
	border-style: solid solid;
	border-width: 0px 0px 4px;	
}
ul.comentarios {
	margin-top: 10px;
	padding-left: 0px;
}
#fieldset-Complemento .form-group { margin-right: 50px; }

.table-responsive td.ico-files {
    text-align: center;
    vertical-align: middle;
}

.dpt-data_validade { width: 136px; }

#fm_filterArquivo .btn, #fm_filterLacre .btn, #fm_filterExtrato .btn {margin-top: 23px;}

.truncate {
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nav-header {
	background-size: 260px;
}

.topo-empresa img {
	width: 100% !important;
}

#fm_filterCateg #btnSubmit { 
	margin-bottom: 0px;     
	margin-left: -3px;
    border-radius: 0; 
}

.name-file p {
    display: block;
}
p.info-validade {
    font-size: 12px;
    margin-bottom: 0;
}
p.arq-vigora { color: #FFA500; }
p.arq-vencido { color: red; }
p.arq-indeterm { color: green; }

p.title-arquivos {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 5px;
}
table tr td.name-file a i.fa {
    font-size: 15px;
}
p.title-arquivos span.nome-pasta-old, .table span.nome-pasta-old {
    text-decoration: line-through;
}
#formClienteGeral.navbar-form-custom {
    margin: 14px 25px 0;
}
#formClienteGeral label { margin-top: 5px;}

.table-responsive.lista-arquivos {
    overflow-x: inherit;
}

@media (max-width: 768px) {
    .table-responsive.lista-arquivos table {
        margin-bottom: 200px
    }
}

/*****************************/
/****** CSS do checkbox ******/
/*****************************/
input[type="checkbox"], input[type="radio"] {
	cursor: pointer;
	min-width:22px;
	min-height: 22px;
	margin-top:0;
	margin-right:5px;
    color: #686976;
    font-size: 12px;
    -webkit-appearance: none;
    border: 0;
	padding: 0;
	float:left;
}
.radio input[type="radio"] {
    margin-left:-30px;
    position: relative; 
}
.radio > label {
    margin-right:10px;
    font-size:14px;
    line-height:25px;
}
input[type="checkbox"]:focus,
input[type="radio"]:focus {
    outline:none;
}
input[type="checkbox"]::before {
	border: 1px solid #5D5C5C;
    content: "\00a0";
    display: inline-block;
    font: 16px/1em sans-serif;
    margin: 0;
    padding:0;
    vertical-align: middle;
    width: 24px;
    height: 24px;
    border-radius:4px;
}
input[type="checkbox"]:checked:before {
	background: #428bca;
    color: #FFF;
    content: "\2713";
	text-align: center;
	line-height: 25px;
}

input[type="checkbox"][disabled]:checked:before, input[type="checkbox"].disabled:checked:before,
.radio input[type="radio"][disabled]:checked:before, input[type=radio].disabled:checked:before {
  background-color: #ddd !important;
}
input[type="checkbox"][disabled]:before, input[type="checkbox"].disabled:before,
.radio input[type="radio"][disabled]:before, input[type=radio].disabled:before {
  border: 3px solid #ddd !important;
}

.btn.disabled {
    color: #ccc;
    cursor: not-allowed;
}

#formPasta input[type="checkbox"], 
    #fm_mural input[type="checkbox"], #formmensagem input[type="checkbox"],
    #formLoginEmpresa input[type="checkbox"], #formChecklist input[type="checkbox"],
    .table-usuario-sel input[type="checkbox"],  
    #formCPEdit input[type="checkbox"], #fm_assusu input[type="checkbox"], 
    #formTermoDeUso input[type="checkbox"], #formFichaVT input[type="checkbox"],
    #fm_atestadoaprova input[type="checkbox"], #formAtestado input[type="checkbox"] {
	margin-left: -27px;
	margin-top: -2px;
}
#fm_enviarArquivo input[type="checkbox"], #fm_funcrobo input[type="checkbox"] {
    margin-left: -30px;
}
#fm_mural .checkbox label { margin-left: 5px; }
#formPasta .checkbox-inline label,
    #fm_mural .checkbox-inline label, #formmensagem .checkbox-inline label,
    #formLoginEmpresa .checkbox-inline label, .multicheckbox label,
    .table-usuario-sel .checkbox-inline label, 
    #formCPEdit .checkbox-inline label, #fm_assusu .checkbox-inline label,
    #formTermoDeUso .checkbox label, #formFichaVT .checkbox label, 
    #fm_atestadoaprova .checkbox-label, #formAtestado .checkbox-label {
	margin-top: -1px;
	margin-left: 8px;
}
#fm_enviarArquivo .checkbox-inline label, #fm_funcrobo .checkbox-inline label {
    margin-top: -1px;
}
.multicheckbox label.checkbox-label {
    margin-left: 0px;
}
#formLoginEmpresa input[type="checkbox"]::before { border: 1px solid #fff; }
#formLoginEmpresa input[type="checkbox"]:checked:before { background: #1b5282; }
#formLoginEmpresa .checkbox-inline .open-modal { color: #02D3FF; }

.radio input[type="radio"]:before {
    border: 3px solid #2589c5;
    background-color: #FFFFFF;
    content: "";
    display: inline-block;
    font: 16px/1em sans-serif;
    margin: 0;
    padding: 0;
    vertical-align: middle;
    width: 24px;
    height: 24px;
    border-radius: 100%;
    transition: background-color .3s ease;
}
.form-group .radio:first-child, .form-group .checkbox:first-child {
    padding-left:0;
}
.radio input[type="radio"]:after {
    position: absolute;
    top: 8px;
    left: 8px;
    display: flex;
    content: "";
    background-color: #FFF;
    width: 8px;
    height: 8px;
    border-radius: 100%;
    transform: scale(0);
}
  
.radio input[type="radio"]:checked:after {
    transform: scale(1);
}
.radio input[type="radio"]:checked:before {
    background-color: #2589c5;
}
.radio label {
    padding-left:30px;
}
.checkbox-inline, .radio-inline {
    position: relative;
    display: inline-block;
    padding-left: 20px;
    margin-bottom: 0;
    font-weight: 400;
    vertical-align: middle;
    cursor: pointer;
}
.checkbox-inline {
    padding-left: 30px;
}
.checkbox-inline input[type="checkbox"] {
    margin-left:-30px;
}

.radio+.radio, .checkbox+.checkbox {
    margin-top: 10px !important;
}
.fm-relatorio-ass .radio+.radio, .fm-relatorio-ass .checkbox+.checkbox {
    margin-top: 0 !important;
}
.fm-relatorio-ass .radio-inline + .radio-inline, .fm-relatorio-ass .checkbox-inline + .checkbox-inline {
    padding-left: 0 !important;
}
.fm-relatorio-ass .radio label, .fm-relatorio-ass .checkbox label {
    padding-left: 0 !important;
}
/*****************************/

.link-pager-next {
    float: right;
}

.form-inline .form-group {
    margin-right: 10px;
    margin-bottom: 10px;
}
.form-inline .form-group .input-group.date input {
    width: 125px;
}

span.opt-sms, span.opt-email, span.opt-whats {
    color: #fff;
    background: #2589c5;
    padding: 3px 8px;
    border-radius: 5px;
}
span.opt-sms i, span.opt-email i, span.opt-whats i{
    font-size: 16px;
}
span.opt-whats {
    background: #45AD51;
}
span.opt-email {
    background: #23c6c8;
}
span.info-tp {
    color: #b3b3b3;
}
.boxAtualizarCel {
    color: #a2a0a0;
    float: right;
}
.boxCodigoConf input {
    font-size: 30px;
}
.boxCodigoConf .form-group {
    float: left;
    width: 44px;
    margin-right: 12px;
}

.tipo_envio .r-email {
    color: #2589c5;
}
.tipo_envio .r-whats {
    color: #45AD51;
}
.tipo_envio .r-sms {
    color: #c3b746;
}
table tr td a.btn-sm i.fa {
    font-size: 12px;
}
table tr td a.btn-xs i.fa {
    font-size: 12px;
}
table.tabelaRegAss .tipo_envio {
    margin-bottom: 7px;
}
table.tabelaRegAss .tipo_envio .radio {
    margin-top: 5px;
    margin-bottom: 5px;
}

#fm_buscaavancada div.radio label {
    margin-right: 5px;
}

.table-usuario-sel .tipo_outro {

}

.form-group.nuvem {
    margin-top: 25px;
}

.cp-tipo {
    margin-bottom: 0;
    font-size: 11px;

}
.espelho-ponto table tr td a i.fa,
.espelho-ponto table tr td a i.fas,
.espelho-ponto table tr td a i.far {
    font-size: 16px;
}
.espelho-ponto .table>tbody>tr>td.seguinte {
    line-height: 12px;
}
.box-horario {
    border: 1px solid #e5e6e7;
    border-radius: 5px;
    margin-bottom: 10px;
    padding: 5px;
}
.box-horario .btn {
    font-size: 11px;
    margin-bottom: 2px;
}
.box-horario .ponto-local {
    margin-bottom: 5px;
    font-size: 11px;
}
.box-horario .ponto-manual {
    margin-bottom: 1px;
    height: 44px;
    padding-top: 7px;
}
.box-horario .warning {
    color: #8a6d3b;
}
.box-horario .danger {
    color: #a94442;
}
.box-horario .success {
    color: #3c763d;
}
.box-horario .primary {
    color: #b8daff;
}

.box-horario.warning {
    background-color: #fcf8e3;
}
.box-horario.danger {
    background-color: #f2dede;
}
.box-horario.success {
    background-color: #dff0d8;
}
.box-horario.primary {
    background-color: #b8daff;
}
.box-horario.activec {
    background-color: #d1cece;
}
.box-horario.purple {
    background-color: #eadef2;
}

.box-horario i.fa-sign-out, .espelho-ponto i.fa-sign-out {
    font-size: 16px;
    color: red;
}
.box-horario i.fa-sign-in, .espelho-ponto i.fa-sign-in {
    color: green;
}

.box-horario .hora {
    font-size: 18px;
}
.box-horario p {
    margin-bottom: 5px;
}
.box-horario i.fa-sign-in, .espelho-ponto i.fa-sign-in, .box-horario i.fa-sign-out, .espelho-ponto i.fa-sign-out  {
    font-size: 13px;
}

.box-horario .resumo-motivo {
    white-space: nowrap;      /* impede quebra de linha */
    overflow: hidden;         /* esconde o excesso */
    text-overflow: ellipsis;
    width: 88px;
    display: block;
    padding-top: 6px;
}

.box-horanegativa, .box-faltanj, .box-justificativa, #horariosContainer, .box-compensacao, .box-folga_reinicia_escala {
    padding: 10px;
}
.table>thead>tr>td.activec, .table>tbody>tr>td.activec, .table>tfoot>tr>td.activec, .table>thead>tr>th.activec, .table>tbody>tr>th.activec, 
.table>tfoot>tr>th.activec, .table>thead>tr.activec>td, .table>tbody>tr.activec>td, .table>tfoot>tr.activec>td, .table>thead>tr.activec>th, 
.table>tbody>tr.activec>th, .table>tfoot>tr.activec>th {
    background-color: #d1cece;
}

.table>thead>tr>td.purple, .table>tbody>tr>td.purple, .table>tfoot>tr>td.purple, .table>thead>tr>th.purple, .table>tbody>tr>th.purple, 
.table>tfoot>tr>th.purple, .table>thead>tr.purple>td, .table>tbody>tr.purple>td, .table>tfoot>tr.purple>td, .table>thead>tr.purple>th, 
.table>tbody>tr.purple>th, .table>tfoot>tr.purple>th {
    background-color: #eadef2;
}

.info-h {
    font-size: 12px;
}

/* Ajax Msg */
#ajaxMsg {padding:5px 5px 5px 25px; background:url(/images/ajax.gif) no-repeat 2px 4px #fff1a8; z-index:9999; color:#000; font-size:10px; font-weight:bold; position:absolute; font-family:Verdana, Geneva, sans-serif; text-transform: uppercase; display:none;}

.tag-cor-red {
	background-color: red;
    color: red;
}
.tag-cor-green {
	background-color: green;
    color: green;
}
.tag-cor-orange {
	background-color: orange;
    color: orange;
}
.tag-cor-purple {
	background-color: purple;
    color: purple;
}
.tag-cor {
    background-color: transparent;
}
.badge.tag-cor-red, .badge.tag-cor-green, .badge.tag-cor-orange, .badge.tag-cor-purple {
    margin-top: 4px;
}

.box-compensacao .checkbox-inline, .box-folga_reinicia_escala .checkbox-inline {
    padding-top: 18px;
}
.nao_considerar_saldo .checkbox-inline, .espelho_ponto .checkbox-inline {
    padding-top: 30px;
}
.check-compensado {
    margin-top: 29px;
}
#fm_assemprelat .form-inline .form-group .input-group.date input, #fm_assarqrelat .form-inline .form-group .input-group.date input {
    width: 142px;
}

.situacao-lock {
    color: red;
}
.situacao-unlock {
    color: green;
}
.tabelaDados .info-rel {
    color: #3674a9;
    font-weight: 700;
}

.input-group-ass {
    position: relative;
    display: flex;
    border-collapse: separate;
}

#relatorio .tabelaFuncionario tr td.valores, #relatorio .tabelaFuncionario tr th.valores {
    text-align:right;
}

/* Dashboard Container */
.dashboard-container {
  min-height: 100vh;
  background: var(--white);
  padding: 0;
  margin: 0;
}

.dashboard-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem 1.5rem;
}

/* Welcome Header */
.dashboard-header {
  text-align: center;
  margin-bottom: 1.5rem;
}

.dashboard-title {
  font-size: 2.0rem;
  font-weight: 700;
  color: #1f2937;
  margin-bottom: 0.3em;
  margin-top: 0;
}

.dashboard-subtitle {
  font-size: 2.0rem;
  color: #6b7280;
  margin: 0;
}

/* Dashboard Grid */
.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  max-width: 1400px;
  margin: 0 auto;
}

/* Dashboard Cards */
.dashboard-card {
  display: block;
  text-decoration: none;
  transform: scale(1);
  transition: all 0.3s ease;
}

.dashboard-card:hover {
  transform: scale(1.05);
  text-decoration: none;
}

.dashboard-card-inner {
  border-radius: 1rem;
  padding: 2rem;
  text-align: center;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  color: white;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
}

.dashboard-card:hover .dashboard-card-inner {
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.4);
}

/* Card Overlay Effect */
.dashboard-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0);
  transition: all 0.3s ease;
  z-index: 1;
}

.dashboard-card:hover .dashboard-card-overlay {
  background: rgba(255, 255, 255, 0.1);
}

/* Card Content */
.dashboard-card-content {
  position: relative;
  z-index: 10;
}

.dashboard-card-icon {
  font-size: 4rem;
  margin-bottom: 1.5rem;
  opacity: 0.9;
  display: block;
}

.dashboard-card-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
  margin-top: 0;
  color: var(--white);
  border: none;
}

.dashboard-card-description {
  font-size: 0.875rem;
  opacity: 0.9;
  margin: 0;
}

/* Card Color Variants */
.dashboard-card-blue .dashboard-card-inner {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
}

.dashboard-card-blue .dashboard-card-description {
  color: #dbeafe;
}

.dashboard-card-green .dashboard-card-inner {
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}

.dashboard-card-green .dashboard-card-description {
  color: #d1fae5;
}

.dashboard-card-red .dashboard-card-inner {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
}

.dashboard-card-red .dashboard-card-description {
  color: #fecaca;
}

.dashboard-card-cyan .dashboard-card-inner {
  background: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
}

.dashboard-card-cyan .dashboard-card-description {
  color: #cffafe;
}

.dashboard-card-orange .dashboard-card-inner {
  background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
}

.dashboard-card-orange .dashboard-card-description {
  color: #fed7aa;
}

.dashboard-card-purple .dashboard-card-inner {
  background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
}

.dashboard-card-purple .dashboard-card-description {
  color: #e9d5ff;
}

.dashboard-card-teal .dashboard-card-inner {
  background: linear-gradient(135deg, #006D5B 0%, #004D40 100%);
}

.dashboard-card-teal .dashboard-card-description {
  color: #b3e5fc;
}

/* Responsive Design */
@media (max-width: 768px) {
  .dashboard-inner {
    padding: 1rem;
  }
  
  .dashboard-title {
    font-size: 2rem;
  }
  
  .dashboard-subtitle {
    font-size: 1rem;
  }
  
  .dashboard-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  
  .dashboard-card-inner {
    padding: 1.5rem;
  }
  
  .dashboard-card-icon {
    font-size: 3rem;
  }
  
  .dashboard-card-title {
    font-size: 1.25rem;
  }
}

/* Dashboard ? estado vazio (sem atalhos) */
.dashboard-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 3rem 1rem;
  color: #9ca3af;
}

.dashboard-empty-icon {
  font-size: 3.5rem;
  display: block;
  margin-bottom: 1rem;
  opacity: 0.4;
}

.dashboard-empty p {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}

.dashboard-empty small {
  font-size: 0.9rem;
  opacity: 0.8;
}

/*****************************************************/
/****** Drawer off-canvas do menu no mobile **********/
/*****************************************************/
/*
 * No mobile o tema reaproveita o estado ".mini-navbar" (sidebar de 70px só
 * com ícones). Aqui, apenas em telas pequenas (body-small), reinterpretamos
 * esse estado como um menu lateral deslizante em largura cheia, com labels,
 * backdrop e trava de scroll — uma UX de drawer de verdade.
 */

/* Botão de fechar (X) injetado via JS dentro do drawer — só aparece no mobile */
.nav-drawer-close {
    display: none;
}

/* Backdrop escurecido do drawer */
.nav-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 2000;
    opacity: 0;
    transition: opacity 0.3s ease;
}

@media (max-width: 768px) {
    /*
     * Base do drawer: depende SÓ da media query (não da classe body-small
     * que o inspinia.js só adiciona após o load). Assim o menu já nasce
     * fora da tela, sem "piscar" empilhado no topo em carregamentos lentos.
     * O prefixo #wrapper garante especificidade acima das regras do tema.
     */
    #wrapper .navbar-static-side {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        width: 260px;
        max-width: 85vw;
        height: 100%;
        z-index: 2001;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
        box-shadow: 2px 0 12px rgba(0, 0, 0, 0.25);
    }

    /* Estado aberto: desliza para dentro e recupera a largura cheia
       (anula o "width: 70px" do modo mini do tema).
       Usa #wrapper para superar a especificidade da regra base acima,
       senão o translateX(-100%) da base venceria e o menu não abriria. */
    body.mini-navbar #wrapper .navbar-static-side {
        display: block;
        width: 260px;
        transform: translateX(0);
    }

    /* Menu ocupa toda a altura do drawer */
    #wrapper .navbar-default {
        height: 100%;
    }

    /* Recupera perfil, labels e blocos que o modo mini esconde */
    body.mini-navbar .profile-element,
    body.mini-navbar .nav-label,
    body.mini-navbar .navbar-default .info-extrato,
    body.mini-navbar .navbar-default .info-extrato-caixa {
        display: block;
    }
    body.mini-navbar .navbar-default .nav li a span {
        display: inline;
    }

    /* No drawer o item raiz volta a exibir texto (não vira ícone gigante) */
    body.mini-navbar .navbar-default .nav > li > a {
        font-size: 13px;
    }

    /* Submenus voltam a funcionar como accordion (metisMenu), não flutuante */
    body.mini-navbar .nav-second-level {
        position: static;
        min-width: 0;
        padding: 0;
    }

    /* Esconde o "logo-element" (JPL) que só faz sentido no modo ícones */
    body.mini-navbar .logo-element {
        display: none;
    }
    body.mini-navbar .nav-header {
        padding: 33px 25px 25px 25px;
        background-color: transparent;
    }

    /* O conteúdo não é empurrado: o drawer flutua por cima */
    body.mini-navbar #page-wrapper {
        margin: 0;
    }

    /* Backdrop visível e trava de scroll quando o drawer está aberto */
    body.mini-navbar .nav-backdrop {
        display: block;
        opacity: 1;
    }
    body.mini-navbar {
        overflow: hidden;
    }

    /* Botão de fechar (X) no topo do drawer */
    #wrapper .nav-drawer-close {
        display: block;
        position: absolute;
        top: 10px;
        right: 10px;
        z-index: 2002;
        width: 34px;
        height: 34px;
        line-height: 34px;
        text-align: center;
        color: #fff;
        font-size: 20px;
        background: rgba(0, 0, 0, 0.15);
        border-radius: 4px;
        cursor: pointer;
    }
    #wrapper .nav-drawer-close:hover {
        background: rgba(0, 0, 0, 0.3);
    }
}

/*
 * Sticky footer (sem position:fixed). O tema usava position:absolute + bottom:0
 * esperando o footer DENTRO do #page-wrapper; como foi movido para fora, ficou
 * flutuando. Aqui o #wrapper vira uma coluna flex: o #page-wrapper cresce e
 * empurra o footer para o fim. Em página curta cola no fundo da tela (100vh);
 * em página longa fica após o conteúdo. O footer volta ao fluxo normal e ocupa
 * a largura toda (corpo/background corretos).
 */
/* Regras estruturais restritas ao extranet (com sidebar). O layout público de
   assinatura usa body.assinatura, sem #wrapper e com containers centralizados;
   por isso é excluído — senão o flex/margin quebram aquela tela. */
body:not(.assinatura) #wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
body:not(.assinatura) #page-wrapper {
    flex: 1 0 auto;
}
/* Só o footer do extranet é filho DIRETO do #wrapper. No registroponto ele
   fica dentro do #page-wrapper (mantém o absolute original) e na assinatura é
   filho do body — ambos ficam de fora deste seletor. */
#wrapper > .footer {
    position: static;
    flex-shrink: 0;
}
@media (min-width: 768px) {
    /* Alinha o footer à coluna de conteúdo (mesma margem do #page-wrapper) */
    #wrapper > .footer {
        margin-left: 220px;
    }
    body.mini-navbar #wrapper > .footer {
        margin-left: 70px;
    }

    /*
     * Faixa da sidebar até o fim da página no desktop: o nav é absolute, então
     * com o #wrapper posicionado (relative) e top/bottom a faixa estica até a
     * altura total do conteúdo.
     */
    body:not(.assinatura) #wrapper .navbar-static-side {
        top: 0;
        left: 0;
        bottom: 0;
        height: auto;
    }
}

/*******GED EMPRESARIAL**************/