:root {
  /* padrão */
  --ns-light: #0f5dd9;
  /* azul claro (faixa de cima) */
  --ns-dark: #0a3a91;
  /* azul escuro (faixa de baixo) */

  /* alternativo ao clicar/ativo */
  --ns-light-alt: #1670ff;
  --ns-dark-alt: #0d48b3;

  --ns-pill-fg: #0b3d9c;
  /* texto da pílula ativa */
}

/* ===== Faixa branca superior ===== */
.ns-utility a {
  line-height: 1;
}

/* ===== Topo dois blocos (sem gradiente) ===== */
.ns-topbar {
  position: relative;
  min-height: 100px;
  /* altura do header azul, ajuste se quiser */
  background: var(--ns-dark);
  /* bloco escuro (maior) */
  color: #fff;
}

.ns-topbar.theme-alt {
  background: var(--ns-dark-alt);
}

.ns-topbar.theme-alt::before {
  background: var(--ns-light-alt);
}

/* ===== Navbar ===== */
.navbar {
  min-height: 100px;
}

.navbar-dark .navbar-brand,
.navbar-dark .nav-link {
  color: rgba(255, 255, 255, .92);
}

.navbar-dark .nav-link:hover {
  color: #fff;
}

.navbar-dark .navbar-toggler-icon {
  filter: invert(1) brightness(2);
}


/* Só dentro do /esic */
.logo-area img {
  max-height: 72px;
  height: auto;
  width: auto;
  object-fit: contain;
}

.breadcrumb a {
  color: inherit;
  text-decoration: none;
}

.breadcrumb a:hover {
  text-decoration: underline;
}

.sic-org-name {
  font-weight: 700;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
}

/* ===== Pílulas como a aba ativa da referência ===== */
.ns-pill {
  border-radius: 999px;
  padding: .7rem 1rem;
  transition: background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
  position: relative;
  text-rendering: optimizeLegibility;
  font-weight: 600;
}

.ns-pill.active {
  background: #fff;
  color: var(--ns-pill-fg);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
  transform: translateY(2px);
}

/* ===== Dropdowns ===== */
.dropdown-menu {
  border: 0;
  border-radius: 16px;
  padding: .6rem;
  animation: ns-fade .16s ease-out both;
}

.dropdown-item {
  border-radius: 10px;
  padding: .6rem .8rem;
  color: #fff;
}

.dropdown-item:hover {
  background: rgba(22, 111, 255, 0.61);
  color: #fff;
}

/* Mega dropdown em “painel” largo */
.ns-mega {
  width: 100%;
  max-width: none;
  border-radius: 0;
  /* como na ref, painel reto */
  background: #ffffff;
  /* branco (a ref usa branco por baixo do topo azul) */
}

/* Titulinhos do mega (igual ref: maiúsculo e levemente mais claro) */
.ns-mega-title {
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #ffffff;
  margin-bottom: .5rem;
  font-weight: 700;
}

/* Animação */
@keyframes ns-fade {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Foco acessível */
.ns-utility a:focus-visible,
.ns-topbar :focus-visible {
  outline: 3px solid rgba(255, 255, 255, .9);
  outline-offset: 2px;
}

.ns-utility .link-primary:focus-visible {
  outline-color: var(--bs-primary);
}

/* === Chevron branco no lugar do caret padrão (único e maior) === */
.navbar .dropdown-toggle {
  position: relative;
  padding-right: 2rem;
  /* espaço pro ícone */
}

.navbar .dropdown-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 18px;
  /* tamanho da seta */
  height: 18px;
  /* tamanho da seta */
  transform: translateY(-50%) rotate(0deg);
  transition: transform .2s ease;
  border: 0 !important;
  background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' d='M4.47 5.97a.75.75 0 0 1 1.06 0L8 8.44l2.47-2.47a.75.75 0 0 1 1.06 1.06l-3 3a.75.75 0 0 1-1.06 0l-3-3a.75.75 0 0 1 0-1.06z'/%3E%3C/svg%3E");

}

/* gira a seta quando o dropdown abre */
.navbar .dropdown-toggle[aria-expanded="true"]::after,
.navbar .dropdown.show>.dropdown-toggle::after {
  transform: translateY(-50%) rotate(180deg);
}

