/* =========================== GERAL =========================== */
:root {
  /*  Variaveis de cores personalizadas */
  --color-bg-primary: #006847; /*13216A */
  --color-bg-secondary: #fff;
  /* Cor de titulos/labels de destaque. Troque aqui para mudar em todo o sistema.
     Alternativas profissionais/harmonicas: #334155 (slate escuro) | #1E40AF (azul royal) | #0F766E (teal) */
  --color-letra-primary: #475569;  /* slate/grafite claro (antes: #FF9E1B laranja) */
  --color-letra-secondary: #ffffff;

  /* Fonte principal (troque aqui para mudar em todo o sistema).
     Alternativas refinadas: 'Plus Jakarta Sans', 'Manrope', 'Figtree', 'Inter' */
  --ts-font-family: 'Nunito Sans', 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
}

html {
  background-color: #fff;
  /*VERIFICAR*/
}

html,
body {
  height: 100vh !important;
  margin: 0 !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

* {
  font-family: var(--ts-font-family) !important;
  font-size: 14px;
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
  letter-spacing: 0.1px;
}

.ts-iframe {
  width: 100%;
  height: 92vh;
  border: none;
}

/* FUNDO VISUALIZAR */
body.ts-fundoVisualizar{
  background: #F1F2F4;
}


/* =========================== SIDERBAR / NAVBARS =========================== */
.ts-sidebar {
  height: 100vh;
  width: 120px;
}

.ts-itemsiderbar {
  background-color: var(--color-bg-primary);
  color: var(--color-letra-secondary);
  text-decoration: none;
}

.ts-itemsiderbar.active {
  background-color: var(--color-letra-secondary);
  color: var(--color-letra-primary);
  text-decoration: none;
  font-weight: 900;
}

.ts-itemsiderbar:hover,
.ts-itemsiderbar:focus {
  color: var(--color-letra-primary);
  background-color: var(--color-letra-secondary);
  font-weight: 900;
  text-decoration: none;
}

/* FUNDO da barra superior onde fica os aplicativos */
.ts-bgAplicativos {
  background-color: var(--color-bg-primary);
}

/*SELECT  de aplicativos quando estiver em dispositivos tablet e mobile*/
.ts-selectAplicativos {
  color: var(--color-letra-secondary);
  background-color: var(--color-bg-primary);
  border: none;
  border-bottom: 2px solid #fff
}

/*SELECT dos sub menus de aplicativos quando estiver em dispositivos tablet e mobile*/
.ts-selectSubMenuAplicativos {
  color: #000;
  width: 160px;
  text-align: center;
}

/* =========================== FONTES =========================== */
.ts-tituloPrincipal {
  font-weight: 600;
  font-size: 15px;
  text-align: left;
  color: var(--color-letra-primary);
}

/* MODELO DE TITULO FONTE 15PX - Lucas 19112024 */
.ts-tituloPrincipal2 {
  font-weight: 500;
  font-size: 13px;
  text-align: left;
  color: var(--color-letra-primary);
}

.ts-tituloSecundaria {
  font-weight: 600;
  font-size: 14px;
  text-align: left;
  color: var(--color-letra-primary);
}

.ts-tituloPrincipalModal {
  font-size: 18px;
  font-weight: 600;
  color: #172B4D;
  cursor: pointer;
}

.ts-label {
  margin-bottom: -10px;
  color: rgb(122, 122, 122);
  font-size: 14px;
}

/* Style para previsto, quando existe Real */  
span.ts-previsto {
  font-weight: lighter;
}

/* Style para as datas */
span.ts-datas {
    font-size:13px;
    display:flex;
    width:110px;
    float:left;
}

/* Style para as horas */
span.ts-horas {
    font-size:13px; 
    display:flex;
    width:43px;
    float:left;
}

.fonteCorpo td {
  font-size: 13px;
}

.ts-subTitulo {
  color: #172B4D;
}

/* FONT 13px - Lucas 19112024 */
.ts-font13{
  font-size: 13px;
}

.tituloEditor{
  font-size: 16px;
  color: #777;
}

.ts-colorPrimary{
  color: var(--color-letra-primary);
}


/* =========================== BORDAS =========================== */
/* BORDAS - Lucas 19112024 */
.ts-bordaRedonda5{
  border-radius: 5px;
}

.ts-bordaRedonda10{
  border-radius: 10px;
}

.ts-bordaRedonda15{
  border-radius: 15px;
}

.ts-bordaRedonda10_2px {
  border: 2px solid #eee;
  border-radius: 10px;
}

/* =========================== SOBRAS =========================== */
.ts-shadowOff {
  box-shadow: rgb(204, 219, 232) 3px 3px 6px 0px inset, rgba(255, 255, 255, 0.5) -3px -3px 6px 1px inset;
}
/* fim - CARDS/BOTOES DE STATUS */

/*SOMBRA */
.ts-shadow {
  box-shadow: -2px 3px 10px 0px rgba(207, 169, 169, 0.75);
  -webkit-box-shadow: -2px 3px 10px 0px rgba(207, 169, 169, 0.75);
  -moz-box-shadow: -2px 3px 10px 0px rgba(207, 169, 169, 0.75);
}

/*fim-  SOMBRA */

/* =========================== DIVS =========================== */
.ts-divTabela {
  width: 100%;
  height: 80vh;
  overflow-y: scroll;
  overflow-x: auto;
}

.ts-divTabela40 {
  width: 100%;
  height: 40vh;
  overflow-y: scroll;
  overflow-x: auto;
}

.ts-divTabela45 {
  width: 100%;
  height: 45vh;
  overflow-y: scroll;
  overflow-x: auto;
}

.ts-divTabela50 {
  width: 100%;
  height: 50vh;
  overflow-y: scroll;
  overflow-x: auto;
}

.ts-divTabela60 {
  width: 100%;
  height: 60vh;
  overflow-y: scroll;
  overflow-x: auto;
}

.ts-divTabela70 {
  width: 100%;
  height: 70vh;
  overflow-y: scroll;
  overflow-x: auto;
}

.ts-divTabela80 {
  width: 100%;
  height: 80vh;
  overflow-y: scroll;
  overflow-x: auto;
}

.ts-divTabela {
  width: 100%;
  height: 80vh;
  overflow-y: scroll;
  overflow-x: auto;
}

/* ALTURA DE DIV COM SCROLL - Lucas 27112024 */
.ts-div70 {
  height: 70vh;
  overflow-y: scroll;
  overflow-x: auto;
} 

.ts-div60 {
  height: 60vh;
  overflow-y: scroll;
  overflow-x: auto;
}

.ts-div50 {
  height: 50vh;
  overflow-y: scroll;
  overflow-x: auto;
}

/* =========================== DIV CONTADOR =========================== */
.ts-divContador{
  padding: 10px; 
  background-color: #f8f9fa;
}

.ts-divContador h6 { 
  color: var(--color-letra-primary);
}

.ts-divContador a#paginacontador { 
  color: var(--color-letra-primary);
  margin-right:10px;
  margin-left:10px;
}

