/* ==========================================================================
   1. Variáveis Globais (:root) - Combinação de todas as páginas
   ========================================================================== */
:root {
  --brand: #a6d450;
  --brand-2: #608320;
  --bs-body-font-family: "Segoe UI", sans-serif;
  --bg: #f3f4f6;
  --panel: #ffffff;
  --panel-2: #f9fafb;
  --card-bg: #ffffff08;
  --panel-dark: #121a2b;
  --text-color: #212529;
  --text-toast: #212529;
  --text-dark: #e5e7eb;
  --muted: #262729;
  --line: #e5e7eb;
  --chip: #1e293b;
  --ok: #16a34a;
  --warn: #f59e0b;
  --danger: #ef4444;
  --ink: #e5e7eb;
  --white: #ffffff;
  --card-radius: 12px;
  --pad: 14px;
  --text-chart: #7f8795;
  --gauge-value: #16a34a;
  --bs-primary-border-subtle: #0d6efd;
  --bs-primary-rgb: 34, 144, 199;
  --bs-backdrop-zindex: -1 !important;

  /* NOVAS VARIÁVEIS PARA O ESTILO DO GRID (do seu mockup) */
  --grid-primary: #2563eb; /* Azul primário */
  --grid-card-light: #ffffff;
  --grid-card-dark: #1e293b;
  --grid-bg-dark: #0f172a; /* Fundo do tema escuro do mockup */
  --grid-text-dark: #cbd5e1;
  --grid-status-await: #fef3c7; /* Fundo Amarelo Claro */
  --grid-status-accept: #dcfce7; /* Fundo Verde Claro */
  --grid-status-route: #dbeafe; /* Fundo Azul Claro */
  --grid-text-await: #b45309; /* Texto Amarelo Escuro */
  --grid-text-accept: #15803d; /* Texto Verde Escuro */
  --grid-text-route: #1d4ed8; /* Texto Azul Escuro */

  /* NOVAS VARIAVEIS DE MENU */
  --menu-active-bg: var(--grid-primary);
  --menu-active-color: #ffffff;
}

/* ==========================================================================
   2. Reset e Estilos de Body
   ========================================================================== */
* {
  box-sizing: border-box;
}

body::-webkit-scrollbar-thumb {
  background: linear-gradient(
    135deg,
    #2b537c,
    #2584e3 60%
  ); /* Usa a cor da sua linha ou um cinza claro */
  border-radius: 4px;
  flex-shrink: 0;
}

/* Estilo base do painel.html */
body {
  margin: 0;
  font:
    14px/1.45 "Segoe UI",
    sans-serif;
  color: var(--text-color);
  background-color: var(--bg) !important;
  transition:
    background-color 0.3s,
    color 0.3s;
}

em {
  font-size: 0.55rem;
  color: black;
}

body.dark-mode em {
  color: yellow;
}

.title {
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: 0.2px;
  color: var(--text-color);
}

.small {
  font-size: 0.7rem;
}

.btn {
  appearance: none;
  border: none;
  background: linear-gradient(135deg, #0d1925, #0c2f51 60%);
  color: white;
  padding: 10px 12px;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 15px -5px rgba(0, 163, 163, 0.4);
  transition: transform 0.2s;
  font-size: 10px;
}
.btn:hover {
  color: white !important;
  transform: translateY(-5px);
}
.btn-menu {
  appearance: none;
  border: none;
  color: var(--white) !important;
  padding: 10px 12px;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 15px -5px rgba(0, 163, 163, 0.4);
  transition: transform 0.2s;
  font-size: 10px;
  width: max-content;
}
.btn-menu:hover {
  transform: translateY(-5px);
}

/* 1. O painel principal trava o tamanho, mas NÃO tem mais overflow */
.odinClientes {
  width: 1021px;
  max-width: 100%;
}

/* 2. A div dos botões é quem ganha a barra de rolagem agora */
#menuClientesOdin {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto; /* A barra de rolagem vem pra cá! */
  padding-bottom: 10px; /* Dá espaço para a barra não cobrir os botões */

  /* Suaviza a rolagem em telas touch/notebooks */
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

/* 3. Mantém os botões do tamanho original para forçar a rolagem */
#menuClientesOdin > * {
  flex-shrink: 0;
}

/* Opcional: Deixa a barra de rolagem dessa div mais fina e elegante (padrão Webkit) */
#menuClientesOdin::-webkit-scrollbar {
  height: 6px;
}
#menuClientesOdin::-webkit-scrollbar-track {
  background: transparent;
}
#menuClientesOdin::-webkit-scrollbar-thumb {
  background: linear-gradient(
    135deg,
    #2b537c,
    #2584e3 60%
  ); /* Usa a cor da sua linha ou um cinza claro */
  border-radius: 4px;
  flex-shrink: 0;
}

.btn.disabled,
.btn:disabled,
fieldset:disabled .btn {
  color: var(--white) !important;
  pointer-events: none;
  background-color: var(--bs-btn-disabled-bg);
  border-color: var(--bs-btn-disabled-border-color);
  opacity: var(--bs-btn-disabled-opacity);
}

.disable-selection {
  -webkit-user-select: none; /* Safari */
  -moz-user-select: none; /* Firefox */
  -ms-user-select: none; /* Internet Explorer/Edge */
  user-select: none; /* Standard syntax */
}

.btn-warning-shortcut {
  background: linear-gradient(135deg, var(--danger), #b91c1c) !important;
  margin-right: 0.9rem !important;
}
.btn-success-shortcut {
  /* background: linear-gradient(135deg, #1eed2c, #129d2b)!important; */
  /* background: linear-gradient(135deg, #0e4f6d, #00a3a3)!important; */ /*azul ciano degrade*/
  background: linear-gradient(135deg, #0e6d57, #00a329) !important;
}
.btn-successs-shortcut {
  /* background: linear-gradient(135deg, #1eed2c, #129d2b)!important; */
  /* background: linear-gradient(135deg, #0e4f6d, #00a3a3)!important; */
  background: linear-gradient(135deg, #0e6d57, #00a329) !important;
}
.btn-primary-shortcut {
  background: linear-gradient(135deg, #23a0f9, #0d6093) !important;
  margin-right: 0.9rem !important;
}

.btn-shortcut {
  width: 165px !important;
  height: 95px !important;
  font-size: 12px !important;
  color: var(--text-dark);
  /* align-content: center; */
  padding-top: 12px !important;
  padding-bottom: 18px !important;
}

.btn-shortcut i {
  font-size: 18px;
  margin-bottom: 8px;
}

.title-shortcut {
  font-size: 14px;
  letter-spacing: 0.2px;
}
/* .btn-shortcut i span{
  margin-top: 10px;
} */

#btn-imprimir {
  background: #0000003d;
  border: 1px solid var(--line);
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--text-color);
  cursor: pointer;
}

#btn-imprimir:hover {
  background: #ebe7e73c;
}

.container-mensagem {
  position: fixed;
  right: 20px;
  top: 20px;
  z-index: 1001;
}

.badge-status {
  padding: 4px 8px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: bold;
  color: #fff;
}
.status-aberto {
  background-color: #0d6efd;
} /* Azul */
.status-fechado {
  background-color: #6c757d;
} /* Cinza */
.status-pendente {
  background-color: #ffc107;
} /* Amarelo */
.priority-baixa {
  background-color: #198754;
} /* Verde */
.priority-normal {
  background-color: #0dcaf0;
} /* Ciano */
.priority-alta {
  background-color: #dc3545;
} /* Vermelho */

.ticket-article {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  margin-bottom: 10px;
}
.article-internal {
  background-color: var(--background-alt);
  border-left: 4px solid #ffc107; /* Amarelo */
}
.article-public {
  border-left: 4px solid #0d6efd; /* Azul */
}
.article-header {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 5px;
}

.toast {
  color: var(--text-toast);
  padding: 10px 25px;
  font-size: 12px;
  border-radius: 15px;
  margin-bottom: 10px;
  font-weight: bold;
  opacity: 0;
  transform: translateY(-20px);
  transition: all 0.5s ease;
}

.toast.show {
  opacity: 1;
  transform: translateY(0);
}

/* cores */
.toast.red {
  background-color: #e74c3c;
}
.toast.green {
  background-color: #2ecc71;
}
.toast.yellow {
  background-color: #f1c40f;
}
.toast.blue {
  background-color: #1a0ff1;
  color: var(--white);
}

/* animação de entrada */
@keyframes fadeInDown {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* animação de saída */
@keyframes fadeOutUp {
  0% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    transform: translateY(-20px);
  }
}

/* classes que aplicam as animações */
.toast.animated.fadeInDown {
  animation: fadeInDown 0.5s forwards;
}

.toast.animated.fadeOutUp {
  animation: fadeOutUp 0.5s forwards;
}

.destacar {
  animation: destaqueFlash 1.2s ease-out;
}

@keyframes destaqueFlash {
  0% {
    box-shadow: 0 0 0px 0 rgba(166, 212, 80, 0.9);
  }
  50% {
    box-shadow: 0 0 25px 5px rgba(166, 212, 80, 0.6);
  }
  100% {
    box-shadow: 0 0 0px 0 rgba(166, 212, 80, 0);
  }
}

.layout {
  transition: grid-template-columns 0.3s ease-in-out;
}

.painel-body .layout.sidebar-collapsed {
  grid-template-columns: 80px 1fr; /* Largura do menu recolhido */
}

.sidebar {
  transition: width 0.3s ease-in-out;
}

.sidebar-toggle-wrapper {
  position: absolute;
  bottom: 150px;
  left: -25px;
  width: 100%;
  text-align: end;
}

#sidebar-toggle {
  display: inline-block;
  padding: 10px;
  color: var(--text-color);
  transition: transform 0.3s ease;
}

.layout.sidebar-collapsed .menu a span,
.layout.sidebar-collapsed a#theme-toggle span {
  display: none;
}

.layout.sidebar-collapsed .menu a {
  justify-content: center;
  gap: 0;
}

.layout.sidebar-collapsed #connecta-toggle-icon {
  display: none;
}

.layout.sidebar-collapsed #main-logo {
  display: none;
}
.layout.sidebar-collapsed #icon-logo {
  display: block !important; /* !important para sobrescrever o style inline */
}

.layout.sidebar-collapsed .logo {
  justify-content: center;
}

.layout.sidebar-collapsed .badge,
.layout.sidebar-collapsed footer span span {
  display: none;
}

.layout.sidebar-collapsed #sidebar-toggle {
  transform: rotate(180deg);
}

/* Estilo específico do dashboard.html e hse.html */
.dashboard-body {
  font-family: "Segoe UI", sans-serif;
  transition: all 0.3s;
}
body.dashboard-body,
body.hse-body {
  background-color: transparent !important;
  background: transparent !important;
}

/* Estilo específico do login.html */
.login-body {
  font-family: "Segoe UI", sans-serif;
  background-color: #1e1e2f;
  color: #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

/* ==========================================================================
   3. Tema Escuro (Dark Mode) - Regras combinadas
   ========================================================================== */
body.dark-mode {
  --brand: #0e4f6d;
  --brand-2: #00a3a3;
  --brand-light: #a6d450;
  --ink: #0f172a;
  --muted: #e2e2e2;
  --bg: var(--grid-bg-dark); /* Adota o fundo escuro do mockup */
  --panel: var(--grid-card-dark);
  --panel-2: #1e293b;
  --card-bg: var(--grid-card-dark);
  --ok: #22c55e;
  --warn: #f59e0b;
  --danger: #ef4444;
  --line: #415a77; /* Cor de borda mais suave para escuro */
  --chip: #0c3651;
  --white: #e5e7eb;
  --text-color: #ffffff; /* Usa a cor de texto do mockup */
  --gauge-value: #e5e7eb;
  background: linear-gradient(180deg, var(--panel-2), var(--bg) 70%);
  color: #f1f1f1;
}

body.dark-mode .btn {
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
}

body.dark-mode .accordion-button::after {
  filter: invert(1); /* Inverte a cor da seta para branco */
}

body.dark-mode .accordion-item {
  background-color: transparent;
  border-color: var(--line);
}

body.dark-mode .accordion-button:not(.collapsed) {
  background-color: rgba(
    255,
    255,
    255,
    0.05
  ) !important; /* Fundo sutil quando aberto */
  color: var(--text-color);
}

.hover-icon:hover {
  opacity: 0.7;
  transform: scale(1.1);
  transition: all 0.2s;
}

/* Estilos dark do dashboard */
.dashboard-body.dark-mode option {
  background: linear-gradient(180deg, var(--panel-2), var(--bg) 70%);
  color: #f1f1f1;
}
.dashboard-body.dark-mode .card {
  background: var(--card-bg);
  /* background: linear-gradient(180deg, var(--panel-2), var(--bg) 70%); */
  border-color: #1f2a44;
  color: #f1f1f1;
}
.dashboard-body.dark-mode .table {
  --bs-table-striped-bg: rgba(255, 255, 255, 0.05);
  --bs-table-bg: linear-gradient(180deg, #14203a, #0f172a);
  --bs-table-border-color: #32383e;
  color: #f1f1f1 !important;
}
.dashboard-body.dark-mode .table-light {
  --bs-table-bg: linear-gradient(180deg, #14203a, #0f172a);
}
.dashboard-body.dark-mode th,
.dashboard-body.dark-mode td,
.dashboard-body.dark-mode tr {
  color: #f1f1f1;
}
.dashboard-body.dark-mode .list-group-item,
.dashboard-body.dark-mode .accordion-button,
.dashboard-body.dark-mode .accordion-body {
  background: linear-gradient(180deg, #3e434f05, #3538411a);
  color: #f1f1f1;
  border-color: transparent !important;
}
.dashboard-body.dark-mode .accordion-button:not(.collapsed) {
  background: linear-gradient(180deg, #14203a, #0f172a);
}
.dashboard-body.dark-mode .form-select {
  background: var(--chip);
  border-color: var(--line);
  /* background: linear-gradient(180deg, #14203a, #0f172a); */
  color: #f1f1f1;
  /* border-color: #1f2a44; */
}
.dashboard-body.dark-mode .brand-icon {
  background-color: var(--bs-white);
}

/* Estilos dark do painel */
.painel-body.dark-mode .card,
.painel-body.dark-mode .panel,
.painel-body.dark-mode .container {
  /* background: linear-gradient(180deg, var(--panel-2), var(--bg) 70%); */
  background: var(--card-bg);
}
.painel-body.dark-mode .btn {
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
}

.painel-body.dark-mode .logo {
  color: var(--white);
}

.painel-body.dark-mode .card h4 {
  color: var(--white);
}

.painel-body.dark-mode .alert-warning {
  --bs-alert-color: var(--text-color);
  --bs-alert-bg: #43413d;
  --bs-alert-border-color: #666359;
  --bs-alert-link-color: #bcb6a4;
}

.painel-body.dark-mode .nav-link {
  color: var(--text-color);
}

.painel-body.dark-mode.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active {
  color: var(--text-color);
  background-color: #3c373787;
  border-color: var(--bs-nav-tabs-link-active-border-color);
}

/* Estilos dark do HSE (Mockup) */
.hse-body.dark-mode {
  /* background: linear-gradient(180deg, var(--bg), #041423); */
}

.hse-body.dark-mode .panel-hse {
  /* background:linear-gradient(180deg,var(--panel),rgba(255,255,255,0.01)); */
  /* border-color: var(--line); */
  background: transparent !important;
}

.hse-body.dark-mode .controls-hse select,
.hse-body.dark-mode .controls-hse input[type="date"],
.hse-body.dark-mode .controls-hse input[type="time"],
.hse-body.dark-mode .controls-hse input[type="text"],
.hse-body.dark-mode .controls-hse .form-select-sm {
  background: var(--chip);
  border-color: var(--line);
}

.hse-body.dark-mode #report-list-target {
  background: rgba(0, 0, 0, 0.1);
}

.hse-body.dark-mode .blk {
  background: var(--chip);
  border-color: var(--line);
}
.hse-body.dark-mode .blk:hover {
  background: var(--panel);
}

.hse-body.dark-mode .report-instance {
  background: var(--card-bg);
  border-color: var(--line);
}
.hse-body.dark-mode .report-instance-header {
  border-color: var(--line);
}

.hse-body.dark-mode .card-hse {
  background: var(--card-bg);
}
.hse-body.dark-mode .card-hse h3 {
  border-color: var(--line);
}

.hse-body.dark-mode .metric {
  background: rgba(0, 0, 0, 0.1);
}

.hse-body.dark-mode .chart-wrap {
  background: rgba(0, 0, 0, 0.1);
}

.hse-body.dark-mode .table-scroll th {
  background: rgba(10, 20, 30, 0.6);
}
.hse-body.dark-mode .table-scroll td {
  border-color: var(--line);
}

/* ==========================================================================
   4. Estilos Gerais e Comuns (sem simplificação)
   ========================================================================== */
h5,
.card-title {
  text-align: center;
}
.hidden {
  display: none;
}
.brand {
  color: var(--brand);
}
.text-muuted {
  color: var(--text-muted) !important;
}
.tiny {
  font-size: 0.7rem;
  justify-content: center;
}
.tinysmall {
  font-size: 0.6rem;
  justify-content: center;
}
.tinysmallmini {
  font-size: 0.55rem !important;
  justify-content: center;
}
.foot-link {
  text-decoration: none;
  color: var(--text-color);
}
.foot-link:hover,
.foot-link:focus {
  text-decoration: none;
  color: var(--brand);
}
.painel-body .text-muuted {
  color: var(--text-muted) !important;
}
.w-clip {
  max-width: 300px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}
table {
  width: 100%;
  border-collapse: collapse;
}

/* Fontes */
.dashboard-body .tiny,
.painel-body .tiny {
  font-size: 0.8rem;
  justify-content: center;
}
.dashboard-body .mini,
.painel-body .mini {
  font-size: 0.9rem;
  justify-content: center;
}
.dashboard-body .tinysmall,
.dashboard-body .small {
  font-size: 0.75rem;
  color: var(--muted);
}
.painel-body .tinysmall {
  font-size: 0.7rem;
  justify-content: center;
}
.painel-body .tinysmallmini {
  font-size: 0.7rem;
  justify-content: center;
}

.logo-light {
  display: none; /* Oculto por padrão */
  height: 100px; /* Altura do logo */
}
.logo-dark {
  display: none; /* Oculto por padrão */
  height: 100px; /* Altura do logo */
}

/* Exibe o logo correto para o tema ATIVO */
.light-mode .logo-light {
  display: block; /* Mostra o logo de fundo preto no tema claro */
}
.dark-mode .logo-dark {
  display: block; /* Mostra o logo de fundo branco no tema escuro */
}

/* ==========================================================================
   5. Estilos Específicos do DASHBOARD
   ========================================================================== */
.dashboard-body .brand-icon {
  background-color: transparent;
  border-radius: 5px;
  height: 80px;
  margin-right: 40px;
}
.dashboard-body .brand-icon-text {
  background-color: transparent;
  border-radius: 0px 4px 4px 0px;
  width: 280px;
  height: 80px;
  text-align: center;
  align-content: center;
}
#relatorioSelect tr:hover {
  background: var(--panel-2);
}
.dashboard-body .panel {
  background: var(--card-bg);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -2px rgba(0, 0, 0, 0.1);
  transition:
    background-color 0.3s,
    border-color 0.3s;
}

.dashboard-body .panel h3 {
  margin: 0 0 14px 0;
  font-size: 16px;
  color: var(--white);
}

.dashboard-body .subtext {
  color: rgb(60, 61, 62) !important;
  font-weight: 700;
  font-size: 10px;
}
.dashboard-body .card {
  border: 0;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  height: 100%;
}
.dashboard-body .card-loading {
  border: 0;
  align-content: center;
  background: rgb(57 150 219 / 34%);
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  height: 90px;
  width: 550px;
}
.dashboard-body .logo,
.dashboard-body .logo-cloud {
  display: flex;
  align-items: center;
  gap: 10px;
}
.dashboard-body .logo img {
  height: 30px;
  margin-left: 8px;
}
.dashboard-body .logo-cloud img {
  height: 30px;
  margin-left: 5px;
}
.dashboard-body .logo-cloud {
  padding: 10px 5px;
}
.dashboard-body .title {
  font-weight: 700;
  letter-spacing: 0.2px;
  color: var(--text-color);
  font-size: 1.1rem;
}
.dashboard-body .chart-container {
  position: relative;
  height: 280px;
  width: 100%;
}
.dashboard-body .chart-value {
  position: absolute;
  top: 70%;
  left: 53%;
  transform: translate(-50%, -50%);
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--muted);
  opacity: 0.8;
  pointer-events: none;
}
.dashboard-body .initial-view {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 90vh;
}
.dashboard-body.light-mode .chart-value {
  color: var(--muted);
  opacity: 0.6;
}
.dashboard-body .pie-chart-container {
  position: relative;
  height: 220px;
  width: 100%;
}
.dashboard-body .table-responsive {
  max-height: 500px;
}
.dashboard-body .btn-visualizacao.active {
  background-color: var(--brand);
  color: #121212;
  border-color: var(--brand);
}
.dashboard-body .card-title {
  margin: 0 0 10px 0;
  color: var(--text-color);
  font-weight: 600;
  font-size: 1.1rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
  text-align: center; /* Sobrescreve o 'text-align: center' padrão */
}

.dark-mode .dashboard-body .card-title {
  color: #e4e5e4;
}

/*  Adicionado para os novos velocímetros de speedtest */
.dashboard-body .gauge-container {
  position: relative;
  width: 100%;
  max-width: 250px; /* Limita o tamanho do gráfico */
  height: 125px; /* Metade da altura para um semi-círculo */
  margin: 0 auto;
  overflow: hidden; /* Esconde a metade de baixo do gráfico */
}
.dashboard-body .gauge-value {
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-color);
  margin-top: -30px; /* Puxa o valor para dentro do gráfico */
  position: relative;
  z-index: 1;
}

.gauge-container-3d {
  position: relative;
  width: 100%; /* ou um tamanho fixo */
  max-width: 250px; /* Limite o tamanho para melhor visualização */
  margin: 0 auto;
  aspect-ratio: 2 / 1; /* Mantém a proporção de um semicírculo */
  overflow: hidden; /* Garante que a parte de cima não apareça */
}

/* NOVO: Valor central para o velocímetro */
.gauge-value-3d {
  position: absolute;
  bottom: 5%; /* Ajusta para aparecer abaixo do centro */
  left: 50%;
  transform: translateX(-50%);
  font-size: 1.8rem; /* Tamanho maior para o valor */
  font-weight: bold;
  color: var(--text-color);
  z-index: 10;
}

/* NOVO: Contêiner para o gráfico de pizza 3D */
.pie-chart-container-3d {
  position: relative;
  width: 100%;
  max-width: 250px; /* Limite o tamanho */
  margin: 0 auto;
  aspect-ratio: 1 / 1; /* Para um círculo */
}

/* No Dark Mode, ajuste a cor dos rótulos da legenda (se aparecerem) */
.dashboard-body.dark-mode .chart-container canvas,
.dashboard-body.dark-mode .pie-chart-container-3d canvas,
.dashboard-body.dark-mode .gauge-container-3d canvas {
  filter: brightness(0.95); /* Leve escurecimento para contraste no dark mode */
}
.dashboard-body.dark-mode .gauge-value-3d {
  color: var(--light-text);
}

.dashboard-body .gauge-container-3d {
  width: 100%;
  max-width: 300px;
  height: 250px;
  margin: 0 auto;
}

.dashboard-body .pie-chart-container-3d {
  width: 100%;
  height: 250px;
  margin: 0 auto;
}
.list-group {
  --bs-list-group-border-color: transparent !important;
}

/* ==========================================================================
   6. Estilos Específicos do PAINEL
   ========================================================================== */
.painel-body .layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  min-height: 100vh;
}
.painel-body .sidebar {
  background: linear-gradient(180deg, var(--panel-2), var(--bg) 70%);
  border-right: 1px solid var(--line);
  padding: 20px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  transition:
    background-color 0.3s,
    border-color 0.3s;
}
.paineel-body .logo-tools {
  display: flex;
  align-items: center;
  gap: 10px;
}
.painel-body .logo-tools img {
  height: 55px;
  margin-left: 8px;
  margin-bottom: 20px;
  margin-top: 10px;
}

.painel-body .logo-snc img {
  margin-bottom: 5px !important;
}

.painel-body .logo {
  display: flex;
  align-items: center;
  margin-left: 10px;
  font-weight: 700;
  letter-spacing: 0.3px;
  margin-bottom: 18px;
}
.painel-body .logo .mark {
  width: 28px;
  height: 28px;
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(0, 163, 163, 0.2);
}
.painel-body .menu a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  color: var(--white);
  text-decoration: none;
  transition: all 0.2s ease;
  font-weight: 500;
  margin-top: 4px;
}
.painel-body.light-mode .menu a {
  color: var(--text-color);
}
.painel-body .menu a:hover {
  background-color: var(--panel-2);
  border-color: transparent;
}
.painel-body .menu a.active {
  background: var(--menu-active-bg);
  color: var(--menu-active-color);
  border-color: transparent;
  font-weight: 600;
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.4);
}
.painel-body .menu a.active i {
  color: var(--menu-active-color);
}
.painel-body.light-mode .menu a.active {
  background: linear-gradient(135deg, #0d1925, #0c2f51 60%);
  color: var(--menu-active-color);
}
.painel-body.dark-mode .menu a.active {
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
  color: var(--menu-active-color);
}
.painel-body .badge {
  font-size: 12px;
  padding: 3px 8px;
  border-radius: 999px;
  background: linear-gradient(135deg, #0d1925, #0c2f51 60%);
  border: 1px solid var(--line);
  color: var(--white);
}
.painel-body .badge-update {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--brand);
  color: #ffffff;
  font-weight: 700;
}
.painel-body header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 22px;
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  backdrop-filter: saturate(140%) blur(6px);
  background: linear-gradient(
    180deg,
    rgba(13, 19, 36, 0.75),
    rgba(13, 19, 36, 0.55)
  );
  z-index: 10;
  transition:
    background-color 0.3s,
    border-color 0.3s;
}
.painel-body.light-mode header {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.85),
    rgba(255, 255, 255, 0.7)
  );
}
.painel-body .search {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  background-color: var(--panel-2);
  border: 1px solid var(--line);
  padding: 10px 12px;
  border-radius: 12px;
}
.painel-body .search input {
  all: unset;
  flex: 1;
  color: var(--text-color);
}
.painel-body .btn {
  appearance: none;
  border: none;
  background: linear-gradient(135deg, #0d1925, #0c2f51 60%);
  color: white;
  padding: 10px 12px;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 15px -5px rgba(0, 163, 163, 0.4);
  transition: transform 0.2s;
  font-size: 10px;
}
.painel-body .btn:hover {
  transform: translateY(-2px);
}
.painel-body.light-mode .btn {
  color: var(--ink);
}
.painel-body .btn-danger {
  background: linear-gradient(135deg, var(--danger), #b91c1c) !important;
  color: var(--white) !important;
}
.painel-body .btn-warning {
  background: linear-gradient(135deg, var(--danger), #b9851c);
}
.painel-body #patch-list-container table {
  font-size: 10px;
}
.painel-body .card,
.painel-body .panel,
.painel-body .container,
.painel-body .modal-content-user,
.painel-body .kpi {
  background: var(--card-bg);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -2px rgba(0, 0, 0, 0.1);
  transition:
    background-color 0.3s,
    border-color 0.3s;
}
.painel-body .card-grupo {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px;
  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -2px rgba(0, 0, 0, 0.1);
  transition:
    background-color 0.3s,
    border-color 0.3s;
}
.painel-body .content {
  padding: 20px 22px;
  display: grid;
  gap: 18px;
  margin-bottom: 120px;
}
.painel-body .kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.painel-body .card h4 {
  margin: 0 0 8px 0;
  font-size: 13px;
  color: var(--muted);
  letter-spacing: 0.2px;
}
.painel-body .big {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: 0.3px;
  color: var(--text-color);
}
.painel-body.light-mode .big {
  color: var(--text-color);
}
.painel-body .grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 16px;
}

/* .painel-body .odin-sidebar-menu{
    gap: 14px;
    grid-template-columns: repeat(4, 2fr);
    grid-auto-rows: max-content;
} */

.painel-body .panel h3 {
  margin: 0 0 14px 0;
  font-size: 12px;
  color: var(--text-color);
}
.painel-body .panel h5 {
  margin: 0 0 14px 0;
  font-size: 12px;
  color: var(--text-color);
}
.painel-body.light-mode .panel h3 {
  color: var(--text-color);
}

.panel-title {
  text-align: start;
}
.painel-body .container-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 14px;
}
.painel-body .host {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--bg);
  margin-top: 8px;
}
.painel-body .pill {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 999px;
}
.painel-body .pill.online {
  background: rgba(34, 197, 94, 0.12);
  color: #86efac;
  border: 1px solid rgba(34, 197, 94, 0.35);
}
.painel-body.light-mode .pill.online {
  color: var(--ok);
  border-color: #a7f3d0;
  background-color: #d1fae5;
}
.painel-body .pill.offline {
  background: rgba(197, 34, 34, 0.12);
  color: #ef8686;
  border: 1px solid rgba(197, 34, 34, 0.35);
}
.painel-body.light-mode .pill.offline {
  color: var(--danger);
  border-color: #f3a9a7;
  background-color: #fad1d1;
}
.painel-body .pill.overdue {
  background: rgba(197, 99, 34, 0.12);
  color: #efc186;
  border: 1px solid rgba(197, 121, 34, 0.35);
}
.painel-body.light-mode .pill.overdue {
  color: var(--warn);
  border-color: #f3dfa7;
  background-color: #faecd1;
}
.painel-body .details {
  /* position: sticky; */
  top: 72px;
  align-self: start;
}
.painel-body table {
  font-size: 13px;
}
.painel-body th,
.painel-body td {
  padding: 8px 6px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.painel-body tbody tr:hover {
  background: var(--panel-2);
}
.painel-body .select,
.painel-body .input,
.painel-body .modal-body input {
  width: 80%;
  background: var(--panel-2);
  border: 1px solid var(--line);
  padding: 8px 10px;
  border-radius: 10px;
  color: var(--text-color);
  margin-bottom: 10px;
}

select {
  word-wrap: break-word;
  width: 70% !important;
}

#search {
  width: 80%;
}