/* ===== Pre-menu (abas superiores brancas) ===== */
.pre-menu ul {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
}

.align-items-center {
  align-items: center !important;
}

.section-bg-color {
  background-color: var(--ns-light);
  background-image: var(--ns-dark);
}

ul li.is-active:before {
  background-color: #fff;
  border-radius: 0 0 .3rem 0;
  content: '';
  display: block;
  height: 100%;
  width: .75rem;
}

.pre-menu ul li.is-active a {
  border-radius: .375rem .375rem 0 0;
  box-shadow: 0 -.375rem 0 1px #fff;
  color: #fff;
  padding: .25rem 1rem;
}

.pre-menu ul li a {
  font-size: 12px;
  font-weight: 600;
  line-height: calc(4px * 4);
  position: relative;
  padding: .25rem 0;
  text-decoration: none;
}

.pre-menu ul li.is-active:after {
  border-radius: 0 0 0 .3rem;
}

.pre-menu ul li.is-active:after,
.pre-menu ul li.is-active:before {
  background-color: #fff;
  content: '';
  display: block;
  height: 100%;
  width: .75rem;
}

.pre-menu {
  border-bottom: 3px solid var(--ns-light);
  overflow: hidden;   /* evita que pseudo-elementos e sombras sangrem para fora */
  position: relative;
  z-index: 5;
}

/* Mobile: mantém o pre-menu visível mas esconde o item longo
   que quebrava linha e causava sobreposição visual */
@media (max-width: 767.98px) {
  .pre-menu .nav-item:last-child {
    display: none;
  }
  .pre-menu ul li.is-active::before,
  .pre-menu ul li.is-active::after {
    display: none;
  }
}

.navbar-dark .nav-link.dropdown-toggle,
.navbar-dark .nav-link.dropdown-toggle:focus,
.navbar-dark .nav-link.dropdown-toggle:active,
.navbar-dark .nav-link.dropdown-toggle[aria-expanded="true"] {
  color: #fff !important;
}

/* ===== Mega dropdown 100% viewport, centralizado corretamente ===== */
.ns-topbar {
  position: relative;
}

.ns-topbar .dropdown.position-static .ns-mega {
  position: absolute;
  top: 100%;
  /* “sangra” para fora do container e ocupa exatamente 100vw */
  left: calc(50% - 50vw);
  right: calc(50% - 50vw);
  width: auto;
  /* largura definida pelos lados acima */
  margin: 0;
  border-radius: 0;
  background: #0d47b1;
  padding-top: 3rem;
  padding-bottom: 3rem;
  box-shadow: 0 20px 40px rgba(0, 0, 0, .12);
  border-top: 1px solid rgba(0, 0, 0, .06);
  z-index: 1030;
}

/* conteúdo continua centralizado no grid do site */
.ns-topbar .dropdown.position-static .ns-mega .container {
  max-width: 1140px;
  /* ajuste se seu container for outro */
}

/* divisórias entre colunas */
@media (min-width: 768px) {
  .ns-mega .row>[class*="col-"]+[class*="col-"] {
    border-left: 0.1em solid #fff;
    /* troque para #e9ecef se quiser mais contraste */
  }

  .ns-mega .row>[class*="col-"] {
    padding-left: 2.25rem;
  }
}

/* ícone dentro de círculo */
.icon-circle {
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(15, 93, 217, .08);
  /* azul suave translúcido */
  margin: 0 auto;
}

/* efeito no hover */
.hover-card {
  transition: transform .2s ease, box-shadow .2s ease;
}

.hover-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
}



/* ===== HOME e-SIC (UI moderna) ===== */

