@import url(../node_modules/bootstrap-icons/font/bootstrap-icons.min.css);
@import url(../node_modules/bootstrap/dist/css/bootstrap.min.css);
@import url(../node_modules/datatables.net-bs5/css/dataTables.bootstrap5.min.css);
@import url(../node_modules/datatables.net-colreorder-bs5/css/colReorder.bootstrap5.min.css);
@import url(../node_modules/datatables.net-columncontrol-bs5/css/columnControl.bootstrap5.min.css);
@import url(../node_modules/datatables.net-buttons-bs5/css/buttons.bootstrap5.min.css);
@import url(../node_modules/datatables.net-searchbuilder-bs5/css/searchBuilder.bootstrap5.min.css);
@import url(../node_modules/datatables.net-datetime/dist/dataTables.dateTime.min.css);
@import url(../dependencias/TabelaRedimencionavel/TabelaRedimencionavel.css);
@import url(scrollbar-width-color-theme-thin.css);
@import url(details-content-transition.css);
@import url(btn-explosao.css);
@import url(details-summary-transition.css);
@import url(webkit-progress-value.css);
@import url(column-count.css);
@import url(input-type-range-value.css);
@import url(title-after.css);
@import url(minhas-fontes/style.css);
@import url(btn-has-btn-check.css);
@import url(tabela-altura.css);
@import url(btn-links-externos.css);
@import url(modal-editor-yellow.css);
@import url(layout-configurator.css);
@import url(modal-config-links.css);
@import url(table-row-height.css);
@import url(btn-ia.css);
@import url(btn-ia-force.css);
@import url(dropdown-moderno.css);
@import url(info-quantidade-linhas.css);
@import url(popover-on-ancorado-ao-botao.css);
@import url(form-search-dropdown.css);
@import url(nav-tabs-nav-link.css);
@import url(btn-button-discreto-opositor-simples.css);
@import url(ordenabilizar.css);
@import url(container-guias-areas-favoritos.css);
@import url(modal-visualizador-dinamico.css);
@import url(formatacao-condicional.css);
@import url(campo-calculado.css);
@import url(popover-on-ancorado-select-ao-botao.css);
@import url(container-sessao-expirou.css);
@import url(../dependencias/CongeladorDeColunas/CongeladorDeColunas.css);


:root,
[data-bs-theme=light] {
  interpolate-size: allow-keywords;
  --star-cor-5: 230, 57, 70;
  --star-cor-4: 255, 107, 53;
  --star-cor-3: 244, 157, 12;
  --star-cor-2: 253, 183, 26;
  --star-cor-1: 255, 214, 10;
  --star-dark: #47535f;
  --star-dark-rgb: 71, 83, 95;
  --star-light: 157, 157, 155;
  --bs-secondary-bg: #eaebec;
  --bs-secondary-bg-rgb: 234, 235, 236;
  --bs-tertiary-bg: #f5f5f5;
  --bs-tertiary-bg-rgb: 245, 245, 245;
  --star-bg-laranga: #ff6a00;
  --star-bg-laranga-rgb: 255, 106, 0;
  --star-box-shadow-laranja: 0 0 0 .25rem rgba(var(--star-bg-laranga-rgb), .25);
  --bs-link-color: var(--bs-body-color);
  --bs-link-color-rgb: var(--bs-body-color-rgb);
  --bs-link-hover-color: var(--bs-body-color);
  --bs-link-hover-color-rgb: var(--bs-body-color-rgb);
  --bs-quaternary-bg: #fcfcfd;
  --bs-quaternary-bg-rgb: 252, 252, 253;
  --bs-quinary-bg: var(--bs-tertiary-bg);
  --bs-quinary-bg-rgb: var(--bs-tertiary-bg-rgb);
  --star-suave-cor-1: 255, 245, 194;
  --star-suave-cor-2: 254, 237, 198;
  --star-suave-cor-3: 252, 230, 194;
  --star-suave-cor-4: 255, 218, 204;
  --star-suave-cor-5: 249, 205, 209;
  --table-line-active: #fff6c7 !important;
}

[data-bs-theme=dark] {
  --table-line-active: #382f00 !important;
  --bs-secondary-bg: #2e2e2e;
  --bs-secondary-bg-rgb: 46, 46, 46;
  --bs-tertiary-bg: #252d3d;
  --bs-tertiary-bg-rgb: 33, 37, 41;
  --bs-quaternary-bg: #262b2f;
  --bs-quaternary-bg-rgb: 38, 43, 47;
  --bs-quinary-bg: #1e2535;
  --bs-quinary-bg-rgb: 30, 37, 53;

  --star-cor-1: 89, 82, 34;
  --star-cor-2: 88, 74, 38;
  --star-cor-3: 86, 67, 34;
  --star-cor-4: 89, 55, 44;
  --star-cor-5: 83, 42, 49;
  --star-suave-cor-1: var(--star-cor-1);
  --star-suave-cor-2: var(--star-cor-2);
  --star-suave-cor-3: var(--star-cor-3);
  --star-suave-cor-4: var(--star-cor-4);
  --star-suave-cor-5: var(--star-cor-5);
}

.list-group {
  --bs-list-group-bg: transparent;
}

.bg-body-quaternary {
  --bs-bg-opacity: 1;
  background-color: var(--bs-quaternary-bg) !important;
}

.bg-body-quinary {
  --bs-bg-opacity: 1;
  background-color: var(--bs-quinary-bg) !important;
}

.navbar {
  --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.85);
}

.bg-body-dark-star {
  background-color: var(--star-dark);
}

.navbar.bg-body-dark-star {
  --bs-navbar-color: rgb(250, 249, 248);
}

.border-secondary-azul {
  --bs-border-opacity: 1;
  border-color: #CBD5E1 !important;
}

.pagination {
  --bs-pagination-active-border-color: var(--star-dark);
  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(var(--star-dark-rgb), 0.25);
  --bs-pagination-active-bg: var(--star-dark);
}

main {
  zoom: 0.86;
}

.modal-content {
  zoom: 0.86;
}

.nav-pills {
  --bs-nav-pills-link-active-bg: var(--star-bg-laranga);
}

.text-star-1 {
  color: rgb(var(--star-cor-1)) !important;
}

.text-star-2 {
  color: rgb(var(--star-cor-2)) !important;
}

.text-star-3 {
  color: rgb(var(--star-cor-3)) !important;
}

.text-star-4 {
  color: rgb(var(--star-cor-4)) !important;
}

.text-star-5 {
  color: rgb(var(--star-cor-5)) !important;
}

.text-star {
  color: rgb(var(--star-bg-laranga-rgb)) !important;
}


body {
  font-family: Roboto, var(--bs-font-sans-serif);
}

.btn-close {
  --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.25);
}

.btn-outline-secondary {
  --bs-btn-color: #47535F;
  --bs-btn-border-color: #47535F;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #47535F;
  --bs-btn-hover-border-color: #47535F;
  --bs-btn-focus-shadow-rgb: 71, 83, 95;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #47535F;
  --bs-btn-active-border-color: #47535F;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #47535F;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #47535F;
  --bs-gradient: none;
}

[data-bs-theme="dark"] .btn-outline-secondary {
  --bs-btn-color: #9ca3af;
  --bs-btn-border-color: #6b7280;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #6b7280;
  --bs-btn-hover-border-color: #9ca3af;
  --bs-btn-focus-shadow-rgb: 156, 163, 175;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #4b5563;
  --bs-btn-active-border-color: #9ca3af;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.2);
  --bs-btn-disabled-color: #6b7280;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #4b5563;
  --bs-gradient: none;
}

.nav,
.nav-link:focus,
.nav-link:hover {
  --bs-nav-link-color: rgb(255, 62, 78);
  --bs-nav-link-hover-color: var(--bs-nav-link-color);
}

.nav-link:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 .25rem rgba(253, 110, 13, .25);
}

.mw-50 {
  min-width: 50%;
}

.mw-60 {
  min-width: 60%;
}

.vh-100 {
  height: 100dvh !important;
}

/* Classes para limitar texto a N linhas com ellipsis */
.line-clamp-1-box {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  overflow: hidden;
  text-overflow: ellipsis;
}

.line-clamp-2-box {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
}

.border-dashed {
  border-style: dashed !important;
}

.border-opacity-15 {
  --bs-border-opacity: .15 !important;
}

.transition-border-left-width-1 {
  transition-duration: .1s;
  transition-timing-function: ease-out;
  transition-property: border-left-width;
}