/* =========================== DIV ZOOM =========================== */
.ts-labelZoom{
  margin-bottom: -17px;
}

.ts-divInputZoom { 
  margin-top: 50px; 
}

/* =========================== INPUTS =========================== */
/* INPUT MODELO NOVO - Lucas 22112024 */
.form-floating .form-control {
  height: 45px;
}

.form-floating label {
  margin-top: -5px;
}

.form-floating {
  margin-right: -10px;
}

/* INPUTS MODELO LABEL EM CIMA INPUT ABAIXO BORDAS ARREDONDADAS - Lucas 19112024 */
.ts-input {
  border-top: none;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid #484848;
  border-radius: 0px;
  margin-top: -5px;
}

.ts-input:hover,
.ts-input:active,
.ts-input:focus {
  box-shadow: 0 0 0 0;
  border: 1 none;
  outline: 0;
}
/* fim - INPUTS MODELO LABEL EM CIMA INPUT ABAIXO BORDAS ARREDONDADAS */

/* Input com Botao de pesquisa */
.ts-inputcomBtn {
  border-top: 0px;
  border-left: 0px;
  border-color: black;
  border-radius: 0;
}

.ts-inputcomBtn:hover,
.ts-inputcomBtn:active,
.ts-inputcomBtn:focus {
  box-shadow: 0 0 0 0;
  border: 1 none;
  outline: 0;
}

.ts-inputSemBorda {
  border-top: none;
  border-left: none;
  border-right: none;
  border-bottom: none;
  margin-top: -5px;
  background: #F1F2F4;
}

.ts-inputSemBorda:any-link {
  margin-top: -5px;
  background: #fff;
}

.ts-textareaResponsivo {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
}

/* AJUSTAR NOME */
.ts-selectDemandaModalVisualizar {
  border-radius: 3px;
  border-bottom: 1px solid #C1C1C1;
  background: #F1F2F4;
  cursor: pointer;
}
/* =========================== INPUT FORM-FLOATING =========================== */
.ts-form-floating {
  position: relative;
}

.ts-form-floating input {
  padding-top: 1.5rem;
  height: 43px;
  border: 2px solid #eee;
  border-radius: 10px;
  /* Adiciona espaço no topo para o label */
}

.ts-form-floating textarea {
  padding-top: 1.5rem;
  border: 2px solid #eee;
  border-radius: 10px;
}

.ts-form-floating input[type="date"]::-webkit-calendar-picker-indicator {
  margin-top: -10px;
}

.ts-form-floating Select {
  padding-top: 1.2rem;
  height: 43px;
  border: 2px solid #eee;
  border-radius: 10px;
  /* Adiciona espaço no topo para o label */
}

.ts-form-floating>.labelSelect {
  margin-top: -3px;
}

.ts-form-floating .btnSearch {
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
}

.ts-form-floating button {
  margin-right: 5px;
  border: none;
}

.ts-form-floating button:focus {
  border: none;
  box-shadow: none;
}

.ts-form-floating label {
  position: absolute;
  top: -2px;
  left: 0.50rem;
  font-size: 12px;
  color: #6c757d;
  pointer-events: none;
  transition: all 0.2s ease-in-out;
  padding: 0 0.25rem;
  background: transparent;
  /* Fundo branco para evitar sobreposição */
  transform: translateY(0.5rem);
  /* Ajuste para centralizar verticalmente */
}

.ts-form-floating input:focus+label,
.ts-form-floating input:not(:placeholder-shown)+label {
  top: 1px;
  font-size: 12px;
  transform: none;
  background: none;
  /* Remover o fundo ao focar ou quando preenchido */
}

.ts-form-floating textarea:focus+label,
.ts-form-floating textarea:not(:placeholder-shown)+label {
  top: 1px;
  font-size: 12px;
  transform: none;
  background: none;
  /* Remover o fundo ao focar ou quando preenchido */
}

.ts-form-floating>.labelDataSelect {
  margin-top: -3px;
  margin-left: 30px !important;
}

.ts-form-floating>.btn-outline-secondary {
  border: 2px solid #eee;
  border-radius: 10px 0 0 10px;
  margin-right: -8px;
  background-color: #e9ecef;
  color: #6c757d;

}

.ts-form-floating>.btn-outline-secondary:hover {
  background-color: #e9ecef;
  color: #6c757d;
}



/* =========================== BOTOES =========================== */
.ts-btnAcoes{
  font-size: 13px;
  font-style:italic;
}

.ts-btnDescricaoEditar {
  color: #000000;
  cursor: pointer;
}

/* =========================== ACOES =========================== */
/* usado também no modalTarefas_alterar */
.ts-displayDisable {
  background: #eee;
  pointer-events: none;
  touch-action: none;
}

.ts-sumir {
  display: none;
}

.ts-containerDescricaoDemanda .ql-toolbar {
  display: none;
}

/* CURSOR - Lucas 27112024 */
.ts-cpointer{
  cursor: pointer;
}

/* =========================== TABELAS =========================== */
.ts-headertabelafixo {
  background-color: var(--color-bg-primary);
  color: var(--color-letra-secondary);
  top: 0px;
  position: sticky;
}

.ts-headertabelafixo tr th {
  font-weight: 500;
}

.ts-headerTabelaLinhaCima {
  background-color: var(--color-bg-primary) !important;
  position: sticky;
  top: 0px;
}