.sic-home {
  background: linear-gradient(180deg, rgb(232 238 255), rgba(15, 93, 217, .02) 40%, #e8eeff 100%);
}

/* cards leves */
.card-soft {
  border: 0;
  border-radius: 8px;
  /*box-shadow: 0 4px 8px rgba(0, 0, 0, .06);*/
  border: 0.1em solid #e2edff;
}

.card-soft .card-title {
  letter-spacing: .2px;
}

/* definition list (SIC Físico) */
.sic-deflist {
  /*display: grid;*/
  grid-template-columns: 300px 1fr;
  gap: .5rem 1rem;
  margin: 0;
}

.sic-deflist dt {
  font-weight: 600;
  color: #2f3b52;
}

.sic-deflist dd {
  margin: 0;
  color: #4b587a;
}

@media (max-width: 576px) {
  .sic-deflist {
    grid-template-columns: 1fr;
  }
}

/* progress fininha */
.progress-thin {
  height: 8px;
  background: #eef2f7;
  border-radius: 999px;
}

/* tiles de ação */
.action-tile {
  border: 1px solid #e6ebf3;
  border-radius: 12px;
  padding: .9rem 1rem;
  text-decoration: none;
  color: inherit;
  background: #fff;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.action-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(15, 93, 217, .12);
  border-color: rgba(15, 93, 217, .25);
}

/* ícone em círculo (sem depender de lib externa) */
.i-circle {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  background: rgba(15, 93, 217, .08);
  color: #0f5dd9;
  aspect-ratio: 1 / 1;
}

.i-circle.i-success {
  background: rgba(25, 135, 84, .12);
  color: #198754;
}

.i-circle.i-primary {
  background: rgba(13, 110, 253, .12);
  color: #0d6efd;
}

/* seta nos tiles e nas listas da direita */
.action-tile .chev,
.list-link i {
  flex: none;
  width: 16px;
  height: 16px;
  margin-left: .75rem;
  background: no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%230f5dd9' d='M6 12.5l4-4-4-4-1 1 3 3-3 3z'/%3E%3C/svg%3E");
  opacity: .85;
}

.action-tile:hover .chev {
  opacity: 1;
}

/* links tipo lista (coluna direita) */
.list-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .75rem 0;
  color: #0b204a;
  text-decoration: none;
  border-top: 1px dashed #e6ebf3;
}

.list-link:first-of-type {
  border-top: 0;
}

.list-link:hover {
  color: #0f5dd9;
}

/* nota informativa */
.note {
  border-radius: 10px;
  background: #f4f7fb;
  padding: .75rem .875rem;
}

.note.muted {
  color: #526079;
}


/* ======= Tipos & helpers */
.fw-700 {
  font-weight: 700;
}

.fw-600 {
  font-weight: 600;
}

/* ======= Card e painel no estilo das referências (soft, arredondado) */
.ui-card {
  border: 0;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(15, 93, 217, .06);
}

.ui-panel {
  border-radius: 16px;
  background: #f6f8ff;
  /* leve azulado */
  border: 1px solid #e8ecff;
}

.ui-label {
  color: #6b7a99;
  font-weight: 600;
  letter-spacing: .2px;
}

/* lista compacta */
.ui-list li {
  padding: .25rem 0;
}

/* ======= Ações (cards) */
.ui-action {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid #e8ecff;
  border-radius: 18px;
  padding: 1.1rem 1.1rem 1rem;
  box-shadow: 0 6px 18px rgba(15, 93, 217, .06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.ui-action:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(15, 93, 217, .12);
  border-color: rgba(15, 93, 217, .25);
}

.ui-action__icon {
  font-size: 2.4rem;
  line-height: 1;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, rgba(15, 93, 217, .12), rgba(15, 93, 217, .06));
  color: #0f5dd9;
  box-shadow: inset 0 -2px 0 rgba(15, 93, 217, .18);
}

.ui-action__title {
  font-weight: 700;
  font-size: 1.02rem;
  color: #1e2a44;
  margin-top: .2rem;
}

/* ======= Botão “pill” (bem arredondado) no estilo das imagens */
.btn-pill {
  border-radius: 999px;
  padding: .65rem 1rem;
  font-weight: 600;
  letter-spacing: .1px;
  box-shadow: 0 8px 20px rgba(13, 110, 253, .18);
}

.btn-pill.btn-primary {
  background: linear-gradient(180deg, #3b66ff, #2c57f0);
  border: 0;
}

.btn-pill.btn-primary:hover {
  filter: brightness(1.05);
  box-shadow: 0 10px 26px rgba(13, 110, 253, .25);
}

/* ======= Ajustes responsivos */
@media (max-width: 575.98px) {
  .ui-action__icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
  }

  .ui-action {
    border-radius: 16px;
  }
}