#novoGrupoNome {
  width: 45%;
  margin: 0px;
}

.modal-content .btn-sm-danger {
  background: linear-gradient(135deg, var(--danger), #b91c1c) !important;
  color: var(--text-color);
  padding: 4px 8px;
  font-size: 11px;
  border-radius: 8px;
}

.modal-content {
  width: 90%;
  background: linear-gradient(180deg, var(--panel-2), var(--bg) 70%);
  color: var(--text-color);
  border-radius: var(--card-radius);
  overflow-y: auto;
  overflow-x: hidden;
  border: none !important;
}

#uninstallModal {
  justify-content: center;
  align-items: center;
  height: 100vh;
  overflow: hidden;
}

.painel-body .modal {
  display: none;
  position: fixed;
  z-index: 999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.6);
}
.painel-body .modal-content-user {
  width: 80%;
  max-width: 500px;
  margin: 10% auto;
  background: linear-gradient(180deg, var(--panel-2), var(--bg) 70%);
  color: var(--text-color);
}
.painel-body .close-button {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
}
.painel-body .permissions-container {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin: 15px 0;
}
.painel-body .permission-group {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
}
.painel-body .permission-group h6 {
  margin-top: 0;
}
.painel-body .permission-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
}
.painel-body .permission-grid label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}
.painel-body [data-permission] {
  display: none;
}
.painel-body .description {
  color: var(--text-color);
  margin-top: -6px;
}
.painel-body .grid-overview {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.painel-body .bg-warn {
  background-color: rgb(193, 117, 10) !important;
}
.painel-body .foot-link {
  text-decoration: none;
  color: var(--text-color);
}
.painel-body .foot-link:hover,
.painel-body .foot-link:focus {
  text-decoration: none;
  color: var(--brand);
}
.painel-body .panel-overview {
  border-radius: 12px;
  padding: 14px;
  background: var(--panel-dark);
  color: var(--text-dark);
}

/*reports*/

/* CSS específico para a página de relatórios */
.report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 24px;
}

.report-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
  margin-bottom: 24px;
}

.kpi-card {
  padding: 20px;
  border-radius: 12px;
  color: #fff;
  text-align: center;
}

.kpi-card .kpi-title {
  font-size: 1rem;
  font-weight: 600;
  opacity: 0.9;
}

.kpi-card .kpi-value {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -1px;
}

/* Cores baseadas na imagem */
.kpi-card.red {
  background-color: #c84a4a;
}
.kpi-card.green {
  background-color: #5cb85c;
}
.kpi-card.orange {
  background-color: #f0ad4e;
}
.kpi-card.purple {
  background-color: #8e5ca7;
}
.kpi-card.blue {
  background-color: #5c70a7;
}

.report-card {
  background-color: var(--panel);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
}

.report-card h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-color);
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: 10px;
}

.report-card ul {
  list-style-type: none;
  padding-left: 5px;
  margin-bottom: 20px;
}

.report-card ul li {
  padding: 8px 0;
  font-size: 0.9rem;
  border-bottom: 1px solid var(--line);
}
.report-card ul li:last-child {
  border-bottom: none;
}

.report-card table {
  width: 100%;
  margin-top: 10px;
}

.report-card th,
.report-card td {
  font-size: 0.85rem;
}

.recommendations {
  margin-top: auto;
  border-top: 1px solid var(--line);
  padding-top: 15px;
}

.recommendations h4 {
  font-size: 1rem;
  font-weight: 600;
}

.status {
  font-weight: 700;
}
.status.critical {
  color: var(--danger);
}
.status.high {
  color: var(--warn);
}
.status.completed {
  color: var(--ok);
}

/* ==========================================================================
   7. Estilos Específicos do HSE (Mockup)
   ========================================================================== */
.hse-body .logo .title {
  font-size: 1.1rem; /* Reduzido */
  color: var(--text-color);
}
.hse-body .logo .small {
  font-size: 0.8rem; /* Reduzido */
  color: var(--muted);
}
.hse-body {
  font-family: var(--bs-body-font-family); /* Use global font */
  color: var(--text-color);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
.hse-body .container-hse {
  max-width: 1200px;
}
.dropdown-menu {
  --bs-dropdown-link-color: var(--text-color);
  background: var(--panel-2);
}

#selectAllComputers {
  display: none;
}
.hse-body .header-hse {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.hse-body .header-hse h1 {
  color: var(--brand-2);
  margin: 0;
  font-size: 20px;
}
.hse-body .header-hse p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}
.hse-body .header-hse .small {
  color: var(--muted);
  font-size: 13px;
}
.hse-body .panel-hse {
  /* background: var(--panel); */
  padding: 14px;
  border-radius: 12px;
  /* border: 1px solid var(--line); */
}
.hse-body .controls-hse {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}
.hse-body .controls-hse .col {
  min-width: 180px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hse-body .controls-hse select,
.hse-body .controls-hse input[type="date"],
.hse-body .controls-hse input[type="time"],
.hse-body .controls-hse input[type="text"] {
  background: var(--panel-2);
  border: 1px solid var(--line);
  color: var(--text-color);
  padding: 9px;
  border-radius: 8px;
  width: 100%;
  font-size: 0.75rem;
}
.hse-body .controls-hse .form-select-sm {
  background: var(--bg);
  border: 1px solid var(--line);
  color: var(--text-color);
  padding: 9px;
  border-radius: 8px;
  font-size: 0.75rem;
}
.hse-body #report-list-container {
  display: none;
  margin-top: 16px;
}
.hse-body #report-list-container h4 {
  color: var(--muted);
  font-size: 15px;
  margin-bottom: 8px;
  padding-left: 4px;
}
.hse-body #report-list-target {
  max-height: 220px;
  overflow-y: auto;
  padding: 6px;
  background: var(--bg);
  border-radius: 8px;
}
.hse-body .blocks-hse {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.hse-body .blk {
  background: var(--panel-2);
  padding: 10px 12px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  border: 1px solid var(--line);
  font-size: 0.75rem;
}
.hse-body .blk:hover {
  background: var(--panel);
}
.hse-body .blk input {
  transform: scale(1.1);
}
.hse-body .generate-hse {
  margin-left: auto;
}
.hse-body.dark-mode .btn-hse {
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
}
.hse-body .btn-hse {
  background: linear-gradient(135deg, #0d1925, #0c2f51 60%);
  border: none;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 700;
  color: var(--white);
  cursor: pointer;
}
.hse-body .btn-hse.ghost {
  background: #0000003d;
  border: 1px solid var(--line);
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--text-color);
  cursor: pointer;
}
.hse-body .btn-hse.ghost:hover {
  background: #ebe7e73c;
}
.hse-body .report-area-hse {
  margin-top: 18px;
}
.hse-body .report-instance {
  background: var(--panel);
  padding: 12px;
  border-radius: 10px;
  margin-bottom: 16px;
  border: 1px solid var(--line);
}
.hse-body .report-instance-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
  margin-bottom: 8px;
}
.hse-body .report-instance-header h2 {
  color: var(--brand-2);
  font-size: 18px;
  margin: 0;
}
.hse-body .report-instance-header .small {
  color: var(--muted);
  font-size: 13px;
}
.hse-body .card-hse {
  background: var(--card-bg);
  padding: 12px;
  border-radius: 10px;
  margin-bottom: 12px;
}
.hse-body .card-hse h3 {
  margin: 0 0 10px 0;
  color: var(--brand-2);
  font-size: 16px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
}
.dark-mode .hse-body .card-hse h3 {
  color: var(--brand-light);
}
.hse-body .grid-4 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.hse-body .metric {
  background: var(--bg);
  padding: 10px;
  border-radius: 8px;
}
.hse-body .metric .label {
  color: var(--muted);
  font-size: 12px;
}
.hse-body .metric .value {
  font-weight: 700;
  margin-top: 6px;
  word-wrap: break-word;
}
.hse-body .charts-hse {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 12px;
}
.hse-body .chart-wrap {
  background: var(--bg);
  padding: 12px;
  border-radius: 8px;
}
.hse-body .table-scroll {
  max-height: 260px;
  overflow: auto;
  margin-top: 8px;
  border-radius: 6px;
}
.hse-body .table-scroll table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.hse-body .table-scroll th {
  position: sticky;
  top: 0;
  background: var(--panel-2);
  padding: 8px;
  text-align: left;
  color: var(--brand-2);
}
.hse-body .table-scroll td {
  padding: 8px;
  border-top: 1px solid var(--line);
  color: var(--text-color);
}
.hse-body .disk-mini {
  display: flex;
  gap: 12px;
  align-items: center;
}
.hse-body .pie-container {
  width: 100px;
  height: 100px;
  position: relative;
}
.hse-body .disk-mini .meta {
  font-size: 13px;
  color: var(--muted);
}
.hse-body .disk-mini .meta .val {
  font-weight: 700;
  color: var(--text-color);
  margin-top: 6px;
}
.hse-body .actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-bottom: 8px;
}
.hse-body #loading-message {
  display: none;
  text-align: center;
  padding: 20px;
  background: var(--chip);
  border-radius: 8px;
  color: var(--muted);
}
.hse-body .line-chart-container {
  position: relative;
  height: 180px;
}
.hse-body .date-input-wrapper {
  position: relative;
}

.hse-body .date-input-icon {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  color: var(--muted);
  cursor: pointer;
  font-size: 1.1rem;
}

/* Esconde o ícone padrão do navegador (Chrome, Edge, Safari) */
.hse-body .controls-hse input[type="date"]::-webkit-calendar-picker-indicator {
  display: none;
  opacity: 0;
}

/* Garante que o texto do input não vá para baixo do ícone */
.hse-body .controls-hse input[type="date"] {
  padding-right: 35px; /* Adiciona espaço à direita para o ícone */
}

.hse-body .logo,
.hse-body .logo-cloud {
  display: flex;
  align-items: center;
  gap: 10px;
}
.hse-body .logo img {
  height: 30px;
  margin-left: 8px;
}
.hse-body .logo-cloud img {
  height: 30px;
  margin-left: 5px;
}
.hse-body .logo-cloud {
  padding: 10px 5px;
}
.hse-body .title {
  font-weight: 700;
  letter-spacing: 0.2px;
  color: var(--text-color);
}

/* ==========================================================================
   8. Estilos Específicos do LOGIN
   ========================================================================== */
.login-card {
  background-color: #dfdfe9;
  padding: 40px;
  border-radius: 12px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
  width: 100%;
  max-width: 500px;
}
.login-body form {
  margin-left: 30px;
}
.login-body .logo {
  margin-left: 75px;
  border-radius: 10px;
  padding: 5px;
}
.login-body .login-container h1 {
  text-align: center;
  margin-bottom: 30px;
  font-size: 28px;
  color: #00bfff;
}
.login-body .login-container input {
  width: 90%;
  padding: 12px;
  margin-bottom: 20px;
  border: none;
  border-radius: 8px;
  background-color: #3b3b5a;
  color: #ffffff;
  font-size: 16px;
}
.login-body .login-container button {
  width: 80%;
  padding: 12px;
  border: none;
  border-radius: 8px;
  margin-left: 20px;
  background-color: #00bfff;
  color: #1e1e2f;
  font-weight: bold;
  cursor: pointer;
  font-size: 16px;
}
.login-body .login-container button:hover {
  background-color: #0095d6;
}
.login-body .error-message {
  color: #ff6b6b;
  text-align: center;
  margin-bottom: 10px;
}

/* ==========================================================================
   9. Media Queries (Responsividade e Impressão)
   ========================================================================== */
@media print {
  @page {
    size: 66%;
  }
  body {
    zoom: 0.75;

    /* background: #b0afaf !important;
    color: #000 !important; */
  }
  .no-print {
    display: none !important;
  }
  .card,
  .panel {
    box-shadow: none !important;
    border: 1px solid #ddd !important;
  }
  main,
  .secao-avancado {
    display: block !important;
  }
}
@media (max-width: 980px) {
  .layout {
    grid-template-columns: 1fr;
  }
  .left {
    order: 2;
  }
}
/* Media query do mockup HSE */
@media (max-width: 900px) {
  .hse-body .charts-hse {
    grid-template-columns: 1fr;
  }
  .hse-body .controls-hse {
    gap: 8px;
  }
}

/* ==========================================================================
   10. Estilos Específicos do NOVO LOGIN
   ========================================================================== */

.login-body-new {
  margin: 0;
  font-family: var(--bs-body-font-family);
  display: flex;
  height: 100vh;
  width: 100vw;
  overflow: hidden; /* Previne barras de rolagem */
  background-color: var(--bg); /* Fundo do tema */
  color: var(--text-color);
  transition: 0.5s;
}

.login-body-new .foot-link {
  text-decoration: none;
  color: white;
}

.login-wrapper {
  display: flex;
  width: 100%;
  height: 100%;
}

/* Painel Esquerdo (Formulário) */
.login-form-container {
  width: 450px; /* Largura fixa para o formulário */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 3rem;
  background-color: var(--panel); /* Cor do painel do tema */
  /* border-right: 1px solid var(--line); */
  z-index: 10;
}

.login-form-content {
  width: 100%;
  max-width: 350px;
}

.login-form-content .form-control {
  background-color: var(--bg);
  color: var(--text-color);
  border-color: var(--line);
}
.login-form-content .form-control:focus {
  background-color: var(--bg);
  color: var(--text-color);
  border-color: var(--brand-2);
  box-shadow: 0 0 0 0.25rem rgba(0, 163, 163, 0.25);
}

.login-form-content .btn-primary {
  background-color: var(--brand-2);
  border: none;
  transition: background-color 0.3s ease;
}
.login-form-content .btn-primary:hover {
  background-color: #007a7a; /* Um pouco mais escuro */
}

.forgot {
  font-size: 13px;
  cursor: pointer;
  color: var(--muted);
  text-decoration: none;
}
.forgot:hover {
  color: var(--brand-2);
  text-decoration: underline;
}

.login-error-message {
  color: var(--danger);
  background-color: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  text-align: center;
}

/* Painel Direito (Animação) */
.login-animation-container {
  flex: 1;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #042139, #0b2f4b);
  color: var(--white);
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Tema Claro para o Painel de Animação */
/* .light-mode .login-animation-container {
  background: linear-gradient(135deg, #e0f7fa, #b2ebf2);
  color: #222;
} */

.particles {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}

.particle {
  position: absolute;
  width: 8px;
  height: 8px;
  background: var(--brand-2);
  border-radius: 50%;
  opacity: 0.6;
  animation: float 6s infinite ease-in-out;
}
.light-mode .particle {
  background: var(--white);
}

.login-animation-container h3 {
  z-index: 2;
  position: relative;
}
.login-animation-container img {
  z-index: 2;
  position: relative;
}

/* Botão de Tema */
.toggle-theme {
  position: absolute;
  bottom: 20px;
  left: 20px;
  font-size: 14px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 12px;
  color: var(--text-color);
  cursor: pointer;
  transition: 0.3s;
  z-index: 11;
}
.toggle-theme:hover {
  background-color: var(--panel-2);
}

/* Ícones do botão de tema */
.toggle-theme .bi-sun {
  display: none;
}
.toggle-theme .bi-moon-stars-fill {
  display: block;
}

.light-mode .toggle-theme .bi-sun {
  display: block;
}
.light-mode .toggle-theme .bi-moon-stars-fill {
  display: none;
}

/* Animação das Partículas */
@keyframes float {
  0% {
    transform: translateY(100vh) scale(0.5);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: translateY(-10vh) scale(1);
    opacity: 0;
  }
}

/* Responsividade (esconde o painel de animação em telas menores) */
@media (max-width: 768px) {
  .login-animation-container {
    display: none;
  }
  .login-form-container {
    width: 100%;
    border: none;
  }
}
/* ==========================================================================
   11. Estilos do Chatbot Rasa
   ========================================================================== */

.chat-bubble {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  z-index: 998;
  transition: all 0.3s ease;
}

.chat-bubble:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.chat-bubble.hidden {
  transform: scale(0);
  opacity: 0;
}

.chat-widget {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 350px;
  height: 500px;
  background-color: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--card-radius);
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 999;
  transform: scale(1);
  opacity: 1;
  transform-origin: bottom right;
  transition:
    transform 0.3s ease,
    opacity 0.3s ease;
}

.chat-widget.hidden {
  transform: scale(0);
  opacity: 0;
  pointer-events: none;
}

.chat-header {
  display: flex;
  align-items: center;
  padding: 12px 15px;
  background-color: var(--panel-2);
  border-bottom: 1px solid var(--line);
  font-weight: 600;
  color: var(--text-color);
}

.chat-header i {
  color: var(--brand);
  margin-right: 10px;
}

.chat-close-btn {
  all: unset; /* Reseta o estilo do botão */
  margin-left: auto;
  font-size: 20px;
  font-weight: bold;
  color: var(--muted);
  cursor: pointer;
  padding: 0 5px;
}
.chat-close-btn:hover {
  color: var(--danger);
}

.chat-body {
  flex: 1;
  padding: 15px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Estilo da barra de rolagem para dark/light */
.chat-body::-webkit-scrollbar {
  width: 6px;
}
.chat-body::-webkit-scrollbar-thumb {
  background-color: var(--muted);
  border-radius: 3px;
}
.chat-body::-webkit-scrollbar-track {
  background-color: var(--panel-2);
}

.chat-message {
  display: flex;
  max-width: 85%;
}

.message-content {
  padding: 10px 14px;
  border-radius: 18px;
  font-size: 14px;
  line-height: 1.4;
  word-wrap: break-word;
}

.bot-message {
  justify-content: flex-start;
}
.bot-message .message-content {
  background-color: var(--panel-2);
  color: var(--text-color);
  border-bottom-left-radius: 4px;
}

.user-message {
  justify-content: flex-end;
  align-self: flex-end;
}
.user-message .message-content {
  background-color: var(--brand);
  color: #fff; /* Texto branco fica melhor no fundo 'brand' */
  border-bottom-right-radius: 4px;
}
.painel-body.light-mode .user-message .message-content {
  color: #121212; /* Texto escuro no modo light */
}

.chat-input-area {
  display: flex;
  padding: 10px;
  border-top: 1px solid var(--line);
}

.chat-input-area input {
  flex: 1;
  border: 1px solid var(--line);
  background-color: var(--panel-2);
  color: var(--text-color);
  padding: 10px 12px;
  border-radius: 20px;
  font-size: 14px;
  margin-right: 10px;
}
.chat-input-area input:focus {
  outline: none;
  border-color: var(--brand);
}

.chat-input-area button {
  all: unset;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--brand);
  color: #fff; /* Branco no botão */
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 16px;
  transition: background-color 0.2s;
}
.chat-input-area button:hover {
  opacity: 0.9;
}
.painel-body.light-mode .chat-input-area button {
  color: #121212; /* Texto escuro no modo light */
}

/* Responsividade para telas pequenas */
@media (max-width: 768px) {
  .chat-widget {
    /* Ocupa a tela toda no celular */
    width: 100%;
    height: 100%;
    bottom: 0;
    right: 0;
    border-radius: 0;
  }
}

/* ==========================================================================
   12. Estilos do CoNNecta Grid
   ========================================================================== */

/* Estilos de Cartão de Solicitação do Grid (Simulação do Tailwind) */
.connecta-grid-card {
  background-color: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 1.5rem; /* 24px */
  box-shadow:
    0 1px 3px 0 rgba(0, 0, 0, 0.1),
    0 1px 2px 0 rgba(0, 0, 0, 0.06);
  transition: all 0.2s ease;
  min-height: 200px;
}
.connecta-grid-card:hover {
  box-shadow:
    0 10px 15px -3px rgba(0, 0, 0, 0.1),
    0 4px 6px -2px rgba(0, 0, 0, 0.05);
  border-color: var(--grid-primary);
  cursor: pointer;
}

/* Estilos de Status (Badges) */
.connecta-grid-card .badge-status-await {
  background-color: var(--grid-status-await);
  color: var(--grid-text-await);
}
.dark-mode .connecta-grid-card .badge-status-await {
  background-color: #554400; /* Escurecido */
  color: var(--grid-text-await);
}

.connecta-grid-card .badge-status-accept {
  background-color: var(--grid-status-accept);
  color: var(--grid-text-accept);
}
.dark-mode .connecta-grid-card .badge-status-accept {
  background-color: #0c3321; /* Escurecido */
  color: var(--grid-text-accept);
}

.connecta-grid-card .badge-status-route {
  background-color: var(--grid-status-route);
  color: var(--grid-text-route);
}
.dark-mode .connecta-grid-card .badge-status-route {
  background-color: #101c3d; /* Escurecido */
  color: var(--grid-text-route);
}
.badge-status-solved {
  background-color: #38a169; /* Status 'Solucionado' */
  color: #fff;
}

/* Estilo do Banner de Status na Tela de Detalhes (Técnico a Caminho) */
.grid-status-banner-route {
  background-color: var(--grid-status-route);
  border: 1px solid var(--grid-text-route);
  color: var(--grid-text-route);
  padding: 1rem;
  border-radius: 8px;
  font-weight: 600;
}
.dark-mode .grid-status-banner-route {
  background-color: #101c3d; /* Escuro */
  color: var(--grid-text-route);
  border-color: #1d4ed8;
}

/* Estilos para o Chat/Linha do Tempo (Em Atendimento) */
.grid-timeline-message {
  padding: 12px;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  margin-bottom: 12px;
  position: relative;
  border-left: 4px solid var(--grid-primary); /* Linha do tempo */
}

/* Estilos para o Técnico/Sistema (Mensagens da esquerda - fundo mais escuro) */
.grid-timeline-message.system-msg {
  background-color: var(--panel-2); /* Fundo sutil */
  border-left-color: #6b7280; /* Cor cinza para sistema */
}

/* Estilos para o Cliente (Mensagens da direita - fundo mais claro) - OPCIONAL */
.grid-timeline-message.client-msg {
  background-color: var(--panel);
  border-left-color: var(--grid-primary);
  text-align: right;
}

.grid-timeline-author {
  font-weight: 600;
  margin-bottom: 4px;
  display: block;
}
.grid-timeline-time {
  font-size: 0.75rem;
  color: var(--muted);
  position: absolute;
  top: 10px;
  right: 10px;
}

/* Estilo para a tela de Avaliação */
.grid-rating-stars .fa-star {
  color: #fca311; /* Cor Amarela do Star Rating */
  cursor: pointer;
  font-size: 2.5rem;
  transition: color 0.2s;
}
.grid-rating-stars .fa-star-o {
  color: var(--line);
}

.connecta-grid-card div h3 {
  font-size: 1.2rem;
}

.grid-map-container {
  background-color: #f8f8f8; /* Fundo cinza claro do mapa Uber */
  border: 1px solid #ddd;
  position: relative;
  overflow: hidden;
  min-height: 400px;
  border-radius: 8px;
  /* Transição para Dark Mode */
  transition:
    background-color 0.3s,
    border-color 0.3s;
}

.dark-mode .grid-map-container {
  background-color: #212121; /* Fundo escuro */
  border-color: #444;
}

/* Estilo para simular o mapa (linhas de rua) - USANDO SVG como base */
.grid-map-svg-background path {
  stroke: #bdbdbd; /* Cinza claro para ruas no tema claro */
  stroke-width: 1.5;
  fill: none;
}
.dark-mode .grid-map-svg-background path {
  stroke: #424242; /* Cinza escuro para ruas no tema escuro */
}

/* Rota principal (Preto) */
.grid-map-route {
  stroke: #000000;
  stroke-width: 4;
  fill: none;
  filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.5));
}
.dark-mode .grid-map-route {
  stroke: #ffffff; /* Rota branca no tema escuro */
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.5));
}

/* Balão do ETA (Uber-like) */
.eta-bubble {
  background-color: #ffffff;
  color: #000000;
  padding: 6px 12px;
  border-radius: 4px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  font-weight: bold;
  font-size: 14px;
  white-space: nowrap;
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
}
.eta-bubble::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  background-color: #ffffff;
  box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
  z-index: -1;
}

/* Posição do Carro (Técnico) */
.car-icon-wrapper {
  position: absolute;
  width: 25px;
  height: 12px;
  /* Posição fictícia na rota (início) */
  top: 30%;
  left: 50%;
  z-index: 10;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.4));
}

.dark-mode .fa-car-side {
  color: #000; /* Carro preto mesmo no dark mode (destaque) */
}