.dt-container {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%;
  width: 100%;

  .row {
    margin: 0 !important;
  }

  thead {
    box-shadow: 0px 1px 1px 0px silver;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 15 !important;
    /* Garantir que cabeçalho fique sempre acima dos botões */
  }

  &>div.row.dt-layout-table {
    flex-grow: 1;
    overflow: hidden;

    &>div {
      overflow: auto;
      height: 100%;
      margin: 0 !important;
      overscroll-behavior: contain;
    }

    thead>tr>th {
      cursor: grab;
      text-align: center;
      /* Garantir que títulos fiquem sempre acima dos botões */
      font-size: smaller;
      position: relative;
      z-index: 10;
    }

    /** Estado de ativo */
    thead>tr>th {

      &.dt-ordering-desc,
      &.dt-ordering-asc {
        background-color: rgb(222, 222, 222);
      }

      &:has(.dtcc-button_active) {
        background-color: rgb(222, 222, 222);
      }
    }

    tbody>tr:has(td:nth-child(1)>input:checked) {
      --bs-table-color-state: var(--bs-table-hover-color);
      --bs-table-bg-state: var(--bs-table-hover-bg);
    }

    tbody>tr:active>* {
      background-color: var(--table-line-active) !important;
    }

    tbody td:has(>.cadastro-render-button) {
      padding-block: 0 !important;
    }

    table:has(th:nth-child(1) input:checked) {

      thead {
        position: -webkit-sticky;
        position: sticky;
        z-index: 5;
        /* Aumentado para ficar acima dos botões */
        top: 0;
      }

      td:nth-child(1),
      th:nth-child(1) {
        position: -webkit-sticky;
        position: sticky;
        z-index: 11 !important;
        /* Primeira coluna (rótulos) sobre os botões */
        left: calc(var(--bs-gutter-x) * -0.5);
        box-shadow: inset -1px 0px #80808030;
      }

    }

  }

  &>div.dtcc-dropdown {
    opacity: 1;
    transition: opacity .15s ease-in-out, scale .15s ease-in-out;
    width: 300px;
    position: fixed;
    top: 0 !important;
    left: 0 !important;
    max-height: 90%;
    max-width: 90%;
    bottom: 0;
    right: 0;
    margin: auto;
    height: fit-content;
    overflow: auto;
    scale: 1;

    @starting-style {
      opacity: 0;
      scale: .6;
    }
  }

  .dt-layout-end>.dt-search>input {
    transition: all 150ms ease-out;

    &:not(:focus) {
      width: 0;
      padding: 0;
      border-color: transparent;
      margin: 0;
      transition: all 500ms ease-out;
    }
  }


  .dtsb-input {
    width: -webkit-fill-available !important;
    max-width: none !important;
  }

}

.tabelas-de-dados table {

  td:first-child,
  th:first-child {
    width: 40px;
    min-width: 40px;
    max-width: 40px;
  }
}

table thead tr {
  border-top-width: 0px !important;
  border-bottom-width: 0px !important;
}

table.celula-compacta td:has(input.form-select-multiplo) {
  padding: 0 !important;

  .form-select-multiplo {
    box-shadow: none;
  }
}

table.celula-compacta td:has(.conatiner-form-select-multiplo) {
  .conatiner-form-select-multiplo {
    border: none;
    width: unset;
    background-color: transparent;
    border-radius: 0;
    resize: none;
    padding: 0 !important;
  }
}

table.celula-compacta td:has(.btn-compacto-cell) {
  padding: 0 !important;

  .btn-compacto-cell {
    text-align: left;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: .25rem !important;
    padding-right: .25rem !important;
  }

  .btn-compacto-cell:focus-visible {
    box-shadow: inset 0 0 0 1px #80808080;
  }
}

.form-select-multiplo {
  border: none;
  border-radius: 0;
  box-shadow: none;
  background-color: transparent;
  padding: 0;
  background-image: none;
}

.conatiner-form-select-multiplo {
  width: 300px;
  min-width: 0;
  max-width: stretch;
}

div.dtsb-searchBuilder div.dtsb-logicContainer>button.btn.btn-secondary.dtsb-logic.dtsb-button>div {
  rotate: -90deg;
}

@media (prefers-reduced-motion: no-preference) {
  * {
    scroll-behavior: smooth;
  }
}

.form-control:focus,
.form-check-input:focus,
.form-select:focus {
  border-color: var(--star-bg-laranga);
  box-shadow: 0 0 0 0.25rem rgba(var(--star-bg-laranga-rgb), 0.25);
}

.form-check-input:checked {
  background-color: var(--star-bg-laranga);
  border-color: var(--star-bg-laranga);
}

.form-check-input[type=checkbox]:indeterminate {
  background-color: var(--star-bg-laranga);
  border-color: var(--star-bg-laranga);
}

.btn-star {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--star-bg-laranga);
  --bs-btn-border-color: var(--star-bg-laranga);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #ff7614;
  --bs-btn-hover-border-color: var(--star-bg-laranga);
  --bs-btn-focus-shadow-rgb: var(--star-bg-laranga-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #e86000;
  --bs-btn-active-border-color: var(--star-bg-laranga);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #ff8f40;
  --bs-btn-disabled-border-color: #ff8f40;
}

.btn-outline-star {
  --bs-btn-color: var(--star-bg-laranga);
  --bs-btn-border-color: var(--star-bg-laranga);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #ff7614;
  --bs-btn-hover-border-color: var(--star-bg-laranga);
  --bs-btn-focus-shadow-rgb: var(--star-bg-laranga-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #e86000;
  --bs-btn-active-border-color: var(--star-bg-laranga);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: var(--star-bg-laranga);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #ff8f40;
  --bs-gradient: none;
}

.border-star {
  border-color: rgba(var(--star-bg-laranga-rgb), var(--bs-border-opacity)) !important;
}


.navbar-expand .nav-link:not([data-bs-toggle="pill"]) {
  border-radius: 0.25rem;

  &.dropdown-toggle.show,
  &:active {
    background-color: #8080801a;
    transition-duration: 0s;
  }

}

.banner-star {
  /* keep container fully opaque so children (buttons/cards) remain nítidos */
  position: relative;
  transition: all 500ms ease-in-out;
  scale: 1;
  opacity: 1;

  /* the visible faded background is moved to a pseudo element so content stays sharp */
}

.banner-star::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('https://star.med.br/wp-content/uploads/2020/10/logo-HD-842x248-1.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 40%;
  opacity: .28;
  /* faded background */
  pointer-events: none;
  z-index: 0;
}

/* Cards dentro do banner: posicionados no canto esquerdo, maiores e quadrados */

.banner-cards {
  position: absolute;
  inset: 2rem auto auto 2rem;
  /* top/left offset dentro do banner */
  display: flex;
  flex-direction: row;
  /* lado a lado em telas maiores */
  gap: 1.25rem;
  align-items: stretch;
  z-index: 2;
}

/* Force banner interactive elements to be fully opaque (nítidos) */
.banner-star .clickable-card,
.banner-star .card,
.banner-star .card-body,
.banner-star i.bi,
.banner-star .card-text,
.banner-star .card-title {
  opacity: 1 !important;
  color: inherit;
}

.banner-cards .card-col {
  display: block;
  opacity: 1;
  width: 16rem;
  /* ajustado para melhor visibilidade */
  height: 16rem;
  flex: 0 0 auto;
  min-width: 12rem;
  /* limite mínimo para manter conteúdo legível */
}

.aparecer-em-100ms {
  opacity: 1;
  scale: 1;
  transition: opacity 100ms ease-in-out allow-discrete,
    scale 100ms ease-in-out allow-discrete;

  @starting-style {
    scale: .8;
    opacity: 0;
  }
}

.transform-translate-25-25 {
  transform: translate(25%, 25%) !important;
}

.clickable-card {
  outline-color: var(--star-bg-laranga);
  cursor: pointer;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: .5rem;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
  background: rgba(255, 255, 255, 0.95);
}

.clickable-card:focus,
.clickable-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.16);
}

/* ícone e texto maiores para melhor legibilidade */
.clickable-card .card-body i.bi {
  font-size: 2.5rem !important;
}

/* Em telas pequenas, reduzir tamanho e reposicionar */
@media (max-width: 1199.98px) {

  /* telas médias: ajustar para mais responsivo */
  .banner-cards {
    inset: 1.25rem auto auto 1.25rem;
    gap: 1rem;
  }

  .banner-cards .card-col {
    width: 13rem;
    height: 13rem;
  }
}