/* ===== Tabs tipo “pílula” com linha fininha superior ===== */
.sic-tabs {
  border-bottom: 1px solid #e0e6ff;
}

/* LINHA FININHA EM CIMA */

/* pílulas */
.sic-pill {
  appearance: none;
  border: 1px solid #e6ebff;
  background: #fff;
  color: #24407a;
  border-radius: 999px;
  padding: .55rem 1.05rem;
  font-weight: 600;
  font-size: .95rem;
  line-height: 1;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
  cursor: pointer;
}

.sic-pill:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(15, 93, 217, .10);
  border-color: #d9e2ff;
}

.sic-pill.is-active {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(180deg, #3b48ff, #2a34df);
}

.sic-pill.is-sucesso {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(180deg, #28a745, #28a745);
}

.sic-pill.is-avancar {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(180deg, #3b48ff, #2a34df);
}

/* Bloco de ajuda (manual) à direita */
.sic-help {
  border: 1px solid #e6ebff;
  border-radius: 8px;
}

.sic-help-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  flex: none;
  background:
    radial-gradient(circle at 50% 40%, #fff 30%, transparent 31%) center/100% 100%,
    linear-gradient(180deg, #6f86ff, #4a63ff);
  box-shadow: 0 6px 14px rgba(15, 93, 217, .18);
  position: relative;
}

.sic-help-icon::after {
  /* ícone “i” */
  content: "i";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-weight: 800;
  color: #fff;
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

/* responsivo: empilha bonito */
@media (max-width: 991.98px) {
  .sic-help {
    margin-top: .5rem;
  }
}


/* ===== Donut/Pizza ===== */
.donut {
  width: 220px;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: conic-gradient(#3b66ff 0 45%, #bcdffd 45% 80%, #0c1058 80% 100%);
  position: relative;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
}

.donut-hole {
  position: absolute;
  inset: 12%;
  background: #fff;
  border-radius: 50%;
}

.donut-label {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}

.pizza-legend .legend-check,
.bars-legend .legend-check {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .55rem .7rem;
  border-radius: 12px;
  border: 1px solid #e6ebff;
  background: #fff;
  font-weight: 600;
  color: #0b204a;
  box-shadow: 0 6px 14px rgba(15, 93, 217, .06);
}

.legend-check input {
  accent-color: var(--c);
  width: 18px;
  height: 18px;
}

.legend-val {
  color: #6b7a99;
  font-weight: 700;
  min-width: 2ch;
  text-align: right;
}

/* ===== Barras verticais ===== */
.bars {
  display: flex;
  align-items: flex-end;
  gap: 18px;
  height: 200px;
  padding: .5rem .25rem;
  border: 1px solid #e6ebff;
  border-radius: 12px;
  background: #fff;
}

.bar-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  width: 56px;
}

.bar {
  width: 100%;
  height: 0;
  /* animado no JS */
  border-radius: 10px 10px 0 0;
  background: var(--c);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--c) 40%, transparent);
  transition: height .5s ease;
}

.bar-label {
  font-size: .8rem;
  color: #33405f;
  text-align: center;
}

/* esconder quando desmarca na legenda */
.bar-wrap.is-hidden {
  visibility: hidden;
  height: 0;
  width: 0;
  margin: 0;
  padding: 0;
}


/* ===== Pills de indicador (estilo card) ===== */
.stat-pills {
  display: grid;
  gap: .6rem;
}

.stat-pills li {
  list-style: none;
}

/* card clicável/checável */
.stat-pill {
  --c: #0f5dd9;
  /* cor do indicador */
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .9rem;
  padding: .8rem 1rem;
  border: 1px solid #e6ebff;
  border-radius: 12px;
  background: #f3f6fa;
  cursor: pointer;
  user-select: none;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, opacity .15s ease;
}

.stat-pill:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(15, 93, 217, .10);
}

/* checkbox invisível mas acessível */
.stat-pill>input[type="checkbox"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

/* bloco esquerdo (ícone + label) */
.pill-left {
  display: flex;
  align-items: center;
  gap: .7rem;
  min-width: 0;
}

.pill-icon {
  width: 36px;
  aspect-ratio: 1/1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--c);
  font-weight: 800;
  line-height: 1;
  background: #e2edff;
}

.pill-label {
  font-weight: 600;
  color: #1e2a44;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* número à direita */
.pill-number {
  font-size: 1.15rem;
  font-weight: 800;
  color: #21314f;
  min-width: 2ch;
  text-align: right;
}

/* estado desativado (unchecked) */
.stat-pill.is-off {
  opacity: .45;
}

.stat-pill.is-off .pill-icon {
  border-color: #cbd5e1;
  color: #cbd5e1;
}

/* versão compacta (para legenda da pizza se quiser menor) */
.stat-pill.sm {
  padding: .55rem .75rem;
}

.stat-pill.sm .pill-icon {
  width: 30px;
}

.stat-pill.sm .pill-number {
  font-size: 1rem;
}


/* ===== Barras horizontais (estilo da 2ª imagem) ===== */
.bars-linear {
  border: 1px solid #e6ebff;
  border-radius: 12px;
  background: #fff;
}

.meter-row+.meter-row {
  margin-top: 1rem;
}

.meter-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  color: #1e2a44;
  margin-bottom: .35rem;
}

.meter-n {
  color: #6b7a99;
  font-weight: 700;
}

.meter {
  position: relative;
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  background: #edf1f7;
}

.meter-bar {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: #0c1058;
  border-radius: 999px;
  box-shadow: 0 6px 14px color-mix(in srgb, #0c1058, 40%, transparent);
  transition: width .5s ease;
}

/* esconder linha quando a pill correspondente é desmarcada */
.meter-row.is-hidden {
  display: none;
}


/* ====== CSS SOLICITAÇÃO ====== */

.sic-steps-progress {
  display: flex;
  align-items: center;
  justify-content: center;
}

.sic-steps-progress .line {
  flex: 1;
  height: 2px;
  background-color: #dee2e6;
  margin: 0 10px;
}

.sic-steps-progress .step-item {
  text-align: center;
}

.sic-steps-progress .step-item .circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #dee2e6;
  color: #6c757d;
  font-weight: 600;
}

.sic-steps-progress .step-item.active .circle {
  background: #0d6efd;
  color: #fff;
}

.sic-steps-progress .step-item.active .label {
  color: #0d6efd;
  font-weight: 600;
}

.sic-steps-progress .label {
  display: block;
  margin-top: 6px;
  font-size: 0.9rem;
  color: #6c757d;
}

.form-label {
  font-weight: 500;
}

.card-soft {
  border: 1px solid #e9ecef;
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

/* ====== Steps (visual + animações) ====== */
.sic-steps-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  user-select: none;
}

.sic-steps-progress .line {
  width: 72px;
  max-width: 12vw;
  height: 2px;
  background: #e5e9f2;
  position: relative;
  overflow: hidden;
}

.sic-steps-progress .line::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #3b66ff, #2c57f0);
  transform: translateX(-100%);
  transition: transform .4s ease;
}

/* cada linha preenche quando a etapa seguinte é atingida */
.sic-steps-progress .step-item.active+.line::after,
.sic-steps-progress .step-item.done+.line::after {
  transform: translateX(0);
}

.sic-steps-progress .step-item {
  text-align: center;
  min-width: 90px;
}

.sic-steps-progress .label {
  display: block;
  margin-top: 6px;
  font-size: .9rem;
  color: #6c757d;
  transition: color .2s ease;
}

.sic-steps-progress .circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #e9edf7;
  color: #6c757d;
  font-weight: 700;
  transition: background .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
  position: relative;
}