@media (width <= 425px) {
  #connecta-grid-list {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

@media (width >= 768px) {
  #connecta-grid-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (width >= 1024px) {
  #connecta-grid-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (width >= 1440px) {
  #connecta-grid-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (width >= 2560px) {
  #connecta-grid-list {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

/* ==========================================================================
   Correção de Formulários no Modo Escuro
   ========================================================================== */

/* Aplica estilo escuro nos inputs e selects quando o tema for dark */
body.dark-mode .form-select,
body.dark-mode .form-control,
body.dark-mode input,
body.dark-mode select {
  background-color: var(--panel) !important; /* Usa a cor do painel (#1e293b) */
  color: var(--white) !important; /* Texto branco */
  border-color: var(--line) !important; /* Borda cinza escura */
}

/* Foca no input (quando clicado) para manter o tema escuro */
body.dark-mode .form-select:focus,
body.dark-mode .form-control:focus {
  background-color: var(--panel) !important;
  color: var(--white) !important;
  border-color: var(--brand) !important; /* Borda verde/marca ao focar */
  box-shadow: 0 0 0 0.25rem rgba(166, 212, 80, 0.25); /* Glow suave */
}

/* --- O PULO DO GATO --- */
/* Isso corrige a lista suspensa (as opções) que costuma ficar branca */
body.dark-mode select option {
  background-color: #1e293b; /* Fundo escuro nas opções */
  color: #ffffff; /* Texto branco nas opções */
}

/* Corrige a cor do texto de placeholder (aquele texto cinza de dica) */
body.dark-mode ::placeholder {
  color: #9ca3af !important;
  opacity: 1;
}

/* Corrige ícones dentro de grupos de input (se houver) */
body.dark-mode .input-group-text {
  background-color: var(--chip);
  color: var(--text-color);
  border-color: var(--line);
}

/* ==========================================================================
   6.1. Estilos do CoNNecta Pulse
   ========================================================================== */
.painel-body .pulse-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.painel-body .pulse-page-title {
  margin-bottom: 6px !important;
  font-size: 1rem !important;
}
.painel-body .pulse-toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.painel-body .pulse-search {
  min-width: 260px;
  max-width: 360px;
}
.painel-body .pulse-kpis .card,
.painel-body .pulse-card-highlight {
  min-height: 120px;
}
.painel-body .pulse-progress {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.18);
  overflow: hidden;
  margin-top: 10px;
}
.painel-body .pulse-progress span {
  display: block;
  height: 100%;
  background: linear-gradient(135deg, #2563eb, #60a5fa);
}
.painel-body .pulse-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.painel-body .pulse-panel-title {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.painel-body .pulse-panel-title h3 {
  margin-bottom: 4px !important;
}
.painel-body .pulse-timeline,
.painel-body .pulse-list {
  display: grid;
  gap: 10px;
}
.painel-body .pulse-timeline-item,
.painel-body .pulse-list-row,
.painel-body .pulse-note,
.painel-body .pulse-contract {
  background: rgba(148, 163, 184, 0.08);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px;
}
.painel-body .pulse-timeline-item,
.painel-body .pulse-list-row,
.painel-body .pulse-contract {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.painel-body .pulse-compliance-grid {
  display: grid;
  gap: 12px;
}
.painel-body .pulse-mini-stat {
  display: grid;
  grid-template-columns: 20px 1fr auto;
  gap: 12px;
  align-items: center;
  background: rgba(148, 163, 184, 0.08);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px;
}
.painel-body .pulse-mini-stat i {
  color: #2563eb;
}
.painel-body .pulse-danger-stat i,
.painel-body .pulse-danger {
  color: #ef4444 !important;
}
.painel-body .pulse-mini-stat strong,
.painel-body .pulse-note strong {
  display: block;
  margin-bottom: 4px;
}
.painel-body .pulse-mini-stat span {
  font-size: 12px;
  color: var(--muted);
}
.painel-body .pulse-finance-card {
  display: grid;
  gap: 8px;
}
.painel-body .pulse-trend {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  margin-top: 8px;
}
.painel-body .pulse-up {
  color: #16a34a;
}
.painel-body .pulse-warn {
  color: #f59e0b;
}
.painel-body .pulse-info-text {
  color: #2563eb;
}
.painel-body .pulse-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}
.painel-body .pulse-success {
  background: rgba(34, 197, 94, 0.15);
  color: #16a34a;
}
.painel-body .pulse-warning {
  background: rgba(245, 158, 11, 0.18);
  color: #b45309;
}
.painel-body .pulse-danger {
  background: rgba(239, 68, 68, 0.15);
  color: #dc2626;
}
.painel-body .pulse-info {
  background: rgba(37, 99, 235, 0.15);
  color: #2563eb;
}
.painel-body .pulse-table {
  margin-bottom: 0;
}
.painel-body .pulse-table thead th {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--muted);
  border-bottom-color: var(--line);
}
.painel-body .pulse-table tbody td {
  vertical-align: middle;
  border-bottom-color: var(--line);
  color: var(--text-color);
}
.painel-body .pulse-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.painel-body .pulse-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  border: 1px solid var(--line);
  background: rgba(148, 163, 184, 0.08);
  color: var(--text-color);
}
body.dark-mode .painel-body .pulse-timeline-item,
body.dark-mode .painel-body .pulse-list-row,
body.dark-mode .painel-body .pulse-note,
body.dark-mode .painel-body .pulse-contract,
body.dark-mode .painel-body .pulse-mini-stat,
body.dark-mode .painel-body .pulse-chip {
  background: rgba(15, 23, 42, 0.45);
}
@media (max-width: 980px) {
  .painel-body .pulse-grid-2,
  .painel-body .kpis {
    grid-template-columns: 1fr;
  }
  .painel-body .pulse-search {
    min-width: 100%;
    max-width: 100%;
  }
}

/* ==========================================================
   Modal Configurações CoNNecta ODIN
   Compatível com light-mode e dark-mode do painel
========================================================== */

.odin-config-modal {
  z-index: 9999 !important;
  color: var(--text-color);
}

.odin-config-modal .modal-dialog {
  max-width: 1180px;
  width: calc(100% - 32px);
}

.odin-config-content {
  background: var(--panel) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}

.odin-config-header {
  background:
    radial-gradient(
      circle at top left,
      rgba(37, 132, 227, 0.18),
      transparent 34%
    ),
    linear-gradient(135deg, rgba(13, 25, 37, 0.06), rgba(12, 47, 81, 0.04));
  border-bottom: 1px solid var(--line);
  color: var(--text-color);
}

.odin-config-header .modal-title {
  color: var(--text-color);
  font-weight: 800;
  text-align: left;
}

.odin-config-header .modal-title i {
  color: var(--brand);
}

.odin-config-subtitle {
  display: block;
  color: var(--muted);
  font-size: 0.72rem;
  margin-top: 3px;
}

.odin-config-close {
  opacity: 0.8;
}

.odin-config-body {
  background: var(--panel-2);
  color: var(--text-color);
  padding: 18px;
  max-height: calc(100vh - 190px);
  overflow-y: auto;
}

.odin-config-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.odin-config-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 16px;
  color: var(--text-color);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

.odin-config-card h6 {
  color: var(--text-color);
  font-weight: 800;
  margin-bottom: 14px;
  display: flex;
  gap: 8px;
  align-items: center;
  text-align: left;
}

.odin-config-card h6 i {
  color: var(--brand);
}

.odin-switch-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(127, 135, 149, 0.16);
  color: var(--text-color);
  font-size: 0.82rem;
  cursor: pointer;
}

.odin-switch-row:last-child {
  border-bottom: 0;
}

.odin-switch-row span {
  color: var(--text-color);
  line-height: 1.25;
}

.odin-switch-row input[type="checkbox"] {
  width: 42px;
  height: 22px;
  flex: 0 0 auto;
  appearance: none;
  border-radius: 999px;
  background: #9ca3af;
  position: relative;
  cursor: pointer;
  transition: 0.2s ease;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.odin-switch-row input[type="checkbox"]::before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 2px;
  top: 1px;
  border-radius: 50%;
  background: #fff;
  transition: 0.2s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);
}

.odin-switch-row input[type="checkbox"]:checked {
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
}

.odin-switch-row input[type="checkbox"]:checked::before {
  transform: translateX(19px);
}

.odin-form-group label {
  color: var(--text-color);
  font-size: 0.78rem;
  font-weight: 700;
  margin-bottom: 6px;
}

.odin-form-group small,
.odin-help-text {
  display: block;
  color: var(--muted);
  font-size: 0.7rem;
  margin-top: 6px;
}

.odin-config-card .form-control,
.odin-config-card .form-select {
  background: var(--panel-2) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px;
  font-size: 0.82rem;
}

.odin-config-card .form-control:focus,
.odin-config-card .form-select:focus {
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 3px rgba(166, 212, 80, 0.18) !important;
}

.odin-config-card .form-select option {
  color: #111827;
  background: #ffffff;
}

.odin-config-footer {
  background: var(--panel);
  border-top: 1px solid var(--line);
}

.odin-disabled-feature {
  opacity: 0.62;
  cursor: not-allowed;
}

.odin-disabled-feature input {
  cursor: not-allowed;
}

.odin-help-text {
  display: block;
  color: var(--muted, #94a3b8);
  font-size: 0.78rem;
  margin-top: 6px;
  line-height: 1.35;
}

.odin-history-list,
.odin-events-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 62vh;
  overflow-y: auto;
  padding-right: 4px;
}

.odin-history-item,
.odin-event-item {
  border: 1px solid var(--line);
  background: var(--panel-2);
  color: var(--text-color);
  border-radius: 14px;
  padding: 12px;
  transition: 0.18s ease;
}

.odin-history-item {
  cursor: pointer;
}

.odin-history-item:hover,
.odin-history-item.active {
  border-color: var(--brand);
  background: rgba(32, 201, 151, 0.08);
}

.odin-history-title,
.odin-event-title {
  font-weight: 800;
  font-size: 0.9rem;
  color: var(--text-color);
}

.odin-history-meta,
.odin-event-meta {
  color: var(--muted);
  font-size: 0.74rem;
  margin-top: 4px;
}

.odin-event-message {
  font-size: 0.82rem;
  margin-top: 6px;
  color: var(--text-color);
}

.odin-event-extra {
  margin-top: 8px;
  padding: 8px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.12);
  color: var(--muted);
  font-size: 0.72rem;
  white-space: pre-wrap;
  word-break: break-word;
}

.odin-event-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 0.68rem;
  font-weight: 800;
  background: rgba(14, 165, 233, 0.12);
  color: #38bdf8;
}

.odin-event-badge.warning {
  background: rgba(245, 158, 11, 0.14);
  color: #fbbf24;
}

.odin-event-badge.danger {
  background: rgba(239, 68, 68, 0.14);
  color: #fca5a5;
}

.odin-event-badge.success {
  background: rgba(34, 197, 94, 0.14);
  color: #86efac;
}

.odin-history-item .btn,
.odin-event-item .btn {
  font-size: 0.72rem;
  border-radius: 10px;
  padding: 5px 9px;
}

.odin-event-item .btn-outline-danger,
.odin-history-item .btn-outline-danger {
  color: #fca5a5;
  border-color: rgba(239, 68, 68, 0.45);
}

.odin-event-item .btn-outline-danger:hover,
.odin-history-item .btn-outline-danger:hover {
  color: #fff;
  background: #dc2626;
  border-color: #dc2626;
}

.odin-history-item .btn-outline-warning {
  color: #facc15;
  border-color: rgba(250, 204, 21, 0.45);
}

.odin-history-item .btn-outline-warning:hover {
  color: #111827;
  background: #facc15;
  border-color: #facc15;
}

.odin-history-item .btn-outline-info {
  color: #67e8f9;
  border-color: rgba(103, 232, 249, 0.45);
}

.odin-history-item .btn-outline-info:hover {
  color: #0f172a;
  background: #67e8f9;
  border-color: #67e8f9;
}

/* Dark mode */
body.dark-mode .odin-config-content {
  background: linear-gradient(180deg, var(--panel-2), var(--bg) 70%) !important;
  color: var(--text-color) !important;
}

body.dark-mode .odin-config-body {
  background: rgba(15, 23, 42, 0.82);
}

body.dark-mode .odin-config-card {
  background: var(--grid-card-dark);
  border-color: var(--line);
}

body.dark-mode .odin-config-card .form-control,
body.dark-mode .odin-config-card .form-select {
  background: var(--chip) !important;
  color: var(--text-color) !important;
  border-color: var(--line) !important;
}

body.dark-mode .odin-config-card .form-select option {
  color: #f1f1f1;
  background: #1e293b;
}

body.dark-mode .odin-config-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

/* Responsivo */
@media (max-width: 1100px) {
  .odin-config-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .odin-config-grid {
    grid-template-columns: 1fr;
  }

  .odin-config-body {
    max-height: calc(100vh - 150px);
  }
}

/* =========================
   O.D.IN - Acesso Remoto
   Filtros, KPIs e ordenação
========================= */

#view-odin .odin-filter-panel {
  padding: 16px;
}

#view-odin .odin-sortable-th {
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}

#view-odin .odin-sortable-th:hover {
  color: var(--brand, #20c997);
}

#view-odin .odin-sort-icon {
  margin-left: 6px;
  opacity: 0.65;
  font-size: 0.75rem;
}

#view-odin .odin-sort-icon.active {
  opacity: 1;
  color: var(--brand, #20c997);
}

#view-odin .table-responsive {
  width: 100%;
  overflow-x: auto;
}

#view-odin .form-control,
#view-odin .form-select {
  min-height: 42px;
}

#view-odin .kpis {
  margin-bottom: 16px;
}

@media (max-width: 768px) {
  #view-odin .odin-filter-panel .row > div {
    width: 100%;
  }

  #view-odin .odinDetailsPanel table {
    min-width: 980px;
  }
}

/*=============================
      ODIN - UPDATE 
==============================*/

.odin-update-focus {
  outline: 2px solid rgba(0, 163, 163, 0.85);
  box-shadow:
    0 0 0 4px rgba(0, 163, 163, 0.14),
    0 0 28px rgba(0, 163, 163, 0.35) !important;
  transition:
    box-shadow 0.25s ease,
    outline 0.25s ease;
}

.odin-update-alert-row {
  box-shadow: inset 4px 0 0 #f59e0b;
}

.odin-update-ok-row {
  box-shadow: inset 4px 0 0 #16a34a;
}

/*=============================
      SISTEMA NERVOSO CoNNecta
==============================*/
.snc-shell {
  --snc-bg: #07111f;
  --snc-card: rgba(13, 28, 48, 0.92);
  --snc-card-2: rgba(8, 20, 36, 0.96);
  --snc-border: rgba(0, 200, 255, 0.18);
  --snc-border-strong: rgba(0, 200, 255, 0.38);
  --snc-blue: #00c8ff;
  --snc-green: #00d27a;
  --snc-red: #ff4d4d;
  --snc-orange: #f59e0b;
  --snc-yellow: #facc15;
  --snc-text: #eaf7ff;
  --snc-muted: #9eb8c8;
  color: var(--snc-text);
  background:
    linear-gradient(rgba(0, 200, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 200, 255, 0.025) 1px, transparent 1px),
    radial-gradient(
      circle at top right,
      rgba(0, 200, 255, 0.12),
      transparent 35%
    ),
    var(--snc-bg);
  background-size:
    42px 42px,
    42px 42px,
    auto,
    auto;
  min-height: calc(100vh - 40px);
  padding: 22px;
  border-radius: 16px;
  border: 1px solid var(--snc-border);
  box-shadow: inset 0 0 24px rgba(0, 200, 255, 0.04);
}
.snc-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  background: var(--snc-card);
  border: 1px solid var(--snc-border);
  border-radius: 14px;
  padding: 18px 20px;
  margin-bottom: 18px;
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.18);
}
.snc-header.compact {
  padding: 16px 18px;
}
.snc-kicker {
  font-size: 0.72rem;
  color: var(--snc-blue);
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 800;
  margin-bottom: 4px;
}
.snc-header h1 {
  font-size: 1.7rem;
  margin: 0;
  color: #fff;
  text-shadow: 0 0 12px rgba(0, 200, 255, 0.35);
}
.snc-header p {
  margin: 4px 0 0;
  color: var(--snc-muted);
  font-size: 0.9rem;
}
.snc-header-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.snc-btn,
.snc-view-btn,
.snc-link-btn {
  border: 1px solid var(--snc-border-strong);
  background: rgba(5, 13, 24, 0.85);
  color: var(--snc-text);
  border-radius: 10px;
  padding: 9px 12px;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: 0.18s ease;
}
.snc-btn:hover,
.snc-view-btn:hover,
.snc-link-btn:hover {
  border-color: var(--snc-blue);
  box-shadow: 0 0 14px rgba(0, 200, 255, 0.2);
  transform: translateY(-1px);
}
.snc-btn-primary,
.snc-view-btn.active {
  background: linear-gradient(
    135deg,
    rgba(0, 200, 255, 0.35),
    rgba(0, 127, 163, 0.25)
  );
  color: #fff;
  border-color: rgba(0, 200, 255, 0.7);
}
.snc-link-btn {
  padding: 5px 8px;
  font-size: 0.72rem;
  color: var(--snc-blue);
}
.snc-input,
.snc-select {
  background: #06111f;
  border: 1px solid var(--snc-border-strong);
  color: var(--snc-text);
  border-radius: 10px;
  padding: 9px 11px;
  outline: none;
  min-height: 40px;
  width: max-content !important;
}
.snc-input:focus,
.snc-select:focus {
  border-color: var(--snc-blue);
  box-shadow: 0 0 0 3px rgba(0, 200, 255, 0.12);
}
.snc-label {
  display: block;
  font-size: 0.78rem;
  color: var(--snc-muted);
  margin: 12px 0 5px;
}
.snc-muted {
  color: var(--snc-muted);
  line-height: 1.5;
}
.snc-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.snc-kpi {
  background: var(--snc-card);
  border: 1px solid var(--snc-border);
  border-radius: 14px;
  padding: 14px;
  position: relative;
  overflow: hidden;
}
.snc-kpi::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 3px;
  background: var(--snc-blue);
  opacity: 0.65;
}
.snc-kpi span {
  display: block;
  color: var(--snc-muted);
  text-transform: uppercase;
  font-size: 0.68rem;
  letter-spacing: 1px;
  font-weight: 800;
}
.snc-kpi strong {
  display: block;
  font-size: 2rem;
  line-height: 1.1;
  color: #fff;
  margin: 5px 0;
}
.snc-kpi small {
  color: var(--snc-muted);
  font-size: 0.72rem;
}
.snc-kpi-critical::after {
  background: var(--snc-red);
}
.snc-kpi-critical strong {
  color: var(--snc-red);
}
.snc-kpi-warning::after {
  background: var(--snc-orange);
}
.snc-kpi-warning strong {
  color: var(--snc-orange);
}
.snc-kpi-success::after {
  background: var(--snc-green);
}
.snc-kpi-success strong {
  color: var(--snc-green);
}
.snc-overview-grid {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr 0.9fr;
  gap: 14px;
}
.snc-panel {
  background: var(--snc-card);
  border: 1px solid var(--snc-border);
  border-radius: 14px;
  padding: 14px;
  min-height: 180px;
  overflow: hidden;
}
.snc-panel-wide {
  min-height: 360px;
  width: 1600px;
  max-width: 1600px;
  min-width: 900px;
}
.snc-panel-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--snc-blue);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 0.78rem;
  font-weight: 900;
  border-bottom: 1px solid rgba(0, 200, 255, 0.14);
  padding-bottom: 9px;
  margin-bottom: 12px;
}
.snc-filter-bar {
  display: flex;
  gap: 9px;
  margin-bottom: 14px;
  flex-wrap: wrap;
  background: var(--snc-card);
  border: 1px solid var(--snc-border);
  border-radius: 14px;
  padding: 12px;
}
.snc-filter-bar .snc-input {
  flex: 1;
  min-width: 260px;
}
.snc-events-layout {
  display: grid;
  grid-template-columns: 260px 1fr 320px;
  gap: 14px;
  min-height: 600px;
}
.snc-events-layout.cards {
  grid-template-columns: 250px 1fr;
}
.snc-events-layout.cards .snc-detalhe-panel {
  display: none;
}
.snc-side-panel,
.snc-events-main {
  background: var(--snc-card);
  border: 1px solid var(--snc-border);
  border-radius: 14px;
  padding: 13px;
  overflow: auto;
}
.snc-event-list {
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.snc-event-row {
  display: grid;
  grid-template-columns: 12px 95px 1fr 145px 120px 125px;
  gap: 10px;
  align-items: center;
  background: rgba(6, 17, 31, 0.7);
  border: 1px solid rgba(0, 200, 255, 0.12);
  border-radius: 12px;
  padding: 10px;
  cursor: pointer;
  transition: 0.18s ease;
}
.snc-event-row:hover,
.snc-event-row.active {
  border-color: var(--snc-blue);
  background: rgba(0, 200, 255, 0.07);
}
.snc-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--snc-blue);
  box-shadow: 0 0 10px currentColor;
}
.snc-dot.critico {
  background: var(--snc-red);
}
.snc-dot.alto {
  background: #fb7185;
}
.snc-dot.medio {
  background: var(--snc-orange);
}
.snc-dot.baixo {
  background: var(--snc-green);
}
.snc-row-title {
  font-weight: 800;
  color: #fff;
}
.snc-row-sub {
  font-size: 0.75rem;
  color: var(--snc-muted);
  margin-top: 2px;
}
.snc-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 0.5rem;
  font-weight: 900;
  text-transform: uppercase;
}
.snc-pill.critico {
  color: var(--snc-red);
  border-color: rgba(255, 77, 77, 0.4);
  background: rgba(255, 77, 77, 0.08);
}
.snc-pill.alto {
  color: #fb7185;
  border-color: rgba(251, 113, 133, 0.35);
  background: rgba(251, 113, 133, 0.08);
}
.snc-pill.medio {
  color: var(--snc-orange);
  border-color: rgba(245, 158, 11, 0.35);
  background: rgba(245, 158, 11, 0.08);
}
.snc-pill.baixo {
  color: var(--snc-green);
  border-color: rgba(0, 210, 122, 0.35);
  background: rgba(0, 210, 122, 0.08);
}
.snc-pill.info {
  color: var(--snc-blue);
}
.snc-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.snc-event-card {
  background: rgba(6, 17, 31, 0.75);
  border: 1px solid var(--snc-border);
  border-radius: 14px;
  padding: 14px;
  cursor: pointer;
  min-height: 160px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.snc-event-card:hover {
  border-color: var(--snc-blue);
  box-shadow: 0 0 18px rgba(0, 200, 255, 0.12);
}
.snc-event-card h4 {
  font-size: 1rem;
  color: #fff;
  margin: 0;
}
.snc-event-card p {
  color: var(--snc-muted);
  font-size: 0.8rem;
  margin: 0;
  flex: 1;
}
.snc-detail-stack {
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.snc-detail-line {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding-bottom: 7px;
  font-size: 0.82rem;
}
.snc-detail-line .l {
  color: var(--snc-muted);
}
.snc-detail-line .v {
  color: #fff;
  font-weight: 700;
  text-align: right;
}
.snc-action-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
}
.snc-alert-table-wrap {
  background: var(--snc-card);
  border: 1px solid var(--snc-border);
  border-radius: 14px;
  overflow: auto;
  min-height: 430px;
}
.snc-table {
  width: 100%;
  border-collapse: collapse;
  color: var(--snc-text);
  min-width: 980px;
}
.snc-table th,
.snc-table td {
  padding: 11px 12px;
  border-bottom: 1px solid rgba(0, 200, 255, 0.1);
  font-size: 0.82rem;
  vertical-align: top;
}
.snc-table th {
  color: var(--snc-blue);
  text-transform: uppercase;
  font-size: 0.68rem;
  letter-spacing: 1px;
  background: rgba(5, 13, 24, 0.9);
}
.snc-table tr:hover td {
  background: rgba(0, 200, 255, 0.045);
}
.snc-check-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.snc-check-list label {
  display: flex;
  gap: 8px;
  color: var(--snc-muted);
  font-size: 0.82rem;
  align-items: center;
}
.snc-severity-stack,
.snc-mini-feed {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.snc-severity-item,
.snc-mini-item {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  background: rgba(6, 17, 31, 0.65);
  border: 1px solid rgba(0, 200, 255, 0.1);
  border-radius: 10px;
  padding: 9px;
  color: var(--snc-muted);
  font-size: 0.82rem;
}
.snc-empty-state {
  border: 1px dashed rgba(0, 200, 255, 0.25);
  border-radius: 12px;
  padding: 24px;
  color: var(--snc-muted);
  text-align: center;
}
.snc-config-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.snc-switch-line {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--snc-muted);
  margin-top: 12px;
  font-size: 0.86rem;
}
.snc-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
}
.snc-modal-box {
  width: min(960px, 96vw);
  max-height: 92vh;
  overflow: auto;
  background: #07111f;
  border: 1px solid var(--snc-border-strong);
  border-radius: 16px;
  color: var(--snc-text);
  box-shadow: 0 25px 80px rgba(0, 0, 0, 0.55);
}
.snc-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 18px;
  border-bottom: 1px solid var(--snc-border);
}
.snc-modal-head h3 {
  margin: 0;
  color: #fff;
}
.snc-modal-head button {
  background: transparent;
  border: none;
  color: #fff;
  font-size: 2rem;
  cursor: pointer;
}
.snc-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding: 16px 18px;
}
.snc-form-grid label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  color: var(--snc-muted);
  font-size: 0.8rem;
  font-weight: 700;
}
.snc-form-full {
  grid-column: 1/-1;
}
.snc-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 18px;
  border-top: 1px solid var(--snc-border);
}
@media (max-width: 1200px) {
  .snc-kpi-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .snc-overview-grid,
  .snc-events-layout,
  .snc-config-grid {
    grid-template-columns: 1fr;
  }
  .snc-detalhe-panel {
    display: block;
  }
  .snc-event-row {
    grid-template-columns: 12px 80px 1fr;
  }
  .snc-event-row > :nth-child(n + 5) {
    display: none;
  }
}
@media (max-width: 760px) {
  .snc-shell {
    padding: 12px;
  }
  .snc-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .snc-kpi-grid {
    grid-template-columns: 1fr 1fr;
  }
  .snc-form-grid {
    grid-template-columns: 1fr;
  }
  .snc-filter-bar .snc-input {
    min-width: 100%;
  }
}