@media (max-width: 767.98px) {

  /* telas pequenas: empilha os cards e reduz tamanho */
  .banner-cards {
    position: relative;
    inset: auto;
    flex-direction: column;
    padding: 0.5rem;
    width: calc(100% - 1rem);
    left: 0.5rem;
  }

  .banner-cards .card-col {
    width: 100%;
    height: auto;
    /* permitir conteúdo determinar altura */
    aspect-ratio: 3 / 1.2;
    /* mais horizontal em tela pequena */
  }

  /* Tipografia e comportamento interno para evitar corte de texto */
  .clickable-card .card-body {
    padding: 1rem;
    gap: .5rem;
  }

  .clickable-card .card-body .card-title {
    font-size: clamp(1rem, 1.8vw, 1.05rem);
    line-height: 1.1;
    margin-bottom: .25rem;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .clickable-card .card-body .card-text {
    font-size: clamp(.85rem, 1.6vw, .95rem);
    color: var(--star-light);
    white-space: normal;
  }

  /* Em caso de textos muito longos: permitir quebra de linha e reduzir ícone */
  .clickable-card .d-flex.align-items-center>i.bi {
    flex: 0 0 auto;
    font-size: clamp(1.2rem, 2.2vw, 1.6rem) !important;
  }

  /* Em telas pequenas, empilhar conteúdo interno para caber */
  @media (max-width: 767.98px) {
    .clickable-card .card-body {
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
    }

    .clickable-card .text-start {
      flex: 1 1 auto;
      padding-right: .5rem;
    }
  }
}

.dropdown-item.active,
.dropdown-item:active {
  background-color: rgb(var(--star-cor-3));
}

.recolhivel {
  width: auto;
  transition:
    transform 150ms ease-in-out,
    z-index 150ms ease-in-out allow-discrete,
    opacity 75ms ease-in-out 75ms;

  &.recolher-barra {
    transform: translateX(calc(-100% - 80px));
    z-index: -1;
    opacity: 0;

    /* width: 0; */
    /* display: none !important; */
  }

  @starting-style {
    /* width: 0; */
  }
}

.recolhivel.recolher-barra {
  transition-delay: 300ms;
}

.menu-vertical {
  /* min-width: fit-content;
  width: 0;
  transition: all 150ms ease-in-out allow-discrete;

  &.recolher-barra,
  .recolher-barra {
    min-width: 0;
    display: none !important;
  } */

  @starting-style {
    min-width: 0;
  }

  .tab-pane .navbar-nav {
    --bs-nav-link-padding-x: 1rem;
    --bs-nav-link-padding-y: 0.4rem;
  }

  .nav-link:not([data-bs-toggle="pill"]) {

    box-shadow: none;

    &:hover,
    &:focus-visible {
      transition: none;
      background-color: rgba(127, 127, 127, .05);
    }

    &:active,
    &.active {
      background-color: rgba(127, 127, 127, .1);
    }
  }

  .tab-pane a.nav-link::before {
    content: "";
    width: 13px;
    height: 13px;
    display: inline-block;
    margin-right: .5rem;
    line-height: 0;

    background-color: currentColor;

    --icone-table: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 16 16'><path d='M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 2h-4v3h4zm0 4h-4v3h4zm0 4h-4v3h3a1 1 0 0 01-1zm-5 3v-3H6v3zm-5 0v-3H1v2a1 1 0 0 0 1 1zm-4-4h4V8H1zm0-4h4V4H1zm5-3v3h4V4zm4 4H6v3h4z'/></svg>") center / contain no-repeat;

    -webkit-mask: var(--icone-table);
    mask: var(--icone-table);
  }

  .nav.nav-pills>* {
    padding: 0;
    min-width: 4.2rem;
    --bs-nav-link-hover-color: var(--bs-navbar-color);
    --bs-nav-link-color: var(--bs-navbar-color);
    --bs-nav-pills-link-active-color: var(--bs-navbar-color);
    display: flex;
    flex-direction: column;

    &:hover,
    &:focus-visible {
      transition: none;
      background-color: rgba(127, 127, 127, .05);
    }

    &:active,
    &.active {
      background-color: rgba(127, 127, 127, .1);
      font-weight: bold;
    }

    small {
      font-size: .75em;
      hyphens: auto;
    }

  }

}

.menu-vertical {
  width: auto;
  min-width: fit-content;
  transition: min-width 150ms ease, opacity 150ms ease;
}

.menu-vertical.recolher-barra {
  width: 0;
  min-width: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  padding: 0 !important;
}

.before-none::before {
  content: none !important;
}

.si {
  font-size: larger;
  line-height: 0;
}

.draggable-active {

  [draggable="true"] {
    cursor: grab;
    transition: all 150ms ease;
  }

  [draggable="true"]:active {
    scale: 1.05;
    opacity: 0.5;
    cursor: grabbing;
  }
}

.text-bg-star {
  color: #fff !important;
  background-color: RGBA(var(--star-bg-laranga-rgb), var(--bs-bg-opacity, 1)) !important;
}

.tabela-periferica td:not(:is(td:nth-child(1))) {
  width: 0;
}


.largura-maxima-200 td {
  max-width: var(--col-width, 500px);
  /* Largura máxima aumentada para 500px para mostrar mais caracteres */
  min-width: var(--col-min-width, 100px);
  /* Largura mínima aumentada para 100px */
  width: var(--col-width, auto);
}

/* Primeira coluna (checkbox) tem largura fixa */
.grudar-primeira-coluna {

  th:nth-child(1),
  td:nth-child(1) {
    width: 50px;
    text-align: center !important;
  }
}

/* Add visible horizontal and vertical borders for peripheral tables */
.position {
  border-collapse: collapse;
}

.position th,
.position td {
  border: 1px solid #e9ecef;
  /* light border consistent with Bootstrap */
}

.position thead th {
  border-bottom-width: 2px;
  /* slightly thicker header separator */
}

/* Explode control column + subtle circular chevron button (option 1) */
.position th.controle-col,
.position td.td-explodir-col {
  width: 2.4rem;
  text-align: center;
  vertical-align: middle;
  padding: .25rem .2rem !important;
  position: sticky;
  left: 0;
  background: transparent;
  z-index: 3;
}

.td-explodir-col {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Per-cell explode button: positioned inside each TD at the right edge (option 1)
   - Buttons are visible by default and do not change table column count
   - Keep a small right padding on TDs so text doesn't flow under the button
*/
.position td {
  position: relative;
  /* ensure absolute children are positioned to the cell */
  padding-right: 2.2rem;
  /* reserve space for btn-explodir */
}

.position td .btn-explodir {
  position: absolute;
  right: .45rem;
  top: 50%;
  /* use CSS variable so rotation can be composed with vertical centering */
  --btn-translate: translateY(-50%);
  transform: var(--btn-translate);
  /* subtle white background with a thin border so the button reads as an independent control */
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
  padding: 0.14rem;
  width: 1.6rem;
  height: 1.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  opacity: 1;
  pointer-events: auto;
  transition: opacity .14s ease, transform .14s ease, background-color .12s ease, color .12s ease, border-color .12s ease, box-shadow .12s ease;
}

/* keep button accessible via keyboard: when button itself is focused, ensure visible focus ring */
.position td .btn-explodir:focus {
  outline: 0;
  box-shadow: 0 0 0 .18rem rgba(var(--star-bg-laranga-rgb), .18);
}

.btn-explodir {
  width: 1.3rem;
  height: 1.3rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: transparent;
  /* no visible square */
  color: rgba(0, 0, 0, 0.65);
  border: none;
  box-shadow: none;
  transition: transform .18s ease, background-color .12s ease, color .12s ease, box-shadow .12s ease;
  opacity: .95;
}

.btn-explodir i.bi {
  font-size: .75rem;
}

.btn-explodir:hover {
  background: rgba(var(--star-bg-laranga-rgb), .12);
  color: rgb(var(--star-cor-5));
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  border-color: rgba(var(--star-bg-laranga-rgb), .22);
}

.btn-explodir.expanded {
  /* preserve the translateY used for vertical centering and then rotate */
  transform: var(--btn-translate) rotate(180deg);
  background: rgba(var(--star-bg-laranga-rgb), .18);
  color: rgb(var(--star-cor-5));
  border-color: rgba(var(--star-bg-laranga-rgb), .28);
}

/* Ensure cells reserve space for absolute button and text doesn't wrap under it */
.position td,
.position th {
  position: relative;
  padding-right: 1.8rem;
  /* espaço reduzido para botão menor */
}

:has(input.ver-tabelas-colunas-inativas-do-sistema:not(:is(:checked))) {
  .inativo-opaco tr:has(input.atividade:not(:checked)) {
    display: none;
  }

  table.inativo-opaco:has(caption input.atividade:not(:checked)) {
    display: none;
  }
}

.inativo-opaco tr:has(input.atividade:not(:checked)) {
  opacity: 0.5;
}

table.inativo-opaco:has(caption input.atividade:not(:checked)) {
  opacity: 0.5;
}

/*
*:hover:not(:has(:hover)) {
    box-shadow: inset 0px 0px 0px 1px gold;
}
*/

form :invalid {
  border-color: var(--bs-form-invalid-border-color);
}

form :invalid:focus {
  border-color: var(--bs-form-invalid-border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
}

label:has(input:required) :where(div, span):not(:has(>*))::after {
  content: " *";
  color: red;
}

.toast {
  --bs-toast-font-size: .99rem;
  transform: translateX(0%);
  transition: all 150ms ease-in-out;
  height: fit-content;
  overflow: hidden;


  &.closing {
    height: 0;
    margin-bottom: 0;
  }

  @starting-style {
    height: 0;
    margin-bottom: 0;
  }
}

.form-range {
  touch-action: none;
}

.form-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(var(--star-bg-laranga-rgb), 0.25);
}

.form-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(var(--star-bg-laranga-rgb), 0.25);
}

.form-range::-webkit-slider-thumb {
  background-color: var(--star-bg-laranga);
}

label {
  user-select: none;
}

.imagem-previsualizacao-input-file {
  width: 5rem;
  height: 5rem;
  object-fit: contain;
}

label:has(.spinner-border) {
  cursor: wait;
}


.modo-tabela-em-lote:has(*:focus) {
  &>*:not(:has(*:focus)) {
    opacity: .65 !important;
    filter: grayscale(100%);
  }
}

.modo-tabela-em-lote form {
  max-width: 410px;

  &>div:nth-child(1) {
    flex: 1 0 0;

    label>div:nth-child(2) {
      flex: 1 0 0;
    }
  }
}

.formularios-individuais-lote {
  max-width: 0;
  opacity: 0;
  transition: all 300ms ease-in-out allow-discrete;

  & div:has(>input),
  & div:has(>select),
  & div:has(>textarea) {
    min-width: 50%;
  }

  &>* {
    min-width: min-content;
  }
}

.imagem-tabela {
  height: 1.75rem;
  width: 1.75rem;

  & img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
}

.valor-multi-select {
  background-color: color-mix(in srgb, rgb(var(--star-cor-3)) 70%, rgb(var(--star-cor-1)))
}

@property --nivel {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 0%;
}

.celula-atualizada {
  border-radius: .5rem;
  box-shadow: inset 0 0 3px 0 rgb(var(--bs-secondary-bg-rgb)) !important;
  background: linear-gradient(135deg,
      rgba(var(--bs-secondary-bg-rgb), .4) var(--nivel),
      rgba(var(--bs-secondary-bg-rgb), 1) calc(var(--nivel) + 50%),
      rgba(var(--bs-secondary-bg-rgb), .4) calc(var(--nivel) + 150%));
  animation: celula-atualizada 1s cubic-bezier(0.46, 0.03, 0.52, 0.96) infinite alternate;
}

@keyframes celula-atualizada {

  from {
    --nivel: -50%;
    transform: scale(0.95);
  }

  to {
    --nivel: 100%;
    transform: scale(1.05);
  }
}

[data-title-status] {

  &::before {
    content: attr(data-title-status);
    font-family: var(--bs-font-monospace);
    font-size: small;
    background-color: var(--star-bg-laranga);
    color: #fff;
    padding: 0.01rem 0.5rem;
    border-radius: 0.5rem;
    opacity: 0;
    pointer-events: none;
    transition: all 150ms ease-in-out;
    border: 1px solid rgb(var(--star-cor-4));
  }

  &:hover::before,
  &:focus::before {
    opacity: .85;
  }
}

.star-badge {
  position: relative;

  &::before {
    content: "";
    padding: .4rem;
    position: absolute;
    background-color: rgb(var(--star-cor-4));
    border: 2px solid white;
    border-radius: 50%;
    top: 0;
    left: 100%;
    transform: translate(-62%, -38%);
  }
}

.star-trianglo-badge {
  position: relative;

  &::before {
    content: url(data:image/svg+xml,%3Csvg%20width%3D%2218%22%20height%3D%2218%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2016%2016%22%3E%0A%20%20%3Cpath%20stroke%3D%22%23ffffff%22%20d%3D%22m15.52063%2C3.39672l-0.05428%2C9.25127c-0.02762%2C0.80302%20-0.65031%2C1.54201%20-1.77707%2C1.35298l-11.88796%2C-2.26309c-1.43002%2C-0.3178%20-1.75776%2C-2.07483%20-0.6978%2C-2.65898l12.37816%2C-6.97832c0.98239%2C-0.42068%202.03291%2C0.21067%202.03896%2C1.29614z%22%20fill%3D%22%23d73117%22%20%2F%3E%0A%3C%2Fsvg%3E);
    position: absolute;
    top: 0;
    left: 100%;
    transform: translate(-70%, -30%);
  }
}

.filtro-atual-aplicado {
  max-width: 180px;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  -webkit-box-orient: vertical;
}

.list-group {
  --bs-list-group-active-bg: var(--star-bg-laranga);
  --bs-list-group-active-border-color: var(--star-bg-laranga);
}

.bg-star-1 {
  --bs-list-group-color: var(--bs-warning-text-emphasis);
  --bs-list-group-bg: rgb(var(--star-cor-1));
  --bs-list-group-border-color: var(--bs-warning-border-subtle);
  --bs-list-group-action-hover-color: var(--bs-emphasis-color);
  --bs-list-group-action-hover-bg: rgb(var(--star-cor-2));
  --bs-list-group-action-active-color: var(--bs-emphasis-color);
  --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);
  --bs-list-group-active-color: var(--bs-warning-bg-subtle);
  --bs-list-group-active-bg: var(--bs-warning-text-emphasis);
  --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);
}