.ts-headerTabelaLinhaBaixo {
  background-color: var(--color-bg-primary) !important;
  position: sticky;
  top: 34px;
  margin-top: 0px;
}

.ts-selectFiltrosHeaderTabela {
  font-size: 14px;
  color: var(--color-letra-secondary) !important;
  font-style: italic;
  background-color: var(--color-bg-primary) !important;
  margin-top: 0px;
  height: 25px !important;
  padding-top: 0px !important;
}

/* =========================== TAB/ ABAS =========================== */
/*TAB DE CONFIGURAÇÔES*/
.ts-tabConfig {
  background-color: #567381 !important;
  margin-bottom: 2px;
  color: var(--color-letra-secondary);
}

.ts-tabConfig:hover {
  color: var(--color-letra-secondary);
}

.ts-tabConfig.active {
  background-color: #FFF !important;
  color: #567381 !important;
  border: 2px solid #DFDFDF;
  border-radius: 5px 5px 0px 0px;
}

/*fim - TAB DE CONFIGURAÇÔES*/

/* TAB DE DENTRO DO MODAL */
.ts-tabModal {
  background-color: #567381 !important;
  color: #EEEEEE !important;
}

.ts-tabModal .active {
  background-color: #EEEEEE !important;
  color: #567381 !important;
}

/* fim- TAB DE DENTRO DO MODAL */

/* TAB VISUALIZAR  */
.line {
  width: 100%;
  border-bottom: 1px solid #707070;
}

#ts-tabs .tab {
  display: inline-block;
  padding: 5px 10px;
  cursor: pointer;
  position: relative;
  z-index: 5;
  border-radius: 3px 3px 0 0;
  background-color: #567381;
  color: #EEEEEE;
}

#ts-tabs .whiteborder {
  border: 1px solid #707070;
  border-bottom: 1px solid #fff;
  border-radius: 3px 3px 0 0;
  background-color: #EEEEEE;
  color: #567381;
}

#ts-tabs .tabContent {
  position: relative;
  top: -1px;
  z-index: 1;
  padding: 10px;
  border-radius: 0 0 3px 3px;
  color: black;
}

#ts-tabs .hide {
  display: none;
}

#ts-tabs .show {
  display: block;
}
/* fim- TAB VISUALIZAR */

/*  TAB MODELO JS (BORDA EM BAIXO) - Lucas 19112024  */
#ts-tabs .ts-tabs2.tab {
  display: inline-block;
  padding: 5px 10px;
  cursor: pointer;
  position: relative;
  z-index: 5;
  border-radius: 3px 3px 0 0;
  background-color: transparent;  
  color: black;
}

#ts-tabs .ts-tabs2.whiteborder {
  border: none;
  border-bottom: 5px solid #2E59D9;
  border-radius: 3px 3px 0 0;
  background-color: transparent;
  color: #2E59D9;
  font-weight: bold;
}
/*  fim - TAB MODELO JS (BORDA EM BAIXO)  */

/* TAB NAV-LINK (TAB COM BORDA REDONDAS) - Lucas 19112024 */
.nav-link.ts-navLink-1 {
  background-color: transparent;
  border-radius: 3px 3px 0 0;
  color: #2E59D9 !important;
  padding-left: 5px;
  padding-right: 5px;
}

a.nav-link.ts-navLink-1 {
  padding-left: 6px;
  padding-right: 6px;
}

.nav-link.ts-navLink-1.active:any-link {
  border-radius: 10px;
  border: 2px solid #2E59D9;
  color: #2E59D9 !important;
  font-weight: 500;
}

.nav-link.ts-navLink-1:hover {
  border: transparent;
  font-weight: 500;
}
/* fim - TAB NAV-LINK (TAB COM BORDA REDONDAS) */

/*  TAB MODELO BOOTSTRAP (BORDA EM BAIXO) - Lucas 19112024  */
.nav-link.ts-navLink-2 {
  background-color: transparent;
  color: black !important;
  padding-left: 5px;
  padding-right: 5px;
}

a.nav-link.ts-navLink-2 {
  padding-left: 6px;
  padding-right: 6px;
  border: none;
}

.nav-link.ts-navLink-2.active:any-link {
  border: none;
  border-bottom: 5px solid #2E59D9;
  background-color: transparent!important;
  color: #2E59D9 !important;
  font-weight: bold;
}

.nav-link.ts-navLink-2:hover {
  border: transparent;
}

/* fim - TAB MODELO BOOTSTRAP (BORDA EM BAIXO) */

/* =========================== HR PERSONALIZADO =========================== */
/* HR PERSONALIZADO COM "--------TEXTO--------"  - Lucas 19112024 */
.ts-hr-text {
  display: flex;
  align-items: center;
  text-align: center;
}

.ts-hr-text::before,
.ts-hr-text::after {
  content: '';
  flex: 1;
  border-bottom: 1px solid #ccc;
}

.ts-hr-text::before {
  margin-right: 10px;
}

.ts-hr-text::after {
  margin-left: 10px;
}

/* =========================== MENU DE FILTROS =========================== */
/* MENU FILTROS E DIV DA TEBALA QUE TERA O EFEITO DE MOVIMENTO*/
.ts-menuFiltros {
  background-color: #d3d3d3;
  width: 170px;
  position: fixed;
  left: -250px;
  /* menu desaparece */
  transition: left 1s;
  transition: right 0.5s;
  z-index: 2;
  border-radius: 2%;
}

.ts-menuFiltros.mostra {
  left: 0px;
  /* menu aparece */
}

.ts-btnFiltros:hover {
  background-color: rgba(0, 0, 0, 0.103);
}

.ts-btnFiltros i {
  color:#000;
  font-weight: 600px;
}

.ts-tableFiltros {
  padding-left: 0px;
}

.ts-tableFiltros.mostra {
  padding-left: 163px;
}

/* =========================== COMENTARIOS =========================== */
.ts-comentario {
  box-sizing: border-box;
  line-height: 1.42;
  height: 100%;
  outline: none;
  overflow-y: auto;
  padding: 7px 10px;
  tab-size: 4;
  text-align: left;
  word-wrap: break-word;
}
.ts-comentario > * {
  cursor: text;
}
.ts-comentario p {
  margin: 0;
  padding: 0;
  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}

/* =========================== KANBAN =========================== */
.ts-kanbanFundo {
  background: #f1f1f1;
}