/* ======================================================
   Sistema Nervoso CoNNecta - Ajustes v002
====================================================== */
.snc-card-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: var(--snc-muted);
  font-size: 0.76rem;
  border-top: 1px solid rgba(0, 200, 255, 0.12);
  padding-top: 8px;
}
.snc-alertas-metricas {
  margin-bottom: 14px;
}
.snc-metrics-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(360px, 1.2fr) minmax(
      260px,
      0.8fr
    );
  gap: 14px;
  margin-bottom: 14px;
}
.snc-metric-panel {
  min-height: 240px;
}
.snc-metric-line {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  background: rgba(6, 17, 31, 0.65);
  border: 1px solid rgba(0, 200, 255, 0.1);
  border-radius: 10px;
  padding: 9px 10px;
  color: var(--snc-muted);
  font-size: 0.82rem;
  margin-bottom: 8px;
}
.snc-metric-line strong {
  color: #fff;
  font-size: 1rem;
}
.snc-nucleo-panel {
  min-height: 240px;
}
.snc-nucleo-teia {
  position: relative;
  height: 250px;
  border-radius: 16px;
  overflow: hidden;
  background: radial-gradient(
    circle at center,
    rgba(0, 200, 255, 0.12),
    transparent 62%
  );
}
.snc-nucleo-teia::before,
.snc-nucleo-teia::after {
  content: "";
  position: absolute;
  inset: 28px;
  border: 1px dashed rgba(0, 200, 255, 0.22);
  border-radius: 50%;
}
.snc-nucleo-teia::after {
  inset: 58px;
  border-color: rgba(255, 255, 255, 0.09);
}
.snc-nucleo-core {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: linear-gradient(
    135deg,
    rgba(0, 200, 255, 0.32),
    rgba(0, 210, 122, 0.15)
  );
  border: 1px solid rgba(0, 200, 255, 0.65);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 28px rgba(0, 200, 255, 0.22);
  z-index: 2;
}
.snc-nucleo-core strong {
  font-size: 1.4rem;
  color: #fff;
  letter-spacing: 1px;
}
.snc-nucleo-core small {
  color: var(--snc-muted);
  font-size: 0.72rem;
}
.snc-nucleo-node {
  position: absolute;
  min-width: 92px;
  max-width: 150px;
  border: 1px solid rgba(0, 200, 255, 0.32);
  background: rgba(6, 17, 31, 0.92);
  color: var(--snc-text);
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 0.72rem;
  display: flex;
  justify-content: space-between;
  gap: 6px;
  align-items: center;
  box-shadow: 0 0 14px rgba(0, 200, 255, 0.12);
}
.snc-nucleo-node span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.snc-nucleo-node b {
  color: var(--snc-blue);
}
.snc-nucleo-node.n0 {
  left: 6%;
  top: 14%;
}
.snc-nucleo-node.n1 {
  right: 6%;
  top: 16%;
}
.snc-nucleo-node.n2 {
  left: 2%;
  top: 48%;
}
.snc-nucleo-node.n3 {
  right: 2%;
  top: 50%;
}
.snc-nucleo-node.n4 {
  left: 10%;
  bottom: 14%;
}
.snc-nucleo-node.n5 {
  right: 10%;
  bottom: 14%;
}
.snc-nucleo-node.n6 {
  left: 38%;
  top: 4%;
}
.snc-nucleo-node.n7 {
  left: 38%;
  bottom: 4%;
}
.snc-modal-box-wide {
  width: min(1180px, 96vw);
}
.snc-modal-body {
  padding: 16px 18px;
}
.snc-modal-alert-grid {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) 390px;
  gap: 16px;
}
.snc-modal-main,
.snc-modal-history {
  background: rgba(6, 17, 31, 0.62);
  border: 1px solid rgba(0, 200, 255, 0.14);
  border-radius: 14px;
  padding: 14px;
}
.snc-modal-hero {
  border: 1px solid rgba(0, 200, 255, 0.18);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 14px;
  background: linear-gradient(
    135deg,
    rgba(0, 200, 255, 0.09),
    rgba(5, 13, 24, 0.8)
  );
}
.snc-modal-hero.critico {
  border-color: rgba(255, 77, 77, 0.38);
  background: linear-gradient(
    135deg,
    rgba(255, 77, 77, 0.13),
    rgba(5, 13, 24, 0.86)
  );
}
.snc-modal-hero.alto {
  border-color: rgba(251, 113, 133, 0.35);
}
.snc-modal-hero.medio {
  border-color: rgba(245, 158, 11, 0.35);
}
.snc-modal-hero.baixo {
  border-color: rgba(0, 210, 122, 0.35);
}
.snc-modal-hero h2 {
  margin: 10px 0 6px;
  color: #fff;
  font-size: 1.45rem;
}
.snc-modal-hero p {
  margin: 0;
  color: var(--snc-muted);
  line-height: 1.45;
}
.snc-history-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 580px;
  overflow: auto;
  padding-right: 4px;
}
.snc-history-item {
  width: 100%;
  text-align: left;
  border: 1px solid rgba(0, 200, 255, 0.13);
  background: rgba(5, 13, 24, 0.85);
  color: var(--snc-text);
  border-radius: 12px;
  padding: 10px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
}
.snc-history-item:hover {
  border-color: var(--snc-blue);
  background: rgba(0, 200, 255, 0.07);
}
.snc-history-item span {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.snc-history-item small {
  color: var(--snc-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.snc-history-item b {
  color: var(--snc-blue);
  font-size: 0.72rem;
  white-space: nowrap;
}
.snc-json-box {
  background: #020817;
  border: 1px solid rgba(0, 200, 255, 0.14);
  color: #cdefff;
  border-radius: 12px;
  padding: 12px;
  overflow: auto;
  max-height: 280px;
  font-size: 0.75rem;
}
.snc-action-grid-4 {
  grid-template-columns: repeat(4, 1fr);
}
.snc-lista-simples .snc-event-row {
  grid-template-columns: 12px 88px 1fr 165px 115px 145px;
}
@media (max-width: 1280px) {
  .snc-metrics-grid,
  .snc-modal-alert-grid {
    grid-template-columns: 1fr;
  }
  .snc-nucleo-teia {
    height: 280px;
  }
}
@media (max-width: 760px) {
  .snc-action-grid-4 {
    grid-template-columns: 1fr 1fr;
  }
  .snc-nucleo-node {
    position: static;
    margin: 6px;
  }
  .snc-nucleo-teia {
    height: auto;
    display: flex;
    flex-wrap: wrap;
    padding: 130px 8px 8px;
  }
  .snc-nucleo-core {
    top: 70px;
  }
  .snc-nucleo-teia::before,
  .snc-nucleo-teia::after {
    display: none;
  }
}

/* Sistema Nervoso CoNNecta - ajustes v004 */
.snc-section-note {
  border: 1px dashed rgba(0, 213, 255, 0.25);
  border-radius: 12px;
  padding: 10px 14px;
  margin: -2px 0 12px 0;
  color: #9fb4c9;
  background: rgba(7, 18, 31, 0.45);
  font-size: 0.88rem;
}
.snc-alert-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}
.snc-metrics-grid-v004 {
  grid-template-columns: minmax(220px, 0.8fr) minmax(360px, 1.4fr) minmax(
      220px,
      0.8fr
    );
}
.snc-alertas-metric-table td:nth-child(3) small {
  color: #9fb4c9;
}
.snc-card-occ {
  border: 1px solid rgba(0, 213, 255, 0.22);
  background: rgba(0, 213, 255, 0.07);
  border-radius: 10px;
  padding: 8px 10px;
  margin: 9px 0;
  color: #d9f7ff;
}
.snc-card-occ strong {
  color: #00d5ff;
  font-size: 1.1rem;
}
.snc-alert-type-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  gap: 10px;
  margin: 14px 0;
}
.snc-alert-type-kpis > div {
  border: 1px solid rgba(0, 213, 255, 0.2);
  background: rgba(8, 25, 42, 0.85);
  border-radius: 12px;
  padding: 12px;
}
.snc-alert-type-kpis span {
  display: block;
  color: #9fb4c9;
  font-size: 0.78rem;
  margin-bottom: 4px;
}
.snc-alert-type-kpis strong {
  color: #fff;
  font-size: 1.25rem;
}
.snc-machine-event-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
  max-height: 460px;
  overflow: auto;
}
.snc-machine-event {
  width: 100%;
  display: grid;
  grid-template-columns: 1.2fr 1.1fr 0.8fr;
  gap: 12px;
  align-items: center;
  text-align: left;
  border: 1px solid rgba(0, 213, 255, 0.18);
  background: rgba(7, 18, 31, 0.8);
  border-radius: 12px;
  padding: 12px;
  color: #fff;
  cursor: pointer;
}
.snc-machine-event:hover {
  border-color: rgba(0, 213, 255, 0.65);
  background: rgba(0, 213, 255, 0.08);
}
.snc-machine-event small {
  display: block;
  color: #9fb4c9;
  margin-top: 4px;
}
.snc-modal-alert-grid-single {
  grid-template-columns: 1fr !important;
}
@media (max-width: 1100px) {
  .snc-alert-kpi-row,
  .snc-alert-type-kpis,
  .snc-metrics-grid-v004 {
    grid-template-columns: 1fr 1fr;
  }
  .snc-machine-event {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .snc-alert-kpi-row,
  .snc-alert-type-kpis,
  .snc-metrics-grid-v004 {
    grid-template-columns: 1fr;
  }
}

/* Sistema Nervoso CoNNecta - ajustes v007 */
.snc-overview-simple {
  min-height: auto;
  padding: 18px;
}
.snc-header-overview-v007 {
  align-items: stretch;
  gap: 14px;
  margin-bottom: 14px;
}
.snc-header-title-block {
  min-width: 240px;
}
.snc-overview-head-actions {
  gap: 10px;
  align-items: stretch;
}
.snc-live-clock-card,
.snc-mini-kpi-resolver,
.snc-last-update-box {
  min-width: 140px;
  border: 1px solid rgba(0, 200, 255, 0.22);
  background: rgba(5, 13, 24, 0.72);
  border-radius: 12px;
  padding: 9px 11px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: anchor-center;
  gap: 2px;
}
.snc-live-clock-card span,
.snc-mini-kpi-resolver span,
.snc-last-update-box span {
  color: var(--snc-muted);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 900;
}
.snc-live-clock-card strong,
.snc-mini-kpi-resolver strong {
  color: #fff;
  font-size: 1.25rem;
  line-height: 1.05;
}
.snc-live-clock-card small,
.snc-last-update-box small {
  color: var(--snc-muted);
  font-size: 0.72rem;
}
.snc-overview-grid-simple {
  display: block;
}
.snc-panel-alertas-recentes-v007,
.snc-overview-simple .snc-panel-wide {
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: 240px;
}
.snc-overview-alert-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: calc(100vh - 280px);
  overflow: auto;
  padding-right: 4px;
}
.snc-overview-alert-card-v007 {
  width: 100%;
  display: grid;
  grid-template-columns: 12px minmax(135px, 185px) 1fr minmax(170px, 260px);
  gap: 12px;
  align-items: center;
  text-align: left;
  color: var(--snc-text);
  border: 1px solid rgba(0, 200, 255, 0.14);
  background: rgba(6, 17, 31, 0.72);
  border-radius: 12px;
  padding: 11px 12px;
  cursor: pointer;
  transition: 0.18s ease;
}
.snc-overview-alert-card-v007:hover {
  border-color: var(--snc-blue);
  background: rgba(0, 200, 255, 0.07);
  transform: translateY(-1px);
}
.snc-alert-date-v007 {
  color: #b9d9e8;
  font-size: 0.78rem;
  white-space: nowrap;
}
.snc-alert-title-v007,
.snc-alert-machine-v007 {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.snc-alert-title-v007 strong,
.snc-alert-machine-v007 strong {
  color: #fff;
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.snc-alert-title-v007 small,
.snc-alert-machine-v007 small {
  color: var(--snc-muted);
  font-size: 0.74rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.snc-modal-v007 .snc-modal-main {
  width: 100%;
}
.snc-modal-v007 .snc-modal-hero {
  margin-bottom: 12px;
}
.snc-detail-stack-v007 {
  margin-bottom: 12px;
}
.snc-observacao-v007 {
  width: 100% !important;
  min-height: 150px !important;
  resize: vertical;
  background: #142233 !important;
  margin-top: 6px;
}
.snc-action-grid-v007 {
  grid-template-columns: repeat(3, minmax(120px, 1fr));
}
.snc-pill.lido {
  color: var(--snc-blue);
  border-color: rgba(0, 200, 255, 0.38);
  background: rgba(0, 200, 255, 0.08);
}
/** @media (max-width: 1100px) {
  .snc-header-overview-v007 {
    flex-direction: column;
  }
  .snc-overview-head-actions {
    width: 100%;
    justify-content: flex-start;
  }
  /* .snc-live-clock-card,
  .snc-mini-kpi-resolver,
  .snc-last-update-box {
    flex: 1 1 160px;
  } 
  .snc-overview-alert-card-v007 {
    grid-template-columns: 12px 150px 1fr;
  }
  .snc-alert-machine-v007 {
    grid-column: 3;
  }
} **/
@media (max-width: 760px) {
  .snc-overview-simple {
    padding: 12px;
  }
  .snc-overview-head-actions {
    flex-direction: column;
  }
  .snc-live-clock-card,
  .snc-mini-kpi-resolver,
  .snc-last-update-box,
  .snc-overview-head-actions .snc-btn {
    width: 100%;
  }
  .snc-overview-alert-card-v007 {
    grid-template-columns: 10px 1fr;
    gap: 8px;
  }
  .snc-alert-date-v007,
  .snc-alert-title-v007,
  .snc-alert-machine-v007 {
    grid-column: 2;
  }
  .snc-action-grid-v007 {
    grid-template-columns: 1fr;
  }
}

/* SNC v009 - visao geral limitada, filtro e excecoes */
.snc-overview-empresa {
  min-width: 180px;
  max-width: 240px;
}
.snc-overview-alert-card-v009 {
  width: 100%;
  display: grid;
  grid-template-columns: 16px minmax(130px, 170px) 1fr minmax(180px, 260px);
  gap: 14px;
  align-items: center;
  border: 1px solid rgba(0, 194, 255, 0.22);
  background: rgba(4, 19, 35, 0.82);
  color: var(--text-primary, #fff);
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 8px;
  text-align: left;
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    transform 0.2s ease,
    background 0.2s ease;
}
.snc-overview-alert-card-v009:hover {
  border-color: rgba(0, 194, 255, 0.75);
  background: rgba(0, 89, 119, 0.25);
  transform: translateY(-1px);
}
.snc-alerta-descricao-completa {
  width: 100%;
  padding: 14px;
  border: 1px solid rgba(0, 194, 255, 0.18);
  border-radius: 12px;
  background: rgba(7, 18, 34, 0.7);
  color: var(--text-secondary, #b7c8dc);
  line-height: 1.45;
  white-space: pre-wrap;
  margin: 8px 0 14px;
}
.snc-excecoes-lista {
  margin-top: 12px;
  overflow-x: auto;
}
.snc-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.snc-excecao-dias {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 10px 0 14px;
  padding: 10px;
  border-radius: 10px;
  border: 1px solid rgba(0, 194, 255, 0.16);
  background: rgba(5, 20, 38, 0.6);
}
.snc-excecao-dias label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--text-secondary, #b7c8dc);
}
.snc-excecao-recorrente-campo {
  display: none;
}
/* @media removido no v045: responsividade nova do SNC desativada. */

/* ======================================================
   Sistema Nervoso CoNNecta - ajustes v010
====================================================== */
.snc-config-layout-v010 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}
.snc-config-card-v010 {
  min-height: 0;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
}
.snc-config-card-wide-v010 {
  grid-column: 1 / -1;
}
.snc-config-fields-v010 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.snc-config-fields-v010 .snc-switch-line {
  grid-column: 1 / -1;
  margin-top: 0;
}
.snc-config-status-grid-v010 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.snc-config-status-card {
  border: 1px solid rgba(0, 200, 255, 0.14);
  background: rgba(0, 24, 45, 0.55);
  border-radius: 12px;
  padding: 12px;
}
.snc-config-status-card strong {
  display: block;
  font-size: 1.2rem;
  color: var(--snc-white);
  margin-bottom: 4px;
}
.snc-config-status-card span,
.snc-config-help-steps-v010 small {
  color: var(--snc-muted);
  font-size: 0.78rem;
}
.snc-config-help-steps-v010 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.snc-config-help-steps-v010 div {
  border: 1px solid rgba(0, 200, 255, 0.12);
  background: rgba(0, 194, 255, 0.035);
  border-radius: 12px;
  padding: 12px;
}
.snc-config-help-steps-v010 span {
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(0, 194, 255, 0.18);
  color: var(--snc-blue);
  font-weight: 900;
  margin-bottom: 8px;
}
.snc-config-help-steps-v010 strong {
  display: block;
  color: var(--snc-white);
  margin-bottom: 4px;
}
.snc-trigger-excecoes-panel {
  margin-top: 14px;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}
.snc-inline-actions {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.snc-triggers-table-v010 td,
.snc-triggers-table-v010 th {
  vertical-align: middle;
}
.snc-btn-mini {
  padding: 6px 9px !important;
  font-size: 0.74rem !important;
}
.snc-trigger-selected-v010 {
  background: rgba(0, 194, 255, 0.09) !important;
  outline: 1px solid rgba(0, 194, 255, 0.45);
}
#snc-excecao-trigger-nome[readonly] {
  opacity: 0.9;
  cursor: not-allowed;
  background: rgba(0, 194, 255, 0.06);
}
/* @media removido no v045: responsividade nova do SNC desativada. */

/* ========================================================================== */
/* SNC v011 - Modais de Trigger e Excecao                                     */
/* ========================================================================== */
.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  width: min(1120px, calc(100vw - 48px));
  max-height: calc(100vh - 56px);
  overflow: hidden;
  border-radius: 18px;
}

.snc-modal-head-v011 {
  align-items: flex-start;
  gap: 18px;
  padding: 24px 28px 18px;
  border-bottom: 1px solid rgba(0, 194, 255, 0.14);
}

.snc-modal-head-v011 h3 {
  margin: 2px 0 6px;
  font-size: 28px;
  line-height: 1.1;
}

.snc-modal-kicker-v011 {
  display: block;
  color: var(--accent-color, #00d5ff);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.snc-modal-subtitle-v011 {
  margin: 0;
  color: var(--text-muted, #9fb3c8);
  font-size: 13px;
  max-width: 760px;
}

.snc-modal-body-v011 {
  padding: 22px 28px 26px;
  overflow: auto;
  max-height: calc(100vh - 165px);
}

.snc-excecao-summary-v011 {
  display: grid;
  grid-template-columns: 1.5fr 1fr auto;
  gap: 14px;
  margin-bottom: 18px;
}

.snc-excecao-summary-v011 > div {
  padding: 14px 16px;
  border: 1px solid rgba(0, 194, 255, 0.18);
  background: rgba(5, 18, 34, 0.72);
  border-radius: 14px;
  min-height: 72px;
}

.snc-excecao-summary-v011 small {
  display: block;
  color: var(--text-muted, #9fb3c8);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 7px;
}

.snc-excecao-summary-v011 strong {
  color: #fff;
  font-size: 14px;
}

.snc-form-section-v011 {
  border: 1px solid rgba(0, 194, 255, 0.12);
  background: rgba(8, 24, 42, 0.42);
  border-radius: 16px;
  padding: 18px;
  margin-bottom: 16px;
}

.snc-form-section-title-v011 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  color: #fff;
}

.snc-form-section-title-v011 span {
  display: inline-flex;
  width: 25px;
  height: 25px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #00c2ff, #087da1);
  color: #fff;
  font-weight: 800;
  font-size: 12px;
}

.snc-form-section-title-v011 strong {
  font-size: 14px;
  letter-spacing: 0.02em;
}

.snc-form-grid-v011 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 20px;
}

.snc-form-grid-v011 .snc-form-full {
  grid-column: 1 / -1;
}

.snc-form-grid-v011 .snc-label,
.snc-modal-body-v011 .snc-label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

.snc-form-grid-v011 .snc-input,
.snc-form-grid-v011 .snc-select,
.snc-modal-body-v011 .snc-input,
.snc-modal-body-v011 .snc-select {
  width: 100% !important;
  min-height: 42px;
}

.snc-help-v011 {
  display: block;
  margin-top: -2px;
  color: var(--text-muted, #9fb3c8);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.35;
}

.snc-textarea-v011 {
  min-height: 112px;
  resize: vertical;
}

.snc-switch-inline-v011 {
  justify-content: flex-start;
  margin: 0;
}

.snc-switch-card-v011 {
  min-height: 42px;
  padding: 11px 14px;
  border: 1px solid rgba(0, 194, 255, 0.14);
  background: rgba(5, 18, 34, 0.55);
  border-radius: 12px;
  align-self: end;
}

.snc-excecao-dias-v011 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.snc-excecao-dias-v011 label {
  padding: 8px 11px;
  border: 1px solid rgba(0, 194, 255, 0.16);
  background: rgba(5, 18, 34, 0.65);
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.snc-action-grid-v011 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 10px;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ======================================================
   SNC v012 - Visão Geral compacta com colunas e ordenação
====================================================== */
.snc-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.snc-panel-title-overview-v012 {
  justify-content: flex-end;
  min-height: 32px;
}
.snc-mini-kpi-resolver {
  text-align: center;
  align-items: center;
  min-width: 170px;
}
.snc-mini-kpi-resolver span,
.snc-mini-kpi-resolver strong {
  text-align: center;
}
.snc-overview-table-v012 {
  width: 100%;
  min-width: 0;
}
.snc-overview-head-v012 {
  display: grid;
  grid-template-columns:
    16px minmax(145px, 190px) minmax(145px, 185px) minmax(280px, 1fr)
    minmax(170px, 240px);
  gap: 12px;
  align-items: center;
  padding: 0 14px 8px;
  border-bottom: 1px solid rgba(0, 194, 255, 0.2);
  margin-bottom: 8px;
}
.snc-overview-head-v012::before {
  content: "";
}
.snc-overview-head-v012 button {
  background: transparent;
  border: 0;
  color: var(--snc-blue, #00d4ff);
  font-size: 0.7rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  text-align: left;
  cursor: pointer;
  padding: 5px 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.snc-overview-head-v012 button.center {
  justify-content: center;
  text-align: center;
}
.snc-overview-head-v012 button:hover {
  color: #fff;
}
.snc-overview-body-v012 {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.snc-overview-row-v012 {
  width: 100%;
  display: grid;
  grid-template-columns:
    16px minmax(145px, 190px) minmax(145px, 185px) minmax(280px, 1fr)
    minmax(170px, 240px);
  gap: 12px;
  align-items: center;
  border: 1px solid rgba(0, 194, 255, 0.22);
  background: rgba(4, 19, 35, 0.82);
  color: var(--text-primary, #fff);
  border-radius: 12px;
  padding: 11px 14px;
  text-align: left;
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    transform 0.2s ease,
    background 0.2s ease;
}
.snc-overview-row-v012:hover {
  border-color: rgba(0, 194, 255, 0.75);
  background: rgba(0, 89, 119, 0.25);
  transform: translateY(-1px);
}
.snc-overview-col {
  min-width: 0;
  color: #b9d9e8;
  font-size: 0.78rem;
}
.snc-overview-col strong {
  color: #fff;
  font-weight: 900;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.snc-overview-col small {
  display: block;
  color: var(--snc-muted, #9bb3c9);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-top: 2px;
}
.snc-overview-col-data {
  text-align: center;
  justify-self: center;
  white-space: nowrap;
}
.snc-overview-col-descricao small {
  white-space: nowrap;
}
.snc-overview-alert-list {
  max-height: calc(100vh - 275px);
}
/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ==========================================================================
   SNC v013 - Visão Geral com cores dinâmicas e leitura mais objetiva
   ========================================================================== */
.snc-overview-simple .snc-header,
.snc-header-overview-v007 {
  background:
    radial-gradient(
      circle at top left,
      rgba(0, 212, 255, 0.18),
      transparent 35%
    ),
    linear-gradient(135deg, rgba(4, 19, 33, 0.96), rgba(10, 33, 55, 0.92));
  border: 1px solid rgba(0, 212, 255, 0.34);
  box-shadow:
    0 18px 42px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.snc-overview-simple .snc-kicker,
.snc-panel-title-overview-v012,
.snc-overview-head-v012 button {
  color: #38d9ff;
  letter-spacing: 0.14em;
  font-weight: 650;
}

.snc-overview-simple h1,
.snc-overview-col strong,
.snc-row-title {
  font-weight: 600 !important;
}

.snc-overview-simple .snc-header h1 {
  color: #f8fbff;
  text-shadow: 0 0 20px rgba(56, 217, 255, 0.15);
}

.snc-live-clock-card strong {
  color: #7dd3fc !important;
  font-weight: 650 !important;
}

.snc-last-update-box {
  background: linear-gradient(
    135deg,
    rgba(245, 158, 11, 0.22),
    rgba(0, 212, 255, 0.1)
  ) !important;
  border: 1px solid rgba(245, 158, 11, 0.58) !important;
  box-shadow:
    0 0 22px rgba(245, 158, 11, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.snc-last-update-box span {
  color: #facc15 !important;
}

.snc-last-update-box small {
  color: #fff7cc !important;
  font-weight: 600;
}

.snc-mini-kpi-resolver {
  background: linear-gradient(
    135deg,
    rgba(34, 197, 94, 0.18),
    rgba(0, 212, 255, 0.1)
  ) !important;
  border: 1px solid rgba(34, 197, 94, 0.42) !important;
}

.snc-mini-kpi-resolver strong {
  color: #86efac !important;
}

.snc-overview-table-v012 {
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(0, 212, 255, 0.25);
}

.snc-overview-head-v012 {
  background: linear-gradient(
    90deg,
    rgba(0, 212, 255, 0.09),
    rgba(124, 58, 237, 0.08)
  );
  border-bottom: 1px solid rgba(0, 212, 255, 0.22);
}

.snc-overview-head-v012 button {
  font-size: 0.68rem;
  text-transform: uppercase;
}

.snc-overview-row-v012 {
  position: relative;
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--snc-alert-accent, #00d4ff) 13%, transparent),
      rgba(3, 14, 27, 0.28)
    ),
    rgba(2, 12, 24, 0.72);
  border: 1px solid
    color-mix(
      in srgb,
      var(--snc-alert-accent, #00d4ff) 34%,
      rgba(0, 212, 255, 0.12)
    );
  box-shadow:
    inset 4px 0 0 var(--snc-alert-accent, #00d4ff),
    0 10px 22px rgba(0, 0, 0, 0.12);
}

.snc-overview-row-v012:hover {
  transform: translateY(-1px);
  border-color: var(--snc-alert-accent, #00d4ff);
  box-shadow: 0 12px 26px
    color-mix(in srgb, var(--snc-alert-accent, #00d4ff) 18%, transparent);
}

.snc-overview-row-v012 .snc-dot {
  box-shadow: 0 0 12px var(--snc-alert-accent, #00d4ff);
  background: var(--snc-alert-accent, #00d4ff) !important;
}

.snc-overview-col-empresa strong {
  color: #e0f2fe;
}

.snc-overview-col-data {
  color: #7dd3fc !important;
  font-weight: 650;
  text-align: center;
}

.snc-overview-col-descricao strong {
  color: #f8fbff;
  font-size: 0.9rem;
  letter-spacing: 0.01em;
}

.snc-overview-col-descricao small {
  display: inline-block;
  margin-top: 4px;
  color: #fde68a !important;
  background: rgba(250, 204, 21, 0.1);
  border: 1px solid rgba(250, 204, 21, 0.18);
  border-radius: 10px;
  padding: 4px 8px;
  line-height: 1.35;
}

.snc-overview-col-equipamento strong {
  color: #c4b5fd;
}

.snc-overview-simple .snc-link-btn,
#snc-overview-ver-mais,
.snc-overview-simple .snc-btn-primary {
  background: linear-gradient(135deg, var(--brand), var(--brand-2)) !important;
  border: 1px solid rgba(125, 211, 252, 0.55) !important;
  color: #ffffff !important;
}

.snc-overview-simple .snc-link-btn:hover,
#snc-overview-ver-mais:hover,
.snc-overview-simple .snc-btn-primary:hover {
  box-shadow: 0 10px 28px rgba(14, 165, 233, 0.28);
}

.snc-overview-empresa {
  border-color: rgba(56, 217, 255, 0.36) !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* /* ==========================================================================
   SNC v014 removido: regras responsivas SNC restauradas para o padrão anterior. */
/* ==========================================================================
   SNC v017 - Correção do Ver Mais da Visão Geral
   Quando expandido, a lista deixa de ser uma caixa com altura travada e passa
   a usar a rolagem normal da página.
   ========================================================================== */
.snc-overview-alert-list.snc-expanded {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

.snc-overview-alert-list.snc-expanded .snc-overview-table-v012,
.snc-overview-alert-list.snc-expanded .snc-overview-body-v012 {
  overflow: visible !important;
  max-height: none !important;
}

#view-snc-visao-geral,
.snc-overview-simple,
.snc-overview-simple .snc-panel,
.snc-overview-simple .snc-panel-wide {
  overflow: visible !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ========================================================================== 
   SNC v018 - Botao Ver Mais por overflow visual
   Exibe corretamente o botao quando a lista tem itens cortados pela altura da tela,
   mesmo quando o total filtrado for menor que o limite padrao de 10 alertas.
   ========================================================================== */
.snc-overview-alert-list.snc-tem-alertas-ocultos {
  position: relative;
}

.snc-overview-alert-list.snc-tem-alertas-ocultos::after {
  content: "";
  position: sticky;
  left: 0;
  right: 0;
  bottom: 0;
  display: block;
  height: 34px;
  margin-top: -34px;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(4, 19, 35, 0),
    rgba(4, 19, 35, 0.96)
  );
  border-radius: 0 0 12px 12px;
}

#snc-overview-ver-mais {
  white-space: nowrap;
}

.snc-overview-alert-list.snc-expanded {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

.snc-overview-alert-list.snc-expanded::after {
  display: none !important;
}

.snc-overview-alert-list.snc-expanded .snc-overview-table-v012,
.snc-overview-alert-list.snc-expanded .snc-overview-body-v012 {
  max-height: none !important;
  overflow: visible !important;
}

/* ==========================================================================
   SNC v019 - Visao Geral: limite real de 6 alertas + Ver Mais/Ver Menos
   - A lista recolhida renderiza apenas 6 itens pelo JS.
   - Em larguras maiores que 1360px, mantem altura calculada para 6 linhas.
   - Expandido remove limite para a pagina rolar normalmente.
   ========================================================================== */
#snc-overview-ver-mais {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 8px 12px;
  white-space: nowrap;
  position: relative;
  z-index: 5;
}

.snc-panel-title-overview-v012 {
  min-height: 38px;
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.snc-overview-alert-list:not(.snc-expanded) {
  overflow: hidden !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

.snc-overview-alert-list.snc-expanded {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

.snc-overview-alert-list.snc-expanded .snc-overview-table-v012,
.snc-overview-alert-list.snc-expanded .snc-overview-body-v012 {
  max-height: none !important;
  overflow: visible !important;
}

/* ======================================================
   SNC v020 - ajustes de recorrência e exceção por disco
====================================================== */
.snc-trigger-recorrencia-v020,
.snc-disco-excecao-v020 {
  border: 1px solid rgba(0, 191, 255, 0.25);
  border-radius: 12px;
  padding: 10px;
  background: rgba(0, 191, 255, 0.045);
}
.snc-disco-excecao-v020 .snc-select[multiple] {
  width: 100% !important;
  min-height: 92px;
}
.snc-disco-excecao-v020 option {
  padding: 6px;
}
.snc-trigger-recorrencia-v020 .snc-help-v011,
.snc-disco-excecao-v020 .snc-help-v011 {
  display: block;
  margin-top: 6px;
  color: #93c5fd;
}

/* ======================================================
   SNC v021 - Exceção de disco por letra/partição
====================================================== */
.snc-excecao-disco-section {
  margin-top: 14px;
  border: 1px solid rgba(0, 191, 255, 0.22);
  border-radius: 16px;
  padding: 16px;
  background: rgba(4, 20, 35, 0.55);
}

.snc-section-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  color: #eaf7ff;
}

.snc-step-badge {
  display: inline-flex;
  width: 26px;
  height: 26px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: linear-gradient(135deg, #0ea5e9, #06b6d4);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.snc-disco-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin: 10px 0 12px 0;
}

.snc-check-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  color: var(--text-color);
  font-weight: 600;
  font-size: 12px;
}

.snc-excecao-discos-wrapper {
  border-top: 1px dashed rgba(0, 191, 255, 0.18);
  padding-top: 12px;
}

.snc-disco-lista {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.snc-disco-item {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.8);
  border: 1px solid rgba(0, 191, 255, 0.15);
  cursor: pointer;
  transition:
    border-color 0.2s,
    transform 0.2s,
    background 0.2s;
}

.snc-disco-item:hover {
  border-color: rgba(0, 191, 255, 0.45);
  background: rgba(12, 54, 81, 0.55);
  transform: translateY(-1px);
}

.snc-disco-letra {
  min-width: 42px;
  font-size: 14px;
  color: #facc15;
  font-weight: 800;
}

.snc-disco-meta {
  font-size: 11px;
  color: #b9c9d8;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* SNC v029 - filtros da Visao Geral e botao Lido */
.snc-overview-filter-line-v029 {
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(260px, 420px);
  gap: 12px;
  align-items: end;
  margin: 14px 0 12px;
  padding: 12px 14px;
  border: 1px solid rgba(0, 212, 255, 0.24);
  border-radius: 16px;
  background: linear-gradient(
    180deg,
    rgba(8, 25, 45, 0.92),
    rgba(5, 18, 34, 0.92)
  );
}

.snc-filter-field-v029 {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.snc-filter-field-v029 label {
  margin: 0;
  color: #60e9ff;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.snc-overview-filter-line-v029 .snc-select {
  min-height: 42px;
  width: 100%;
}

.snc-overview-equipamento-com-lido-v029 {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.snc-overview-lido-btn-v029 {
  min-height: 30px !important;
  padding: 6px 12px !important;
  font-size: 0.76rem !important;
  white-space: nowrap;
}

.snc-overview-lido-btn-v029:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.snc-hidden-v029 {
  display: none !important;
}

.snc-action-grid-v029 {
  display: flex !important;
  justify-content: flex-end;
  grid-template-columns: none !important;
}

.snc-action-grid-v029 .snc-btn-primary {
  min-width: 130px;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ======================================================
   SNC v031 - fontes dos modais 20% menores e responsividade dos filtros/header
====================================================== */

/* Fonte 20% menor dentro dos modais SNC, sem alterar a largura ja reduzida */
.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-body,
.snc-modal-body-v011,
.snc-modal-main,
.snc-modal-history,
.snc-modal-v007,
.snc-excecao-modal-box-v011,
.snc-trigger-modal-box-v011 {
  font-size: 80% !important;
}

.snc-modal .snc-modal-head h3,
.snc-modal .snc-modal-head-v011 h3 {
  font-size: 1.02rem !important;
  line-height: 1.12 !important;
}

.snc-modal .snc-modal-head,
.snc-modal .snc-modal-head-v011 {
  padding: 10px 12px !important;
}

.snc-modal .snc-modal-subtitle-v011,
.snc-modal .snc-modal-hero p,
.snc-modal .snc-detail-line,
.snc-modal .snc-label,
.snc-modal .snc-input,
.snc-modal .snc-select,
.snc-modal textarea,
.snc-modal input,
.snc-modal select,
.snc-modal button,
.snc-modal small,
.snc-modal .snc-help-v011,
.snc-modal .snc-row-sub,
.snc-modal .snc-disco-meta {
  font-size: 0.8em !important;
}

.snc-modal .snc-kicker,
.snc-modal .snc-modal-kicker-v011 {
  font-size: 0.58rem !important;
}

.snc-modal .snc-modal-hero h2 {
  font-size: 0.96rem !important;
  line-height: 1.12 !important;
}

.snc-modal .snc-section-card-v011,
.snc-modal .snc-excecao-disco-section,
.snc-modal .snc-modal-main,
.snc-modal .snc-modal-history,
.snc-modal .snc-modal-hero {
  padding: 10px !important;
}

.snc-modal .snc-section-title-v011,
.snc-modal .snc-section-title-row {
  margin-bottom: 8px !important;
}

.snc-modal .snc-step-v011,
.snc-modal .snc-step-badge {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  font-size: 0.62rem !important;
}

.snc-modal .snc-grid-2-v011,
.snc-modal .snc-grid-3-v011 {
  gap: 10px !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select {
  min-height: 34px !important;
  padding: 7px 9px !important;
}

.snc-modal textarea.snc-input,
.snc-modal .snc-observacao-v007 {
  min-height: 84px !important;
}

.snc-modal .snc-btn {
  min-height: 32px !important;
  padding: 7px 10px !important;
}

/* Linha de filtros da Visao Geral: agora suporta grupo + computador + status */
.snc-overview-filter-line-v029 {
  grid-template-columns: minmax(180px, 260px) minmax(220px, 1fr) minmax(
      150px,
      210px
    ) !important;
  align-items: end !important;
}

.snc-overview-filter-line-v029 .snc-select {
  min-height: 36px !important;
  font-size: 0.74rem !important;
}

.snc-filter-field-v029 label {
  font-size: 0.58rem !important;
}

/* Header mais estavel quando o navegador esta em 85% ou em telas menores */
.snc-header-overview-v007 {
  display: grid !important;
  grid-template-columns: minmax(260px, 1fr) auto !important;
  align-items: center !important;
}

.snc-header-overview-v007 .snc-overview-head-actions {
  display: grid !important;
  grid-template-columns:
    minmax(120px, 0.8fr) minmax(145px, 0.85fr) minmax(120px, 0.8fr)
    minmax(100px, auto) !important;
  gap: 8px !important;
  align-items: stretch !important;
  justify-content: end !important;
}

.snc-header-overview-v007 .snc-live-clock-card,
.snc-header-overview-v007 .snc-mini-kpi-resolver,
.snc-header-overview-v007 .snc-last-update-box,
.snc-header-overview-v007 .snc-btn-primary {
  min-width: 0 !important;
  width: 100% !important;
}

.snc-header-overview-v007 .snc-btn-primary {
  white-space: nowrap !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ======================================================
   SNC v032 - correcao de legibilidade dos modais e responsividade
   Remove o efeito de fonte minúscula gerado por reducao em cascata.
====================================================== */

/* Modais SNC: manter compactos, mas legiveis */
.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-body,
.snc-modal-body-v011,
.snc-modal-main,
.snc-modal-history,
.snc-modal-v007,
.snc-excecao-modal-box-v011,
.snc-trigger-modal-box-v011 {
  font-size: 13px !important;
  line-height: 1.35 !important;
}

.snc-modal *,
.snc-modal-box *,
.snc-modal-box-wide * {
  text-rendering: optimizeLegibility;
}

.snc-modal .snc-modal-head h3,
.snc-modal .snc-modal-head-v011 h3,
.snc-modal .snc-modal-title,
.snc-modal .snc-detail-title {
  font-size: 1.25rem !important;
  line-height: 1.2 !important;
}

.snc-modal .snc-modal-hero h2,
.snc-modal .snc-alert-title,
.snc-modal .snc-section-card-v011 h3,
.snc-modal .snc-section-title-v011,
.snc-modal .snc-section-title-row,
.snc-modal .snc-detail-heading {
  font-size: 1rem !important;
  line-height: 1.25 !important;
}

.snc-modal .snc-modal-subtitle-v011,
.snc-modal .snc-modal-hero p,
.snc-modal .snc-detail-line,
.snc-modal .snc-label,
.snc-modal .snc-input,
.snc-modal .snc-select,
.snc-modal textarea,
.snc-modal input,
.snc-modal select,
.snc-modal button,
.snc-modal small,
.snc-modal .snc-help-v011,
.snc-modal .snc-row-sub,
.snc-modal .snc-disco-meta,
.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary,
.snc-modal .snc-btn-danger {
  font-size: 0.82rem !important;
  line-height: 1.3 !important;
}

.snc-modal .snc-kicker,
.snc-modal .snc-modal-kicker-v011 {
  font-size: 0.66rem !important;
  letter-spacing: 0.12em !important;
}

.snc-modal label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label {
  font-size: 0.78rem !important;
  line-height: 1.25 !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select {
  min-height: 38px !important;
  padding: 8px 10px !important;
}

.snc-modal textarea.snc-input,
.snc-modal .snc-observacao-v007 {
  min-height: 92px !important;
}

.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary,
.snc-modal .snc-btn-danger {
  min-height: 36px !important;
  padding: 8px 12px !important;
}

.snc-modal .snc-step-v011,
.snc-modal .snc-step-badge {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  font-size: 0.72rem !important;
}

.snc-modal .snc-section-card-v011,
.snc-modal .snc-excecao-disco-section,
.snc-modal .snc-modal-main,
.snc-modal .snc-modal-history,
.snc-modal .snc-modal-hero {
  padding: 14px !important;
}

/* Largura/altura dos modais: compactos, sem esmagar a leitura */
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  width: min(920px, calc(100vw - 32px)) !important;
  max-width: calc(100vw - 32px) !important;
  max-height: calc(100vh - 32px) !important;
}

.snc-modal-body,
.snc-modal-body-v011 {
  padding: 14px 16px !important;
  overflow-x: hidden !important;
}

/* Evita barra horizontal dentro dos modais em telas menores */
.snc-modal .snc-grid-2-v011,
.snc-modal .snc-grid-3-v011,
.snc-modal .snc-form-grid,
.snc-modal .snc-modal-grid {
  min-width: 0 !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select,
.snc-modal textarea,
.snc-modal input,
.snc-modal select {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Responsividade geral das telas do SNC em larguras menores */
.snc-page,
.snc-view,
.snc-panel,
.snc-panel-wide,
.snc-dashboard-grid,
.snc-report-grid,
.snc-triggers-grid,
.snc-config-grid,
.snc-overview-alert-list,
.snc-overview-table-v012,
.snc-overview-body-v012 {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Header da Visao Geral: quebra organizada sem deixar cards espremidos */
.snc-header-overview-v007 {
  display: grid !important;
  grid-template-columns: minmax(260px, 1fr) minmax(420px, auto) !important;
  gap: 12px !important;
  align-items: stretch !important;
}

.snc-header-overview-v007 .snc-overview-head-actions {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(118px, 1fr)) !important;
  gap: 8px !important;
  align-items: stretch !important;
  min-width: 0 !important;
}

.snc-header-overview-v007 .snc-live-clock-card,
.snc-header-overview-v007 .snc-mini-kpi-resolver,
.snc-header-overview-v007 .snc-last-update-box,
.snc-header-overview-v007 .snc-btn-primary {
  min-width: 0 !important;
  width: 100% !important;
  overflow: hidden !important;
}

.snc-header-overview-v007 .snc-btn-primary {
  white-space: nowrap !important;
}

/* Filtros da Visao Geral: 3 colunas em desktop, 2 em HD estreito, 1 em telas pequenas */
.snc-overview-filter-line-v029 {
  display: grid !important;
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) minmax(
      150px,
      220px
    ) !important;
  gap: 10px !important;
  align-items: end !important;
  max-width: 100% !important;
}

.snc-overview-filter-line-v029 .snc-filter-field-v029,
.snc-overview-filter-line-v029 .snc-select {
  min-width: 0 !important;
  max-width: fit-content !important;
}

.snc-overview-filter-line-v029 .snc-select {
  min-height: 38px !important;
  font-size: 0.8rem !important;
}

.snc-filter-field-v029 label {
  font-size: 0.66rem !important;
  line-height: 1.2 !important;
}

/* SNC Report e tabelas: evita estouro horizontal desnecessario */
.snc-report-table,
.snc-alerts-table,
.snc-triggers-table,
.snc-table,
.snc-table-wrap {
  max-width: 100% !important;
  min-width: 0 !important;
}

.snc-table-wrap {
  overflow-x: auto !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* =========================================================
   SNC V033 - ajuste fino: reduzir telas e modais em 5%
   Mantem a legibilidade restaurada na v032, mas deixa a UI menor.
   ========================================================= */

.snc-page,
.snc-view,
.snc-panel,
.snc-panel-wide,
.snc-header-overview-v007,
.snc-overview-filter-line-v029,
.snc-report-page,
.snc-alertas-page,
.snc-triggers-page,
.snc-config-page,
.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-body,
.snc-modal-body-v011 {
  font-size: 95% !important;
}

.snc-panel,
.snc-panel-wide,
.snc-header-overview-v007,
.snc-overview-filter-line-v029,
.snc-report-panel,
.snc-triggers-panel,
.snc-config-panel {
  padding: 95% !important;
}

/* Corrige elementos onde padding percentual poderia ficar inadequado */
.snc-header-overview-v007,
.snc-overview-filter-line-v029 {
  padding: 11px !important;
  gap: 9px !important;
}

.snc-panel,
.snc-panel-wide,
.snc-panel-alertas-recentes-v007,
.snc-report-panel,
.snc-triggers-panel,
.snc-config-panel {
  padding: 15px !important;
}

.snc-header-overview-v007 .snc-overview-head-actions {
  gap: 7px !important;
}

.snc-header-overview-v007 .snc-live-clock-card,
.snc-header-overview-v007 .snc-mini-kpi-resolver,
.snc-header-overview-v007 .snc-last-update-box,
.snc-header-overview-v007 .snc-btn-primary {
  min-height: 54px !important;
  padding: 9px 11px !important;
}

.snc-overview-filter-line-v029 .snc-select,
.snc-report-page .snc-select,
.snc-report-page .snc-input,
.snc-triggers-page .snc-select,
.snc-triggers-page .snc-input,
.snc-config-page .snc-select,
.snc-config-page .snc-input {
  min-height: 36px !important;
  padding: 7px 10px !important;
  font-size: 0.76rem !important;
}

.snc-overview-alert-row-v012,
.snc-overview-alert-card-v012,
.snc-report-card,
.snc-trigger-card,
.snc-config-card {
  padding: 10px 12px !important;
}

.snc-overview-alert-title-v012,
.snc-report-page h2,
.snc-triggers-page h2,
.snc-config-page h2 {
  font-size: 0.95em !important;
}

/* Modais: 5% menores sem voltar a ficar ilegivel */
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  width: min(874px, calc(100vw - 30px)) !important;
  max-width: calc(100vw - 30px) !important;
  max-height: calc(100vh - 30px) !important;
}

.snc-modal-body,
.snc-modal-body-v011 {
  padding: 13px 15px !important;
}

.snc-modal .snc-section-card-v011,
.snc-modal .snc-excecao-disco-section,
.snc-modal .snc-modal-main,
.snc-modal .snc-modal-history,
.snc-modal .snc-modal-hero {
  padding: 13px !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select {
  min-height: 36px !important;
  padding: 7px 10px !important;
}

.snc-modal textarea.snc-input,
.snc-modal .snc-observacao-v007 {
  min-height: 87px !important;
}

.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary,
.snc-modal .snc-btn-danger {
  min-height: 34px !important;
  padding: 7px 11px !important;
}

.snc-modal .snc-step-v011,
.snc-modal .snc-step-badge {
  width: 23px !important;
  height: 23px !important;
  min-width: 23px !important;
  font-size: 0.68rem !important;
}

.snc-modal h1,
.snc-modal h2,
.snc-modal h3,
.snc-modal .snc-modal-title,
.snc-modal .snc-modal-title-v011 {
  font-size: 1.33rem !important;
}

.snc-modal h4,
.snc-modal .snc-section-title-v011 {
  font-size: 0.92rem !important;
}

.snc-modal label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label {
  font-size: 0.74rem !important;
}

.snc-modal .snc-help,
.snc-modal .snc-muted,
.snc-modal small,
.snc-modal .snc-form-help {
  font-size: 0.68rem !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ==========================================================
   SNC v034 - ajuste fino: reduzir mais 5% sobre a v033
   ========================================================== */
.snc-panel-wide,
.snc-header-overview-v007,
.snc-overview-filter-line-v029,
.snc-report-page,
.snc-alertas-page,
.snc-triggers-page,
.snc-config-page,
.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-body,
.snc-modal-body-v011 {
  font-size: 90.25% !important;
}

.snc-header-overview-v007,
.snc-overview-filter-line-v029 {
  padding: 10px !important;
  gap: 8px !important;
}

.snc-panel,
.snc-panel-wide,
.snc-panel-alertas-recentes-v007,
.snc-report-panel,
.snc-triggers-panel,
.snc-config-panel {
  padding: 14px !important;
}

.snc-header-overview-v007 .snc-overview-head-actions {
  gap: 6px !important;
}

.snc-header-overview-v007 .snc-live-clock-card,
.snc-header-overview-v007 .snc-mini-kpi-resolver,
.snc-header-overview-v007 .snc-last-update-box,
.snc-header-overview-v007 .snc-btn-primary {
  min-height: 51px !important;
  padding: 8px 10px !important;
}

.snc-overview-filter-line-v029 .snc-select,
.snc-report-page .snc-select,
.snc-report-page .snc-input,
.snc-triggers-page .snc-select,
.snc-triggers-page .snc-input,
.snc-config-page .snc-select,
.snc-config-page .snc-input {
  min-height: 34px !important;
  padding: 6px 9px !important;
  font-size: 0.72rem !important;
}

.snc-overview-alert-row-v012,
.snc-overview-alert-card-v012,
.snc-report-card,
.snc-trigger-card,
.snc-config-card {
  padding: 9px 11px !important;
}

.snc-overview-alert-title-v012,
.snc-report-page h2,
.snc-triggers-page h2,
.snc-config-page h2 {
  font-size: 0.9em !important;
}

/* Modais: mais 5% menores sobre a v033, mantendo leitura */
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  width: min(830px, calc(100vw - 28px)) !important;
  max-width: calc(100vw - 28px) !important;
  max-height: calc(100vh - 28px) !important;
}

.snc-modal-body,
.snc-modal-body-v011 {
  padding: 12px 14px !important;
}

.snc-modal .snc-section-card-v011,
.snc-modal .snc-excecao-disco-section,
.snc-modal .snc-modal-main,
.snc-modal .snc-modal-history,
.snc-modal .snc-modal-hero {
  padding: 12px !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select {
  min-height: 34px !important;
  padding: 6px 9px !important;
}

.snc-modal textarea.snc-input,
.snc-modal .snc-observacao-v007 {
  min-height: 82px !important;
}

.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary,
.snc-modal .snc-btn-danger {
  min-height: 32px !important;
  padding: 6px 10px !important;
}

.snc-modal .snc-step-v011,
.snc-modal .snc-step-badge {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  font-size: 0.65rem !important;
}

.snc-modal h1,
.snc-modal h2,
.snc-modal h3,
.snc-modal .snc-modal-title,
.snc-modal .snc-modal-title-v011 {
  font-size: 1.26rem !important;
}

.snc-modal h4,
.snc-modal .snc-section-title-v011 {
  font-size: 0.87rem !important;
}

.snc-modal label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label {
  font-size: 0.7rem !important;
}

.snc-modal .snc-help,
.snc-modal .snc-muted,
.snc-modal small,
.snc-modal .snc-form-help {
  font-size: 0.65rem !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ==========================================================
   SNC v035 - reduzir mais 15% sobre a v034
   ========================================================== */
.snc-panel-wide,
.snc-header-overview-v007,
.snc-overview-filter-line-v029,
.snc-report-page,
.snc-alertas-page,
.snc-triggers-page,
.snc-config-page,
.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-body,
.snc-modal-body-v011 {
  font-size: 76.7% !important;
}

.snc-header-overview-v007,
.snc-overview-filter-line-v029 {
  padding: 9px !important;
  gap: 7px !important;
}

.snc-panel,
.snc-panel-wide,
.snc-panel-alertas-recentes-v007,
.snc-report-panel,
.snc-triggers-panel,
.snc-config-panel {
  padding: 12px !important;
}

.snc-header-overview-v007 .snc-overview-head-actions {
  gap: 5px !important;
}

.snc-header-overview-v007 .snc-live-clock-card,
.snc-header-overview-v007 .snc-mini-kpi-resolver,
.snc-header-overview-v007 .snc-last-update-box,
.snc-header-overview-v007 .snc-btn-primary {
  min-height: 43px !important;
  padding: 7px 9px !important;
}

.snc-overview-filter-line-v029 .snc-select,
.snc-report-page .snc-select,
.snc-report-page .snc-input,
.snc-triggers-page .snc-select,
.snc-triggers-page .snc-input,
.snc-config-page .snc-select,
.snc-config-page .snc-input {
  min-height: 29px !important;
  padding: 5px 8px !important;
  font-size: 0.61rem !important;
}

.snc-overview-alert-row-v012,
.snc-overview-alert-card-v012,
.snc-report-card,
.snc-trigger-card,
.snc-config-card {
  padding: 8px 9px !important;
}

.snc-overview-alert-title-v012,
.snc-report-page h2,
.snc-triggers-page h2,
.snc-config-page h2 {
  font-size: 0.77em !important;
}

.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  width: min(706px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100vh - 24px) !important;
}

.snc-modal-body,
.snc-modal-body-v011 {
  padding: 10px 12px !important;
}

.snc-modal .snc-section-card-v011,
.snc-modal .snc-excecao-disco-section,
.snc-modal .snc-modal-main,
.snc-modal .snc-modal-history,
.snc-modal .snc-modal-hero {
  padding: 10px !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select {
  min-height: 29px !important;
  padding: 5px 8px !important;
}

.snc-modal textarea.snc-input,
.snc-modal .snc-observacao-v007 {
  min-height: 70px !important;
}

.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary,
.snc-modal .snc-btn-danger {
  min-height: 27px !important;
  padding: 5px 9px !important;
}

.snc-modal .snc-step-v011,
.snc-modal .snc-step-badge {
  width: 19px !important;
  height: 19px !important;
  min-width: 19px !important;
  font-size: 0.55rem !important;
}

.snc-modal h1,
.snc-modal h2,
.snc-modal h3,
.snc-modal .snc-modal-title,
.snc-modal .snc-modal-title-v011 {
  font-size: 1.07rem !important;
}

.snc-modal h4,
.snc-modal .snc-section-title-v011 {
  font-size: 0.74rem !important;
}

.snc-modal label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label {
  font-size: 0.6rem !important;
}

.snc-modal .snc-help,
.snc-modal .snc-muted,
.snc-modal small,
.snc-modal .snc-form-help {
  font-size: 0.55rem !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ==========================================================
   SNC v036 - reduzir mais 30% sem deixar modais ilegíveis
   Base: v035
   ========================================================== */

/* Telas SNC: redução forte de densidade visual */
.snc-panel-wide,
.snc-header-overview-v007,
.snc-overview-filter-line-v029,
.snc-report-page,
.snc-alertas-page,
.snc-triggers-page,
.snc-config-page {
  font-size: 53.7% !important;
}

.snc-header-overview-v007,
.snc-overview-filter-line-v029 {
  padding: 6px !important;
  gap: 5px !important;
  border-radius: 10px !important;
}

.snc-panel,
.snc-panel-wide,
.snc-panel-alertas-recentes-v007,
.snc-report-panel,
.snc-triggers-panel,
.snc-config-panel {
  padding: 8px !important;
  border-radius: 10px !important;
}

.snc-header-overview-v007 .snc-overview-head-actions {
  gap: 4px !important;
}

.snc-header-overview-v007 .snc-live-clock-card,
.snc-header-overview-v007 .snc-mini-kpi-resolver,
.snc-header-overview-v007 .snc-last-update-box,
.snc-header-overview-v007 .snc-btn-primary {
  min-height: 32px !important;
  padding: 5px 7px !important;
  border-radius: 8px !important;
}

.snc-overview-filter-line-v029 .snc-select,
.snc-report-page .snc-select,
.snc-report-page .snc-input,
.snc-triggers-page .snc-select,
.snc-triggers-page .snc-input,
.snc-config-page .snc-select,
.snc-config-page .snc-input {
  min-height: 24px !important;
  padding: 4px 6px !important;
  font-size: 0.53rem !important;
  border-radius: 7px !important;
}

.snc-overview-alert-row-v012,
.snc-overview-alert-card-v012,
.snc-report-card,
.snc-trigger-card,
.snc-config-card {
  padding: 6px 7px !important;
  border-radius: 8px !important;
}

.snc-overview-alert-title-v012,
.snc-report-page h2,
.snc-triggers-page h2,
.snc-config-page h2 {
  font-size: 0.68em !important;
}

.snc-overview-alert-desc-v012,
.snc-overview-alert-desc,
.snc-alert-desc,
.snc-report-page p,
.snc-triggers-page p,
.snc-config-page p {
  line-height: 1.22 !important;
}

/* Modais: reduz caixa, espaçamentos e controles, mas mantém texto legível */
.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-body,
.snc-modal-body-v011,
.snc-modal-main,
.snc-modal-history,
.snc-modal-v007,
.snc-excecao-modal-box-v011,
.snc-trigger-modal-box-v011 {
  font-size: 10.5px !important;
}

.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  width: min(494px, calc(100vw - 18px)) !important;
  max-width: calc(100vw - 18px) !important;
  max-height: calc(100vh - 18px) !important;
  border-radius: 10px !important;
}

.snc-modal-body,
.snc-modal-body-v011 {
  padding: 7px 8px !important;
}

.snc-modal .snc-section-card-v011,
.snc-modal .snc-excecao-disco-section,
.snc-modal .snc-modal-main,
.snc-modal .snc-modal-history,
.snc-modal .snc-modal-hero {
  padding: 7px !important;
  border-radius: 9px !important;
}

.snc-modal .snc-form-grid,
.snc-modal .snc-grid,
.snc-modal .snc-modal-grid,
.snc-modal .snc-section-grid-v011 {
  gap: 7px !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select {
  min-height: 24px !important;
  padding: 4px 6px !important;
  font-size: 0.78rem !important;
  border-radius: 7px !important;
}

.snc-modal textarea.snc-input,
.snc-modal .snc-observacao-v007 {
  min-height: 52px !important;
}

.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary,
.snc-modal .snc-btn-danger {
  min-height: 23px !important;
  padding: 4px 7px !important;
  font-size: 0.76rem !important;
  border-radius: 7px !important;
}

.snc-modal .snc-step-v011,
.snc-modal .snc-step-badge {
  width: 17px !important;
  height: 17px !important;
  min-width: 17px !important;
  font-size: 0.57rem !important;
}

.snc-modal h1,
.snc-modal h2,
.snc-modal h3,
.snc-modal .snc-modal-title,
.snc-modal .snc-modal-title-v011 {
  font-size: 0.95rem !important;
  line-height: 1.15 !important;
}

.snc-modal h4,
.snc-modal .snc-section-title-v011 {
  font-size: 0.74rem !important;
  line-height: 1.18 !important;
}

.snc-modal label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label {
  font-size: 0.7rem !important;
  line-height: 1.18 !important;
}

.snc-modal .snc-help,
.snc-modal .snc-muted,
.snc-modal small,
.snc-modal .snc-form-help {
  font-size: 0.64rem !important;
  line-height: 1.22 !important;
}

.snc-modal .snc-modal-header,
.snc-modal .snc-modal-header-v011 {
  padding: 8px 10px !important;
}

/* Responsividade: telas menores sem quebrar header/filtros */
/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ==========================================================
   SNC v037 - compactacao organizada, header/filtros e botao Lido
   ========================================================== */

/* Visao Geral: remove a reducao extrema da v036 apenas onde prejudicou leitura */
#view-snc-visao-geral.snc-overview-simple,
#view-snc-visao-geral .snc-header-overview-v007,
#view-snc-visao-geral .snc-overview-filter-line-v029,
#view-snc-visao-geral .snc-panel-alertas-recentes-v007 {
  font-size: 12px !important;
}

#view-snc-visao-geral.snc-shell {
  padding: 7px !important;
}

/* Header: mais equilibrado, sem empilhar demais em telas medias */
#view-snc-visao-geral .snc-header-overview-v007 {
  display: flex !important;
  grid-template-columns: minmax(280px, 1fr) minmax(520px, 1.2fr) !important;
  gap: 10px !important;
  align-items: stretch !important;
  padding: 9px 12px !important;
  border-radius: 12px !important;
  margin-bottom: 8px !important;
}

#view-snc-visao-geral .snc-header-title-block {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center;
  margin-top: -45px;
}

#view-snc-visao-geral .snc-kicker {
  font-size: 0.68rem !important;
  letter-spacing: 0.12em !important;
}

#view-snc-visao-geral .snc-header h1 {
  font-size: 1.38rem !important;
  line-height: 1.1 !important;
  margin: 3px 0 !important;
}

#view-snc-visao-geral .snc-header p {
  font-size: 0.78rem !important;
  line-height: 1.25 !important;
  margin: 0 !important;
}

#view-snc-visao-geral .snc-overview-head-actions {
  display: grid !important;
  grid-template-columns: 0.07fr 0.08fr 0.087fr !important;
  /* grid-template-columns: 0.07fr 0.08fr 0.062fr 0.05fr !important; */
  gap: 25px !important;
  width: 100% !important;
  align-items: stretch !important;
  justify-content: center !important;
  margin-top: -70px;
  margin-bottom: 20px;
  margin-left: 400px;
}

#view-snc-visao-geral .snc-live-clock-card,
#view-snc-visao-geral .snc-mini-kpi-resolver,
#view-snc-visao-geral .snc-overview-head-actions .snc-btn-primary {
  min-height: 38px !important;
  padding: 7px 9px !important;
  border-radius: 10px !important;
  width: 170px !important;
}

#view-snc-visao-geral .snc-live-clock-card span,
#view-snc-visao-geral .snc-mini-kpi-resolver span {
  font-size: 0.62rem !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
}

#view-snc-visao-geral .snc-live-clock-card strong,
#view-snc-visao-geral .snc-mini-kpi-resolver strong {
  font-size: 1.75rem !important;
  line-height: 1.15 !important;
  text-align: center !important;
  color: var(--white) !important;
}

#view-snc-visao-geral .snc-live-clock-card small {
  font-size: 0.76rem !important;
  line-height: 1.15 !important;
}

#view-snc-visao-geral .snc-last-update-box {
  width: 100px !important;
  height: fit-content;
  position: absolute;
  right: 130px;
  /* margin-bottom: 9px; */
}

#view-snc-visao-geral .snc-last-update-box span {
  font-size: 0.56rem !important;
  text-align: center !important;
  color: var(--white) !important;
}

#view-snc-visao-geral .snc-last-update-box small {
  font-size: 0.56rem !important;
  line-height: 1.05 !important;
  text-align: center !important;
  color: var(--white) !important;
}

/* Filtros: 3 colunas claras em desktop, quebrando sem baguncar */
#view-snc-visao-geral .snc-overview-filter-line-v029 {
  display: flex !important;
  /* grid-template-columns: minmax(240px, 1.15fr) minmax(220px, 0.9fr) minmax(
      150px,
      0.42fr
    ) !important; */
  gap: 40px !important;
  align-items: end !important;
  padding: 9px 11px !important;
  margin: 8px 0 8px !important;
  border-radius: 12px !important;
  justify-content: start;
}

#view-snc-visao-geral .snc-filter-field-v029 {
  gap: 4px !important;
  min-width: 0 !important;
  margin-left: 30px;
}

#view-snc-visao-geral .snc-filter-field-v029 label {
  font-size: 0.67rem !important;
  letter-spacing: 0.09em !important;
  line-height: 1.1 !important;
}

#view-snc-visao-geral .snc-overview-filter-line-v029 .snc-select {
  min-height: 30px !important;
  height: 30px !important;
  padding: 4px 8px !important;
  font-size: 0.72rem !important;
  border-radius: 8px !important;
}

/* Lista de alertas: titulo e descricao legiveis, botao Lido menor */
#view-snc-visao-geral .snc-panel-alertas-recentes-v007 {
  padding: 9px !important;
  border-radius: 12px !important;
}

#view-snc-visao-geral .snc-panel-title-overview-v012 {
  min-height: 28px !important;
  padding-bottom: 6px !important;
  margin-bottom: 6px !important;
}

#snc-overview-ver-mais {
  min-height: 28px !important;
  padding: 5px 10px !important;
  font-size: 0.72rem !important;
  border-radius: 8px !important;
}

#view-snc-visao-geral .snc-overview-alert-list {
  gap: 6px !important;
}

#view-snc-visao-geral .snc-overview-table-v012 {
  width: 100% !important;
  min-width: 0 !important;
}

#view-snc-visao-geral .snc-overview-head-v012,
#view-snc-visao-geral .snc-overview-row-v012 {
  grid-template-columns:
    10px minmax(115px, 0.8fr) minmax(120px, 0.8fr) minmax(260px, 2.1fr)
    minmax(170px, 1fr) !important;
}

#view-snc-visao-geral .snc-overview-head-v012 {
  min-height: 30px !important;
}

#view-snc-visao-geral .snc-overview-head-v012 button {
  font-size: 0.66rem !important;
  line-height: 1.1 !important;
  padding: 6px 8px !important;
}

#view-snc-visao-geral .snc-overview-row-v012 {
  min-height: 54px !important;
  padding: 8px 10px !important;
  gap: 8px !important;
  border-radius: 10px !important;
  align-items: center !important;
}

#view-snc-visao-geral .snc-overview-col {
  font-size: 0.72rem !important;
  line-height: 1.22 !important;
  min-width: 0 !important;
}

#view-snc-visao-geral .snc-overview-col strong,
#view-snc-visao-geral .snc-overview-col-descricao strong {
  display: block !important;
  font-size: 0.84rem !important;
  line-height: 1.18 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  color: #edf7ff !important;
}

#view-snc-visao-geral .snc-overview-col small,
#view-snc-visao-geral .snc-overview-col-descricao small {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  font-size: 0.67rem !important;
  line-height: 1.18 !important;
  padding: 3px 6px !important;
}

#view-snc-visao-geral .snc-overview-equipamento-com-lido-v029 {
  display: grid !important;
  grid-template-columns: minmax(76px, 1fr) auto !important;
  align-items: center !important;
  justify-content: normal !important;
  gap: 8px !important;
}

#view-snc-visao-geral .snc-overview-lido-btn-v029 {
  width: auto !important;
  min-width: 58px !important;
  max-width: 82px !important;
  min-height: 24px !important;
  padding: 4px 9px !important;
  font-size: 0.68rem !important;
  line-height: 1 !important;
  border-radius: 8px !important;
}

/* Modais SNC: reduzem espacos vazios sem deixar a fonte ilegivel */
.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-body,
.snc-modal-body-v011,
.snc-modal-main,
.snc-modal-history,
.snc-modal-v007,
.snc-excecao-modal-box-v011,
.snc-trigger-modal-box-v011 {
  font-size: 11px !important;
}

.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  width: min(690px, calc(100vw - 22px)) !important;
  max-width: calc(100vw - 22px) !important;
  max-height: calc(100vh - 18px) !important;
  border-radius: 11px !important;
}