/* etapa atual: brilho sutil e pulso */
.sic-steps-progress .step-item.current .circle {
  background: #0d6efd;
  color: #fff;
  box-shadow: 0 0 0 6px rgba(13, 110, 253, .12);
  animation: step-pulse 1.8s ease-in-out infinite;
}

@keyframes step-pulse {

  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(13, 110, 253, .12);
  }

  50% {
    transform: scale(1.04);
    box-shadow: 0 0 0 10px rgba(13, 110, 253, .08);
  }
}

.sic-steps-progress .step-item.current .label {
  color: #0d6efd;
  font-weight: 600;
}

/* etapas concluídas: vira “check” */
.sic-steps-progress .step-item.done .circle {
  background: #28a745;
  /* esconde número */
}

.sic-steps-progress .step-item.done .circle::after {
  /*content:"\f26e"; /* bi-check-lg */
  font-family: "bootstrap-icons";
  font-size: 1.1rem;
  line-height: 1;
  color: #fff;
}

/* ===== barrinha horizontal abaixo ===== */
.steps-rail {
  position: relative;
  height: 4px;
  background: #eef2f7;
  border-radius: 999px;
  margin: -10px auto 24px;
  max-width: 560px;
  overflow: hidden;
}

.steps-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #3b66ff, #2c57f0);
  border-radius: inherit;
  transition: width .45s ease;
}