/* QUADRO VISAOCLI/KANBAN */
.ts-kanbanQuadro {
  min-height: 30px;
  padding: 10px;
  background: white;
  display: inline-block;
  border-radius: 3px;
  box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, 0.1);
  font-size: 13px;
}

.ts-kanban {
  width: 100%;
  height: 80vh;
  overflow-y: scroll;
  overflow-x: auto;
}

.ts-kanbanTitulo {
  position: sticky;
  top: -8px;
  background-color: #fff;
  padding: 3px;
  z-index: 2;
}

.ts-cardAtrasado {
  background-color: rgba(234, 64, 36, 0.7);
}

.ts-cardDataPrevisao {
  font-size: 12px;
  float: right;
}

.ts-cardStatusDemanda {
  font-size: 12px;
  float: left;

}

/* =========================== CARDS DE TOTAIS =========================== */
/* CARDS DE TOTAIS DOS PROGRAMAS */
.ts-cardsTotais {
  border-left: solid var(--color-bg-primary);
  height: 65px;
  background-color: #EEEEEE;
}
.ts-cardsTotaisContrato{
  border-left: solid var(--color-bg-primary);
  height: 65px;
  background-color: #FFFFFF;
}

/* CONTRATO STATUS */
[class="Orçamento"] {
 /* margin-top: 5px;
  display: inline-block; */
  background: #5271FE !important;
  color: var(--color-letra-secondary);
 /* width: 160px; */
}

[class="Faturamento"] {
 /* margin-top: 5px;
  display: inline-block; */
  background: #FE5469 !important;
  color: var(--color-letra-secondary);
 /* width: 160px; */
}

[class="Finalizado"] {
 /* display: inline-block; */
  background: #C34A36 !important;
  color: var(--color-letra-secondary);
 /* width: 160px;*/
}

[class="Aprovação"] {
 /* margin-top: 5px;
  display: inline-block; */
  background: #69419D !important;
  color: var(--color-letra-secondary);
  /* width: 160px;*/
}

[class="Desenvolvimento"] {
/*  margin-top: 5px;
  display: inline-block; */
  background: #FEA051 !important;
  color: var(--color-letra-secondary);
 /* width: 160px; */
}

[class="Recebimento"] {
 /* margin-top: 5px;
  display: inline-block; */
  background: #18B376 !important;
  color: var(--color-letra-secondary);
 /* width: 160px; */
}
/*fim-  CONTRATO STATUS */

/*  */
/* STATUS DEMANDA */
[class="1"] {
  /*margin-top: 5px;
  display: inline-block; */
  background: #5271FE !important;
  color: #fff;
  /*width: 160px; */
}

[class="9"] {
 /* margin-top: 5px;
  display: inline-block; */
  background: #FE5469 !important;
  color: #fff;
 /* width: 160px; */
}

[class="4"] {
 /* display: inline-block; */
  background: #C34A36 !important;
  color: #fff;
 /* width: 100px; */
}

[class="3"] {
 /* margin-top: 5px;
  display: inline-block; */
  background: #69419D !important;
  color: #fff;
 /* width: 160px; */
}

[class="5"] {
 /* margin-top: 5px;
  display: inline-block; */
  background: #FEA051 !important;
  color: #fff;
  /*width: 160px; */
}

[class="6"] {
  /*margin-top: 5px;
  display: inline-block; */
  background: #18B376 !important;
  color: #fff;
/*  width: 160px; */
}

[class="7"] {
 /* margin-top: 5px;
  display: inline-block; */
  background: #00C2A8 !important;
 /* width: 160px; */
  color: #fff;
}

[class="8"] {
 /* margin-top: 5px;
  display: inline-block; */
  background: blueviolet !important;
  color: #fff;
 /* width: 160px; */
}

[class="2"] {
  /*margin-top: 5px;
  display: inline-block; */
  background: #FFC107!important;
  color: #fff;
  /* width: 160px; */
}
/* fim - STATUS DEMANDA*/

/* CARDS/BOTOES DE STATUS */
.ts-cardLink {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
  z-index: 2;
  opacity: 0;
}

.ts-cardLink:hover {
  cursor: pointer;
}

.ts-cardColor-active {
  background-color: #fff !important;
  box-shadow: -2px 3px 10px 0px rgba(207, 169, 169, 0.75);
  -webkit-box-shadow: -2px 3px 10px 0px rgba(207, 169, 169, 0.75);
  -moz-box-shadow: -2px 3px 10px 0px rgba(207, 169, 169, 0.75);
  border-left: solid #158cee !important;

}

/* =========================== SCROLL BAR =========================== */
/* width */
::-webkit-scrollbar {
  width: 7px;
}

/* Track */
::-webkit-scrollbar-track {
  background: #f1f1f1;
}

/* Handle */
::-webkit-scrollbar-thumb {
  background: #C1C1C1;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
  background: #a0a0a0;
}

.ts-noScroll::-webkit-scrollbar {
  display: none; 
}


/* SCROLL PARA 60% da TELA - Lucas 19112024 */
@media (width <= 1250px) {
  .ts-scroll60{
      height:60vh; overflow-x: hidden;
  }
}



/* =========================== IMAGEM EM FORMATO DE PERFIL =========================== */
#imgAplicativo {
  display: none;
}

.picture {
  width: 100px;
  height: 100px;
  background: #ddd;
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  color: #aaa;
  border: 1px dashed currentcolor;
  border-radius: 100px;
  cursor: pointer;
  font-family: sans-serif;
  transition: color 300ms ease-in-out, background 300ms ease-in-out;
  outline: none;
  overflow: hidden;
}

.picture:hover {
  color: #777;
  background: #ccc;
}

.picture:active {
  border-color: turquoise;
  color: turquoise;
  background: #eee;
}

.picture:focus {
  color: #777;
  background: #ccc;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.picture__img {
  height: 100px;
  border-radius: 50%;
}

.custom-file-upload {
  display: inline-block;
  padding: 6px 12px;
  cursor: pointer;
  color: #fff;
  }
  ::-webkit-file-upload-button {
  opacity: 0;
  
  padding: 0.5em;
  }


  /* =========================== MODAL DEMANDA VISUALIZAR =========================== */