.snc-trigger-modal-box-v011,
.snc-excecao-modal-box-v011 {
  width: min(720px, calc(100vw - 22px)) !important;
}

.snc-modal-head,
.snc-modal-head-v011,
.snc-modal .snc-modal-header,
.snc-modal .snc-modal-header-v011 {
  padding: 9px 12px !important;
}

.snc-modal-head h3,
.snc-modal-head-v011 h3,
.snc-modal .snc-modal-title,
.snc-modal .snc-modal-title-v011 {
  font-size: 1.12rem !important;
  line-height: 1.12 !important;
}

.snc-modal .snc-modal-subtitle-v011,
.snc-modal .snc-modal-head p,
.snc-modal .snc-modal-subtitle {
  font-size: 0.76rem !important;
  line-height: 1.28 !important;
}

.snc-modal-body,
.snc-modal-body-v011 {
  padding: 8px 10px !important;
  gap: 8px !important;
}

.snc-modal .snc-section-card-v011,
.snc-modal .snc-excecao-disco-section,
.snc-modal .snc-modal-main,
.snc-modal .snc-modal-history,
.snc-modal .snc-modal-hero {
  padding: 9px !important;
  border-radius: 10px !important;
  margin-bottom: 8px !important;
}

.snc-modal .snc-form-grid,
.snc-modal .snc-grid,
.snc-modal .snc-modal-grid,
.snc-modal .snc-section-grid-v011,
.snc-modal .snc-modal-alert-grid,
.snc-modal .snc-modal-alert-grid-single {
  gap: 8px !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select {
  min-height: 30px !important;
  height: auto !important;
  padding: 5px 8px !important;
  font-size: 0.78rem !important;
  border-radius: 8px !important;
}

.snc-modal textarea.snc-input,
.snc-modal .snc-observacao-v007 {
  min-height: 64px !important;
  max-height: 110px !important;
}

.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary,
.snc-modal .snc-btn-danger {
  min-height: 28px !important;
  padding: 5px 10px !important;
  font-size: 0.74rem !important;
  border-radius: 8px !important;
}

.snc-modal .snc-step-v011,
.snc-modal .snc-step-badge {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  font-size: 0.62rem !important;
}

.snc-modal h1,
.snc-modal h2,
.snc-modal h3 {
  line-height: 1.15 !important;
}

.snc-modal h4,
.snc-modal .snc-section-title-v011 {
  font-size: 0.82rem !important;
  line-height: 1.18 !important;
}

.snc-modal label,
.snc-modal .snc-label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label {
  font-size: 0.72rem !important;
  line-height: 1.18 !important;
}

.snc-modal .snc-help,
.snc-modal .snc-muted,
.snc-modal small,
.snc-modal .snc-form-help,
.snc-modal .snc-help-v011 {
  font-size: 0.66rem !important;
  line-height: 1.25 !important;
}

.snc-modal .snc-detail-line {
  font-size: 0.78rem !important;
  padding-bottom: 5px !important;
  margin-bottom: 5px !important;
}

.snc-modal .snc-modal-hero h2 {
  font-size: 1rem !important;
}

.snc-modal .snc-modal-hero p {
  font-size: 0.63rem !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ======================================================
   SNC v038 - reducao de fontes em 10%
   Mantem layout da v037 e reduz apenas tipografia do SNC.
   ====================================================== */
:root {
  --snc-font-v038-xs: 0.9;
}

/* Escala base das paginas do SNC */
#view-snc-visao-geral,
#view-snc-alertas,
#view-snc-eventos,
#view-snc-triggers,
#view-snc-configuracoes,
#view-snc-relatorios,
#view-snc-report {
  font-size: 90% !important;
}

/* Titulos, textos e controles nas telas do SNC */
#view-snc-visao-geral h1,
#view-snc-alertas h1,
#view-snc-eventos h1,
#view-snc-triggers h1,
#view-snc-configuracoes h1,
#view-snc-report h1,
#view-snc-visao-geral .snc-title,
#view-snc-alertas .snc-title,
#view-snc-eventos .snc-title,
#view-snc-triggers .snc-title,
#view-snc-configuracoes .snc-title {
  font-size: 1.08rem !important;
  line-height: 1.16 !important;
}