.btn-google>div {
  width: 100%;

  &>iframe {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

.container-progresso-tabelas {
  width: 100%;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 4;
  padding: .25rem;
  pointer-events: none;
}

.progresso-tabelas {
  height: .3rem;
  border-radius: 5rem;
  opacity: 1;
  background-color: rgb(var(--star-cor-1));

  transition-property: opacity, display, width;
  transition-timing-function: ease-in-out;
  transition-duration: 100ms;
  transition-delay: 0s;
  transition-behavior: allow-discrete;

  @starting-style {
    opacity: 1;
    width: 0;
  }
}

.progresso-tabelas.active {
  animation: progresso-tabelas-active 30s cubic-bezier(0, 0, 0.5, 1) forwards;
}

.progresso-tabelas:not(.active) {
  opacity: 0;
  display: none;
}

@keyframes progresso-tabelas-active {
  0% {
    width: 0%;
    background-color: rgb(var(--star-cor-1));
  }

  5% {
    width: 50%;
    background-color: rgb(var(--star-cor-2));
  }

  10% {
    width: 55%;
    background-color: rgb(var(--star-cor-3));
  }

  50% {
    width: 60%;
    background-color: rgb(var(--star-cor-4));
  }

  100% {
    width: 95%;
    background-color: rgb(var(--star-cor-5));
  }
}

.overscroll-behavior-contain {
  overscroll-behavior: contain;
}

.nao-quebrar-em-coluna {
  break-inside: avoid;
  page-break-inside: avoid;
  -webkit-column-break-inside: avoid;
}

/* Popup de opções para os cards */
.card-popup {
  background: #fff;
  border: 1px solid #e6e6e6;
  border-radius: .5rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  padding: .25rem;
  z-index: 9999;
  min-width: 12rem;
  overflow-y: hidden;
  overflow-x: hidden;
}

.card-popup-item {
  display: block;
  width: 100%;
  padding: .5rem .75rem;
  text-align: left;
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: .95rem;
}

.card-popup-item:hover,
.card-popup-item:focus {
  background: rgba(255, 106, 0, 0.08);
}

/* Styled popup: entrance animation, pointer arrow, separators and better hover/focus */
.card-popup {
  animation: popup-in .16s cubic-bezier(.2, .9, .2, 1) both;
  overflow-y: auto;
  overflow-x: hidden;
  padding: .25rem 0;
  max-height: 70vh;
}

.card-popup::before {
  /* small arrow pointing to the trigger element */
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 8px solid #fff;
  top: -8px;
  left: 1.25rem;
  filter: drop-shadow(0 -1px 0 rgba(0, 0, 0, 0.04));
}

.card-popup-item {
  padding: .55rem .9rem;
  transition: background-color .12s ease, transform .08s ease;
}

.card-popup-item+.card-popup-item {
  border-top: 1px solid rgba(0, 0, 0, 0.04);
}

.card-popup-item:focus {
  outline: none;
  background: rgba(255, 106, 0, 0.12);
  transform: translateX(2px);
}

.card-popup-item:hover {
  transform: translateX(2px);
}

/* Scrollbar customizada para o popup */
.card-popup::-webkit-scrollbar {
  width: 6px;
}

.card-popup::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.05);
  border-radius: 3px;
}

.card-popup::-webkit-scrollbar-thumb {
  background: rgba(255, 106, 0, 0.3);
  border-radius: 3px;
}

.card-popup::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 106, 0, 0.5);
}

/* Scrollbar para Firefox */
.card-popup {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 106, 0, 0.3) rgba(0, 0, 0, 0.05);
}

/* Indicador sutil de scroll quando necessário */
.card-popup::after {
  content: '';
  position: sticky;
  bottom: 0;
  display: block;
  height: 8px;
  background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.9));
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.card-popup.has-scroll {
  overflow-y: auto;
}

.card-popup.has-scroll::after {
  opacity: 1;
}