/* ===== transição entre painéis ===== */
.step {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .22s ease, transform .22s ease;
}

.step:not(.d-none) {
  opacity: 1;
  transform: translateY(0);
}

/* form/cartão mantém seu visual existente */

/* ====== FIM CSS SOLICITAÇÃO ====== */


/* ====== INICIO CSS CONSULTA ====== */
.card-soft {
  border: 1px solid #e9ecef;
  border-radius: .75rem;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .05)
}

.sic-pill {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .5rem .9rem;
  border: 1px solid #dbe1f1;
  border-radius: 999px;
  background: #f7f9ff;
  color: #0d47a1
}

.sic-pill.is-active {
  background: #0d6efd;
  color: #fff;
  border-color: #0d6efd
}

/* Barra de status */
.status-bar {
  background: linear-gradient(90deg, #0d6efd 0%, #5aa0ff 100%);
  color: #fff;
}

.status-bar .badge {
  background: rgba(255, 255, 255, .2);
}

/* RÉGUA / LINHA DO TEMPO — dot exatamente sobre a linha */
.pt-line {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-top: 36px;
  /* espaço para centralizar a linha/dot */
}

.pt-line::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 36px;
  height: 3px;
  background: #e9ecef;
  border-radius: 999px;
}

.pt-step {
  position: relative;
  text-align: center;
  flex: 1 1 0;
}

.pt-step .dot {
  position: absolute;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #d1d9e6;
  border: 2px solid #d1d9e6;
  z-index: 2;
}

.pt-step .lbl {
  display: block;
  margin-top: 28px;
  color: #6c757d;
  font-weight: 600;
}

.pt-step .date {
  display: block;
  color: #8892a6;
}

.pt-step.active .dot {
  background: #0d6efd;
  border-color: #0d6efd;
  box-shadow: 0 0 0 6px rgba(13, 110, 253, .12);
}

.pt-step.done .dot {
  background: #198754;
  border-color: #198754;
}

.pt-step.active .lbl {
  color: #0d6efd;
}

.pt-step.done .lbl {
  color: #198754;
}

/* Chips de ocorrências */
.chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .6rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: .85rem;
}

.chip i {
  font-size: 1rem;
}

.chip-warning {
  background: #fff3cd;
  color: #8a6d3b;
  border: 1px solid #ffe8a3;
}

.chip-muted {
  background: #edf2f7;
  color: #475569;
  border: 1px solid #e2e8f0;
}

.chip .chip-link {
  margin-left: .35rem;
  font-weight: 600;
  text-decoration: none;
}

.chip .chip-link:hover {
  text-decoration: underline;
}

.pt-tags .chip {
  margin-right: .5rem;
}

/* Tabela / pill */
.table td,
.table th {
  vertical-align: middle;
}

/* ===== Info Tiles (3 quadros) ===== */
.info-tiles .info-tile {
  display: flex;
  gap: 14px;
  padding: 16px 18px;
  background: #ffffff;
  border: 1px solid #eef1f6;
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(16, 24, 40, .04);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.info-tiles .info-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(16, 24, 40, .08);
  border-color: #e2e8f0;
}

.info-tiles .icon-wrap {
  flex: 0 0 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #e8f0ff 0%, #f2f7ff 100%);
  color: #0d6efd;
}