#view-snc-visao-geral h2,
#view-snc-alertas h2,
#view-snc-eventos h2,
#view-snc-triggers h2,
#view-snc-configuracoes h2,
#view-snc-report h2,
#view-snc-visao-geral .snc-panel-title,
#view-snc-alertas .snc-panel-title,
#view-snc-eventos .snc-panel-title,
#view-snc-triggers .snc-panel-title,
#view-snc-configuracoes .snc-panel-title {
  font-size: 0.9rem !important;
  line-height: 1.16 !important;
}

#view-snc-visao-geral h3,
#view-snc-alertas h3,
#view-snc-eventos h3,
#view-snc-triggers h3,
#view-snc-configuracoes h3,
#view-snc-report h3 {
  font-size: 0.82rem !important;
  line-height: 1.16 !important;
}

#view-snc-visao-geral label,
#view-snc-alertas label,
#view-snc-eventos label,
#view-snc-triggers label,
#view-snc-configuracoes label,
#view-snc-report label,
#view-snc-visao-geral .snc-label,
#view-snc-alertas .snc-label,
#view-snc-eventos .snc-label,
#view-snc-triggers .snc-label,
#view-snc-configuracoes .snc-label {
  font-size: 0.66rem !important;
  line-height: 1.15 !important;
}

#view-snc-visao-geral input,
#view-snc-visao-geral select,
#view-snc-visao-geral textarea,
#view-snc-visao-geral button,
#view-snc-alertas input,
#view-snc-alertas select,
#view-snc-alertas textarea,
#view-snc-alertas button,
#view-snc-eventos input,
#view-snc-eventos select,
#view-snc-eventos textarea,
#view-snc-eventos button,
#view-snc-triggers input,
#view-snc-triggers select,
#view-snc-triggers textarea,
#view-snc-triggers button,
#view-snc-configuracoes input,
#view-snc-configuracoes select,
#view-snc-configuracoes textarea,
#view-snc-configuracoes button,
#view-snc-report input,
#view-snc-report select,
#view-snc-report textarea,
#view-snc-report button {
  font-size: 0.72rem !important;
  line-height: 1.15 !important;
}

#view-snc-visao-geral .snc-muted,
#view-snc-alertas .snc-muted,
#view-snc-eventos .snc-muted,
#view-snc-triggers .snc-muted,
#view-snc-configuracoes .snc-muted,
#view-snc-report .snc-muted,
#view-snc-visao-geral small,
#view-snc-alertas small,
#view-snc-eventos small,
#view-snc-triggers small,
#view-snc-configuracoes small,
#view-snc-report small {
  font-size: 0.58rem !important;
  line-height: 1.22 !important;
}

/* Lista da visao geral */
#view-snc-visao-geral .snc-overview-head-v012,
#view-snc-visao-geral .snc-overview-row-v012,
#view-snc-visao-geral .snc-overview-alert-title,
#view-snc-visao-geral .snc-overview-alert-msg,
#view-snc-visao-geral .snc-overview-col-empresa,
#view-snc-visao-geral .snc-overview-col-data,
#view-snc-visao-geral .snc-overview-col-descricao,
#view-snc-visao-geral .snc-overview-col-equipamento {
  font-size: 0.7rem !important;
  line-height: 1.18 !important;
}

#view-snc-visao-geral .snc-overview-alert-title,
#view-snc-visao-geral .snc-alert-title,
#view-snc-alertas .snc-alert-title {
  font-size: 0.76rem !important;
  line-height: 1.14 !important;
}

#view-snc-visao-geral .snc-overview-alert-msg,
#view-snc-visao-geral .snc-alert-message,
#view-snc-alertas .snc-alert-message {
  font-size: 0.62rem !important;
  line-height: 1.18 !important;
}

#view-snc-visao-geral .snc-btn-lido,
#view-snc-visao-geral .snc-alert-btn-lido,
#view-snc-visao-geral .snc-overview-btn-lido,
#view-snc-visao-geral .snc-btn-primary {
  font-size: 0.66rem !important;
  line-height: 1.1 !important;
}

/* Modais do SNC: reduzir fonte 10%, sem voltar ao estado ilegivel da v031 */
.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-content,
.snc-modal-body,
.snc-modal-body-v011 {
  font-size: 90% !important;
}

.snc-modal h1,
.snc-modal .snc-modal-title,
.snc-modal .snc-modal-header h1,
.snc-modal .snc-modal-header-v011 h1 {
  font-size: 1.02rem !important;
  line-height: 1.16 !important;
}

.snc-modal h2,
.snc-modal .snc-modal-hero h2,
.snc-modal .snc-alert-detail-title {
  font-size: 0.92rem !important;
  line-height: 1.16 !important;
}

.snc-modal h3,
.snc-modal .snc-section-title,
.snc-modal .snc-section-title-v011 {
  font-size: 0.76rem !important;
  line-height: 1.18 !important;
}

.snc-modal label,
.snc-modal .snc-label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label,
.snc-modal .snc-modal-label {
  font-size: 0.67rem !important;
  line-height: 1.16 !important;
}

.snc-modal input,
.snc-modal select,
.snc-modal textarea,
.snc-modal button,
.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary {
  font-size: 0.72rem !important;
  line-height: 1.16 !important;
}

.snc-modal p,
.snc-modal .snc-modal-subtitle,
.snc-modal .snc-help,
.snc-modal .snc-muted,
.snc-modal .snc-form-help,
.snc-modal .snc-help-v011,
.snc-modal small {
  font-size: 0.62rem !important;
  line-height: 1.25 !important;
}

.snc-modal .snc-detail-line,
.snc-modal .snc-detail-value,
.snc-modal .snc-detail-label,
.snc-modal .snc-card,
.snc-modal .snc-card * {
  font-size: 0.7rem !important;
  line-height: 1.2 !important;
}

.snc-modal .snc-step-number,
.snc-modal .snc-step-badge,
.snc-modal .snc-badge,
.snc-modal .badge {
  font-size: 0.62rem !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* ======================================================
   SNC v039 - reducao adicional de fontes em 20%
   Mantem a estrutura da v038 e reduz somente tipografia.
   ====================================================== */
#view-snc-visao-geral,
#view-snc-alertas,
#view-snc-eventos,
#view-snc-triggers,
#view-snc-configuracoes,
#view-snc-relatorios,
#view-snc-report {
  font-size: 72% !important;
}

#view-snc-visao-geral h1,
#view-snc-alertas h1,
#view-snc-eventos h1,
#view-snc-triggers h1,
#view-snc-configuracoes h1,
#view-snc-report h1,
#view-snc-visao-geral .snc-title,
#view-snc-alertas .snc-title,
#view-snc-eventos .snc-title,
#view-snc-triggers .snc-title,
#view-snc-configuracoes .snc-title {
  font-size: 0.86rem !important;
  line-height: 1.16 !important;
}

#view-snc-visao-geral h2,
#view-snc-alertas h2,
#view-snc-eventos h2,
#view-snc-triggers h2,
#view-snc-configuracoes h2,
#view-snc-report h2,
#view-snc-visao-geral .snc-panel-title,
#view-snc-alertas .snc-panel-title,
#view-snc-eventos .snc-panel-title,
#view-snc-triggers .snc-panel-title,
#view-snc-configuracoes .snc-panel-title {
  font-size: 0.72rem !important;
  line-height: 1.16 !important;
}

#view-snc-visao-geral h3,
#view-snc-alertas h3,
#view-snc-eventos h3,
#view-snc-triggers h3,
#view-snc-configuracoes h3,
#view-snc-report h3 {
  font-size: 0.66rem !important;
  line-height: 1.16 !important;
}

#view-snc-visao-geral label,
#view-snc-alertas label,
#view-snc-eventos label,
#view-snc-triggers label,
#view-snc-configuracoes label,
#view-snc-report label,
#view-snc-visao-geral .snc-label,
#view-snc-alertas .snc-label,
#view-snc-eventos .snc-label,
#view-snc-triggers .snc-label,
#view-snc-configuracoes .snc-label {
  font-size: 0.53rem !important;
  line-height: 1.15 !important;
}

#view-snc-visao-geral input,
#view-snc-visao-geral select,
#view-snc-visao-geral textarea,
#view-snc-visao-geral button,
#view-snc-alertas input,
#view-snc-alertas select,
#view-snc-alertas textarea,
#view-snc-alertas button,
#view-snc-eventos input,
#view-snc-eventos select,
#view-snc-eventos textarea,
#view-snc-eventos button,
#view-snc-triggers input,
#view-snc-triggers select,
#view-snc-triggers textarea,
#view-snc-triggers button,
#view-snc-configuracoes input,
#view-snc-configuracoes select,
#view-snc-configuracoes textarea,
#view-snc-configuracoes button,
#view-snc-report input,
#view-snc-report select,
#view-snc-report textarea,
#view-snc-report button {
  font-size: 0.58rem !important;
  line-height: 1.15 !important;
}

#view-snc-visao-geral .snc-muted,
#view-snc-alertas .snc-muted,
#view-snc-eventos .snc-muted,
#view-snc-triggers .snc-muted,
#view-snc-configuracoes .snc-muted,
#view-snc-report .snc-muted,
#view-snc-visao-geral small,
#view-snc-alertas small,
#view-snc-eventos small,
#view-snc-triggers small,
#view-snc-configuracoes small,
#view-snc-report small {
  font-size: 0.65rem !important;
  line-height: 1.22 !important;
}

#view-snc-visao-geral .snc-overview-head-v012,
#view-snc-visao-geral .snc-overview-row-v012,
#view-snc-visao-geral .snc-overview-alert-title,
#view-snc-visao-geral .snc-overview-alert-msg,
#view-snc-visao-geral .snc-overview-col-empresa,
#view-snc-visao-geral .snc-overview-col-data,
#view-snc-visao-geral .snc-overview-col-descricao,
#view-snc-visao-geral .snc-overview-col-equipamento {
  font-size: 0.56rem !important;
  line-height: 1.18 !important;
}

#view-snc-visao-geral .snc-overview-alert-title,
#view-snc-visao-geral .snc-alert-title,
#view-snc-alertas .snc-alert-title {
  font-size: 0.61rem !important;
  line-height: 1.14 !important;
}

#view-snc-visao-geral .snc-overview-alert-msg,
#view-snc-visao-geral .snc-alert-message,
#view-snc-alertas .snc-alert-message {
  font-size: 0.5rem !important;
  line-height: 1.18 !important;
}

#view-snc-visao-geral .snc-btn-lido,
#view-snc-visao-geral .snc-alert-btn-lido,
#view-snc-visao-geral .snc-overview-btn-lido,
#view-snc-visao-geral .snc-btn-primary {
  font-size: 0.63rem !important;
  line-height: 1.1 !important;
}

.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-content,
.snc-modal-body,
.snc-modal-body-v011 {
  font-size: 72% !important;
}

.snc-modal h1,
.snc-modal .snc-modal-title,
.snc-modal .snc-modal-header h1,
.snc-modal .snc-modal-header-v011 h1 {
  font-size: 0.82rem !important;
  line-height: 1.16 !important;
}

.snc-modal h2,
.snc-modal .snc-modal-hero h2,
.snc-modal .snc-alert-detail-title {
  font-size: 0.74rem !important;
  line-height: 1.16 !important;
}

.snc-modal h3,
.snc-modal .snc-section-title,
.snc-modal .snc-section-title-v011 {
  font-size: 0.61rem !important;
  line-height: 1.18 !important;
}

.snc-modal label,
.snc-modal .snc-label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label,
.snc-modal .snc-modal-label {
  font-size: 0.54rem !important;
  line-height: 1.16 !important;
}

.snc-modal input,
.snc-modal select,
.snc-modal textarea,
.snc-modal button,
.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary {
  font-size: 0.78rem !important;
  line-height: 1.16 !important;
}

.snc-modal p,
.snc-modal .snc-modal-subtitle,
.snc-modal .snc-help,
.snc-modal .snc-muted,
.snc-modal .snc-form-help,
.snc-modal .snc-help-v011,
.snc-modal small {
  font-size: 0.5rem !important;
  line-height: 1.25 !important;
}

.snc-modal .snc-detail-line,
.snc-modal .snc-detail-value,
.snc-modal .snc-detail-label,
.snc-modal .snc-card,
.snc-modal .snc-card * {
  font-size: 0.58rem !important;
  line-height: 1.2 !important;
}

.snc-modal .snc-step-number,
.snc-modal .snc-step-badge,
.snc-modal .snc-badge,
.snc-modal .badge {
  font-size: 0.5rem !important;
}

/* @media removido no v045: responsividade nova do SNC desativada. */

/* SNC v040 - Report: alternancia alertas/windows */
.snc-report-origem-select {
  min-width: 190px;
  max-width: 230px;
}
.snc-machine-event-readonly {
  cursor: default !important;
  text-align: left;
}
.snc-windows-event-message {
  display: block;
  grid-column: 1 / -1;
  margin-top: 0.35rem;
  color: rgba(214, 231, 255, 0.78);
  line-height: 1.35;
  word-break: break-word;
}
/* /* @media removido no v045: responsividade nova do SNC desativada. */

.snc-windows-event-details span {
  min-width: 0;
  word-break: break-word;
}
.snc-windows-event-details .msg {
  grid-column: 1 / -1;
  color: rgba(255, 229, 137, 0.95);
}
.snc-windows-event-detail-line {
  display: block;
  margin-bottom: 0.16rem;
}
.snc-windows-event-detail-message {
  color: rgba(255, 229, 137, 0.95);
}
.snc-windows-event-table td:nth-child(3) {
  min-width: 320px;
}

/* /* @media removido no v045: responsividade nova do SNC desativada. */

.painel-body .snc-report-table td,
.painel-body .snc-report-table th,
.painel-body .snc-report-row,
.painel-body .snc-report-cell,
.painel-body .snc-report-meta,
.painel-body .snc-alert-meta,
.painel-body .snc-alert-small,
.painel-body .snc-event-small,
.painel-body .snc-event-meta,
.painel-body .snc-windows-event-meta,
.painel-body .snc-windows-event-detail,
.painel-body .snc-windows-event-card,
.painel-body .snc-windows-event-card small,
.painel-body .snc-modal small,
.painel-body .snc-modal .small,
.painel-body .snc-modal .tiny,
.painel-body .snc-modal .tinysmall,
.painel-body .snc-modal .tinysmallmini {
  font-size: clamp(0.64rem, 0.42vw, 0.78rem) !important;
  line-height: 1.38 !important;
}

.painel-body .snc-report-table .snc-event-title,
.painel-body .snc-report-table strong,
.painel-body .snc-windows-event-title,
.painel-body .snc-modal-title,
.painel-body .snc-modal h2,
.painel-body .snc-modal h3,
.painel-body .snc-modal h4 {
  font-size: 1.12rem !important;
  line-height: 1.25 !important;
}

.painel-body .snc-report-table .snc-event-code,
.painel-body .snc-report-table .snc-internal-code,
.painel-body .snc-windows-event-code {
  font-size: clamp(0.58rem, 0.38vw, 0.7rem) !important;
  opacity: 0.9;
}

.painel-body .snc-windows-message,
.painel-body .snc-windows-description,
.painel-body .snc-windows-event-card .snc-windows-message,
.painel-body .snc-modal .snc-windows-message {
  font-size: clamp(0.66rem, 0.44vw, 0.8rem) !important;
  line-height: 1.45 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

/* Responsividade em monitores médios e menores */
@media (max-width: 1370px) {
  .painel-body .logo-tools img {
    height: 55px;
  }

  #view-snc-visao-geral .snc-overview-head-actions {
    display: grid !important;
    grid-template-columns: 0.11fr 0.12fr 0.13fr !important;
    margin-left: 320px;
  }

  #view-snc-visao-geral .snc-live-clock-card,
  #view-snc-visao-geral .snc-mini-kpi-resolver,
  #view-snc-visao-geral .snc-overview-head-actions .snc-btn-primary {
    width: 170px !important;
    display: flex;
  }

  #view-snc-visao-geral .snc-last-update-box {
    width: 100px !important;
    height: fit-content;
    text-align: center !important;
  }

  #view-snc-visao-geral .snc-last-update-box span {
    font-size: 0.56rem !important;
    text-align: center !important;
  }

  #view-snc-visao-geral .snc-last-update-box small {
    font-size: 0.56rem !important;
    line-height: 1.05 !important;
    text-align: center !important;
  }

  #view-snc-visao-geral .snc-live-clock-card span,
  #view-snc-visao-geral .snc-mini-kpi-resolver span {
    font-size: 0.62rem !important;
    letter-spacing: 0.08em !important;
    text-align: center !important;
  }

  #view-snc-visao-geral .snc-live-clock-card strong,
  #view-snc-visao-geral .snc-mini-kpi-resolver strong {
    font-size: 1.75rem !important;
    line-height: 1.15 !important;
    text-align: center !important;
    color: var(--white) !important;
  }

  #view-snc-visao-geral .snc-live-clock-card small {
    font-size: 0.66rem !important;
    line-height: 1.05 !important;
    text-align: center !important;
  }
}

/* ======================================================
   SNC v046 - ajustes documento / excecoes / tools report
====================================================== */
.snc-hidden-v046 {
  display: none !important;
}

.snc-trigger-excecoes-panel {
  display: block !important;
  margin-top: 14px;
}

.snc-excecoes-filter-bar-v046,
.snc-tools-report-filter-bar {
  margin: 10px 0 12px;
  align-items: end;
}

.snc-actions-cell-v046 {
  white-space: nowrap;
}

.snc-actions-cell-v046 .snc-btn {
  margin: 2px;
  padding: 6px 8px;
}