/* substituir pela classe ts-cpointer */
.ts-click{
  cursor: pointer;
}

/* REMOVER APOS O AJUSTE DE DEMANDA */
/* MODAL DEMANDAS/VIZUALIZAR */
.modal-fullscreen {
  max-width: 75vw;
  height: 98vh;
  margin-top: 0px;
  margin-bottom: 0px;
  margin-left: 0px;
}

.ts-divLateralModalDemanda {
  position: sticky;
  display: flex;
  flex-direction: column; 
  height: 98vh;
  background-color: #F1F2F4;
  overflow-y: auto; 
}

@media only screen and (max-width: 785px) {
  .modal-fullscreen {
      max-width: 100vw;
      height: 98vh;
  }

  .ts-divLateralModalDemanda {
      height: 650px;
      overflow-y: auto; 
  }

}

/* =========================== INPUT COM SELECT (AUTOCOMPLETE) =========================== */
.ts-form-floating .ts-inputComSelect-input {
    padding-top: 1.5rem;
    height: 43px;
    margin-top: 0;
    border: 2px solid #eee;
    border-radius: 10px;
}

.ts-form-floating .ts-inputComSelect-input:hover,
.ts-form-floating .ts-inputComSelect-input:active,
.ts-form-floating .ts-inputComSelect-input:focus {
    box-shadow: none;
    outline: 0;
    border: 2px solid #eee;
}

.ts-form-floating .ts-inputComSelect-label {
    margin-bottom: 0;
}

.ts-form-floating .ts-inputComSelect-input:focus ~ .ts-inputComSelect-label,
.ts-form-floating .ts-inputComSelect-input:not(:placeholder-shown) ~ .ts-inputComSelect-label {
    top: 1px;
    font-size: 12px;
    transform: none;
    background: none;
}

.ts-inputComSelect-input:hover,
.ts-inputComSelect-input:active,
.ts-inputComSelect-input:focus {
    box-shadow: 0 0 0 0;
    border: 1 none;
    outline: 0;
}

.ts-inputComSelect-label {
    margin-bottom: -10px;
    color: rgb(122, 122, 122);
    font-size: 14px;
}

.ts-inputComSelect-dropdown {
    position: absolute;
    background-color: #fff;
    border: 1px solid #ddd;
    border-top: none;
    max-height: 200px;
    overflow-y: auto;
    width: 100%;
    max-width: 150px;
    z-index: 1000;
    display: none;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.ts-inputComSelect-dropdown.show {
    display: block;
}

.ts-inputComSelect-item {
    padding: 6px 10px;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.95rem;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.ts-inputComSelect-item:hover {
    background-color: #f0f0f0;
}

.ts-inputComSelect-item.selected {
    background-color: #e3f2fd;
}

.ts-inputComSelect-noResults {
    padding: 10px;
    color: #999;
    text-align: center;
}

/* =========================================================================
   SHELL MODERNO PÓS-LOGIN (topbar + seletor de app + sidebar de menus)
   ========================================================================= */
/* Superfícies e textos do "chrome"/telas (tema CLARO = padrão).
   Disponível globalmente (:root) para valer também nas telas internas (iframes).
   Obs.: --color-bg-primary (cor da empresa) NÃO é alterado pelo tema. */
:root {
    --ts-surface: #ffffff;
    --ts-surface-2: #f4f6fb;
    --ts-surface-hover: #eef1fb;
    --ts-border: #e6e9f2;
    --ts-border-2: #d4d9ec;
    --ts-text: #1c2333;
    --ts-text-2: #3a4256;
    --ts-text-muted: #6b7285;
    --ts-text-faint: #9aa0b4;
    --ts-shadow: 0 20px 45px -20px rgba(19, 33, 106, 0.35);
    --ts-topbar-shadow: 0 2px 12px rgba(19, 33, 106, 0.05);
}

/* ---------- TEMA ESCURO (conjunto de cores moderno/escuro) ----------
   A classe fica no <html> (injetada em head_css.php a partir do cookie ts_theme),
   por isso vale para o shell e para todas as telas internas. */
.ts-theme-dark {
    /* tema escuro inspirado no Velonic (azul-acinzentado, texto claro) */
    --ts-surface: #313a46;
    --ts-surface-2: #2d333c;
    --ts-surface-hover: #404954;
    --ts-border: #464f5b;
    --ts-border-2: #566274;
    --ts-text: #dee3e9;
    --ts-text-2: #aab8c5;
    --ts-text-muted: #8391a2;
    --ts-text-faint: #6c757d;
    --ts-shadow: 0 20px 45px -20px rgba(0, 0, 0, 0.6);
    --ts-topbar-shadow: 0 1px 0 rgba(255, 255, 255, 0.02), 0 2px 12px rgba(0, 0, 0, 0.35);
    background-color: var(--ts-surface-2);
}

.ts-app-body {
    margin: 0 !important;
    height: 100vh !important;
    overflow: hidden;
    --ts-sidebar-w: 250px;
    background: var(--ts-surface-2);
    color: var(--ts-text);
    transition: background-color 0.25s ease, color 0.25s ease;
}
/* barra lateral recolhida (somente ícones) */
.ts-app-body.ts-collapsed { --ts-sidebar-w: 74px; }

/* ---------- BASE DO TEMA ESCURO PARA TELAS INTERNAS (Bootstrap + ts-*) ---------- */
.ts-theme-dark body { background-color: var(--ts-surface-2); color: var(--ts-text); }
.ts-theme-dark .card,
.ts-theme-dark .modal-content,
.ts-theme-dark .list-group,
.ts-theme-dark .list-group-item,
.ts-theme-dark .offcanvas,
.ts-theme-dark .accordion-item {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--ts-border);
}
.ts-theme-dark .dropdown-menu { background-color: var(--ts-surface); border-color: var(--ts-border); }
.ts-theme-dark .dropdown-item { color: var(--ts-text-2); }
.ts-theme-dark .dropdown-item:hover,
.ts-theme-dark .dropdown-item:focus { background-color: var(--ts-surface-hover); color: var(--ts-text); }
.ts-theme-dark .table {
    color: var(--ts-text);
    border-color: var(--ts-border);
    --bs-table-bg: transparent;
    --bs-table-color: var(--ts-text);
}
.ts-theme-dark .table > :not(caption) > * > *,
.ts-theme-dark table td,
.ts-theme-dark table th {
    background-color: transparent;
    color: var(--ts-text) !important;
    border-color: var(--ts-border);
    box-shadow: none;
}
.ts-theme-dark .table-hover > tbody > tr:hover > * { background-color: var(--ts-surface-hover); color: var(--ts-text) !important; }
.ts-theme-dark .table-striped > tbody > tr:nth-of-type(odd) > * { background-color: rgba(255, 255, 255, 0.03); color: var(--ts-text) !important; }
/* garante leitura do texto geral no tema escuro */
.ts-theme-dark body,
.ts-theme-dark p,
.ts-theme-dark span:not(.badge),
.ts-theme-dark label,
.ts-theme-dark li,
.ts-theme-dark dt,
.ts-theme-dark dd,
.ts-theme-dark h1,
.ts-theme-dark h2,
.ts-theme-dark h3,
.ts-theme-dark h4,
.ts-theme-dark h5,
.ts-theme-dark h6 { color: var(--ts-text); }
.ts-theme-dark .form-control,
.ts-theme-dark .form-select,
.ts-theme-dark .input-group-text,
.ts-theme-dark textarea {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--ts-border);
}
.ts-theme-dark .form-control:focus,
.ts-theme-dark .form-select:focus {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--color-bg-primary);
    box-shadow: 0 0 0 0.2rem rgba(0, 0, 0, 0.2);
}
.ts-theme-dark .form-control::placeholder { color: var(--ts-text-faint); }
.ts-theme-dark .modal-header,
.ts-theme-dark .modal-footer { border-color: var(--ts-border); }
.ts-theme-dark .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
.ts-theme-dark hr { border-color: var(--ts-border); opacity: 0.4; }
.ts-theme-dark .border,
.ts-theme-dark .border-top,
.ts-theme-dark .border-bottom,
.ts-theme-dark .border-start,
.ts-theme-dark .border-end { border-color: var(--ts-border) !important; }
.ts-theme-dark .bg-white,
.ts-theme-dark .bg-light { background-color: var(--ts-surface) !important; color: var(--ts-text); }
.ts-theme-dark .text-dark,
.ts-theme-dark .text-body,
.ts-theme-dark .text-black { color: var(--ts-text) !important; }
.ts-theme-dark .text-muted,
.ts-theme-dark .text-secondary { color: var(--ts-text-muted) !important; }
.ts-theme-dark .nav-tabs { border-color: var(--ts-border); }
.ts-theme-dark .nav-tabs .nav-link { color: var(--ts-text-2); }
.ts-theme-dark .nav-tabs .nav-link.active {
    background-color: var(--ts-surface);
    color: var(--ts-text);
    border-color: var(--ts-border) var(--ts-border) var(--ts-surface);
}
.ts-theme-dark .ts-tituloPrincipal,
.ts-theme-dark .ts-tituloPrincipal2,
.ts-theme-dark .ts-tituloSecundaria { color: var(--ts-text); }