.info-tiles .icon-wrap i {
  font-size: 1.25rem;
  line-height: 1;
}

.info-tiles .content .title {
  margin: 0 0 4px;
  font-weight: 700;
  font-size: 1.05rem;
  color: #0f172a;
}

.info-tiles .content .desc {
  margin: 0;
  color: #64748b;
  font-size: .95rem;
}

/* Modo compacto em telas bem pequenas */
@media (max-width: 420px) {
  .info-tiles .info-tile {
    padding: 14px;
  }

  .info-tiles .icon-wrap {
    width: 40px;
    height: 40px;
  }
}

/* ====== FIM CSS CONSULTA ====== */

/* ====== INICIO CSS RESPOSTA ====== */
.card-soft {
  border: 1px solid #e9ecef;
  border-radius: .75rem;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .05)
}

.sic-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .3rem .7rem;
  border: 1px solid #e3e8f5;
  border-radius: 999px;
  text-decoration: none
}

.sic-chip:hover {
  background: #f6f8ff
}

.smiley {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  padding: .6rem .9rem;
  border: 1px solid #e5e9f5;
  border-radius: .75rem;
  background: #fff;
  cursor: pointer;
  transition: transform .12s, box-shadow .12s
}

.smiley i {
  font-size: 1.6rem
}

.smiley span {
  font-size: .9rem;
  font-weight: 600
}

.smiley.ok i {
  color: #28a745
}

.smiley.neutral i {
  color: #ffc107
}

.smiley.bad i {
  color: #dc3545
}

.smiley:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(13, 110, 253, .06)
}

.smiley.pop {
  transform: scale(1.05)
}

/* timeline (vertical, mais recente primeiro) */
.timeline {
  position: relative;
  margin: 0;
  padding-left: 1.25rem
}

.timeline::before {
  content: "";
  position: absolute;
  left: .36rem;
  top: .2rem;
  bottom: .2rem;
  width: 2px;
  background: #e9eef7
}

.timeline-item {
  display: flex;
  gap: .75rem;
  position: relative;
  margin-bottom: 1rem
}

.tl-dot {
  position: relative;
  z-index: 1;
  flex: 0 0 1.2rem;
  height: 1.2rem;
  width: 1.2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #d4dcf3;
  color: #fff;
  font-size: .7rem;
  box-shadow: 0 0 0 4px #f3f6ff
}

.tl-ok {
  background: #28a745
}

.tl-warn {
  background: #ffc107;
  color: #000
}

.tl-sig {
  background: #6c757d
}

.tl-content {
  flex: 1
}

.tl-title {
  font-weight: 600
}

.tl-desc {
  line-height: 1.25
}

.tl-when {
  color: #94a3b8
}

/* Pequeno ajuste responsivo */
@media (max-width: 576px) {
  .smiley {
    width: 100%;
    flex-direction: row;
    justify-content: flex-start
  }
}

/* ====== FIM CSS RESPOSTA ====== */

/* ====== INICIO CSS REGULAMENTAÇÃO ====== */
.card-soft {
  border: 1px solid #e9ecef;
  border-radius: .75rem;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .05);
}

.sic-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .32rem .7rem;
  border: 1px solid #e3e8f5;
  border-radius: 999px;
  text-decoration: none;
}

.sic-chip:hover {
  background: #f6f8ff;
}

.reg-card {
  display: flex;
  gap: .9rem;
  border: 1px dashed #e5e9f5;
  border-radius: .75rem;
  padding: .9rem;
}

.reg-icon {
  flex: 0 0 46px;
  height: 46px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f5ff;
  color: #3b66ff;
  font-size: 1.2rem;
}

.reg-title {
  font-weight: 700;
}

.reg-desc {
  color: #6b7280;
}

.reg-link {
  font-weight: 600;
  text-decoration: none;
}

.reg-link:hover {
  text-decoration: underline;
}

.toc .sic-chip {
  background: #fcfdff;
}

.sticky-top .btn i {
  margin-right: .35rem;
}

@media (max-width: 576px) {
  .sticky-top {
    position: static !important;
  }
}