.snc-btn-danger-v046 {
  background: linear-gradient(135deg, #7f1d1d, #ef4444) !important;
  color: #fff !important;
}

.snc-sortable-table-v046 th,
.snc-table th {
  cursor: pointer;
  user-select: none;
}

.snc-table th[data-sort-dir="asc"]::after {
  content: " ▲";
  color: #00d4ff;
}

.snc-table th[data-sort-dir="desc"]::after {
  content: " ▼";
  color: #00d4ff;
}

.snc-action-grid-v046 {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.snc-normalizado-pill-v046 {
  margin-left: 8px;
}

#snc-hover-preview-v046 {
  position: fixed;
  z-index: 99999;
  display: none;
  width: 340px;
  max-width: calc(100vw - 30px);
  background: #071526;
  color: #eaf6ff;
  border: 1px solid rgba(0, 212, 255, 0.35);
  border-radius: 14px;
  padding: 12px;
  box-shadow: 0 16px 50px rgba(0, 0, 0, 0.55);
  font-size: 0.76rem;
  line-height: 1.35;
}

#snc-hover-preview-v046 strong {
  display: block;
  margin-bottom: 6px;
  font-size: 0.86rem;
}

#snc-hover-preview-v046 div {
  margin: 2px 0;
}

#snc-hover-preview-v046 p {
  margin: 8px 0;
  color: #b8cee3;
}

#snc-hover-preview-v046 .snc-btn {
  padding: 6px 10px;
  font-size: 0.7rem;
}

#view-snc-tools-report .snc-table td,
#view-snc-tools-report .snc-table th,
#view-snc-alertas .snc-table td,
#view-snc-alertas .snc-table th,
.snc-machine-event,
.snc-machine-event small,
.snc-windows-event-message {
  font-size: 0.67rem !important;
  line-height: 1.35 !important;
}

#view-snc-tools-report .snc-table td strong,
#view-snc-alertas .snc-table td strong,
.snc-machine-event strong {
  font-size: 0.78rem !important;
}

#view-snc-tools-report .snc-table small,
#view-snc-alertas .snc-table small {
  font-size: 0.61rem !important;
}

.snc-excecao-summary-v011 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.snc-excecao-summary-v011 .snc-select {
  width: 100% !important;
  min-width: 100%;
}

.snc-filter-bar .snc-hidden-v046 {
  display: none !important;
}

@media (max-width: 1200px) {
  .snc-excecao-summary-v011 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ======================================================
   SNC v048 - ajustes finais solicitados
   - Modal +10% em largura/altura util.
   - Fonte dos modais +5%, sem alterar pills/badges.
   - Oculta filtros de origem/status da Customizacao/Triggers.
   - Reforca ordenacao visual generica em tabelas.
====================================================== */
#snc-triggers-origem,
#snc-triggers-ativo {
  display: none !important;
}

.snc-modal-box,
.snc-modal-content,
.snc-modal-body,
.snc-modal-box-wide {
  max-height: 92vh !important;
}

.snc-modal-box,
.snc-modal-content {
  width: min(96vw, 990px) !important;
  max-width: min(96vw, 990px) !important;
}

.snc-modal-box-wide {
  width: min(97vw, 1210px) !important;
  max-width: min(97vw, 1210px) !important;
}

.snc-modal,
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-content,
.snc-modal-body,
.snc-modal-body-v011 {
  font-size: 75.6% !important;
}

.snc-modal h1,
.snc-modal .snc-modal-title,
.snc-modal .snc-modal-header h1,
.snc-modal .snc-modal-header-v011 h1 {
  font-size: 0.861rem !important;
}

.snc-modal h2,
.snc-modal .snc-modal-hero h2,
.snc-modal .snc-alert-detail-title {
  font-size: 0.777rem !important;
}

.snc-modal h3,
.snc-modal .snc-section-title,
.snc-modal .snc-section-title-v011 {
  font-size: 0.641rem !important;
}

.snc-modal label,
.snc-modal .snc-label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label,
.snc-modal .snc-modal-label {
  font-size: 0.567rem !important;
}

.snc-modal input,
.snc-modal select,
.snc-modal textarea,
.snc-modal button,
.snc-modal .snc-btn,
.snc-modal .snc-btn-primary,
.snc-modal .snc-btn-secondary {
  font-size: 0.819rem !important;
}

.snc-modal p,
.snc-modal .snc-modal-subtitle,
.snc-modal .snc-help,
.snc-modal .snc-muted,
.snc-modal .snc-form-help,
.snc-modal .snc-help-v011,
.snc-modal small {
  font-size: 0.7rem !important;
}

.snc-modal .snc-detail-line,
.snc-modal .snc-detail-value,
.snc-modal .snc-detail-label,
.snc-modal .snc-card,
.snc-modal .snc-card * {
  font-size: 0.609rem !important;
}

/* Nao aumentar pills/badges nem padding delas. */
.snc-modal .snc-pill,
.snc-modal .snc-badge,
.snc-modal .badge,
.snc-modal .snc-step-number,
.snc-modal .snc-step-badge {
  font-size: 0.5rem !important;
}

.snc-sortable-table-v048 {
  cursor: pointer;
  user-select: none;
}

.snc-sortable-table-v048[data-sort-dir="asc"]::after {
  content: " ▲";
  color: #00d4ff;
}

.snc-sortable-table-v048[data-sort-dir="desc"]::after {
  content: " ▼";
  color: #00d4ff;
}

/* ======================================================
   ODIN v0.2.7.4 - Histórico amigável e sem dados sensíveis
   ====================================================== */
.odin-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.odin-summary-grid > div {
  border: 1px solid rgba(148, 163, 184, 0.18);
  background: rgba(15, 23, 42, 0.48);
  border-radius: 10px;
  padding: 8px 10px;
}

.odin-summary-grid > div.wide {
  grid-column: 1 / -1;
}

.odin-summary-grid span,
.odin-event-readable-meta span,
.odin-friendly-extra-line span {
  display: block;
  color: var(--muted, #94a3b8);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 2px;
}

.odin-summary-grid strong,
.odin-event-readable-meta strong,
.odin-friendly-extra-line strong {
  color: var(--text-color, #e5e7eb);
  font-size: 0.82rem;
  line-height: 1.35;
  word-break: break-word;
}

.odin-event-item.friendly {
  padding: 14px;
}

.odin-event-message.friendly-message {
  font-size: 0.9rem;
  line-height: 1.45;
  margin: 10px 0 12px 0;
  color: var(--text-color, #e5e7eb);
}

.odin-event-readable-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.odin-event-readable-meta > div,
.odin-friendly-extra-line {
  border: 1px solid rgba(148, 163, 184, 0.16);
  background: rgba(15, 23, 42, 0.42);
  border-radius: 10px;
  padding: 8px 10px;
}

.odin-friendly-extra {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.odin-chat-history-log {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
  padding: 10px;
  border: 1px solid rgba(14, 165, 233, 0.18);
  background: rgba(2, 6, 23, 0.28);
  border-radius: 12px;
}

.odin-chat-history-log.empty {
  color: var(--muted, #94a3b8);
  font-size: 0.8rem;
}

.odin-chat-log-row {
  display: flex;
  width: 100%;
}

.odin-chat-log-row.tech {
  justify-content: flex-end;
}

.odin-chat-log-row.client,
.odin-chat-log-row.system {
  justify-content: flex-start;
}

.odin-chat-log-bubble {
  max-width: 82%;
  min-width: 160px;
  border-radius: 13px;
  padding: 8px 10px 6px 10px;
  border: 1px solid rgba(148, 163, 184, 0.16);
  background: rgba(30, 41, 59, 0.86);
  color: var(--text-color, #f8fafc);
}

.odin-chat-log-row.tech .odin-chat-log-bubble {
  background: rgba(14, 116, 144, 0.45);
  border-color: rgba(34, 211, 238, 0.26);
}

.odin-chat-log-row.client .odin-chat-log-bubble {
  background: rgba(31, 41, 55, 0.82);
}

.odin-chat-log-row.system .odin-chat-log-bubble {
  background: rgba(180, 83, 9, 0.18);
  border-color: rgba(251, 191, 36, 0.22);
  max-width: 92%;
}

.odin-chat-log-author {
  color: #93c5fd;
  font-weight: 800;
  font-size: 0.76rem;
  margin-bottom: 4px;
}

.odin-chat-log-row.system .odin-chat-log-author {
  color: #fbbf24;
}

.odin-chat-log-text {
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.38;
  font-size: 0.86rem;
}

.odin-chat-log-time {
  color: rgba(226, 232, 240, 0.78);
  font-size: 0.68rem;
  text-align: right;
  margin-top: 4px;
}

.odin-event-extra {
  display: none !important;
}

@media (max-width: 900px) {
  .odin-summary-grid,
  .odin-event-readable-meta,
  .odin-friendly-extra {
    grid-template-columns: 1fr;
  }

  .odin-chat-log-bubble {
    max-width: 95%;
  }
}

/* ======================================================
   Auditoria ODIN
   ====================================================== */
.odin-audit-page {
  color: #e5edf7;
}

.odin-audit-toolbar {
  display: grid;
  grid-template-columns: 1.6fr 0.8fr 0.8fr 0.8fr 1.4fr auto;
  gap: 12px;
  align-items: end;
  background: rgba(15, 23, 42, 0.72);
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 16px;
  padding: 14px;
  margin: 18px 0;
}

.odin-audit-field label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: #93c5fd;
  margin-bottom: 5px;
}

.odin-audit-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.odin-audit-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.odin-audit-kpi {
  background: linear-gradient(
    135deg,
    rgba(14, 165, 233, 0.16),
    rgba(15, 23, 42, 0.9)
  );
  border: 1px solid rgba(56, 189, 248, 0.25);
  border-radius: 16px;
  padding: 14px;
}

.odin-audit-kpi span {
  display: block;
  font-size: 12px;
  color: #9ca3af;
}

.odin-audit-kpi strong {
  display: block;
  font-size: 28px;
  line-height: 1;
  margin-top: 7px;
  color: #f8fafc;
}

.odin-audit-layout {
  display: grid;
  grid-template-columns: minmax(320px, 38%) 1fr;
  gap: 14px;
  min-height: 620px;
}

.odin-audit-sessions-card,
.odin-audit-detail-card {
  background: rgba(15, 23, 42, 0.82);
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 16px;
  padding: 14px;
  overflow: hidden;
}

.odin-audit-card-title {
  font-weight: 800;
  color: #f8fafc;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.odin-audit-sessions-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 590px;
  overflow: auto;
  padding-right: 4px;
}

.odin-audit-session-item {
  text-align: left;
  width: 100%;
  border: 1px solid rgba(148, 163, 184, 0.24);
  background: rgba(30, 41, 59, 0.72);
  color: #e5edf7;
  border-radius: 14px;
  padding: 12px;
  cursor: pointer;
  transition: 0.15s ease;
}

.odin-audit-session-item:hover,
.odin-audit-session-item.active {
  border-color: rgba(14, 165, 233, 0.75);
  background: rgba(12, 74, 110, 0.42);
}

.odin-audit-session-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.odin-audit-session-head strong {
  color: #f8fafc;
}

.odin-audit-session-head span {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(14, 165, 233, 0.18);
  color: #93c5fd;
}

.odin-audit-session-meta,
.odin-audit-session-last {
  font-size: 12px;
  color: #cbd5e1;
  margin-top: 4px;
}

.odin-audit-session-last {
  color: #93c5fd;
  margin-top: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.odin-audit-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 12px;
  color: #cbd5e1;
  font-size: 12px;
}

.odin-audit-detail-card {
  min-width: 0;
}

.odin-audit-summary {
  margin-bottom: 14px;
}

.odin-audit-events-list {
  max-height: 620px;
  overflow: auto;
  padding-right: 4px;
}

.odin-event-item.audit {
  margin-bottom: 12px;
}

@media (max-width: 1200px) {
  .odin-audit-toolbar {
    grid-template-columns: repeat(2, 1fr);
  }
  .odin-audit-actions {
    grid-column: 1 / -1;
  }
  .odin-audit-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .odin-audit-toolbar,
  .odin-audit-kpis {
    grid-template-columns: 1fr;
  }
}

/* ODIN v0.2.7.8 - relatório resumido */
.odin-audit-report-card {
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 14px;
  padding: 14px;
  margin: 14px 0;
  background: rgba(15, 23, 42, 0.04);
}
.odin-report-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
}
.odin-report-summary-grid > div {
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 12px;
  padding: 10px;
}
.odin-report-summary-grid span {
  display: block;
  font-size: 11px;
  opacity: 0.75;
}
.odin-report-summary-grid strong {
  font-size: 20px;
}

/* CoNNecta v056 - seleção em massa na Visão Geral do SNC */
.snc-overview-bulk-toolbar-v056 {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin: 6px 0 10px 0;
  padding: 8px 10px;
  border: 1px solid rgba(0, 212, 255, 0.25);
  border-radius: 12px;
  background: rgba(0, 20, 40, 0.35);
}
.snc-overview-bulk-toolbar-v056 .snc-btn {
  min-height: 30px;
  padding: 6px 10px;
  font-size: 0.72rem;
}
.snc-overview-bulk-toolbar-v056 small {
  opacity: 0.85;
  margin-left: auto;
}
.snc-overview-check-all-v056 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #bfefff;
}
.snc-overview-select-v056 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 6px 0 0;
  min-width: 22px;
}
.snc-overview-select-v056 input,
.snc-overview-check-all-v056 input {
  width: 14px;
  height: 14px;
  accent-color: #14b8c8;
}
.snc-overview-row-v012 {
  grid-template-columns: auto var(
      --snc-overview-cols,
      minmax(130px, 0.9fr) minmax(140px, 0.9fr) minmax(280px, 2fr)
        minmax(160px, 1fr)
    ) !important;
}
.snc-overview-head-v012 {
  padding-left: 32px;
}
.snc-overview-row-v012 .snc-dot {
  margin-left: 0;
}
#view-snc-visao-geral .snc-overview-row-v012 {
  grid-template-columns:
    24px 16px minmax(120px, 180px) minmax(120px, 170px)
    minmax(260px, 1fr) minmax(160px, 230px) !important;
}
#view-snc-visao-geral .snc-overview-head-v012 {
  grid-template-columns:
    minmax(120px, 180px) minmax(120px, 170px) minmax(260px, 1fr)
    minmax(160px, 230px) !important;
  padding-left: 48px !important;
}

/* ========================================================================== */
/* CoNNecta SNC v062 - modais compactos e tabela de alertas simplificada       */
/* ========================================================================== */
.snc-modal-box,
.snc-modal-box-wide,
.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  max-height: min(800px, calc(100vh - 32px)) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}

.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  width: min(1180px, calc(100vw - 48px)) !important;
}

.snc-modal-body,
.snc-modal-body-v011 {
  max-height: min(690px, calc(100vh - 145px)) !important;
  overflow: auto !important;
}

.snc-modal .snc-modal-body,
.snc-modal .snc-modal-body-v011,
.snc-modal .snc-modal-main,
.snc-modal .snc-modal-history,
.snc-modal .snc-modal-hero,
.snc-modal .snc-form-grid,
.snc-modal .snc-form-grid-v011,
.snc-modal .snc-form-section-v011,
.snc-modal .snc-excecao-summary-v011 {
  font-size: 0.95rem !important;
}

.snc-modal .snc-modal-head h3,
.snc-modal .snc-modal-head-v011 h3 {
  font-size: 1.35rem !important;
  line-height: 1.15 !important;
}

.snc-modal .snc-modal-subtitle-v011,
.snc-modal .snc-modal-hero p,
.snc-modal .snc-detail-line,
.snc-modal .snc-label,
.snc-modal .snc-input,
.snc-modal .snc-select,
.snc-modal textarea,
.snc-modal input,
.snc-modal select,
.snc-modal button,
.snc-modal small,
.snc-modal .snc-help-v011,
.snc-modal .snc-row-sub,
.snc-modal .snc-disco-meta {
  font-size: 0.84rem !important;
  line-height: 1.35 !important;
}

.snc-modal .snc-form-grid-v011 .snc-label,
.snc-modal .snc-modal-body-v011 .snc-label {
  font-size: 0.84rem !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select {
  min-height: 36px !important;
}

/* Mantem pills/badges no tamanho atual */
.snc-modal .snc-pill,
.snc-modal .snc-badge,
.snc-modal .snc-sev-badge,
.snc-modal .snc-status-pill,
.snc-modal .snc-chip,
.snc-modal .snc-tag,
.snc-modal .snc-alert-pill,
.snc-modal .snc-normalizado-pill {
  font-size: inherit;
  padding: inherit;
}

.snc-overview-bulk-toolbar-v056 {
  gap: 10px !important;
  padding: 7px 10px !important;
}

.snc-bulk-action-select-v062 {
  min-height: 31px;
  min-width: 230px;
  border: 1px solid rgba(0, 212, 255, 0.35);
  border-radius: 9px;
  background: rgba(29, 42, 62, 0.95);
  color: #fff;
  font-weight: 800;
  font-size: 0.74rem;
  padding: 6px 10px;
}

.snc-overview-bulk-toolbar-v056 .snc-btn {
  display: none !important;
}

.snc-overview-table-v012 {
  width: 100%;
  overflow: hidden;
}

.snc-overview-head-v012,
.snc-overview-row-v012 {
  grid-template-columns:
    22px 12px minmax(105px, 0.75fr) minmax(120px, 0.8fr)
    minmax(220px, 1.7fr) minmax(120px, 0.9fr) !important;
  gap: 9px !important;
}

.snc-overview-head-v012 {
  padding-left: 10px !important;
}

.snc-overview-head-v012::before {
  content: "" !important;
  grid-column: 1 / span 2;
}

.snc-overview-row-v012 {
  min-height: 44px !important;
  padding: 8px 10px !important;
  border-radius: 9px !important;
}

.snc-overview-row-v012 .snc-overview-select-v056 {
  margin: 0 !important;
  min-width: 18px !important;
}

.snc-overview-row-v012 .snc-dot {
  width: 8px !important;
  height: 8px !important;
  margin: 0 !important;
}

.snc-overview-row-v012 .snc-overview-col {
  font-size: 0.72rem !important;
}

.snc-overview-row-v012 .snc-overview-col strong {
  font-size: 0.74rem !important;
  line-height: 1.2 !important;
}

.snc-overview-row-v012 .snc-overview-col-descricao small {
  display: none !important;
}

.snc-overview-row-v012 .snc-overview-col-descricao strong {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 100% !important;
}

.snc-overview-equipamento-com-lido-v029 {
  display: grid !important;
  grid-template-columns: minmax(70px, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.snc-overview-lido-btn-v029 {
  min-height: 24px !important;
  padding: 4px 10px !important;
  font-size: 0.68rem !important;
  border-radius: 8px !important;
}

@media (max-width: 1360px) {
  .snc-overview-head-v012,
  .snc-overview-row-v012 {
    grid-template-columns:
      20px 10px minmax(88px, 0.7fr) minmax(96px, 0.75fr)
      minmax(160px, 1.5fr) minmax(100px, 0.8fr) !important;
    gap: 7px !important;
  }
  .snc-overview-row-v012 {
    padding: 7px 8px !important;
  }
  .snc-overview-row-v012 .snc-overview-col,
  .snc-overview-row-v012 .snc-overview-col strong {
    font-size: 0.68rem !important;
  }
  .snc-overview-head-v012 button {
    font-size: 0.64rem !important;
  }
}

/* ==========================================================
   SNC v063 - alinhamento final de filtros, toolbar e tabela
   Objetivo: manter filtros, acoes em massa, cabecalho e linhas
   na mesma grade, principalmente em telas HD/1366px.
   ========================================================== */

#view-snc-visao-geral .snc-overview-filter-line-v029 {
  display: grid !important;
  grid-template-columns:
    minmax(170px, 240px) minmax(170px, 240px) minmax(110px, 150px)
    1fr auto auto !important;
  align-items: end !important;
  gap: 12px !important;
  padding: 10px 14px !important;
  margin: 8px 0 8px !important;
}

#view-snc-visao-geral .snc-overview-filter-line-v029 .snc-filter-field-v029 {
  margin: 0 !important;
  width: 100% !important;
  min-width: 0 !important;
}

#view-snc-visao-geral .snc-overview-filter-line-v029 .snc-select,
#view-snc-visao-geral .snc-overview-filter-line-v029 select {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

#view-snc-visao-geral .snc-overview-filter-line-v029 .snc-last-update-box,
#view-snc-visao-geral .snc-last-update-box {
  position: static !important;
  right: auto !important;
  left: auto !important;
  top: auto !important;
  margin: 0 !important;
  width: auto !important;
  min-width: 132px !important;
  max-width: 160px !important;
  height: 44px !important;
  justify-self: end !important;
  align-self: end !important;
}

#view-snc-visao-geral .snc-overview-filter-line-v029 .snc-btn-primary,
#view-snc-visao-geral .snc-overview-filter-line-v029 button.snc-btn-primary {
  justify-self: end !important;
  align-self: end !important;
  min-width: 102px !important;
  height: 44px !important;
}

#view-snc-visao-geral .snc-overview-bulk-toolbar-v056 {
  display: grid !important;
  grid-template-columns: auto minmax(220px, 420px) 1fr auto !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  padding: 8px 10px !important;
}

#view-snc-visao-geral .snc-overview-check-all-v056 {
  grid-column: 1 !important;
  white-space: nowrap !important;
  margin: 0 !important;
}

#view-snc-visao-geral .snc-bulk-action-select-v062 {
  grid-column: 2 !important;
  width: 100% !important;
  min-width: 220px !important;
  max-width: 420px !important;
  justify-self: start !important;
}

#view-snc-visao-geral #snc-overview-selected-count {
  grid-column: 4 !important;
  justify-self: end !important;
  margin-left: 0 !important;
  white-space: nowrap !important;
}

#view-snc-visao-geral .snc-overview-table-v012 {
  width: 100% !important;
  overflow: hidden !important;
}

#view-snc-visao-geral .snc-overview-head-v012,
#view-snc-visao-geral .snc-overview-row-v012 {
  display: grid !important;
  grid-template-columns:
    24px 14px minmax(145px, 0.95fr) minmax(118px, 0.72fr)
    minmax(260px, 2.25fr) minmax(150px, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

#view-snc-visao-geral .snc-overview-head-v012 {
  padding: 0 10px !important;
  min-height: 32px !important;
}

#view-snc-visao-geral .snc-overview-head-v012::before {
  content: "" !important;
  display: block !important;
  grid-column: 1 / 3 !important;
  grid-row: 1 !important;
}

#view-snc-visao-geral .snc-overview-head-v012 button {
  width: 100% !important;
  text-align: left !important;
  justify-content: flex-start !important;
  padding: 6px 4px !important;
  white-space: nowrap !important;
}

#view-snc-visao-geral .snc-overview-head-v012 button:nth-child(1) {
  grid-column: 3 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-head-v012 button:nth-child(2) {
  grid-column: 4 !important;
  grid-row: 1 !important;
  text-align: center !important;
  justify-content: center !important;
}
#view-snc-visao-geral .snc-overview-head-v012 button:nth-child(3) {
  grid-column: 5 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-head-v012 button:nth-child(4) {
  grid-column: 6 !important;
  grid-row: 1 !important;
}

#view-snc-visao-geral .snc-overview-row-v012 {
  padding: 8px 10px !important;
  min-height: 46px !important;
}

#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-select-v056 {
  grid-column: 1 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-dot {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: center !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-empresa {
  grid-column: 3 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-data {
  grid-column: 4 !important;
  grid-row: 1 !important;
  text-align: center !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-descricao {
  grid-column: 5 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-equipamento {
  grid-column: 6 !important;
  grid-row: 1 !important;
}

#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col,
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col strong {
  min-width: 0 !important;
}

#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-descricao small {
  display: none !important;
}

#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-descricao strong,
#view-snc-visao-geral
  .snc-overview-row-v012
  .snc-overview-col-equipamento
  strong,
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-empresa strong {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#view-snc-visao-geral .snc-overview-equipamento-com-lido-v029 {
  display: grid !important;
  grid-template-columns: minmax(70px, 1fr) auto !important;
  gap: 8px !important;
  align-items: center !important;
}

#view-snc-visao-geral .snc-overview-lido-btn-v029 {
  min-width: 52px !important;
  max-width: 66px !important;
  padding: 4px 8px !important;
}

@media (max-width: 1360px) {
  #view-snc-visao-geral .snc-overview-filter-line-v029 {
    grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) minmax(
        105px,
        140px
      ) !important;
    gap: 10px !important;
  }

  #view-snc-visao-geral .snc-overview-bulk-toolbar-v056 {
    grid-template-columns: auto minmax(190px, 1fr) auto !important;
  }

  #view-snc-visao-geral .snc-bulk-action-select-v062 {
    grid-column: 2 !important;
    max-width: none !important;
  }

  #view-snc-visao-geral #snc-overview-selected-count {
    grid-column: 3 !important;
  }

  #view-snc-visao-geral .snc-overview-head-v012,
  #view-snc-visao-geral .snc-overview-row-v012 {
    grid-template-columns:
      22px 12px minmax(125px, 0.95fr) minmax(104px, 0.72fr)
      minmax(210px, 2fr) minmax(128px, 0.95fr) !important;
    gap: 8px !important;
  }

  #view-snc-visao-geral .snc-overview-row-v012 {
    padding: 7px 8px !important;
  }
}

@media (max-width: 980px) {
  #view-snc-visao-geral .snc-overview-filter-line-v029,
  #view-snc-visao-geral .snc-overview-bulk-toolbar-v056 {
    grid-template-columns: 1fr !important;
  }

  #view-snc-visao-geral .snc-bulk-action-select-v062,
  #view-snc-visao-geral #snc-overview-selected-count,
  #view-snc-visao-geral .snc-overview-check-all-v056 {
    grid-column: 1 !important;
    justify-self: stretch !important;
  }
}

/* ==========================================================
   SNC v066 - acabamento visual PT-BR, ações com Aplicar,
   filtros responsivos e nova ordem da tabela.
   ========================================================== */
#view-snc-visao-geral .snc-overview-filter-line-v029 {
  position: relative !important;
  display: grid !important;
  grid-template-columns:
    minmax(170px, 240px) minmax(170px, 240px) minmax(115px, 150px)
    minmax(136px, 170px) auto !important;
  align-items: end !important;
  gap: 12px !important;
  padding: 10px 14px !important;
}

#view-snc-visao-geral .snc-refresh-field-v066 {
  position: static !important;
  justify-self: end !important;
  align-self: end !important;
  margin: 0 !important;
}

#view-snc-visao-geral .snc-refresh-btn-v066,
#view-snc-visao-geral .snc-bulk-action-apply-v066 {
  min-height: 36px !important;
  height: 36px !important;
  min-width: 98px !important;
  padding: 0 16px !important;
  border-radius: 10px !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

#view-snc-visao-geral .snc-overview-filter-line-v029 .snc-last-update-box,
#view-snc-visao-geral .snc-last-update-box {
  position: static !important;
  justify-self: end !important;
  align-self: end !important;
  min-width: 140px !important;
  max-width: 170px !important;
  height: 44px !important;
  margin: 0 !important;
}

#view-snc-visao-geral .snc-last-update-box span,
#view-snc-visao-geral .snc-filter-field-v029 label,
#view-snc-visao-geral .snc-overview-check-all-v056,
#view-snc-visao-geral .snc-overview-head-v012 button,
#view-snc-visao-geral .snc-panel-title,
#view-snc-visao-geral .snc-title,
#view-snc-alertas .snc-panel-title,
#view-snc-alertas .snc-title,
#view-snc-eventos .snc-panel-title,
#view-snc-eventos .snc-title,
#view-snc-triggers .snc-panel-title,
#view-snc-triggers .snc-title,
#view-snc-configuracoes .snc-panel-title,
#view-snc-configuracoes .snc-title {
  color: #ffffff !important;
  text-transform: none !important;
  letter-spacing: 0.01em !important;
  font-weight: 600 !important;
}

#view-snc-visao-geral .snc-overview-bulk-toolbar-v056 {
  display: grid !important;
  grid-template-columns: auto minmax(180px, 320px) auto 1fr auto !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  padding: 8px 10px !important;
}

#view-snc-visao-geral .snc-overview-check-all-v056 {
  grid-column: 1 !important;
  white-space: nowrap !important;
  font-size: 0.68rem !important;
}

#view-snc-visao-geral .snc-bulk-action-select-v062,
#view-snc-visao-geral .snc-bulk-action-select-v066 {
  grid-column: 2 !important;
  width: 100% !important;
  min-width: 180px !important;
  max-width: 320px !important;
  height: 34px !important;
  justify-self: start !important;
}

#view-snc-visao-geral .snc-bulk-action-apply-v066 {
  grid-column: 3 !important;
  justify-self: start !important;
  min-width: 96px !important;
  height: 34px !important;
}