@keyframes popup-in {
  from {
    opacity: 0;
    transform: translateY(-6px) scale(.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Exploded row styling - cards menores e mais compactos */
.linha-explodida td {
  background: rgba(250, 250, 252, 0.95);
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  padding: .4rem .75rem !important;
  animation: explode-row-in .14s cubic-bezier(.2, .9, .2, 1) both;
}


.linha-explodida td>.p-2 {
  display: flex;
  gap: .4rem;
  flex-direction: column;
  /* stack vertically */
  align-items: stretch;
  padding: .3rem !important;
}

.linha-explodida .mb-1 {
  display: flex;
  gap: .35rem;
  align-items: stretch;
  flex-direction: column;
  /* label above value to avoid extremely long single-line values */
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.04);
  padding: .4rem .5rem;
  border-radius: .3rem;
  box-shadow: 0 3px 10px rgba(12, 12, 14, 0.04);
  width: 100%;
  font-size: .85rem;
}

.linha-explodida .mb-1 .explodido-label {
  color: rgb(var(--star-cor-5));
  font-size: .85rem;
  font-weight: 500;
}

.explodido-item {
  max-width: 80vw;
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  z-index: 1020;
}

.linha-explodida .mb-1 .explodido-valor,
.linha-explodida .mb-1 span {
  color: #3b3b3b;
  font-size: 1rem;
  white-space: normal;
  /* allow wrapping */
  overflow-wrap: anywhere;
  /* More aggressive breaking to avoid extremely long unbroken tokens */
  word-break: break-all;
  hyphens: auto;
}

/* Ensure links and inline elements inside exploded values also break */
.linha-explodida .explodido-valor,
.linha-explodida .explodido-valor *,
.linha-explodida .mb-1 span,
.linha-explodida .mb-1 span * {
  display: block;
  width: 100%;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-all !important;
  hyphens: auto !important;
}

@keyframes explode-row-in {
  from {
    opacity: 0;
    transform: translateY(-6px) scale(.995);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Responsive: stack exploded fields on narrow screens */
@media (max-width: 767.98px) {
  .linha-explodida td>.p-2 {
    flex-direction: column;
  }

  .linha-explodida .mb-1 {
    width: 100%;
  }
}

div#barrarecolhivel li {
  min-width: 220px;
}

div#barrarecolhivel {
  position: fixed;
  z-index: 1111;
  position-anchor: --pai-barrarecolhivel;
  position-area: right;
  left: 0;
  right: 0;
  height: auto;
  max-height: 96%;
}

*:has(>#barrarecolhivel) button.nav-link.active {
  anchor-name: --pai-barrarecolhivel;
}

@media (min-width: 768px) {
  .barra-vertical-alteracao-lote {

    & .formularios-individuais-lote {
      max-width: max-content;
      opacity: 1;

      @starting-style {
        max-width: 0;
        opacity: 0;
      }
    }
  }
}

@media (max-width: 768px) {

  .barra-vertical-alteracao-lote:has(:hover),
  .barra-vertical-alteracao-lote:has(:focus) {

    & .formularios-individuais-lote {
      max-width: max-content;
      opacity: 1;

      @starting-style {
        max-width: 0;
        opacity: 0;
      }
    }
  }
}


@media (max-width: 576px) {

  :has(>#barraVerticalDeNavegacao) {
    flex-direction: column-reverse;
  }

  div#barrarecolhivel {
    position-area: top;
  }

  nav#barraVerticalDeNavegacao {
    width: 100%;

    &>div {
      flex-direction: column-reverse;

      &>div.nav.nav-pills {
        flex-direction: row !important;

        &>:first-child {
          margin-left: auto;
        }

        &>:last-child {
          margin-right: auto;
        }
      }

      &>div.tab-content {
        max-height: 80% !important;
        /* width: 100%; */

        &.recolher-barra {
          height: 0;
        }

        @starting-style {
          height: 0;
        }
      }
    }

    &.menu-vertical {
      min-width: unset;
      word-break: auto-phrase;
    }
  }

}

.tab-content.bg-body-secondary .navbar-nav {
  --bs-nav-link-color: var(--star-dark);
}

.mvh-65 {
  max-height: 65vh;
  max-height: 65dvh;
}

/* Oculta o corpo da tabela enquanto uma coluna está sendo arrastada */
.col-arrastando tbody {
  opacity: 0.15;
  pointer-events: none;
  will-change: opacity;
  contain: layout style paint;
}

/* Durante o arraste, neutraliza os estilos das classes dtcr-moving para evitar repaints */
.col-arrastando tbody tr td.dtcr-moving {
  background-color: unset !important;
}

.col-arrastando tbody tr td.dtcr-moving-first {
  border-left-color: unset !important;
}

.col-arrastando tbody tr td.dtcr-moving-last {
  border-right-color: unset !important;
}

table.dataTable tbody tr td.dtcr-moving-first {
  border-left-color: var(--star-bg-laranga) !important;
}

table.dataTable tbody tr td.dtcr-moving-last {
  border-right-color: var(--star-bg-laranga) !important;
}

/* Column resize handle: small vertical bar on the right edge of TH to drag */
.col-resizer {
  position: absolute;
  top: 0;
  right: 0;
  width: 36px;
  /* larger hit area */
  height: 100%;
  cursor: col-resize;
  background: transparent;
  z-index: 6;

}



.col-resizer:hover {
  background: rgba(var(--star-bg-laranga-rgb), 0.12);
}

.col-resizer::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 6px;
  transform: translateX(-50%);
  width: 3px;
  height: calc(100% - 12px);
  background: rgba(0, 0, 0, 0.06);
  border-radius: 1px;
}

.col-resizer:hover::after,
.col-resizer:active::after {
  background: rgb(var(--star-cor-5));
  /* laranja */
}

/* On small screens the resizer becomes inline so it doesn't break layout */
@media (max-width: 480px) {
  .col-resizer {
    display: none;
  }
}

/* Regras originais para btn-explodir desativadas - sendo sobrescritas pelos arquivos específicos */

/* Forçar botões personalizados a ficarem dentro do fluxo normal da tabela */
.largura-maxima-200 td .btn-explodir-linha,
.dataTable td .btn-explodir-linha,
.largura-maxima-200 td .btn-modal-dados,
.dataTable td .btn-modal-dados,
.largura-maxima-200 td .btn-link-externo,
.dataTable td .btn-link-externo {
  position: static !important;
  transform: none !important;
  right: auto !important;
  top: auto !important;
  z-index: auto !important;
  margin: 0 !important;
}

/* Garantir larguras fixas para colunas de botões */
.largura-maxima-200 .coluna-explosao,
.dataTable .coluna-explosao,
.largura-maxima-200 .coluna-modal,
.dataTable .coluna-modal,
.largura-maxima-200 [class*="coluna-link-"],
.dataTable [class*="coluna-link-"] {
  width: 45px !important;
  min-width: 45px !important;
  max-width: 45px !important;
  --col-width: 45px !important;
  --col-min-width: 45px !important;
}

@media (max-width: 768px) {

  .largura-maxima-200 .coluna-explosao,
  .dataTable .coluna-explosao,
  .largura-maxima-200 .coluna-modal,
  .dataTable .coluna-modal,
  .largura-maxima-200 [class*="coluna-link-"],
  .dataTable [class*="coluna-link-"] {
    width: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
    --col-width: 35px !important;
    --col-min-width: 35px !important;
  }
}

@media (max-width: 480px) {

  .largura-maxima-200 .coluna-explosao,
  .dataTable .coluna-explosao,
  .largura-maxima-200 .coluna-modal,
  .dataTable .coluna-modal,
  .largura-maxima-200 [class*="coluna-link-"],
  .dataTable [class*="coluna-link-"] {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    --col-width: 32px !important;
    --col-min-width: 32px !important;
  }
}

/* keep the button visible and accessible when cell is focused */
.largura-maxima-200 td:focus-within .btn-explodir,
.dataTable td:focus-within .btn-explodir {
  opacity: 1;
}

/* Small tweak for very narrow screens: move button to end of line flow */
@media (max-width: 480px) {

  .largura-maxima-200 td,
  .dataTable td {
    padding-right: .75rem !important;
  }

  /* Regras originais para btn-explodir comentadas - usando as novas regras específicas */
  .largura-maxima-200 td .btn-explodir-linha,
  .dataTable td .btn-explodir-linha,
  .largura-maxima-200 td .btn-modal-dados,
  .dataTable td .btn-modal-dados,
  .largura-maxima-200 td .btn-link-externo,
  .dataTable td .btn-link-externo {
    position: static !important;
    transform: none !important;
    margin-left: 0 !important;
  }
}

button:has(button.botao-filho-some-sem-foco) {

  & button {
    transition: all 0.15s;
  }

  &:not(:hover):not(:focus):not(:has(*:focus)) button.botao-filho-some-sem-foco {
    opacity: 0;
  }
}

/* Larger touch area for resizer on touch devices */
@media (pointer: coarse),
(hover: none) {
  .col-resizer {
    width: 80px !important;
    right: 1px;
    /* extend hit area outside th */
    touch-action: none;
    /* allow JS to capture touch movement */
  }

  .col-resizer::after {
    left: 50%;
    width: 3px;
  }

  /* ensure it's visible as a touch affordance */
  .col-resizer:hover {
    background: rgba(var(--star-bg-laranga-rgb), 0.12) !important;
  }
}

.nivel-permissoes-modulo-cadastro tbody select {
  border-radius: 0.5rem;
  border: none;
  padding: .375rem .75rem .375rem .75rem;
  background-image: unset;
  background-color: transparent;
  /* box-shadow: 1px 1px 2px 1px rgba(127, 127, 127, .25); */

  &:has(option[value="1"]:checked) {
    background-color: rgb(var(--star-suave-cor-1)) !important;

    &:focus {
      box-shadow: 0 0 0 0.25rem rgba(var(--star-cor-1), 0.25);
    }
  }

  &:has(option[value="2"]:checked) {
    background-color: rgb(var(--star-suave-cor-3)) !important;

    &:focus {
      box-shadow: 0 0 0 0.25rem rgba(var(--star-cor-3), 0.25);
    }
  }

  &:has(option[value="3"]:checked) {
    background-color: rgb(var(--star-suave-cor-4)) !important;

    &:focus {
      box-shadow: 0 0 0 0.25rem rgba(var(--star-cor-4), 0.25);
    }
  }

  &:has(option[value="4"]:checked) {
    background-color: rgb(var(--star-suave-cor-5)) !important;

    &:focus {
      box-shadow: 0 0 0 0.25rem rgba(var(--star-cor-5), 0.25);
    }
  }
}

.balao-hover-content {
  position: fixed;
  inset: unset;
  position-area: bottom;
  position-try-order: most-height;
  position-try-fallbacks:
    span-left bottom,
    span-right bottom,
    top,
    span-right top,
    span-left top;
  z-index: 2001;
  max-width: 480px;
  min-width: 180px;
  max-height: stretch;
}

.field-sizing-content {
  field-sizing: content;
  width: calc-size(min-content, size + 1rem);
  min-width: 22ch;
  max-width: 500px;
}

@property --rotacao-cor-fundo-login {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}

@keyframes animateVariable {
  from {
    --rotacao-cor-fundo-login: 240deg;
  }

  to {
    --rotacao-cor-fundo-login: 600deg;
  }
}