/* ---------- ÁREA PRINCIPAL (à direita da barra lateral) ---------- */
.ts-shell-main {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    height: 100vh;
}

/* ---------- TOPBAR (dentro da área principal) ---------- */
.ts-topbar {
    flex-shrink: 0;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 18px;
    background: var(--ts-surface);
    border-bottom: 1px solid var(--ts-border);
    box-shadow: var(--ts-topbar-shadow);
    position: relative;
    z-index: 30;
}

.ts-topbar-left,
.ts-topbar-right {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

/* ---------- AMBIENTE DE HOMOLOGAÇÃO (cor definida em HML) ---------- */
/* a cor de fundo é aplicada inline no <header>, valendo em tema claro e escuro */
.ts-topbar--hml { border-bottom-color: rgba(0, 0, 0, 0.15); }
.ts-topbar--hml .ts-topbar-app,
.ts-topbar--hml .ts-topbar-menu,
.ts-topbar--hml .ts-topbar-page,
.ts-topbar--hml .ts-topbar-sep { color: var(--ts-hml-fg, #fff); }
.ts-hml-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--ts-hml-fg, #fff);
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 8px;
    padding: 5px 10px;
    white-space: nowrap;
    flex-shrink: 0;
    animation: ts-hml-pulse 2.2s ease-in-out infinite;
}
.ts-hml-badge .bi { font-size: 13px; }
@keyframes ts-hml-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.55; }
}

/* título/breadcrumb do topo */
.ts-topbar-title {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-size: 15px;
}
.ts-topbar-app { color: var(--ts-text-muted); font-weight: 600; white-space: nowrap; }
.ts-topbar-menu {
    color: var(--ts-text-muted);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ts-topbar-sep { color: var(--ts-text-faint); font-size: 12px; }
.ts-topbar-page {
    color: var(--ts-text);
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ts-topbar-estab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    color: var(--ts-text-muted);
    background: var(--ts-surface-2);
    border: 1px solid var(--ts-border);
    border-radius: 8px;
    padding: 6px 10px;
    max-width: 220px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ts-menu-toggle,
.ts-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--ts-surface-2);
    border: 1px solid var(--ts-border);
    border-radius: 10px;
    font-size: 20px;
    color: var(--ts-text-2);
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.ts-menu-toggle:hover,
.ts-theme-toggle:hover {
    background: var(--color-bg-primary);
    color: #fff;
    border-color: var(--color-bg-primary);
    transform: scale(1.03);
}
.ts-menu-toggle-ico {
    line-height: 1;
    transition: transform 0.22s ease;
}
/* espelha o ícone quando a barra está recolhida (igual à v2) */
.ts-app-body.ts-collapsed .ts-menu-toggle-ico { transform: scaleX(-1); }

/* ---------- SELETOR DE APLICATIVOS ---------- */
.ts-appselect .ts-appselect-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--ts-surface-2);
    border: 1px solid var(--ts-border);
    border-radius: 10px;
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-bg-primary);
    cursor: pointer;
    transition: background 0.18s, border-color 0.18s;
}
.ts-appselect .ts-appselect-btn:hover {
    background: var(--ts-surface-hover);
    border-color: var(--ts-border-2);
}
.ts-appselect .ts-appselect-btn .bi { font-size: 16px; }
.ts-appselect .ts-appselect-btn::after { margin-left: 2px; color: var(--ts-text-faint); }