#view-snc-visao-geral #snc-overview-selected-count {
  grid-column: 5 !important;
  justify-self: end !important;
  margin-left: 0 !important;
  white-space: nowrap !important;
}

#view-snc-visao-geral .snc-overview-head-v012,
#view-snc-visao-geral .snc-overview-row-v012 {
  display: grid !important;
  grid-template-columns:
    24px 14px minmax(145px, 0.9fr) minmax(145px, 0.9fr)
    minmax(220px, 1.45fr) minmax(128px, 0.76fr) !important;
  align-items: center !important;
  gap: 9px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

#view-snc-visao-geral .snc-overview-head-v012::before {
  content: "" !important;
  display: block !important;
  grid-column: 1 / 3 !important;
  grid-row: 1 !important;
}

#view-snc-visao-geral .snc-overview-head-v012 button:nth-child(1) {
  grid-column: 3 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-head-v012 button:nth-child(2) {
  grid-column: 4 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-head-v012 button:nth-child(3) {
  grid-column: 5 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-head-v012 button:nth-child(4) {
  grid-column: 6 !important;
  grid-row: 1 !important;
  text-align: center !important;
  justify-content: center !important;
}

#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-select-v056 {
  grid-column: 1 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-dot {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: center !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-empresa {
  grid-column: 3 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-equipamento {
  grid-column: 4 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-descricao {
  grid-column: 5 !important;
  grid-row: 1 !important;
}
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-data {
  grid-column: 6 !important;
  grid-row: 1 !important;
  text-align: center !important;
}

#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-descricao small {
  display: none !important;
}

#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-descricao strong,
#view-snc-visao-geral
  .snc-overview-row-v012
  .snc-overview-col-equipamento
  strong,
#view-snc-visao-geral .snc-overview-row-v012 .snc-overview-col-empresa strong {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-weight: 600 !important;
}

#view-snc-visao-geral .snc-overview-equipamento-com-lido-v029 {
  display: grid !important;
  grid-template-columns: minmax(70px, 1fr) auto !important;
  gap: 8px !important;
  align-items: center !important;
}

#view-snc-visao-geral .snc-overview-lido-btn-v029 {
  min-width: 48px !important;
  max-width: 58px !important;
  padding: 3px 7px !important;
  font-size: 0.66rem !important;
  border-radius: 8px !important;
}

#view-snc-visao-geral .snc-overview-head-v012 button {
  color: #ffffff !important;
  text-align: left !important;
  justify-content: flex-start !important;
  padding: 6px 4px !important;
  white-space: nowrap !important;
  font-size: 0.72rem !important;
}

@media (max-width: 1360px) {
  #view-snc-visao-geral .snc-overview-filter-line-v029 {
    grid-template-columns:
      minmax(150px, 1fr) minmax(150px, 1fr) minmax(105px, 140px)
      minmax(136px, 170px) auto !important;
    gap: 10px !important;
  }
  #view-snc-visao-geral .snc-overview-bulk-toolbar-v056 {
    grid-template-columns: auto minmax(180px, 280px) auto 1fr auto !important;
  }
  #view-snc-visao-geral .snc-overview-head-v012,
  #view-snc-visao-geral .snc-overview-row-v012 {
    grid-template-columns:
      22px 12px minmax(120px, 0.9fr) minmax(118px, 0.82fr)
      minmax(190px, 1.25fr) minmax(112px, 0.75fr) !important;
    gap: 7px !important;
  }
}

@media (max-width: 980px) {
  #view-snc-visao-geral .snc-overview-filter-line-v029,
  #view-snc-visao-geral .snc-overview-bulk-toolbar-v056 {
    grid-template-columns: 1fr !important;
  }
  #view-snc-visao-geral .snc-refresh-field-v066,
  #view-snc-visao-geral .snc-overview-filter-line-v029 .snc-last-update-box,
  #view-snc-visao-geral .snc-bulk-action-select-v062,
  #view-snc-visao-geral .snc-bulk-action-apply-v066,
  #view-snc-visao-geral #snc-overview-selected-count,
  #view-snc-visao-geral .snc-overview-check-all-v056 {
    grid-column: 1 !important;
    justify-self: stretch !important;
    max-width: none !important;
    width: 100% !important;
  }
}

/* ======================================================
   CoNNecta SNC v067 - paginação e proteção de performance
====================================================== */
#view-snc-visao-geral .snc-overview-bulk-toolbar-v067 {
  display: grid !important;
  grid-template-columns: auto minmax(180px, 260px) auto minmax(120px, 1fr) auto !important;
  align-items: center !important;
  gap: 8px !important;
  overflow: visible !important;
}

#view-snc-visao-geral .snc-pagination-controls-v067,
.snc-pagination-controls-v067 {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  font-size: 0.78rem !important;
}

#view-snc-visao-geral .snc-pagination-controls-v067 label,
.snc-pagination-controls-v067 label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 !important;
  color: #dbeafe !important;
  white-space: nowrap !important;
}

#view-snc-visao-geral .snc-pagination-controls-v067 select,
.snc-pagination-controls-v067 select {
  min-width: 66px !important;
  height: 32px !important;
  border-radius: 8px !important;
  background: rgba(30, 41, 59, 0.95) !important;
  color: #fff !important;
  border: 1px solid rgba(0, 212, 255, 0.35) !important;
  padding: 0 8px !important;
}

#view-snc-visao-geral .snc-pagination-controls-v067 .snc-btn,
.snc-pagination-controls-v067 .snc-btn {
  height: 32px !important;
  min-width: 74px !important;
  padding: 4px 10px !important;
  font-size: 0.72rem !important;
}

#view-snc-visao-geral .snc-overview-table-v067 .snc-overview-head-v012,
#view-snc-visao-geral .snc-overview-table-v067 .snc-overview-row-v012 {
  grid-template-columns:
    22px 12px minmax(145px, 0.9fr) minmax(145px, 0.9fr)
    minmax(220px, 1.35fr) minmax(126px, 0.75fr) 64px !important;
}

#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-head-v012
  button:nth-child(1) {
  grid-column: 3 !important;
}
#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-head-v012
  button:nth-child(2) {
  grid-column: 4 !important;
}
#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-head-v012
  button:nth-child(3) {
  grid-column: 5 !important;
}
#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-head-v012
  button:nth-child(4) {
  grid-column: 6 !important;
}
#view-snc-visao-geral .snc-overview-table-v067 .snc-overview-lido-btn-v029 {
  grid-column: 7 !important;
  justify-self: end !important;
}

#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-col-descricao
  strong {
  display: block !important;
  max-width: 100% !important;
}

#view-snc-visao-geral #snc-bulk-action-select-v062 {
  max-width: 260px !important;
}

#view-snc-visao-geral #snc-bulk-action-apply-v066 {
  max-width: 110px !important;
}

@media (max-width: 1360px) {
  #view-snc-visao-geral .snc-overview-bulk-toolbar-v067 {
    grid-template-columns: auto minmax(160px, 230px) auto 1fr !important;
  }
  #view-snc-visao-geral .snc-pagination-controls-v067 {
    grid-column: 1 / -1 !important;
    justify-content: flex-start !important;
  }
  #view-snc-visao-geral .snc-overview-table-v067 .snc-overview-head-v012,
  #view-snc-visao-geral .snc-overview-table-v067 .snc-overview-row-v012 {
    grid-template-columns:
      20px 10px minmax(115px, 0.8fr) minmax(115px, 0.8fr)
      minmax(180px, 1.25fr) minmax(108px, 0.7fr) 58px !important;
    gap: 7px !important;
  }
}

@media (max-width: 980px) {
  #view-snc-visao-geral .snc-overview-bulk-toolbar-v067,
  #view-snc-visao-geral .snc-overview-table-v067 .snc-overview-head-v012,
  #view-snc-visao-geral .snc-overview-table-v067 .snc-overview-row-v012 {
    grid-template-columns: 1fr !important;
  }
  #view-snc-visao-geral
    .snc-overview-table-v067
    .snc-overview-head-v012::before,
  #view-snc-visao-geral .snc-overview-table-v067 .snc-dot {
    display: none !important;
  }
  #view-snc-visao-geral .snc-overview-table-v067 .snc-overview-col,
  #view-snc-visao-geral .snc-overview-table-v067 .snc-overview-select-v056,
  #view-snc-visao-geral .snc-overview-table-v067 .snc-overview-lido-btn-v029 {
    grid-column: 1 !important;
    justify-self: stretch !important;
  }
}

/* ======================================================
   SNC v068 - ajustes finais de performance/layout
====================================================== */
#view-snc-visao-geral .snc-refresh-btn-v066,
#view-snc-visao-geral button.snc-refresh-btn-v066,
#view-snc-visao-geral .snc-overview-filter-line-v029 .snc-btn-primary {
  height: 32px !important;
  min-height: 32px !important;
  min-width: 74px !important;
  max-width: 92px !important;
  padding: 4px 10px !important;
  border-radius: 8px !important;
  font-size: 0.72rem !important;
}

#view-snc-visao-geral .snc-last-update-box {
  height: 36px !important;
  min-height: 36px !important;
  min-width: 128px !important;
  max-width: 150px !important;
  padding: 5px 8px !important;
  font-size: 0.66rem !important;
}

#view-snc-visao-geral .snc-overview-bulk-toolbar-v067 {
  grid-template-columns: auto minmax(180px, 260px) auto 1fr auto !important;
}

#view-snc-visao-geral #snc-bulk-action-apply-v066,
#view-snc-visao-geral .snc-bulk-action-apply-v066 {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 32px !important;
  min-height: 32px !important;
  min-width: 74px !important;
  max-width: 96px !important;
  padding: 4px 10px !important;
  border-radius: 8px !important;
  font-size: 0.72rem !important;
  grid-column: 3 !important;
}

#view-snc-visao-geral #snc-bulk-action-select-v062 {
  max-width: 260px !important;
  height: 32px !important;
}

#view-snc-visao-geral .snc-overview-table-v067 .snc-overview-head-v012,
#view-snc-visao-geral .snc-overview-table-v067 .snc-overview-row-v012 {
  grid-template-columns:
    22px 12px minmax(145px, 0.9fr) minmax(145px, 0.9fr)
    minmax(220px, 1.35fr) minmax(126px, 0.75fr) 64px !important;
}

#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-row-v012
  .snc-overview-select-v056 {
  grid-column: 1 !important;
}
#view-snc-visao-geral .snc-overview-table-v067 .snc-overview-row-v012 .snc-dot {
  grid-column: 2 !important;
}
#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-row-v012
  .snc-overview-col-empresa {
  grid-column: 3 !important;
}
#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-row-v012
  .snc-overview-col-equipamento {
  grid-column: 4 !important;
}
#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-row-v012
  .snc-overview-col-descricao {
  grid-column: 5 !important;
}
#view-snc-visao-geral
  .snc-overview-table-v067
  .snc-overview-row-v012
  .snc-overview-col-data {
  grid-column: 6 !important;
  text-align: center !important;
}

@media (max-width: 1360px) {
  #view-snc-visao-geral .snc-overview-bulk-toolbar-v067 {
    grid-template-columns: auto minmax(170px, 230px) auto 1fr auto !important;
  }
  #view-snc-visao-geral .snc-pagination-controls-v067 {
    grid-column: 1 / -1 !important;
    justify-content: flex-start !important;
  }
}

/* ======================================================
   SNC v069 - toolbar em linha única, botão Atualizar menor
   e modais mais quadrados/compactos
====================================================== */
#view-snc-visao-geral .snc-overview-bulk-toolbar-v056,
#view-snc-visao-geral .snc-overview-bulk-toolbar-v067 {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 7px 9px !important;
  min-height: 42px !important;
}

#view-snc-visao-geral .snc-overview-check-all-v056 {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  gap: 6px !important;
  margin: 0 !important;
  font-size: 0.68rem !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

#view-snc-visao-geral #snc-bulk-action-select-v062,
#view-snc-visao-geral .snc-bulk-action-select-v062,
#view-snc-visao-geral .snc-bulk-action-select-v066 {
  flex: 0 0 220px !important;
  width: 220px !important;
  min-width: 190px !important;
  max-width: 220px !important;
  height: 30px !important;
  min-height: 30px !important;
  font-size: 0.68rem !important;
  padding: 0 8px !important;
}

#view-snc-visao-geral #snc-bulk-action-apply-v066,
#view-snc-visao-geral .snc-bulk-action-apply-v066 {
  flex: 0 0 auto !important;
  grid-column: auto !important;
  height: 30px !important;
  min-height: 30px !important;
  min-width: 68px !important;
  max-width: 82px !important;
  padding: 4px 9px !important;
  border-radius: 8px !important;
  font-size: 0.68rem !important;
}

#view-snc-visao-geral #snc-overview-selected-count,
#view-snc-visao-geral .snc-overview-selected-info {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  margin-left: auto !important;
  font-size: 0.68rem !important;
}

#view-snc-visao-geral .snc-pagination-controls-v067 {
  grid-column: auto !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 7px !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

#view-snc-visao-geral .snc-pagination-controls-v067 label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  margin: 0 !important;
  font-size: 0.66rem !important;
  white-space: nowrap !important;
}

#view-snc-visao-geral .snc-pagination-controls-v067 select,
#view-snc-visao-geral #snc-overview-per-page {
  height: 28px !important;
  min-height: 28px !important;
  width: 58px !important;
  min-width: 58px !important;
  padding: 0 6px !important;
  font-size: 0.66rem !important;
}

#view-snc-visao-geral #snc-overview-page-info,
#view-snc-visao-geral .snc-pagination-controls-v067 span {
  font-size: 0.68rem !important;
  white-space: nowrap !important;
}

#view-snc-visao-geral .snc-pagination-controls-v067 .snc-btn {
  height: 28px !important;
  min-height: 28px !important;
  min-width: 62px !important;
  max-width: 80px !important;
  padding: 3px 8px !important;
  border-radius: 8px !important;
  font-size: 0.66rem !important;
}

#view-snc-visao-geral .snc-refresh-btn-v066,
#view-snc-visao-geral button.snc-refresh-btn-v066,
#view-snc-visao-geral .snc-overview-filter-line-v029 .snc-btn-primary,
#view-snc-visao-geral .snc-overview-filter-line-v029 button.snc-btn-primary {
  height: 28px !important;
  min-height: 28px !important;
  min-width: 62px !important;
  max-width: 78px !important;
  width: auto !important;
  padding: 3px 8px !important;
  border-radius: 8px !important;
  font-size: 0.66rem !important;
  line-height: 1 !important;
}

#view-snc-visao-geral .snc-last-update-box {
  height: 34px !important;
  min-height: 34px !important;
  min-width: 118px !important;
  max-width: 138px !important;
  padding: 4px 7px !important;
  font-size: 0.62rem !important;
  line-height: 1.15 !important;
}

@media (max-width: 1360px) {
  #view-snc-visao-geral .snc-overview-bulk-toolbar-v056,
  #view-snc-visao-geral .snc-overview-bulk-toolbar-v067 {
    display: flex !important;
    flex-wrap: nowrap !important;
  }
  #view-snc-visao-geral .snc-pagination-controls-v067 {
    grid-column: auto !important;
    flex-wrap: nowrap !important;
  }
  #view-snc-visao-geral #snc-bulk-action-select-v062,
  #view-snc-visao-geral .snc-bulk-action-select-v062,
  #view-snc-visao-geral .snc-bulk-action-select-v066 {
    flex-basis: 190px !important;
    width: 190px !important;
    max-width: 190px !important;
  }
}

/* Modais do SNC: mais quadrados, menores e com fonte legível */
.snc-modal .snc-modal-box,
.snc-modal .snc-modal-content,
.snc-modal-box,
.snc-modal-content {
  width: min(860px, calc(100vw - 48px)) !important;
  max-width: min(860px, calc(100vw - 48px)) !important;
  max-height: min(800px, calc(100vh - 36px)) !important;
  border-radius: 10px !important;
}

.snc-modal .snc-modal-box-wide,
.snc-modal-box-wide,
.snc-modal-box-wide.snc-excecao-modal-box-v011,
.snc-modal-box-wide.snc-trigger-modal-box-v011 {
  width: min(920px, calc(100vw - 48px)) !important;
  max-width: min(920px, calc(100vw - 48px)) !important;
  max-height: min(800px, calc(100vh - 36px)) !important;
  border-radius: 10px !important;
}

.snc-modal .snc-modal-body,
.snc-modal .snc-modal-body-v011,
.snc-modal-body,
.snc-modal-body-v011 {
  max-height: min(690px, calc(100vh - 126px)) !important;
  padding: 14px 16px !important;
  overflow: auto !important;
}

.snc-modal .snc-modal-head,
.snc-modal .snc-modal-head-v011,
.snc-modal-head,
.snc-modal-head-v011 {
  padding: 14px 18px !important;
}

.snc-modal .snc-modal-main,
.snc-modal .snc-form-grid,
.snc-modal .snc-form-grid-v011,
.snc-modal .snc-form-section-v011,
.snc-modal .snc-excecao-summary-v011,
.snc-modal .snc-modal-hero {
  gap: 12px !important;
  padding: 12px 14px !important;
}

.snc-modal .snc-form-grid,
.snc-modal .snc-form-grid-v011 {
  column-gap: 12px !important;
  row-gap: 10px !important;
}

.snc-modal,
.snc-modal .snc-modal-body,
.snc-modal .snc-modal-body-v011,
.snc-modal .snc-modal-main,
.snc-modal .snc-detail-line,
.snc-modal .snc-detail-value,
.snc-modal .snc-detail-label,
.snc-modal .snc-input,
.snc-modal .snc-select,
.snc-modal textarea,
.snc-modal input,
.snc-modal select,
.snc-modal button,
.snc-modal .snc-btn {
  font-size: 0.9rem !important;
  line-height: 1.32 !important;
}

.snc-modal .snc-modal-head h3,
.snc-modal .snc-modal-head-v011 h3,
.snc-modal .snc-modal-title,
.snc-modal h1,
.snc-modal h2 {
  font-size: 1.12rem !important;
  line-height: 1.18 !important;
}

.snc-modal h3,
.snc-modal .snc-section-title,
.snc-modal .snc-section-title-v011 {
  font-size: 0.98rem !important;
}

.snc-modal label,
.snc-modal .snc-label,
.snc-modal .snc-field-label,
.snc-modal .snc-form-label,
.snc-modal .snc-modal-label,
.snc-modal small,
.snc-modal .snc-help,
.snc-modal .snc-help-v011,
.snc-modal .snc-muted,
.snc-modal .snc-row-sub,
.snc-modal .snc-disco-meta {
  font-size: 0.78rem !important;
  line-height: 1.28 !important;
}

.snc-modal .snc-input,
.snc-modal .snc-select,
.snc-modal input,
.snc-modal select {
  min-height: 32px !important;
  padding: 5px 8px !important;
}

.snc-modal textarea {
  min-height: 82px !important;
  padding: 8px !important;
}

/* Nao altera tamanho/padding das pills e badges */
.snc-modal .snc-pill,
.snc-modal .snc-badge,
.snc-modal .badge,
.snc-modal .snc-sev-badge,
.snc-modal .snc-status-pill,
.snc-modal .snc-chip,
.snc-modal .snc-tag,
.snc-modal .snc-alert-pill,
.snc-modal .snc-normalizado-pill {
  font-size: inherit;
  padding: inherit;
}

/* ======================================================
   CoNNecta SNC v075 - ajustes do documento vv1
====================================================== */
#view-snc-visao-geral .snc-overview-head-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 18px !important;
  flex-wrap: wrap !important;
}

#view-snc-visao-geral .snc-refresh-field-header-v075 {
  position: static !important;
  justify-self: auto !important;
  align-self: center !important;
  margin-left: 52px !important;
  display: flex !important;
}

#view-snc-visao-geral .snc-refresh-field-header-v075 .snc-refresh-btn-v066 {
  /* min-width: 118px !important;
  height: 38px !important; */
  box-shadow:
    0 0 0 1px rgba(0, 212, 255, 0.22),
    0 10px 24px rgba(0, 0, 0, 0.28) !important;
}

#view-snc-visao-geral .snc-overview-filter-line-v029 {
  grid-template-columns:
    minmax(170px, 240px) minmax(170px, 240px) minmax(115px, 150px)
    minmax(140px, 170px) !important;
}

#view-snc-visao-geral #snc-overview-ver-mais {
  display: none !important;
}

#view-snc-visao-geral #snc-relogio-data-gmt {
  color: #c9dff3 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

#view-snc-alertas .snc-report-filter-bar-v075,
#view-snc-alertas .snc-filter-bar.snc-report-filter-bar-v075 {
  display: grid !important;
  grid-template-columns:
    minmax(130px, 160px) minmax(130px, 160px) minmax(170px, 1fr)
    minmax(150px, 1fr) minmax(135px, 160px) minmax(240px, 1.5fr) !important;
  gap: 10px !important;
  align-items: end !important;
}

#view-snc-alertas .snc-report-filter-bar-v075 #snc-alertas-busca {
  order: 99 !important;
}

#view-snc-alertas .snc-alert-kpi-row-v075 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

#view-snc-alertas .snc-alert-kpi-row-v075 .snc-kpi small {
  display: none !important;
}

#view-snc-alertas .snc-metrics-grid-v075 {
  grid-template-columns: minmax(220px, 0.8fr) minmax(280px, 1.2fr) !important;
}

#view-snc-alertas .snc-alertas-metric-table-v075 thead th,
#view-snc-alertas .snc-table thead th {
  color: #ffffff !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 700 !important;
  background: rgba(3, 15, 31, 0.92) !important;
  border-bottom: 1px solid rgba(0, 212, 255, 0.2) !important;
}

#view-snc-alertas .snc-alertas-metric-table-v075 td {
  vertical-align: middle !important;
}

.snc-modal .snc-modal-head,
.snc-modal .snc-modal-head-v011,
.snc-modal-head,
.snc-modal-head-v011 {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  background: linear-gradient(
    135deg,
    rgba(3, 15, 31, 0.98),
    rgba(8, 35, 58, 0.94)
  ) !important;
  border-bottom: 1px solid rgba(0, 212, 255, 0.2) !important;
}

.snc-modal .snc-modal-close-v075,
.snc-modal .snc-modal-head > button,
.snc-modal .snc-modal-head-v011 > button {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.2rem !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

.snc-modal .snc-modal-close-v075:hover,
.snc-modal .snc-modal-head > button:hover,
.snc-modal .snc-modal-head-v011 > button:hover {
  background: rgba(239, 68, 68, 0.28) !important;
  border-color: rgba(239, 68, 68, 0.5) !important;
}

.snc-modal-v075 .snc-modal-section-header-v075 {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 16px !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(0, 212, 255, 0.18) !important;
  border-radius: 14px !important;
  background: rgba(8, 24, 42, 0.88) !important;
}

.snc-modal-v075 .snc-modal-section-header-v075 small {
  display: block !important;
  color: #8fb6cf !important;
  margin-bottom: 4px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.snc-modal-v075 .snc-modal-section-header-v075 h2 {
  margin: 0 !important;
  color: #ffffff !important;
}

.snc-modal-v075 .snc-modal-section-header-v075 p {
  margin: 6px 0 0 !important;
  color: #c8d8e8 !important;
}

.snc-modal .snc-detail-stack-v075 {
  display: grid !important;
  gap: 6px !important;
  padding: 12px !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 12px !important;
  background: rgba(2, 14, 28, 0.48) !important;
}

.snc-modal .snc-detail-stack-v075 .snc-detail-line,
.snc-modal .snc-detail-line {
  display: grid !important;
  grid-template-columns: minmax(150px, 0.46fr) minmax(0, 1fr) !important;
  gap: 12px !important;
  align-items: center !important;
  padding: 7px 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.snc-modal .snc-detail-stack-v075 .snc-detail-line:last-child,
.snc-modal .snc-detail-line:last-child {
  border-bottom: 0 !important;
}

.snc-modal .snc-detail-line .l {
  color: #9fb8cf !important;
}

.snc-modal .snc-detail-line .v {
  color: #ffffff !important;
  text-align: right !important;
}

.snc-machine-event,
.snc-machine-event-v075,
#view-snc-visao-geral .snc-overview-row-v012,
#view-snc-alertas .snc-table tbody tr,
#view-snc-tools-report .snc-table tbody tr {
  transition:
    transform 0.16s ease,
    border-color 0.16s ease,
    background 0.16s ease,
    box-shadow 0.16s ease !important;
}

.snc-machine-event:hover,
.snc-machine-event-v075:hover,
#view-snc-visao-geral .snc-overview-row-v012:hover,
#view-snc-alertas .snc-table tbody tr:hover,
#view-snc-tools-report .snc-table tbody tr:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(0, 212, 255, 0.35) !important;
  background: rgba(11, 42, 68, 0.72) !important;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.22) !important;
}

.snc-alert-type-kpis-v075 {
  gap: 10px !important;
}

.snc-panel-title-v075,
.snc-modal .snc-panel-title-v075 {
  color: #ffffff !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

@media (max-width: 1100px) {
  #view-snc-alertas .snc-report-filter-bar-v075,
  #view-snc-alertas .snc-filter-bar.snc-report-filter-bar-v075 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #view-snc-alertas .snc-alert-kpi-row-v075,
  #view-snc-alertas .snc-metrics-grid-v075 {
    grid-template-columns: 1fr !important;
  }

  #view-snc-visao-geral .snc-refresh-field-header-v075 {
    margin-left: 0 !important;
  }
}

/* ======================================================
   CoNNecta SNC v076 - botoes Ver mais / Expandir standalone
====================================================== */
.snc-shell {
  margin-bottom: 240px;
}

#view-snc-visao-geral.snc-overview-simple {
  position: relative !important;
  margin-bottom: 360px;
}

#view-snc-visao-geral .snc-standalone-open-btn-v076 {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  z-index: 12 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  min-width: 112px !important;
  height: 36px !important;
  padding: 6px 12px !important;
  border-radius: 10px !important;
  font-size: 0.76rem !important;
  white-space: nowrap !important;
}

#view-snc-visao-geral .snc-pagination-controls-v076 {
  margin-left: auto !important;
}

#view-snc-visao-geral .snc-pagination-controls-v076 #snc-overview-page-info {
  order: 1 !important;
}

#view-snc-visao-geral .snc-pagination-controls-v076 #snc-overview-more-v076 {
  order: 2 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 76px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 3px 10px !important;
  border-radius: 8px !important;
  font-size: 0.66rem !important;
}

#view-snc-visao-geral
  .snc-pagination-controls-v076
  .snc-overview-per-page-label-v076 {
  order: 3 !important;
}

#view-snc-visao-geral .snc-pagination-controls-v076 #snc-overview-prev-v076 {
  order: 4 !important;
}

#view-snc-visao-geral .snc-pagination-controls-v076 #snc-overview-next-v076 {
  order: 5 !important;
}

#view-snc-visao-geral
  .snc-pagination-controls-v076:not(.is-expanded)
  .snc-overview-per-page-label-v076,
#view-snc-visao-geral
  .snc-pagination-controls-v076:not(.is-expanded)
  .snc-overview-page-control-v076 {
  display: none !important;
}

#view-snc-visao-geral
  .snc-pagination-controls-v076.is-expanded
  .snc-overview-per-page-label-v076,
#view-snc-visao-geral
  .snc-pagination-controls-v076.is-expanded
  .snc-overview-page-control-v076 {
  display: inline-flex !important;
}

#view-snc-visao-geral
  .snc-pagination-controls-v076
  .snc-overview-page-control-v076:disabled {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
}

body.snc-standalone-window .sidebar {
  display: none !important;
}

body.snc-standalone-window .layout,
body.snc-standalone-window #main-layout {
  display: block !important;
  width: 100vw !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.snc-standalone-window .main {
  width: 100vw !important;
  max-width: 100vw !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 18px !important;
  overflow: auto !important;
}

body.snc-standalone-window .content:not(#view-snc-visao-geral) {
  display: none !important;
}

body.snc-standalone-window #view-snc-visao-geral {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  margin-bottom: 320px !important;
}

body.snc-standalone-window #snc-overview-expand-standalone {
  display: none !important;
}

@media (max-width: 980px) {
  #view-snc-visao-geral .snc-standalone-open-btn-v076 {
    position: static !important;
    margin-left: auto !important;
    margin-bottom: 10px !important;
  }

  #view-snc-visao-geral .snc-pagination-controls-v076 {
    width: 100% !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }
}

@media (hover: none), (pointer: coarse) {
  #snc-hover-preview-v046 {
    display: none !important;
  }
}