.back-container-login {
  background: linear-gradient(var(--rotacao-cor-fundo-login),
      rgb(var(--star-cor-3)) 25%,
      rgba(var(--star-cor-1), .5) 100%);
  opacity: 1;
  transition: 500ms;

  animation: animateVariable 90s infinite linear;

  @starting-style {
    opacity: 0;
  }
}

.container-login-form {
  scale: 1;
  transition: 500ms;

  @starting-style {
    transform: translateY(10rem);
    scale: .5;
  }
}

.scale-hover-star-125 {
  transition: scale 200ms ease-in-out, background-color 100ms ease-in-out;

  &:hover {
    scale: 1.25;
    --bs-btn-bg: rgb(var(--star-cor-1));
  }

  &:active {
    scale: 1.20;
    transition: scale 10ms ease-in-out, background-color 100ms ease-in-out;
    --bs-btn-bg: rgb(var(--star-cor-2));
  }

}

/* Animação para status em processamento */
@keyframes pulse {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.5;
  }
}

.word-break-all {
  word-break: break-all;
}

table.sumir-conteudo-linhas-tabela tbody,
table.sumir-conteudo-linhas-tabela tbody * {
  user-select: none !important;
  pointer-events: none !important;
  background-color: rgb(var(--bs-secondary-bg-rgb)) !important;
  color: transparent !important;
}

.componente-pulsar-opaco {
  animation: componente-pulsar-opaco 500ms alternate infinite ease-in-out;
}

@keyframes componente-pulsar-opaco {
  from {
    opacity: .2;
  }

  to {
    opacity: .6;
  }
}

.cursor-wait {
  cursor: wait !important;
}

.filter-grayscale-100 {
  filter: grayscale(100%);
}

.ta-sync {
  width: 100%;
  box-sizing: border-box;
  resize: vertical;
  /* ou both, se quiser */
}