/* ====== FIM CSS REGULAMENTAÇÃO ====== */

/* ====== INICIO CSS SIGILO ====== */
.card-soft {
  border: 1px solid #e9ecef;
  border-radius: .75rem;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .05);
}

/* Botões estilo “pílula” */
.sic-pill {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .5rem .9rem;
  border: 1px solid #dbe1f1;
  border-radius: 999px;
  background: #f7f9ff;
  color: #0d47a1;
}

.sic-pill.is-avancar {
  background: #0d6efd;
  color: #fff;
  border-color: #0d6efd;
}

/* ====== FIM CSS SIGILO ====== */

/* ====== INICIO CSS CONVERSA BALAO ====== */
.conv-thread {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.conv-item {
  display: flex;
  flex-direction: column;
  max-width: 80%;
}

.conv-left {
  align-self: flex-start;
}

.conv-right {
  align-self: flex-end;
  text-align: right;
}

.conv-badge {
  font-size: .75rem;
  font-weight: 600;
  color: #6c757d;
  margin-bottom: .15rem;
}

.conv-bubble {
  border-radius: 1rem;
  padding: .75rem 1rem;
  background: #f8f9fa;
  box-shadow: 0 .05rem .25rem rgba(15, 23, 42, .06);
}

.conv-right .conv-bubble {
  background: #dbeafe;
  /* azul clarinho */
}

.conv-meta {
  font-size: .75rem;
  color: #adb5bd;
  margin-top: .25rem;
}

.conv-bubble p:last-child {
  margin-bottom: 0;
}

/* ====== FIM CSS CONVERSA BALAO ====== */

/* ====== INICIO SATISFAÇÃO ====== */
.smiley-locked {
  opacity: .6;
  cursor: not-allowed;
}

.smiley.active {
  outline: 2px solid #0d6efd;
}

/* ====== FIM SATISFAÇÃO ====== */


.sic-deflist {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
  column-gap: 0.75rem;
  row-gap: 0.25rem;
  margin: 0;
}

.sic-deflist dt {
  font-weight: 600;
  margin: 0;
}

.sic-deflist dd {
  margin: 0 0 0.25rem 0;
}

@media (max-width: 576px) {
  .sic-deflist {
    grid-template-columns: 1fr;
  }

  .sic-deflist dt {
    margin-top: 0.4rem;
  }
}

/* ===== Correções navbar: alinhamento e mobile ===== */

/* Iguala a largura máxima do header ao conteúdo (1520px)
   e garante padding lateral mínimo quando o viewport é menor que 1520px */
.ns-topbar .navbar.container,
.pre-menu .container {
  max-width: 1520px;
  padding-left:  clamp(1rem, 3vw, 1.5rem);
  padding-right: clamp(1rem, 3vw, 1.5rem);
}

/* Alinha o pre-menu com o container padrão:
   row sem margem negativa + col sem padding = conteúdo
   começa exatamente na borda interna do container (0.75rem) */
.pre-menu .container .row {
  margin-left: 0;
  margin-right: 0;
}

.pre-menu .container .col-12 {
  padding-left: 0;
  padding-right: 0;
}

/* Mobile: logo-area cresce e encolhe, deixando espaço para o botão hamburger */
@media (max-width: 991.98px) {

  /* força o navbar a não quebrar linha */
  header.ns-topbar nav.navbar {
    align-items: center;
    padding-top: .5rem;
    padding-bottom: .5rem;
    padding-left: .9rem;
  }

  /* logo ocupa o espaço disponível e pode encolher */
  header.ns-topbar nav.navbar .logo-area {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    overflow: hidden;
    margin-right: .75rem;
  }

  /* hamburger nunca encolhe */
  header.ns-topbar nav.navbar .navbar-toggler {
    flex-shrink: 0;
  }

  /* título ajusta tamanho e quebra palavra se necessário */
  header.ns-topbar nav.navbar .sic-org-name {
    font-size: .95rem !important;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
  }

  /* logo-imagem não ultrapassa o espaço disponível */
  header.ns-topbar nav.navbar img.sic-logo {
    max-height: 50px;
    max-width: 100%;
    object-fit: contain;
  }
}