.ts-appselect-menu {
    background: var(--ts-surface);
    border: 1px solid var(--ts-border);
    border-radius: 14px;
    padding: 8px;
    min-width: 230px;
    box-shadow: var(--ts-shadow);
}
.ts-appselect-header {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--ts-text-faint);
    font-weight: 600;
    padding: 6px 10px 8px;
}
.ts-appselect-item {
    display: flex !important;
    align-items: center;
    gap: 10px;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 14px;
    font-weight: 500;
    color: var(--ts-text-2);
}
.ts-appselect-item .bi { font-size: 16px; color: var(--ts-text-muted); }
.ts-appselect-item:hover {
    background: var(--ts-surface-hover);
    color: var(--color-bg-primary);
}
.ts-appselect-item:hover .bi { color: var(--color-bg-primary); }
.ts-appselect-item.active {
    background: var(--color-bg-primary);
    color: #fff;
}
.ts-appselect-item.active .bi { color: #fff; }
.ts-appselect-check { margin-left: auto; }

/* ---------- PERFIL ---------- */
.ts-profile .ts-profile-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: transparent;
    border: none;
    border-radius: 12px;
    padding: 6px 10px 6px 6px;
    color: var(--ts-text-2);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.18s;
}
.ts-profile .ts-profile-btn:hover { background: var(--ts-surface-hover); }
.ts-profile .ts-profile-btn::after { color: var(--ts-text-faint); }

.ts-profile-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-bg-primary), #2b3ba6);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    flex-shrink: 0;
}

.ts-profile-menu {
    background: var(--ts-surface);
    border: 1px solid var(--ts-border);
    border-radius: 14px;
    padding: 8px;
    min-width: 250px;
    box-shadow: var(--ts-shadow);
}
.ts-profile-info { padding: 8px 12px 4px; }
.ts-profile-info-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--ts-text);
    margin-bottom: 6px;
}
.ts-profile-info-line {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    color: var(--ts-text-muted);
    padding: 2px 0;
}
.ts-profile-info-line .bi { color: var(--ts-text-faint); }
.ts-profile-link {
    display: flex !important;
    align-items: center;
    gap: 10px;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 14px;
    color: var(--ts-text-2);
}
.ts-profile-link .bi { font-size: 16px; color: var(--ts-text-muted); }
.ts-profile-link:hover { background: var(--ts-surface-hover); color: var(--color-bg-primary); }
.ts-profile-link:hover .bi { color: var(--color-bg-primary); }
.ts-profile-logout,
.ts-profile-logout .bi { color: #e63946 !important; }
.ts-profile-logout:hover { background: rgba(230, 57, 70, 0.08); }

/* ---------- SHELL / CONTEÚDO ---------- */
.ts-shell {
    display: flex;
    height: 100vh;
    position: relative;
}

.ts-content {
    flex: 1 1 auto;
    min-width: 0;
    background: var(--ts-surface-2);
    overflow: hidden;
}
.ts-content .ts-app-iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}

/* ---------- BARRA LATERAL (elemento único: logo + menu) ----------
   Fundo dinâmico = COR_FUNDO_PRINCIPAL da empresa (var --color-bg-primary) */
.ts-sidebar-menu {
    width: var(--ts-sidebar-w);
    flex-shrink: 0;
    background: var(--color-bg-primary);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform 0.25s ease, width 0.25s ease;
    z-index: 20;
}

/* cabeçalho com o logo (full/mini) e nome da aplicação */
.ts-sidebar-header {
    flex-shrink: 0;
    padding: 16px 12px;
    text-align: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}
.ts-sidebar-brand-link { display: block; }
.ts-sidebar-logo { height: auto; }
.ts-sidebar-logo-full {
    display: block;
    margin: 0 auto;
    width: 100%;
    max-width: 100%;
    max-height: 80px;
    object-fit: contain;
}
.ts-sidebar-logo-mini { display: none; max-width: 46px; margin: 0 auto; max-height: 46px; object-fit: contain; }
/* logo padrão (escuro) fica branco sobre a barra colorida */
.ts-sidebar-logo--invert { filter: brightness(0) invert(1); }

.ts-menu-title {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: rgba(255, 255, 255, 0.55);
    font-weight: 700;
    padding: 4px 12px 10px;
}
.ts-sidebar-app-name { margin: 0; padding: 10px 12px 0; }

.ts-menu-nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 10px 12px 14px;
}

.ts-menu-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border-radius: 10px;
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.18s, color 0.18s;
}
.ts-menu-item:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}
.ts-menu-item.active {
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    font-weight: 600;
}
.ts-menu-item.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 20px;
    border-radius: 3px;
    background: #fff;
}
.ts-menu-item .ts-menu-ico { font-size: 15px; opacity: 0.8; }
.ts-menu-item.active .ts-menu-ico { color: #fff; opacity: 1; }
.ts-menu-text { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.ts-menu-caret {
    font-size: 12px;
    color: inherit;
    opacity: 0.7;
    transition: transform 0.2s ease;
    padding: 4px;
    margin: -4px -4px -4px 0;
    border-radius: 6px;
}
.ts-menu-caret:hover { opacity: 1; background: rgba(255, 255, 255, 0.18); }
.ts-menu-group.open > .ts-menu-item .ts-menu-caret { transform: rotate(90deg); }

.ts-menu-sub {
    display: none;
    margin: 2px 0 6px 20px;
    padding-left: 12px;
    border-left: 1px solid rgba(255, 255, 255, 0.18);
    flex-direction: column;
    gap: 1px;
}
.ts-menu-group.open .ts-menu-sub { display: flex; }

.ts-menu-subitem {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 12px;
    border-radius: 8px;
    color: rgba(255, 255, 255, 0.72);
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    transition: background 0.18s, color 0.18s;
}
.ts-menu-subitem .ts-menu-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.45);
    flex-shrink: 0;
    transition: background 0.18s;
}
.ts-menu-subitem .ts-menu-subico {
    width: 18px;
    min-width: 18px;
    text-align: center;
    font-size: 14px;
    opacity: 0.75;
    flex-shrink: 0;
    transition: opacity 0.18s;
}
.ts-menu-subitem:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}
.ts-menu-subitem:hover .ts-menu-dot { background: #fff; }
.ts-menu-subitem:hover .ts-menu-subico { opacity: 1; }
.ts-menu-subitem.active {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-weight: 600;
}
.ts-menu-subitem.active .ts-menu-dot { background: #fff; }
.ts-menu-subitem.active .ts-menu-subico { opacity: 1; }

/* barra de rolagem discreta dentro da sidebar colorida */
.ts-menu-nav::-webkit-scrollbar { width: 6px; }
.ts-menu-nav::-webkit-scrollbar-track { background: transparent; }
.ts-menu-nav::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.25); border-radius: 6px; }