.item-lista-search-crescer {
  overflow: hidden;

  transition-behavior: allow-discrete;
  transition-duration: 150ms;
  transition-timing-function: ease-out;
  transition-property: height, opacity, display, padding-bottom, padding-top;

  &.d-none {
    height: 0;
    opacity: 0;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  @starting-style {
    height: 0;
    opacity: 0;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

main>* {
  transition: all 300ms ease-out;

  @starting-style {
    opacity: 0;
  }
}

@starting-style {
  .crescer-suave {
    opacity: 0;
    scale: .8;
  }
}

.botao-acao:not(:hover) {
  background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%) !important;
}

/* Estilos para filtros de coluna
 inputs de filtro avançado */
table.dataTable tbody tr:has(td[data-dt-column]),
table.dataTable tbody tr td[data-dt-column] {
  height: 24px !important;
  min-height: 24px !important;
}

td[data-dt-column] {
  padding: 0 !important;
  margin: 0 !important;
  vertical-align: top !important;
  line-height: 1 !important;
  overflow: hidden !important;
}

td[data-dt-column] input[type="text"],
td[data-dt-column] input[type="search"] {
  border: none !important;
  border-radius: 0 !important;
  cursor: text !important;
  transition: background-color 200ms ease-in-out, box-shadow 200ms ease-in-out;
  margin: 0 !important;
  box-sizing: border-box !important;
  display: block !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: normal !important;
}

/* Colorir quando há valor salvo no input - usando atributo data-has-value */
td[data-dt-column] input[type="text"][data-has-value="true"],
td[data-dt-column] input[type="search"][data-has-value="true"] {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td[data-dt-column].has-filter-value span.dtcc,
table.dataTable thead th[data-dt-column].has-filter-value span.dtcc {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td[data-dt-column].has-filter-value span.dtcc div.dtcc-content,
table.dataTable thead th[data-dt-column].has-filter-value span.dtcc div.dtcc-content {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable thead th[data-dt-column].has-filter-value span.dtcc div.dtcc-search-title {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td[data-dt-column].has-filter-value span.dtcc div.dtcc-searchText,
table.dataTable thead th[data-dt-column].has-filter-value span.dtcc div.dtcc-searchText {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td[data-dt-column].has-filter-value span.dtcc div.dtcc-searchText>div,
table.dataTable thead th[data-dt-column].has-filter-value span.dtcc div.dtcc-searchText>div {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

/* Garantir que não haja espaçamento extra no topo/rodapé dos títulos de busca */
table.dataTable span.dtcc div.dtcc-search-title,
table.dataTable thead th span.dtcc div.dtcc-search-title,
table.dataTable thead td span.dtcc div.dtcc-search-title,
table.dataTable tbody td span.dtcc div.dtcc-search-title {
  margin: 0 !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Hover/focus do input: pintar o próprio input (posicionado absolute) para parecer que o filtro todo fica cinza */
table.dataTable span.dtcc div.dtcc-searchText>div input:hover,
table.dataTable span.dtcc div.dtcc-searchText>div input:focus,
table.dataTable span.dtcc div.dtcc-searchDateTime>div input:hover,
table.dataTable span.dtcc div.dtcc-searchDateTime>div input:focus,
table.dataTable tbody td[data-dt-column] input:hover,
table.dataTable tbody td[data-dt-column] input:focus,
table.dataTable thead th[data-dt-column] input:hover,
table.dataTable thead th[data-dt-column] input:focus {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td[data-dt-column].has-filter-value input[type="text"],
table.dataTable tbody td[data-dt-column].has-filter-value input[type="search"],
table.dataTable thead th[data-dt-column].has-filter-value input[type="text"],
table.dataTable thead th[data-dt-column].has-filter-value input[type="search"] {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td.has-filter-value span.dtcc,
table.dataTable thead th.has-filter-value span.dtcc {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td.has-filter-value span.dtcc div.dtcc-content,
table.dataTable thead th.has-filter-value span.dtcc div.dtcc-content {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td.has-filter-value span.dtcc div.dtcc-search,
table.dataTable thead th.has-filter-value span.dtcc div.dtcc-search {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td.has-filter-value span.dtcc div.dtcc-searchText,
table.dataTable thead th.has-filter-value span.dtcc div.dtcc-searchText {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td.has-filter-value span.dtcc div.dtcc-searchText>div,
table.dataTable thead th.has-filter-value span.dtcc div.dtcc-searchText>div {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td.has-filter-value input[type="text"],
table.dataTable tbody td.has-filter-value input[type="search"],
table.dataTable thead th.has-filter-value input[type="text"],
table.dataTable thead th.has-filter-value input[type="search"] {
  background-color: rgba(157, 157, 155, 0.12) !important;
}

table.dataTable tbody td span.dtcc div.dtcc-searchText {
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  display: flex !important;
  flex-direction: column !important;
  margin: 0 !important;
  padding: 0 !important;
}

table.dataTable tbody td span.dtcc div.dtcc-searchText>div {
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  display: flex !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
}

table.dataTable tbody td span.dtcc div.dtcc-searchText input {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  z-index: 0 !important;
}

/* Suporte para campos de data/hora */
table.dataTable tbody td span.dtcc div.dtcc-searchDateTime {
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  display: flex !important;
  flex-direction: column !important;
  margin: 0 !important;
  padding: 0 !important;
}

table.dataTable tbody td span.dtcc div.dtcc-searchDateTime>div {
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  display: flex !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
}

table.dataTable tbody td span.dtcc div.dtcc-searchDateTime input {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  z-index: 0 !important;
}

/* Substituir SVG do columnControl pelo ícone bi-funnel do Bootstrap Icons */
.dtcc-search-type-icon {
  font-size: 0 !important;
  /* Esconde conteúdo inline */
}

.dtcc-search-type-icon svg {
  display: none !important;
}

.dtcc-search-type-icon::before {
  content: "\F3E1" !important;
  font-family: "bootstrap-icons" !important;
  font-size: 16px !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

/* Forçar ícone de filtro sempre à esquerda em todos os tipos de campo */
table.dataTable span.dtcc div.dtcc-searchText>div div.dtcc-search-type-icon,
table.dataTable span.dtcc div.dtcc-searchDateTime>div div.dtcc-search-type-icon {
  left: 0 !important;
  right: auto !important;
  z-index: 10;
}

table.dataTable span.dtcc div.dtcc-searchText>div select,
table.dataTable span.dtcc div.dtcc-searchDateTime>div select {
  left: 0 !important;
  right: auto !important;
  z-index: 20 !important;
  padding: 0;
}

table.dataTable span.dtcc div.dtcc-searchText>div span.dtcc-search-clear,
table.dataTable span.dtcc div.dtcc-searchDateTime>div span.dtcc-search-clear {
  left: auto !important;
  right: 8px !important;
  z-index: 10;
}

table.dataTable span.dtcc div.dtcc-searchText>div input,
table.dataTable span.dtcc div.dtcc-searchDateTime>div input {
  padding-left: 24px !important;
  padding-right: 32px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Input de data/hora especificamente */
table.dataTable span.dtcc div.dtcc-searchDateTime>div input.dt-datetime {
  padding-left: 28px !important;
  text-align: left !important;
}

/* Cascata: oculta opções filtradas por pai sem conflito com d-none da busca */
.cascata-d-none {
  display: none !important;
}

/* Cabeçalho e rodapé compactos nos modais */
.modal-header {
  padding-top: .15rem;
  padding-bottom: .15rem;
  background-color: var(--bs-tertiary-bg);
}

.modal-header .modal-title {
  flex: 1;
  text-align: center;
}

.modal-footer {
  padding-top: .15rem !important;
  padding-bottom: .15rem !important;
  gap: .375rem !important;
  min-height: unset;
}

/* Tooltip branco dos botões TBG */
.tooltip-claro .tooltip-inner {
  background-color: #fff;
  color: #212529;
  border: 1px solid #dee2e6;
  border-radius: .5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
  font-size: .8125rem;
  max-width: 260px;
}

.tooltip-claro .tooltip-arrow {
  display: none;
}

/* ── Tema Dark — SGS Portal ──────────────────────────────────────────────── */
[data-bs-theme=dark] {
  /* ── Superfícies── */
  --bs-body-bg: #2b2b2b;
  --bs-body-bg-rgb: 43, 43, 43;

  --bs-secondary-bg: #333333;
  --bs-secondary-bg-rgb: 51, 51, 51;

  --bs-tertiary-bg: #3a3a3a;
  --bs-tertiary-bg-rgb: 58, 58, 58;

  --bs-quaternary-bg: #303030;
  --bs-quaternary-bg-rgb: 48, 48, 48;

  --bs-quinary-bg: #242424;
  --bs-quinary-bg-rgb: 36, 36, 36;

  /* ── Bordas ── */
  --bs-border-color: rgba(255, 255, 255, .11);
  --bs-border-color-translucent: rgba(255, 255, 255, .09);

  /* ── Texto ── */
  --bs-body-color: rgba(255, 255, 255, .87);
  --bs-body-color-rgb: 255, 255, 255;
  --bs-secondary-color: rgba(255, 255, 255, .55);
  --bs-tertiary-color: rgba(255, 255, 255, .38);
  --bs-emphasis-color: #fff;
  --bs-emphasis-color-rgb: 255, 255, 255;

  /* ── Variáveis semânticas── */
  --sgs-sidebar-bg: #1a1a1a;
  --sgs-panel-bg: #333333;
  --sgs-panel-border: rgba(255, 255, 255, .09);
  --sgs-panel-hover: rgba(255, 255, 255, .06);

  /* agrupamentos / tags */
  --sgs-tag-bg: rgba(232, 128, 26, .18);
  --sgs-tag-color: #f5a455;
  --sgs-tag-border: rgba(232, 128, 26, .3);

  /* abas */
  --sgs-tab-color: rgba(255, 255, 255, .52);
  --sgs-tab-active-bg: #2a2a2a;
  --sgs-tab-active-border: #e8801a;
  --sgs-tab-hover-bg: rgba(255, 255, 255, .05);
}

/* navbar */
[data-bs-theme="dark"] .navbar {
  background-color: rgba(var(--bs-quinary-bg-rgb), 1) !important;
  border-bottom: 1px solid var(--sgs-panel-border);
}

[data-bs-theme="dark"] .navbar .dropdown-menu {
  background-color: var(--sgs-panel-bg);
  border: 1px solid var(--sgs-panel-border);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .35);
}

[data-bs-theme="dark"] .navbar .dropdown-item {
  color: rgba(255, 255, 255, .78);
}

[data-bs-theme="dark"] .navbar .dropdown-item:hover {
  background-color: var(--sgs-panel-hover);
  color: #fff;
}

[data-bs-theme="dark"] .navbar .dropdown-divider {
  border-color: var(--sgs-panel-border);
}

/* sidebar */
[data-bs-theme="dark"] nav#barraVerticalDeNavegacao,
[data-bs-theme="dark"] .tab-content.bg-body-secondary {
  background-color: var(--sgs-sidebar-bg) !important;
  border-right: 1px solid var(--sgs-panel-border);
}

[data-bs-theme="dark"] nav#barraVerticalDeNavegacao .nav-link:hover {
  color: rgba(255, 255, 255, .9) !important;
  background-color: var(--sgs-panel-hover) !important;
}

[data-bs-theme="dark"] nav#barraVerticalDeNavegacao .nav-link.active {
  color: #fff !important;
  background-color: rgba(232, 128, 26, .15) !important;
  border-right: 2px solid #e8801a;
}

/* painel recolhível */
[data-bs-theme="dark"] #barrarecolhivel,
[data-bs-theme="dark"] div#barrarecolhivel {
  background-color: var(--sgs-panel-bg) !important;
  border: 1px solid var(--sgs-panel-border) !important;
  box-shadow: 4px 0 20px rgba(0, 0, 0, .3);
}

[data-bs-theme="dark"] #barrarecolhivel .nav-link {
  color: rgba(255, 255, 255, .78) !important;
}

[data-bs-theme="dark"] #barrarecolhivel .nav-link:hover {
  background-color: var(--sgs-panel-hover) !important;
  color: #fff !important;
}

/* tabela */
table.dataTable.table thead th {
  background-color: var(--bs-tertiary-bg);
}

[data-bs-theme="dark"] table.dataTable tbody tr:hover>* {
  background-color: rgba(232, 128, 26, .08) !important;
  color: rgba(255, 255, 255, .95) !important;
}

[data-bs-theme="dark"] table.dataTable thead input:focus,
[data-bs-theme="dark"] .dt-search input:focus {
  border-color: #e8801a !important;
  box-shadow: 0 0 0 .2rem rgba(232, 128, 26, .2) !important;
}

[data-bs-theme="dark"] table.dataTable thead th.dt-ordering-asc,
[data-bs-theme="dark"] table.dataTable thead th.dt-ordering-desc,
[data-bs-theme="dark"] table.dataTable thead th:has(.dtcc-button_active) {
  background-color: var(--bs-tertiary-bg) !important;
  background-image: linear-gradient(rgba(232, 128, 26, .15), rgba(232, 128, 26, .15)) !important;
  border-bottom: 0 !important;
  box-shadow:
    inset 0 -1px 0 0 #e8801a;
  /* borda inferior  */
  color: #fff !important;
}

/* ── agrupamentos / tags── */
[data-bs-theme="dark"] .valor-multi-select,
[data-bs-theme="dark"] span.valor-multi-select {
  background-color: var(--sgs-tag-bg) !important;
  color: var(--sgs-tag-color) !important;
  border: 1px solid var(--sgs-tag-border) !important;
}

[data-bs-theme="dark"] .badge.bg-secondary,
[data-bs-theme="dark"] .badge.text-bg-secondary {
  background-color: rgba(255, 255, 255, .11) !important;
  color: rgba(255, 255, 255, .85) !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
}

/* rowGroup*/
[data-bs-theme="dark"] table.dataTable tr.dtrg-group td {
  background-color: rgba(232, 128, 26, .1) !important;
  color: var(--sgs-tag-color) !important;
  border-top: 1px solid rgba(232, 128, 26, .18) !important;
  border-bottom: 1px solid rgba(232, 128, 26, .18) !important;
  font-weight: 600;
}

/* paginação */
[data-bs-theme="dark"] .dt-paging .page-link,
[data-bs-theme="dark"] .pagination .page-link {
  background-color: var(--bs-secondary-bg) !important;
  border-color: rgba(255, 255, 255, .1) !important;
  color: rgba(255, 255, 255, .72) !important;
}

[data-bs-theme="dark"] .dt-paging .page-link:hover,
[data-bs-theme="dark"] .pagination .page-link:hover {
  background-color: var(--bs-tertiary-bg) !important;
  color: #fff !important;
}

[data-bs-theme="dark"] .dt-paging .page-item.active .page-link,
[data-bs-theme="dark"] .pagination .page-item.active .page-link {
  background-color: #e8801a !important;
  border-color: #e8801a !important;
  color: #fff !important;
}

[data-bs-theme="dark"] .dt-paging .page-item.disabled .page-link,
[data-bs-theme="dark"] .pagination .page-item.disabled .page-link {
  background-color: var(--bs-body-bg) !important;
  border-color: rgba(255, 255, 255, .06) !important;
  color: rgba(255, 255, 255, .28) !important;
}

/* ── progress bar laranja── */
[data-bs-theme="dark"] .progress {
  background-color: rgba(255, 255, 255, .1) !important;
}

[data-bs-theme="dark"] .progress-bar {
  background-color: #e8801a !important;
}

[data-bs-theme="dark"] progress::-webkit-progress-bar {
  background-color: rgba(255, 255, 255, .1);
  border-radius: .5rem;
}

[data-bs-theme="dark"] progress::-webkit-progress-value {
  background-color: #e8801a;
  border-radius: .5rem;
}

[data-bs-theme="dark"] progress::-moz-progress-bar {
  background-color: #e8801a;
}

/* cards */
[data-bs-theme="dark"] .clickable-card {
  background: var(--bs-secondary-bg) !important;
  border: 1px solid rgba(255, 255, 255, .07) !important;
  color: rgba(255, 255, 255, .85) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .2);
}

[data-bs-theme="dark"] .clickable-card:hover {
  background: var(--bs-tertiary-bg) !important;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .35) !important;
  transform: translateY(-2px);
}

[data-bs-theme="dark"] .clickable-card .card-body,
[data-bs-theme="dark"] .clickable-card .card-title,
[data-bs-theme="dark"] .clickable-card .card-text {
  color: rgba(255, 255, 255, .85) !important;
}

/* botão de ação */
[data-bs-theme="dark"] .botao-acao:not(:hover) {
  background: linear-gradient(135deg, var(--bs-secondary-bg) 0%, var(--bs-tertiary-bg) 100%) !important;
  color: rgba(255, 255, 255, .85) !important;
  border-color: rgba(255, 255, 255, .1) !important;
}

/* popups / popovers */
[data-bs-theme="dark"] .card-popup {
  background: var(--sgs-panel-bg) !important;
  border: 1px solid var(--sgs-panel-border) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .35) !important;
}

[data-bs-theme="dark"] .card-popup::before {
  border-bottom-color: var(--sgs-panel-bg) !important;
}

[data-bs-theme="dark"] .card-popup-item {
  color: rgba(255, 255, 255, .78) !important;
}

[data-bs-theme="dark"] .card-popup-item:hover {
  background: var(--sgs-panel-hover) !important;
  color: #fff !important;
}

/* linha explodida */
[data-bs-theme="dark"] .linha-explodida td {
  background: rgba(20, 20, 20, .97) !important;
}

[data-bs-theme="dark"] .linha-explodida .mb-1 {
  background: var(--sgs-panel-bg) !important;
  border: 1px solid var(--sgs-panel-border) !important;
  color: rgba(255, 255, 255, .85) !important;
}

[data-bs-theme="dark"] .linha-explodida .mb-1 .explodido-valor,
[data-bs-theme="dark"] .linha-explodida .mb-1 span {
  color: rgba(255, 255, 255, .85) !important;
}

/* hover row */
:root[data-bs-theme=dark] {
  --dt-row-hover: 255, 255, 255;
  --dt-row-stripe: 255, 255, 255;
  --dt-column-ordering: 255, 255, 255;
}

/* navbar link */
[data-bs-theme="dark"] .navbar-expand .nav-link:not([data-bs-toggle="pill"]):active,
[data-bs-theme="dark"] .navbar-expand .nav-link:not([data-bs-toggle="pill"]):hover {
  background-color: var(--sgs-panel-hover) !important;
}

/* inputs */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background-color: var(--bs-quinary-bg) !important;
  border-color: rgba(255, 255, 255, .14) !important;
  color: rgba(255, 255, 255, .85) !important;
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
  background-color: var(--bs-secondary-bg) !important;
  border-color: #e8801a !important;
  color: #fff !important;
  box-shadow: 0 0 0 .2rem rgba(232, 128, 26, .22) !important;
}

/* notificações */
[data-bs-theme="dark"] #painel-notificacoes,
[data-bs-theme="dark"] .painel-notificacoes {
  background-color: var(--sgs-panel-bg) !important;
  border: 1px solid var(--sgs-panel-border) !important;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .4) !important;
}

[data-bs-theme="dark"] #painel-notificacoes .notificacao-item {
  border-bottom: 1px solid var(--sgs-panel-border) !important;
}

[data-bs-theme="dark"] #painel-notificacoes .notificacao-item:hover {
  background-color: var(--sgs-panel-hover) !important;
}

/* botão explodir */
[data-bs-theme="dark"] .position td .btn-explodir {
  background: rgba(20, 20, 20, .95) !important;
  border-color: rgba(255, 255, 255, .1) !important;
  color: rgba(255, 255, 255, .65) !important;
}

/* scrollbar */
[data-bs-theme="dark"] {
  scrollbar-color: rgba(255, 255, 255, .18) transparent;
}

[data-bs-theme="dark"] ::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

[data-bs-theme="dark"] ::-webkit-scrollbar-track {
  background: transparent;
}

[data-bs-theme="dark"] ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .16);
  border-radius: 3px;
}

[data-bs-theme="dark"] ::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, .28);
}

/* barra de carregamento de tabelas */
[data-bs-theme="dark"] .progresso-tabelas {
  background-color: var(--star-bg-laranga) !important;
}

@keyframes progresso-tabelas-active-dark {
  0% {
    width: 0%;
    background-color: var(--star-bg-laranga);
  }

  5% {
    width: 50%;
    background-color: var(--star-bg-laranga);
  }

  10% {
    width: 55%;
    background-color: var(--star-bg-laranga);
  }

  50% {
    width: 60%;
    background-color: var(--star-bg-laranga);
  }

  100% {
    width: 95%;
    background-color: var(--star-bg-laranga);
  }
}

[data-bs-theme="dark"] .progresso-tabelas.active {
  animation: progresso-tabelas-active-dark 30s cubic-bezier(0, 0, 0.5, 1) forwards;
}

/* ── abas de agrupamento / favoritos (NOVO) ── */
[data-bs-theme="dark"] .nav-tabs .nav-link {
  color: var(--sgs-tab-color) !important;
  border-color: transparent !important;
  background-color: transparent !important;
}

[data-bs-theme="dark"] .nav-tabs .nav-link:hover {
  color: rgba(255, 255, 255, .85) !important;
  background-color: var(--sgs-tab-hover-bg) !important;
  border-color: transparent !important;
}

[data-bs-theme="dark"] .nav-tabs .nav-link.active {
  color: #fff !important;
  background-color: var(--sgs-tab-active-bg) !important;
  border-top-color: var(--sgs-tab-active-border) !important;
  border-left-color: rgba(255, 255, 255, .1) !important;
  border-right-color: rgba(255, 255, 255, .1) !important;
  border-bottom-color: var(--sgs-tab-active-bg) !important;
}

[data-bs-theme="dark"] .nav-tabs {
  border-bottom-color: rgba(255, 255, 255, .1) !important;
}

/* nav-underline (roteador, preferências) */
[data-bs-theme="dark"] .nav-underline .nav-link {
  color: var(--sgs-tab-color) !important;
}

[data-bs-theme="dark"] .nav-underline .nav-link:hover {
  color: rgba(255, 255, 255, .85) !important;
}

[data-bs-theme="dark"] .nav-underline .nav-link.active {
  color: #fff !important;
  border-bottom-color: #e8801a !important;
}

/* container-favoritos */
[data-bs-theme="dark"] .container-favoritos .nav-tabs {
  border-bottom-color: rgba(255, 255, 255, .1) !important;
}

[data-bs-theme="dark"] .container-favoritos .nav-link {
  color: var(--sgs-tab-color) !important;
  background-color: transparent !important;
  border-color: transparent !important;
}

[data-bs-theme="dark"] .container-favoritos .nav-link:hover {
  color: rgba(255, 255, 255, .85) !important;
  background-color: var(--sgs-tab-hover-bg) !important;
}

[data-bs-theme="dark"] .container-favoritos .nav-link.active {
  color: #fff !important;
  background-color: var(--sgs-tab-active-bg) !important;
  border-top-color: var(--sgs-tab-active-border) !important;
  border-left-color: rgba(255, 255, 255, .1) !important;
  border-right-color: rgba(255, 255, 255, .1) !important;
  border-bottom-color: var(--sgs-tab-active-bg) !important;
}

[data-bs-theme="dark"] .container-favoritos .border-secondary-azul,
[data-bs-theme="dark"] .container-favoritos .border {
  border-color: rgba(255, 255, 255, .1) !important;
}

/* popovers ancorados */
[data-bs-theme="dark"] .ancorado-ao-botao,
[data-bs-theme="dark"] [popover].ancorado-ao-botao,
[data-bs-theme="dark"] .popover-on {
  background-color: var(--sgs-panel-bg) !important;
  border: 1px solid var(--sgs-panel-border) !important;
  color: rgba(255, 255, 255, .85) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .4) !important;
}

[data-bs-theme="dark"] .ancorado-ao-botao .row,
[data-bs-theme="dark"] .ancorado-ao-botao .bg-body-tertiary {
  background-color: var(--sgs-panel-bg) !important;
  color: rgba(255, 255, 255, .85) !important;
}

[data-bs-theme="dark"] .ancorado-ao-botao button:hover,
[data-bs-theme="dark"] .ancorado-ao-botao .nav-link:hover {
  background-color: var(--sgs-panel-hover) !important;
  color: #fff !important;
}

[data-bs-theme="dark"] .ancorado-ao-botao .border,
[data-bs-theme="dark"] .ancorado-ao-botao .border-secondary {
  border-color: var(--sgs-panel-border) !important;
}

/* bordas */
[data-bs-theme="dark"] .bg-body.border.rounded-2 {
  border-color: rgba(255, 255, 255, .1) !important;
}

[data-bs-theme="dark"] .border-secondary-azul {
  border-color: rgba(255, 255, 255, .1) !important;
}

/* inputs inline tabela */
[data-bs-theme="dark"] table.dataTable tbody tr:hover input,
[data-bs-theme="dark"] table.dataTable tbody tr:hover .form-control,
[data-bs-theme="dark"] table.dataTable tbody td input,
[data-bs-theme="dark"] table.dataTable tbody td .form-control,
[data-bs-theme="dark"] table.dataTable tbody td input[type="text"],
[data-bs-theme="dark"] table.dataTable tbody td input[type="search"] {
  background-color: var(--bs-quinary-bg) !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  color: rgba(255, 255, 255, .85) !important;
}

[data-bs-theme="dark"] table.dataTable tbody td input:focus,
[data-bs-theme="dark"] table.dataTable tbody td .form-control:focus {
  background-color: var(--bs-secondary-bg) !important;
  border-color: #e8801a !important;
  color: #fff !important;
  box-shadow: 0 0 0 .2rem rgba(232, 128, 26, .22) !important;
}