/* ---------- BARRA LATERAL RECOLHIDA (somente ícones) — desktop ---------- */
@media (min-width: 993px) {
    .ts-app-body.ts-collapsed .ts-menu-title,
    .ts-app-body.ts-collapsed .ts-menu-text,
    .ts-app-body.ts-collapsed .ts-menu-caret {
        display: none;
    }
    /* logo no topo: esconde a versão completa e mostra a mini quando recolhido */
    .ts-app-body.ts-collapsed .ts-sidebar-logo-full { display: none; }
    .ts-app-body.ts-collapsed .ts-sidebar-logo-mini { display: block; }
    .ts-app-body.ts-collapsed .ts-menu-sub {
        display: none !important;
    }
    .ts-app-body.ts-collapsed .ts-menu-item {
        justify-content: center;
        padding: 12px 0;
        gap: 0;
    }
    .ts-app-body.ts-collapsed .ts-menu-item .ts-menu-ico {
        font-size: 18px;
        opacity: 0.95;
    }
    .ts-app-body.ts-collapsed .ts-menu-item.active::before {
        left: -12px;
    }

    /* --- FLYOUT: rótulo clicável para itens SEM submenu (modo recolhido) ---
       mostra o nome do programa ao lado do ícone, permitindo clicar (o próprio
       <a> é o link), com a mesma experiência dos grupos com submenu. */
    .ts-app-body.ts-collapsed .ts-menu-nav > .ts-menu-item { position: relative; }

    /* ponte de hover (não cortada) para alcançar o rótulo sem perder o hover */
    .ts-app-body.ts-collapsed .ts-menu-nav > .ts-menu-item:hover::after {
        content: "";
        position: absolute;
        top: 0;
        left: 100%;
        width: 16px;
        height: 100%;
        z-index: 1;
    }

    .ts-app-body.ts-collapsed .ts-menu-nav > .ts-menu-item:hover .ts-menu-text {
        display: block;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: calc(100% + 8px);
        min-width: 160px;
        background: var(--color-bg-primary);
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 10px;
        padding: 10px 14px;
        color: #fff;
        font-size: 13px;
        font-weight: 600;
        text-align: left;
        white-space: nowrap;
        box-shadow: 0 24px 50px -15px rgba(0, 0, 0, 0.55);
        z-index: 60;
        animation: tsFlyIn 0.14s ease;
    }

    /* --- FLYOUT: submenus ao passar o mouse no grupo (modo recolhido) --- */
    /* permite o flyout "escapar" da barra lateral */
    .ts-app-body.ts-collapsed .ts-sidebar-menu,
    .ts-app-body.ts-collapsed .ts-menu-nav { overflow: visible; }
    .ts-app-body.ts-collapsed .ts-menu-group { position: relative; }

    /* ponte de hover no PRÓPRIO grupo (sem overflow, não é cortada):
       cobre o vão entre o ícone e o flyout para o hover não se perder */
    .ts-app-body.ts-collapsed .ts-menu-group:hover::after {
        content: "";
        position: absolute;
        top: 0;
        left: 100%;
        width: 16px;
        height: 100%;
        z-index: 1;
    }

    .ts-app-body.ts-collapsed .ts-menu-group:hover > .ts-menu-item {
        background: rgba(255, 255, 255, 0.16);
        color: #fff;
    }

    .ts-app-body.ts-collapsed .ts-menu-group:hover .ts-menu-sub {
        display: flex !important;
        position: absolute;
        top: -6px;
        left: calc(100% + 8px);
        margin: 0;
        min-width: 214px;
        max-height: 70vh;
        overflow-y: auto;
        background: var(--color-bg-primary);
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 12px;
        padding: 10px;
        box-shadow: 0 24px 50px -15px rgba(0, 0, 0, 0.55);
        z-index: 60;
        animation: tsFlyIn 0.14s ease;
    }
    /* cabeçalho do flyout com o nome do grupo */
    .ts-app-body.ts-collapsed .ts-menu-group:hover .ts-menu-sub::before {
        content: attr(data-title);
        display: block;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: rgba(255, 255, 255, 0.55);
        font-weight: 700;
        padding: 2px 10px 8px;
    }
    .ts-app-body.ts-collapsed .ts-menu-group:hover .ts-menu-sub .ts-menu-subitem {
        white-space: nowrap;
    }
}

@keyframes tsFlyIn {
    from { opacity: 0; transform: translateX(-6px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ---------- OVERLAY (mobile) ---------- */
.ts-sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 20, 40, 0.45);
    z-index: 1040;
}
.ts-sidebar-overlay.show { display: block; }

/* ---------- RESPONSIVO ---------- */
@media (max-width: 992px) {
    .ts-menu-toggle { display: inline-flex; }

    /* no mobile a barra vira menu deslizante em largura fixa (full-height),
       ignorando o estado recolhido do desktop */
    .ts-sidebar-menu {
        position: fixed;
        top: 0;
        left: 0;
        width: 260px;
        height: 100vh;
        transform: translateX(-100%);
        z-index: 1050;
        box-shadow: 6px 0 30px rgba(0, 0, 0, 0.14);
    }
    .ts-sidebar-menu.open { transform: translateX(0); }

    .ts-profile-name { display: none; }
    .ts-appselect-label { display: none; }
    .ts-topbar-estab { display: none; }
    .ts-topbar-menu,
    .ts-topbar-page,
    .ts-topbar-sep { display: none; }
}

@media (max-width: 480px) {
    .ts-topbar { padding: 0 12px; }
    .ts-topbar-title { display: none; }
}