﻿/* =========================================================
   RESET / BASE
========================================================= */

* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
}

body {
  font-family: "Segoe UI", Arial, sans-serif;
  background: #f4f6f9;
  color: #111827;
}

/* =========================================================
   LAYOUT PRINCIPAL
========================================================= */

.app {
  display: flex;
  height: 100vh;
  width: 100%;
  overflow: hidden;
}

/* =========================================================
   SIDEBAR
========================================================= */

.sidebar {
  width: 280px;
  min-width: 280px;
  background: #ffffff;
  border-right: 1px solid #e5e7eb;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.sidebar-topo {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 18px;
  border-bottom: 1px solid #eef0f3;
}

.sistema-logo {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: #1e3a8a;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
  flex-shrink: 0;
}

.sistema-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.sistema-nome {
  font-size: 16px;
  font-weight: 700;
  color: #111827;
}

.sistema-subtitulo {
  font-size: 13px;
  color: #6b7280;
}

.sidebar-menu {
  padding: 14px 10px 20px;
}

.menu-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 14px;
  margin-bottom: 6px;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
  color: #374151;
  user-select: none;
}

.menu-item:hover {
  background: #e0e7ff;
  color: #1e3a8a;
}

.menu-item.active {
  background: #1e3a8a;
  color: #ffffff;
  font-weight: 600;
}

.menu-icone {
  font-size: 18px;
  width: 22px;
  text-align: center;
  flex-shrink: 0;
}

.menu-texto {
  font-size: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* =========================================================
   ÁREA PRINCIPAL
========================================================= */

.main-area {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* =========================================================
   TOPBAR
========================================================= */

.topbar {
  height: 70px;
  min-height: 70px;
  background: #1e3a8a;
  color: #ffffff;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  padding: 0 22px;
}

.topbar-esquerda {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
}

.topbar-sistema {
  font-size: 18px;
  font-weight: 700;
}

.topbar-centro {
  display: flex;
  justify-content: center;
  min-width: 0;
}

.empresa-box {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.08);
  padding: 8px 14px;
  border-radius: 14px;
  max-width: 100%;
}

.empresa-logo {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #ffffff;
  color: #1e3a8a;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  flex-shrink: 0;
}

.empresa-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.empresa-nome {
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
}

.empresa-descricao {
  font-size: 12px;
  opacity: 0.85;
  white-space: nowrap;
}

.topbar-direita {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.usuario-box {
  display: flex;
  align-items: center;
  gap: 10px;
}

.usuario-nome {
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}

.topbar-btn {
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.14);
  color: #ffffff;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 16px;
}

.topbar-btn:hover {
  background: rgba(255, 255, 255, 0.22);
}

.global-tabs-host {
  width: 100%;
  padding: 10px 26px 0;
}

/* =========================================================
   CONTEÚDO
========================================================= */

.content {
  flex: 1;
  overflow: auto;
  padding: 26px;
}

/* =========================================================
   TÍTULOS / PÁGINAS
========================================================= */

.titulo-modulo {
  margin: 0 0 24px;
  font-size: 28px;
  font-weight: 700;
  color: #111827;
}

.pagina-erro p,
.pagina-inicio p,
.pagina-modulo p {
  color: #4b5563;
}

/* =========================================================
   HUBS / CARDS DOS MÓDULOS
========================================================= */

.menu-modulo {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 20px;
}

.card-menu {
  background: #ffffff;
  border-radius: 14px;
  padding: 24px;
  border: 1px solid #e5e7eb;
  cursor: pointer;
  transition: all 0.22s ease;
  min-height: 150px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.card-menu:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.08);
  border-color: #d7def0;
}

.card-menu .icone {
  font-size: 30px;
  margin-bottom: 14px;
}

.card-menu .titulo {
  font-size: 18px;
  font-weight: 700;
  color: #111827;
  margin-bottom: 8px;
}

.card-menu .descricao {
  font-size: 14px;
  color: #6b7280;
  line-height: 1.45;
}

.form-tabs-header {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 8px;
}

.form-tab-btn {
  border: 1px solid #d1d5db;
  background: #f9fafb;
  color: #374151;
  border-radius: 8px;
  padding: 8px 12px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
}

.form-tab-btn.ativo {
  background: #1e3a8a;
  color: #ffffff;
  border-color: #1e3a8a;
}

.form-tab-panel {
  display: none;
}

.form-tab-panel.ativo {
  display: block;
}

.autocomplete-wrapper-modal {
  position: relative;
}

.autocomplete-list-modal {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 190px;
  overflow-y: auto;
  background: #ffffff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.18);
  z-index: 60;
}

.autocomplete-list-modal .autocomplete-item {
  display: block;
  width: 100%;
  text-align: left;
  border: none;
  border-bottom: 1px solid #f3f4f6;
  background: #ffffff;
  color: #111827 !important;
  padding: 8px 10px;
  cursor: pointer;
}

.autocomplete-list-modal .autocomplete-item:last-child {
  border-bottom: none;
}

.autocomplete-list-modal .autocomplete-item:hover {
  background: #eff6ff !important;
  color: #111827 !important;
}

.entity-actions-group {
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: flex-start;
  min-height: 28px;
  margin-top: 0;
}

.campo-acoes-entidade {
  padding-top: 20px;
}

.btn-icon-entity {
  width: 28px;
  height: 28px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #1e3a8a;
  border-radius: 8px;
  font-size: 15px;
  line-height: 1;
  font-weight: 400;
  font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", "Segoe UI", sans-serif;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-icon-entity:hover {
  background: #eef2ff;
  border-color: #93c5fd;
}

.pedido-item-editar {
  background: #e5e7eb;
  border-color: #cbd5e1;
  color: #111827;
}

.pedido-item-editar:hover {
  background: #d1d5db;
  border-color: #94a3b8;
}

.pedido-item-editar svg {
  width: 14px;
  height: 14px;
  fill: #111827;
}

.form-modal-entidade {
  width: min(980px, 92vw);
  height: min(620px, 90vh);
}

.orc-especificadores-area {
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background: #f8fafc;
  padding: 8px;
  width: 92%;
  margin-right: auto;
}

.orc-especificadores-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px 30px;
  align-items: center;
  gap: 8px;
  padding: 4px 10px 6px;
  color: #475569;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.orc-especificadores-header span:nth-child(2) {
  text-align: center;
}

.orc-especificadores-header span:first-child {
  text-align: left;
}

.orc-especificadores-header-acao {
  width: 100%;
  text-align: center;
}

.orc-especificadores-box {
  border: 1px solid #d1d5db;
  border-radius: 8px;
  max-height: 180px;
  overflow-y: auto;
  background: #ffffff;
}

.orc-especificadores-box .listagem-mensagem {
  margin: 8px;
}

.orc-especificador-item {
  width: 100%;
  border-bottom: 1px solid #f3f4f6;
  background: #ffffff;
  color: #111827;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px 30px;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  cursor: pointer;
  text-align: left;
  transition: background 0.18s ease;
}

.orc-especificador-item:last-child {
  border-bottom: none;
}

.orc-especificador-item:hover {
  background: #ffffff;
}

.orc-especificador-item:active {
  background: #dbeafe;
}

.orc-especificador-item.selecionado {
  background: #ffffff;
}

.orc-especificador-nome {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  justify-self: start;
  text-align: left;
}

.orc-especificador-comissao {
  font-weight: 700;
  color: #1e3a8a;
  text-align: center;
}

.orc-especificador-remover {
  width: 22px;
  min-width: 22px;
  height: 22px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  color: #1e3a8a;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}

.orc-especificador-remover:hover {
  background: #eef2ff;
  border-color: #93c5fd;
}

.ambientes-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.ambientes-add-wrap {
  display: flex;
  gap: 8px;
  align-items: center;
}

.ambientes-cards-area {
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  background: #eef2f7;
  padding: 8px;
  width: min(1080px, 100%);
  margin: 0 auto;
  height: 400px;
  min-height: 400px;
  max-height: 400px;
  flex: 0 0 400px;
}

.ambientes-layout {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ambientes-cards-viewport {
  height: 100%;
  overflow-y: hidden;
  padding-bottom: 6px;
  min-height: 0;
  scrollbar-gutter: stable;
}

.ambientes-cards-viewport.ambientes-com-scroll {
  overflow-y: auto;
}

.ambiente-placeholder-invisivel {
  border: 2px dashed #b6c2d4;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 290px;
  min-height: 290px;
}

.ambiente-placeholder-invisivel .btn {
  min-width: 180px;
}

.ambiente-placeholder-invisivel:hover {
  border-color: #93a4bd;
}

.ambientes-add-wrap select {
  min-width: 220px;
  min-height: 34px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 6px 8px;
  background: #ffffff;
}

.ambientes-total-geral {
  font-weight: 700;
  color: #1e3a8a;
}

.ambientes-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 290px;
  gap: 10px;
  min-height: max-content;
  align-content: start;
}

.ambiente-card {
  border: 2px solid #1394cf;
  border-radius: 10px;
  background: #f3f4f6;
  padding: 0;
  overflow: hidden;
  height: 300px;
  display: flex;
  flex-direction: column;
}

.ambiente-card-topo {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 0;
  background: #1394cf;
  color: #ffffff;
  padding: 7px 10px;
}

.ambiente-card-topo h4 {
  margin: 0;
  font-size: 15px;
  color: #ffffff;
}

.btn-x-ambiente {
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 6px;
  background: rgba(29, 78, 216, 0.55);
  color: #ffffff;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  line-height: 1;
}

.btn-x-ambiente:hover {
  background: rgba(29, 78, 216, 0.8);
}

.ambiente-itens-lista {
  border-top: 1px solid #d1d5db;
  border-bottom: 1px solid #d1d5db;
  flex: 1;
  min-height: 56px;
  overflow-y: auto;
  background: #f8fafc;
  margin: 0 8px;
}

.ambiente-item-linha {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 7px 8px;
  border-bottom: 1px solid #f3f4f6;
  font-size: 12px;
}

.ambiente-item-linha-1 {
  font-weight: 700;
  color: #1f2937;
  width: 100%;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ambiente-item-linha-2 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  color: #374151;
  font-size: 11px;
}

.ambiente-item-linha-3 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.ambiente-item-linha-3 strong {
  color: #111827;
  font-size: 12px;
}

.ambiente-item-remover {
  width: 24px;
  min-width: 24px;
  height: 24px;
  border-radius: 6px;
  font-size: 14px;
  padding: 0;
}

.ambiente-item-linha:last-child {
  border-bottom: none;
}

.ambiente-item-linha:hover {
  background: #eff6ff;
}

.ambiente-card-footer {
  margin-top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  background: #f3f4f6;
}

.ambiente-card-footer strong {
  margin-left: auto;
  font-size: 24px;
  color: #4b5563;
}

.ambiente-card-footer .btn {
  min-height: 32px;
}

.ambientes-add-wrap-bottom {
  justify-content: flex-end;
}

.ambientes-resumo-area {
  width: min(1080px, 100%);
  margin: 0 auto;
  height: 65px;
  min-height: 65px;
  max-height: 65px;
  flex: 0 0 65px;
  min-height: 0;
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  background: #ffffff;
  padding: 6px 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  overflow: visible;
}

.ambientes-bottom-line {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  align-items: center;
  width: 100%;
}

.ambientes-btn-add {
  width: 100%;
  min-height: 32px;
}

.ambientes-dropdown-wrap {
  position: relative;
  align-self: center;
}

.ambientes-dropdown-wrap-card {
  align-self: center;
}

.ambientes-dropdown-lista {
  position: absolute;
  right: 0;
  bottom: calc(100% + 6px);
  width: 220px;
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.14);
  display: none;
  z-index: 40;
}

.ambientes-dropdown-wrap-card .ambientes-dropdown-lista {
  top: calc(100% + 6px);
  bottom: auto;
}

.ambientes-dropdown-lista.ativo {
  display: block;
}

.ambientes-dropdown-item {
  width: 100%;
  border: none;
  border-bottom: 1px solid #eef2f7;
  background: #ffffff;
  color: #111827;
  text-align: left;
  padding: 8px 10px;
  cursor: pointer;
}

.ambientes-dropdown-item:last-child {
  border-bottom: none;
}

.ambientes-dropdown-item:hover {
  background: #eff6ff;
}

.amb-resumo-item {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f9fafb;
  padding: 4px 6px;
  display: grid;
  grid-template-rows: 1fr auto;
  row-gap: 2px;
  justify-items: center;
  text-align: center;
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  height: 52px;
  min-height: 52px;
  max-height: 52px;
}

.amb-resumo-item span {
  font-size: 9px;
  color: #6b7280;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
  text-align: center;
}

.amb-resumo-item strong {
  display: block;
  font-size: 12px;
  color: #111827;
  line-height: 1.2;
  align-self: end;
  min-height: 14px;
  white-space: nowrap;
  width: 100%;
  text-align: center;
}

.orc-mini-lista {
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  min-height: 60px;
  max-height: 160px;
  overflow-y: auto;
  padding: 6px;
  font-size: 12px;
  line-height: 1.5;
}

.produto-acabado-modal {
  width: min(980px, 100%);
}

.orc-pa-form {
  align-content: start;
}

.orc-pa-form .campo {
  position: relative;
  overflow: visible;
}

.orc-pa-form .campo:focus-within {
  z-index: 6;
}

.orc-ms-form .campo {
  position: relative;
  overflow: visible;
}

.orc-ms-form .campo:focus-within {
  z-index: 8;
}

.orc-pa-input-with-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  gap: 8px;
  align-items: center;
}

.orc-pa-btn-search {
  width: 34px;
  min-width: 34px;
  height: 34px;
  padding: 0;
  font-size: 16px;
  line-height: 1;
}

.orc-pa-autocomplete-list {
  left: 0;
  right: 42px;
  max-height: 220px;
  z-index: 70;
}

.orc-ms-autocomplete-list {
  z-index: 120;
}

.orc-pa-autocomplete-tipo {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  color: #6b7280;
}

.orc-pa-actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}

.orc-pa-actions-wrap {
  justify-content: center;
}

.orc-pa-actions .btn {
  min-width: 140px;
}

.orc-pa-custos {
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background: #ffffff;
  overflow: hidden;
}

.orc-pa-custos-header,
.orc-pa-custos-row {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) 110px 140px;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  font-size: 12px;
}

.orc-pa-custos-header {
  background: #eff6ff;
  border-bottom: 1px solid #dbeafe;
  color: #1e3a8a;
  font-weight: 700;
}

.orc-pa-custos-body {
  min-height: 220px;
  max-height: 420px;
  overflow-y: auto;
}

.orc-pa-custos-row {
  border-bottom: 1px solid #f3f4f6;
  color: #111827;
}

.orc-pa-custos-row:last-child {
  border-bottom: none;
}

.orc-pa-custos-row span:nth-child(2),
.orc-pa-custos-header span:nth-child(2) {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.orc-pa-custos-empty {
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
  color: #6b7280;
  font-size: 12px;
}

.form-modal-footer.orc-item-ambiente-footer {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.orc-item-ambiente-footer-extra {
  flex: 1;
  min-width: 340px;
}

.orc-item-ambiente-footer-extra:empty {
  display: none;
  flex: 0;
  min-width: 0;
}

.orc-item-ambiente-footer-actions {
  display: flex;
  gap: 10px;
  margin-left: auto;
}

.orc-pa-footer-resumo {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.orc-pa-footer-campo {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}

.orc-pa-footer-campo label {
  font-size: 12px;
  font-weight: 600;
  color: #374151;
  white-space: nowrap;
}

.orc-pa-footer-campo input {
  width: 170px;
  min-height: 36px;
  padding: 5px 8px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  color: #111827;
}

.orc-pa-filho-modal {
  width: min(980px, 96vw);
}

.orc-pa-filho-form {
  margin-bottom: 10px;
  position: relative;
  z-index: 5;
  overflow: visible;
}

.orc-pa-filho-form .autocomplete-wrapper-modal {
  position: relative;
  overflow: visible;
  z-index: 90;
}

.orc-pa-filho-form .autocomplete-wrapper-modal:focus-within {
  z-index: 120;
}

.orc-pa-filho-form .autocomplete-wrapper-modal .autocomplete-list-modal {
  z-index: 130;
}

#orc-item-busca-overlay {
  z-index: 10080;
}

.orc-pa-filho-lista-wrap {
  border-top: 1px solid #e5e7eb;
  padding-top: 10px;
  position: relative;
  z-index: 1;
}

.orc-pa-filho-lista-wrap h3 {
  margin: 0 0 8px 0;
  font-size: 13px;
  color: #111827;
}

.orc-pa-filho-lista {
  border: 1px solid #d1d5db;
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff;
}

.orc-pa-filho-lista-head,
.orc-pa-filho-lista-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 140px 150px 180px;
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
}

.orc-pa-filho-lista-head {
  background: #eff6ff;
  border-bottom: 1px solid #dbeafe;
  color: #1e3a8a;
  font-weight: 700;
  font-size: 12px;
}

.orc-pa-filho-lista-row {
  border-bottom: 1px solid #f3f4f6;
  font-size: 12px;
}

.orc-pa-filho-lista-row.orc-pa-filho-row-editando {
  background: #eff6ff;
  outline: 2px solid #2563eb;
  outline-offset: -2px;
}

.orc-pa-filho-lista-row:last-child {
  border-bottom: none;
}

.orc-pa-filho-lista-row span:first-child,
.orc-pa-filho-lista-head span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.orc-pa-filho-lista.orc-pa-filho-lista-medidas .orc-pa-filho-lista-head,
.orc-pa-filho-lista.orc-pa-filho-lista-medidas .orc-pa-filho-lista-row {
  grid-template-columns: minmax(0, 1fr) 110px 100px 80px 100px 130px 86px;
}

.orc-pa-filho-lista.orc-pa-filho-lista-medidas .orc-pa-filho-lista-row span:nth-child(2),
.orc-pa-filho-lista.orc-pa-filho-lista-medidas .orc-pa-filho-lista-head span:nth-child(2) {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.orc-pa-filho-lista.orc-pa-filho-lista-acabamentos .orc-pa-filho-lista-head,
.orc-pa-filho-lista.orc-pa-filho-lista-acabamentos .orc-pa-filho-lista-row {
  grid-template-columns: minmax(0, 1fr) 150px 90px 150px 48px;
}

.orc-pa-filho-lista.orc-pa-filho-lista-acabamentos .orc-pa-filho-lista-row span:first-child,
.orc-pa-filho-lista.orc-pa-filho-lista-acabamentos .orc-pa-filho-lista-head span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.orc-pa-filho-lista-acoes-medida {
  display: flex;
  justify-content: center;
  gap: 4px;
}

.orc-medida-icon-btn {
  width: 24px;
  min-height: 24px;
  height: 24px;
  border-radius: 6px;
  padding: 0;
  font-size: 12px;
  line-height: 1;
}

.orc-medida-btn-add-peca {
  width: auto;
  min-width: 0;
  min-height: 40px;
  height: 40px;
  padding: 0 16px;
  align-self: stretch;
}

.orc-medida-campo-acao {
  justify-content: center;
  align-items: center;
}

.orc-medida-campo-acao label {
  visibility: hidden;
}

.orc-medida-campo-acao .orc-medida-btn-add-peca {
  align-self: center;
  margin-top: -6px;
}

.orc-pa-filho-lista-acoes {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.orc-pa-filho-lista-vazia {
  border: 1px dashed #d1d5db;
  border-radius: 10px;
  padding: 16px;
  text-align: center;
  color: #6b7280;
  font-size: 12px;
}

.orc-pa-filho-footer {
  align-items: center;
  gap: 12px;
}

.orc-pa-filho-footer-extra {
  margin-right: auto;
}

.orc-pa-medidas-footer-resumo {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.orc-pa-medidas-footer-campo {
  display: flex;
  align-items: center;
  gap: 8px;
}

.orc-pa-medidas-footer-campo label {
  font-size: 12px;
  color: #374151;
  font-weight: 600;
  white-space: nowrap;
}

.orc-pa-medidas-footer-campo input {
  width: 155px;
  min-height: 34px;
  padding: 5px 8px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  color: #111827;
}

.orc-item-busca-meta {
  display: block;
  margin-top: 3px;
  color: #6b7280;
  font-size: 11px;
  font-weight: 400;
}

/* =========================================================
   LISTAGEM GENÉRICA
========================================================= */

.listagem-page {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.listagem-abas {
  width: 100%;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 4px 6px;
}

.listagem-abas-row {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}

.listagem-aba-inicio {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #334155;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
  height: 32px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex: 0 0 auto;
}

.listagem-aba-inicio:hover {
  background: #eef2f7;
}

.listagem-aba-inicio.ativo {
  background: #eff6ff;
  border-color: #1d4ed8;
  color: #1d4ed8;
}

.listagem-abas-scroll {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1 1 auto;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  min-width: 1px;
  padding-bottom: 2px;
}

.listagem-aba-chip {
  display: inline-flex;
  align-items: center;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  background: #f8fafc;
  overflow: hidden;
  flex: 0 0 auto;
  min-width: 0;
}

.listagem-aba-chip.ativo {
  border-color: #1d4ed8;
  background: #eff6ff;
}

.listagem-aba-chip-main {
  border: none;
  background: transparent;
  color: #334155;
  font-size: 12px;
  font-weight: 600;
  height: 32px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  max-width: 200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}

.listagem-aba-chip.ativo .listagem-aba-chip-main {
  color: #1d4ed8;
}

.listagem-aba-chip-close {
  border: none;
  border-left: 1px solid #dbe4f0;
  background: transparent;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  width: 30px;
  height: 32px;
  cursor: pointer;
}

.listagem-aba-chip-close:hover {
  background: #fee2e2;
  color: #991b1b;
}

.empresa-logo.empresa-logo-imagem {
  background: transparent;
  color: transparent;
  padding: 0;
  overflow: hidden;
}

.empresa-logo.empresa-logo-imagem img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.listagem-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 24px;
}

.listagem-header .titulo-modulo {
  margin: 0;
  font-size: 20px;
  line-height: 1.1;
}

@media (max-width: 900px) {
  .global-tabs-host {
    padding: 8px 18px 0;
  }

  .listagem-abas-row {
    gap: 6px;
  }

  .listagem-aba-inicio {
    padding: 6px 10px;
    font-size: 11px;
  }

  .listagem-aba-chip-main {
    max-width: 150px;
    font-size: 11px;
    padding: 6px 8px;
  }
}

/* =========================================================
   FILTROS
========================================================= */

.filtros {
  background: #ffffff;
  border-radius: 14px;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  position: relative;
  z-index: 40;
}

.parametrizacao-geral .filtros {
  margin-bottom: 12px;
}

.parametrizacao-geral h3 {
  margin-top: 0;
}

.parametrizacao-geral .filtro-grid {
  grid-auto-flow: row;
  grid-auto-columns: unset;
  overflow: visible;
  white-space: normal;
}

.geral-layout {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.geral-coluna-principal {
  min-width: 0;
  flex: 1 1 auto;
}

.geral-coluna-lateral {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 0 0 auto;
}

.lateral-card {
  margin-bottom: 0;
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  position: relative;
  padding: 0;
  border: none;
  background: transparent;
}

.lateral-card h3 {
  position: absolute;
  top: 10px;
  left: 12px;
  margin: 0;
  z-index: 3;
  font-size: 14px;
  padding: 2px 8px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.84);
}

.geral-grid-empresa {
  grid-template-columns: repeat(6, minmax(120px, 1fr));
}

.geral-grid-empresa .span-1 {
  grid-column: span 1;
}

.geral-grid-empresa .span-2 {
  grid-column: span 2;
}

.geral-grid-empresa .span-3 {
  grid-column: span 3;
}

.geral-grid-empresa .span-4 {
  grid-column: span 4;
}

.geral-grid-empresa .span-5 {
  grid-column: span 5;
}

.geral-grid-empresa .span-6 {
  grid-column: span 6;
}

.geral-grid-empresa .cnpj-proporcional {
  width: 100%;
  max-width: 360px;
  justify-self: start;
}

.geral-grid-empresa .cep-proporcional {
  max-width: 170px;
}

.geral-sn-lista {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.geral-sn-card {
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  background: #ffffff;
  padding: 10px;
}

.geral-sn-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.geral-sn-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.geral-sn-card-grid div {
  border: 1px solid #eef2f7;
  border-radius: 8px;
  padding: 6px 8px;
  background: #f8fafc;
}

.geral-sn-card-grid span {
  display: block;
  font-size: 11px;
  color: #64748b;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.geral-sn-card-grid strong {
  font-size: 13px;
  color: #0f172a;
}

.geral-sn-editor-wrap {
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  background: #ffffff;
  padding: 10px;
}

.geral-sn-editor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.geral-sn-editor-head h4 {
  margin: 0;
}

.geral-sn-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  background: #f1f5f9;
  color: #334155;
  font-size: 12px;
  font-weight: 700;
}

.geral-sn-status.editando {
  border-color: #93c5fd;
  background: #dbeafe;
  color: #1e40af;
}

.geral-sn-editor-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}

.geral-sn-editor-grid-duas-colunas {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.geral-sn-faixas-wrap {
  overflow-x: auto;
}

.geral-sn-faixas-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
}

.geral-sn-faixas-table th,
.geral-sn-faixas-table td {
  border: 1px solid #e5e7eb;
  padding: 6px;
  text-align: left;
  vertical-align: middle;
}

.geral-sn-faixas-table input {
  width: 100%;
  height: 32px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 0 8px;
}

.geral-sn-editor-acoes {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 8px;
  margin-bottom: 8px;
}

.geral-sn-vazio {
  text-align: center;
  color: #64748b;
  font-size: 12px;
}

.geral-sn-campo-com-acao {
  display: flex;
  align-items: center;
  gap: 6px;
}

.geral-sn-btn-remover {
  min-width: 34px;
  width: 34px;
  height: 32px;
  padding: 0;
  font-weight: 700;
}

.geral-sn-btn-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  width: 30px;
  height: 30px;
  padding: 0;
  font-size: 18px;
  line-height: 1;
  text-align: center;
}

.geral-sn-editor-wrap.geral-sn-bloqueado input:not([readonly]),
.geral-sn-editor-wrap.geral-sn-bloqueado select,
.geral-sn-editor-wrap.geral-sn-bloqueado textarea {
  background: #f3f4f6;
  color: #6b7280;
  border-color: #e5e7eb;
  cursor: not-allowed;
}

.geral-sn-editor-wrap.geral-sn-bloqueado .geral-sn-btn-add,
.geral-sn-editor-wrap.geral-sn-bloqueado .geral-sn-btn-remover {
  background: #cbd5e1;
  border-color: #cbd5e1;
  color: #475569;
}

.form-modal.geral-sn-modal {
  width: min(1040px, 94vw);
  height: min(760px, 90vh);
}

@media (min-width: 1101px) {
  .geral-grid-empresa .linha2-expand {
    grid-column: span 1;
  }
}

.logo-upload-card {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  min-height: 0;
  border: 1px dashed #c7cfdd;
  border-radius: 14px;
  background: #f8fafc;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.lateral-card .logo-upload-card {
  height: 100%;
  aspect-ratio: auto;
}

.logo-upload-btn {
  min-width: 140px;
  position: relative;
  z-index: 2;
  backdrop-filter: blur(2px);
}

.grupo-item-compacto {
  width: 33.333%;
  min-width: 360px;
}

.geral-cards-rodape {
  display: grid;
  grid-template-columns: 3fr 7fr;
  gap: 12px;
  align-items: start;
}

.geral-cards-rodape .grupo-item-compacto,
.geral-cards-rodape .contas-categorizacao-card {
  width: 100%;
  min-width: 0;
}

.contas-dre-rows {
  display: grid;
  gap: 8px;
}

.contas-dre-row {
  display: grid;
  gap: 8px;
  align-items: end;
}

.contas-dre-row.row-1 {
  grid-template-columns: 3fr 5fr auto; /* principal / descricao / adicionar */
}

.contas-dre-row.row-2 {
  grid-template-columns: 9fr 10fr auto; /* grupo / superior / analitica */
}

.contas-dre-row .conta-add-btn {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.contas-dre-row .conta-add-btn .btn {
  align-self: flex-end;
}

.contas-dre-row .conta-analitica {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  text-align: center;
  gap: 2px;
}

.contas-dre-row .conta-analitica .checkbox-item {
  align-items: center;
  justify-content: center;
}

.logo-upload-card-com-preview .logo-upload-btn {
  background: rgba(30, 58, 138, 0.82);
}

.logo-upload-preview {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #ffffff;
  z-index: 1;
  padding: 10%;
}

.certificado-upload-card .certificado-indicador {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(48px, 22%, 84px);
  opacity: 0.2;
  z-index: 1;
  pointer-events: none;
}

.certificado-upload-card-vazio .certificado-indicador::before {
  content: "\1F512";
}

.certificado-upload-card-ok {
  border-color: #16a34a;
  background: #f0fdf4;
}

.certificado-upload-card-ok .certificado-indicador {
  opacity: 0.35;
}

.certificado-upload-card-ok .certificado-indicador::before {
  content: "\2705";
}

.filtro-periodo {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}

.filtro-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px;
}

@media (min-width: 901px) {
  .filtro-periodo,
  .filtro-grid {
    grid-auto-flow: column;
    grid-auto-columns: minmax(120px, 1fr);
    grid-template-columns: none;
    overflow: visible;
    white-space: normal;
    padding-bottom: 2px;
  }
}

.filtro-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.filtro-item input,
.filtro-item select {
  width: 100%;
}

.filtro-item .filtro-multiplo-toggle {
  width: 100%;
}

@media (max-width: 1100px) {
  .filtro-grid {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
  }

  .geral-sn-editor-grid,
  .geral-sn-card-grid {
    grid-template-columns: 1fr;
  }

  .geral-sn-lista {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .filtro-grid {
    grid-template-columns: 1fr;
  }
}

.filtro-item label {
  font-size: 12px;
  font-weight: 600;
  color: #374151;
}

.filtro-item input,
.filtro-item select {
  width: 100%;
  height: 32px;
  padding: 0 10px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  color: #111827;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.filtro-item input:focus,
.filtro-item select:focus,
.filtro-item .filtro-multiplo-toggle:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.filtro-item-multiplo {
  position: relative;
  z-index: 70;
}

.filtro-select-multiplo-valor {
  display: none;
}

.filtro-multiplo-toggle {
  height: 32px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  color: #111827;
  padding: 0 10px;
  text-align: left;
  font-size: 13px;
  cursor: pointer;
}

.filtro-multiplo-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 95;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
  max-height: 220px;
  overflow-y: auto;
  padding: 6px;
}

.filtro-multiplo-opcao {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 28px;
  padding: 4px 6px;
  border-radius: 6px;
  cursor: pointer;
  color: #111827;
  font-size: 13px;
}

.filtro-multiplo-opcao:hover {
  background: #eff6ff;
}

.filtro-multiplo-opcao-item {
  width: 100%;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #111827;
  font-size: 13px;
  min-height: 28px;
  padding: 6px 8px;
  text-align: left;
  cursor: pointer;
}

.filtro-multiplo-opcao-item:hover {
  background: #eff6ff;
}

.filtro-multiplo-opcao-item.ativo {
  background: #dbeafe;
  color: #1e3a8a;
  font-weight: 600;
}

.autocomplete-wrapper {
  position: relative;
  z-index: 80;
}

.autocomplete-list {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #ffffff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  max-height: 220px;
  overflow-y: auto;
  z-index: 96;
}

.autocomplete-item {
  padding: 10px 12px;
  cursor: pointer;
  font-size: 14px;
  color: #111827;
  border-bottom: 1px solid #f3f4f6;
}

.autocomplete-item:last-child {
  border-bottom: none;
}

.autocomplete-item:hover {
  background: #eff6ff;
}

.autocomplete-item.vazio {
  cursor: default;
  color: #6b7280;
  background: #fafafa;
}

/* =========================================================
   AÇÕES / BOTÕES
========================================================= */

.acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.listagem-opcoes-dropdown {
  position: absolute;
  min-width: 220px;
  background: #ffffff;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
  padding: 6px;
  z-index: 1200;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.listagem-opcoes-item {
  width: 100%;
  text-align: left;
  border: none;
  background: transparent;
  color: #1f2937;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  font-size: 14px;
}

.listagem-opcoes-item:hover {
  background: #eef4ff;
}

.listagem-opcoes-item-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.listagem-opcoes-item-submenu::after {
  content: "▸";
  float: right;
  font-size: 12px;
  opacity: 0.75;
}

.listagem-opcoes-item-wrap--open .listagem-opcoes-item-submenu::after {
  content: "▾";
}

.listagem-opcoes-submenu {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 0 4px 4px;
}

.listagem-opcoes-item-wrap--open .listagem-opcoes-submenu {
  display: flex;
}

.listagem-opcoes-subitem {
  width: 100%;
  text-align: left;
  border: none;
  background: #f6f9ff;
  color: #1f2937;
  border-radius: 8px;
  padding: 8px 10px;
  cursor: pointer;
  font-size: 13px;
}

.listagem-opcoes-subitem:hover {
  background: #e6efff;
}

.listagem-opcoes-subitem[disabled] {
  opacity: 0.65;
  cursor: not-allowed;
}

.orc-impressao-preview-overlay {
  position: fixed;
  inset: 0;
  background: rgba(17, 24, 39, 0.5);
  z-index: 1800;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.orc-impressao-preview-overlay.ativo {
  display: flex;
}

.orc-impressao-preview-modal {
  width: min(1200px, 96vw);
  height: min(860px, 94vh);
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid #dbe3ef;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

.orc-impressao-preview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid #e5e7eb;
}

.orc-impressao-preview-header h2 {
  margin: 0;
  font-size: 18px;
  color: #1f2937;
}

.orc-impressao-preview-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-bottom: 1px solid #e5e7eb;
  background: #ffffff;
}

.orc-impressao-preview-controls label {
  font-weight: 600;
  color: #374151;
}

.orc-impressao-modelo {
  min-width: 260px;
  height: 38px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0 10px;
  background: #fff;
  color: #111827;
}

.orc-impressao-preview-body {
  flex: 1;
  background: #f8fafc;
}

.orc-impressao-preview-body iframe {
  width: 100%;
  height: 100%;
  border: none;
  background: #ffffff;
}

.btn {
  height: 40px;
  padding: 0 16px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  color: #ffffff;
  background: #1e3a8a;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.2s ease;
}

.btn:hover {
  transform: translateY(-1px);
  opacity: 0.96;
}

.btn:disabled {
  cursor: not-allowed;
  opacity: 0.6;
  transform: none;
}

.pesquisar {
  background: #1e3a8a;
}

.novo {
  background: #1e3a8a;
}

.opcoes {
  background: #1e3a8a;
}

.salvar {
  background: #1e3a8a;
}

.cancelar {
  background: #1e3a8a;
}

/* =========================================================
   TABELA
========================================================= */

.tabela {
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid #e5e7eb;
  overflow: hidden;
}

table {
  width: 100%;
  border-collapse: collapse;
}

thead {
  background: #f9fafb;
}

th,
td {
  padding: 8px 12px;
  border-bottom: 1px solid #eef0f3;
  text-align: left;
  vertical-align: middle;
  font-size: 13px;
}

th {
  color: #374151;
  font-weight: 700;
  white-space: nowrap;
}

tbody tr {
  transition: background 0.15s ease;
}

tbody tr:hover {
  background: #f8fafc;
}

tbody tr.listagem-row-selecionada {
  background: #e8f0ff;
}

.th-ordenavel {
  cursor: pointer;
  user-select: none;
}

.th-ordenavel:hover {
  background: #f3f4f6;
}

.indicador-ordenacao {
  margin-left: 6px;
  font-size: 12px;
  color: #6b7280;
}

.th-acoes-orcamento {
  width: 150px;
  text-align: right;
}

.td-acoes-orcamento {
  text-align: right;
}

.row-acoes-orcamento {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.row-acao-orcamento-btn {
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e5e7eb;
  color: #111111;
  cursor: pointer;
  transition: background 0.18s ease, transform 0.12s ease;
  padding: 0;
}

.row-acao-orcamento-btn:hover {
  background: #d1d5db;
  transform: translateY(-1px);
}

.row-acao-orcamento-btn svg {
  width: 12px;
  height: 12px;
}

@media (max-width: 900px) {
  th,
  td {
    padding: 12px;
    font-size: 14px;
  }

  .th-acoes-orcamento {
    width: 180px;
  }

  .row-acao-orcamento-btn {
    width: 28px;
    height: 28px;
    border-radius: 7px;
  }

  .row-acao-orcamento-btn svg {
    width: 14px;
    height: 14px;
  }
}

#form-modal-overlay.orcamento-somente-leitura #form-modal-body input,
#form-modal-overlay.orcamento-somente-leitura #form-modal-body select,
#form-modal-overlay.orcamento-somente-leitura #form-modal-body textarea,
#form-modal-overlay.pedido-somente-leitura #form-modal-body input,
#form-modal-overlay.pedido-somente-leitura #form-modal-body select,
#form-modal-overlay.pedido-somente-leitura #form-modal-body textarea {
  background: #eef2f7 !important;
  border-color: #d1d5db !important;
  color: #6b7280 !important;
}

#form-modal-overlay.orcamento-somente-leitura .ambiente-card,
#form-modal-overlay.orcamento-somente-leitura .ambiente-itens-lista,
#form-modal-overlay.orcamento-somente-leitura .orc-especificadores-area,
#form-modal-overlay.orcamento-somente-leitura .orc-especificadores-box {
  background: #eef2f7 !important;
  border-color: #d1d5db !important;
}

#form-modal-overlay.orcamento-somente-leitura .desabilitado,
#form-modal-overlay.orcamento-somente-leitura .ambientes-btn-add,
#form-modal-overlay.orcamento-somente-leitura .ambientes-dropdown-item,
#form-modal-overlay.orcamento-somente-leitura .btn-x-ambiente,
#form-modal-overlay.orcamento-somente-leitura .ambiente-item-remover,
#form-modal-overlay.orcamento-somente-leitura .orc-especificador-remover,
#form-modal-overlay.orcamento-somente-leitura .campo-acoes-entidade .btn-icon-entity {
  pointer-events: none !important;
  opacity: 0.55 !important;
}

/* =========================================================
   PAGINAÇÃO
========================================================= */

.listagem-paginacao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px;
  border-top: 1px solid #eef0f3;
  flex-wrap: wrap;
}

.paginacao-info {
  font-size: 14px;
  color: #4b5563;
}

.paginacao-botoes {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* =========================================================
   MENSAGENS / ESTADOS
========================================================= */

#listagem-status {
  padding: 14px 16px 0;
}

.listagem-mensagem {
  background: #f9fafb;
  border: 1px dashed #d1d5db;
  border-radius: 10px;
  padding: 14px 16px;
  color: #4b5563;
  font-size: 14px;
}

.listagem-mensagem.erro {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}

/* =========================================================
   BADGES / STATUS
========================================================= */

.badge-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.badge-sucesso {
  background: #dcfce7;
  color: #166534;
  border-color: #86efac;
}

.badge-erro {
  background: #fee2e2;
  color: #b91c1c;
  border-color: #fca5a5;
}

.badge-neutro,
.badge-digitado {
  background: #f3f4f6;
  color: #374151;
  border-color: #d1d5db;
}

.badge-aberto {
  background: #dbeafe;
  color: #1d4ed8;
  border-color: #93c5fd;
}

.badge-vencido {
  background: #fef3c7;
  color: #92400e;
  border-color: #fcd34d;
}

/* =========================================================
   FORMULÁRIOS
========================================================= */

.form-cadastro {
  background: #ffffff;
  padding: 24px;
  border-radius: 14px;
  border: 1px solid #e5e7eb;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.form-grid input,
.form-grid select,
.form-grid textarea {
  width: 100%;
  min-height: 40px;
  padding: 10px 12px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  outline: none;
}

.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.form-botoes {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}

#f_identificacao,
#f_numero,
#f_data_inicio,
#f_data_fim,
#f_periodo {
  max-width: 160px;
}

.form-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(17, 24, 39, 0.45);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 20px;
}

.form-modal-overlay.ativo {
  display: flex;
}

.form-modal {
  width: min(1160px, 94vw);
  height: min(840px, 92vh);
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid #dbe1ea;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.2);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.form-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid #e5e7eb;
}

.form-modal-title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: #111827;
}

.form-modal-badge-historico {
  margin-left: auto;
  margin-right: 10px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid #d1d5db;
  background: #f3f4f6;
  color: #374151;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-transform: uppercase;
}

.form-modal-close {
  width: 34px;
  height: 34px;
  border: none;
  border-radius: 8px;
  background: #1e3a8a;
  color: #ffffff;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
}

.form-modal-close:hover {
  background: #1a3279;
}

.form-modal-body {
  padding: 10px;
  overflow: auto;
  flex: 1;
}

.form-modal.orcamento-modal .form-tab-panel[data-form-tab-panel="ambientes"] {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.form-modal.orcamento-modal .form-tab-panel[data-form-tab-panel="ambientes"] .form-grid-modal {
  height: 100%;
  min-height: 0;
}

.form-modal.orcamento-modal .form-tab-panel[data-form-tab-panel="ambientes"] .ambientes-builder-root {
  height: 100%;
  min-height: 0;
}

.form-modal.orcamento-modal .form-tab-panel[data-form-tab-panel="financeiro"] .form-grid-modal {
  max-width: 1080px;
  margin: 0 auto;
}

.form-modal.orcamento-modal .form-tab-panel[data-form-tab-panel="resultado"] .form-grid-modal {
  max-width: 1080px;
  margin: 0 auto;
  padding-bottom: 0;
}

.orc-financeiro-builder {
  width: 100%;
}

.orc-resultado-builder {
  width: 100%;
}

.orc-res-cards {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.orc-res-card {
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  background: #ffffff;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.orc-res-coluna-direita {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 100%;
}

.orc-res-card h4 {
  margin: 0 0 4px;
  font-size: 13px;
  color: #0f172a;
}

.orc-res-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 5px 8px;
  border: 1px solid #dbe1ea;
  border-radius: 8px;
  background: #ffffff;
}

.orc-res-row span {
  font-size: 11px;
  color: #334155;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.orc-res-row strong {
  font-size: 14px;
  color: #0f172a;
  font-weight: 700;
  line-height: 1.2;
  text-align: right;
  justify-self: end;
}

.orc-res-row-destaque {
  background: #f8fafc;
  border-color: #cbd5e1;
}

.orc-res-row-resultado {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.orc-res-row-resultado strong {
  color: #1d4ed8;
  font-size: 16px;
}

.orc-res-negativo {
  color: #dc2626 !important;
}

.orc-res-det {
  border: 0;
  margin: 0;
  padding: 0;
}

.orc-res-det > summary {
  list-style: none;
  cursor: pointer;
  grid-template-columns: minmax(0, 1fr) auto;
}

.orc-res-det > summary::-webkit-details-marker {
  display: none;
}

.orc-res-row {
  grid-template-columns: minmax(0, 1fr) minmax(110px, auto);
}

.orc-res-det-body {
  margin-top: 3px;
  margin-bottom: 3px;
  padding: 6px;
  border: 1px dashed #d1d5db;
  border-radius: 8px;
  background: #f8fafc;
}

.orc-res-det-body small {
  color: #475569;
  font-size: 12px;
}

.orc-res-tribut-resumo {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
  overflow: hidden;
}

.orc-res-tribut-linha {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 6px 8px;
  border-bottom: 1px solid #e2e8f0;
}

.orc-res-tribut-linha:last-child {
  border-bottom: none;
}

.orc-res-tribut-linha span {
  font-size: 12px;
  color: #0f172a;
}

.orc-res-tribut-linha strong {
  font-size: 12px;
  color: #0f172a;
  white-space: nowrap;
  text-align: right;
  justify-self: end;
}

.orc-res-alerta {
  grid-column: 1 / -1;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid #fde68a;
  background: #fffbeb;
  color: #92400e;
  font-size: 12px;
  font-weight: 600;
}

.orc-res-acoes {
  display: flex;
  justify-content: flex-start;
  margin-top: 4px;
}

.orc-res-card-hero {
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
  padding: 10px;
}

.orc-res-card-ia {
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
  flex: 1;
  min-height: 180px;
  padding: 10px;
}

.orc-ia-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.orc-op-analise-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.orc-op-kpi-label {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  color: #64748b;
  letter-spacing: 0.03em;
  margin-bottom: 2px;
}

.orc-op-kpi-valor {
  font-size: 22px;
  line-height: 1;
  color: #0f172a;
}

.orc-op-analise-regua {
  border: 1px solid #dbeafe;
  border-radius: 8px;
  background: #f8fbff;
  padding: 8px;
  display: grid;
  gap: 6px;
}

.orc-op-analise-regua-compacta {
  padding: 7px;
  gap: 4px;
}

.orc-op-analise-regua-track {
  height: 10px;
  border-radius: 999px;
  background: #dbeafe;
  overflow: hidden;
}

.orc-op-analise-regua-fill {
  --progress: 0;
  width: calc(min(100, max(0, var(--progress))) * 1%);
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #f59e0b 0%, #ea580c 100%);
}

.orc-op-analise-regua-fill.saudavel {
  background: linear-gradient(90deg, #16a34a 0%, #15803d 100%);
}

.orc-op-analise-regua-fill.atencao {
  background: linear-gradient(90deg, #f59e0b 0%, #ea580c 100%);
}

.orc-op-analise-regua small {
  font-size: 11px;
  color: #334155;
  line-height: 1.25;
}

.orc-op-analise-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.orc-op-analise-grid-compacta {
  margin-top: 2px;
}

.orc-op-analise-box {
  border: 1px solid #dbe1ea;
  border-radius: 8px;
  background: #ffffff;
  padding: 7px;
  display: grid;
  gap: 3px;
}

.orc-op-analise-box span {
  font-size: 10px;
  text-transform: uppercase;
  color: #64748b;
  letter-spacing: 0.03em;
}

.orc-op-analise-box strong {
  font-size: 16px;
  color: #0f172a;
  line-height: 1.2;
}

.orc-op-analise-box small {
  font-size: 11px;
  color: #334155;
  line-height: 1.35;
}

.orc-op-analise-box small.saudavel {
  color: #166534;
  font-weight: 700;
}

.orc-op-analise-box small.atencao {
  color: #b45309;
  font-weight: 700;
}

.orc-op-analise-box small.critico {
  color: #b91c1c;
  font-weight: 700;
}

.orc-op-analise-foot {
  margin-top: 2px;
  font-size: 11px;
  color: #475569;
}

.orc-meta-regua {
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%);
  padding: 8px;
  display: grid;
  gap: 6px;
}

.orc-meta-regua-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.orc-meta-regua-topo span {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #1d4ed8;
  font-weight: 700;
}

.orc-meta-regua-topo strong {
  font-size: 14px;
  color: #0f172a;
}

.orc-meta-regua-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.orc-meta-regua-grid > div {
  border: 1px solid #dbeafe;
  border-radius: 8px;
  background: #ffffff;
  padding: 6px;
  display: grid;
  gap: 2px;
}

.orc-meta-regua-grid span {
  font-size: 10px;
  text-transform: uppercase;
  color: #64748b;
  letter-spacing: 0.03em;
}

.orc-meta-regua-grid strong {
  font-size: 13px;
  color: #0f172a;
  line-height: 1.2;
}

.orc-meta-regua-track {
  height: 10px;
  border-radius: 999px;
  background: #dbeafe;
  overflow: hidden;
}

.orc-meta-regua-fill {
  --progress: 0;
  width: calc(min(100, max(0, var(--progress))) * 1%);
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #2563eb 0%, #1d4ed8 100%);
}

.orc-meta-regua-foot {
  font-size: 11px;
  color: #1e3a8a;
}

.orc-ia-visual {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.orc-ia-gauge {
  --score: 0;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background:
    conic-gradient(#1e3a8a calc(var(--score) * 1%), #dbeafe 0),
    radial-gradient(circle at 50% 50%, #ffffff 62%, transparent 63%);
  display: grid;
  place-items: center;
  box-shadow: inset 0 0 0 1px #dbe1ea;
}

.orc-ia-gauge-miolo {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #ffffff;
  display: grid;
  place-items: center;
  border: 1px solid #dbe1ea;
}

.orc-ia-gauge-miolo span {
  font-size: 9px;
  text-transform: uppercase;
  color: #64748b;
  line-height: 1;
}

.orc-ia-gauge-miolo strong {
  font-size: 16px;
  color: #0f172a;
  line-height: 1;
}

.orc-ia-visual-texto {
  display: grid;
  gap: 3px;
}

.orc-ia-score {
  display: flex;
  align-items: baseline;
  gap: 6px;
  border: 1px solid #dbe1ea;
  border-radius: 999px;
  padding: 4px 10px;
  background: #ffffff;
}

.orc-ia-score span {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #64748b;
}

.orc-ia-score strong {
  font-size: 16px;
  line-height: 1;
  color: #0f172a;
}

.orc-ia-titulo {
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
  margin-top: 2px;
}

.orc-ia-resumo {
  margin: 0;
  color: #334155;
  font-size: 12px;
  line-height: 1.45;
}

.orc-ia-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.orc-ia-box {
  border: 1px solid #dbe1ea;
  border-radius: 8px;
  background: #ffffff;
  padding: 8px;
}

.orc-ia-box h5 {
  margin: 0 0 6px;
  font-size: 12px;
  color: #0f172a;
}

.orc-ia-box ul {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 4px;
}

.orc-ia-box li {
  font-size: 12px;
  color: #334155;
}

.orc-ia-recomendacao {
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #1e3a8a;
  font-size: 12px;
  line-height: 1.45;
  padding: 8px;
}

.orc-ia-empty {
  margin: 0;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
  color: #475569;
  font-size: 12px;
  line-height: 1.45;
  padding: 10px;
}

.orc-ia-erro {
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: #fef2f2;
  color: #991b1b;
  font-size: 12px;
  line-height: 1.45;
  padding: 8px;
}

.orc-ia-loading {
  display: grid;
  gap: 6px;
}

.orc-ia-skeleton {
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, #e2e8f0 0%, #f1f5f9 50%, #e2e8f0 100%);
  background-size: 200% 100%;
  animation: orc-ia-pulse 1.2s ease-in-out infinite;
}

.orc-ia-skeleton-wide {
  height: 38px;
  border-radius: 8px;
}

@keyframes orc-ia-pulse {
  0% { background-position: 180% 0; }
  100% { background-position: -20% 0; }
}

.orc-res-hero-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.orc-res-hero-main {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.orc-res-hero-main span {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #475569;
  margin-bottom: 0;
}

.orc-res-meta-btn {
  width: 22px;
  min-width: 22px;
  height: 22px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #1e3a8a;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.orc-res-meta-btn svg {
  width: 14px;
  height: 14px;
  display: block;
}

.orc-res-meta-acoes {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.orc-res-meta-btn:hover {
  background: #eff6ff;
}

.orc-res-meta-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.orc-res-meta-menu {
  margin-top: 6px;
  border: 1px solid #dbe1ea;
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}

.orc-res-meta-item {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  background: #ffffff;
  color: #0f172a;
  font-size: 12px;
  text-align: left;
  padding: 8px 10px;
  cursor: pointer;
}

.orc-res-meta-item:last-child {
  border-bottom: none;
}

.orc-res-meta-item:hover {
  background: #f8fafc;
}

.orc-res-majoracao-ctx {
  margin-top: 6px;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
  padding: 7px 8px;
  display: grid;
  gap: 2px;
}

.orc-res-majoracao-ctx span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #64748b;
}

.orc-res-majoracao-ctx strong {
  font-size: 12px;
  color: #0f172a;
}

.orc-res-majoracao-ctx small {
  font-size: 11px;
  color: #334155;
}

.orc-res-op-scores {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.orc-res-op-score-card {
  border: 1px solid #dbe1ea;
  border-radius: 8px;
  background: #ffffff;
  padding: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.orc-res-op-score-gauge {
  --score: 0;
  --ring-color: #1e40af;
  --ring-track: #dbe1ea;
  --ring-size: 4px;
  width: 64px;
  height: 64px;
  position: relative;
  border-radius: 50%;
  flex: 0 0 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.orc-res-op-score-gauge.saudavel {
  --ring-color: #16a34a;
  --ring-track: #dcfce7;
}

.orc-res-op-score-gauge.atencao {
  --ring-color: #d97706;
  --ring-track: #fef3c7;
}

.orc-res-op-score-gauge.critico {
  --ring-color: #dc2626;
  --ring-track: #fee2e2;
}

.orc-res-op-score-gauge::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: conic-gradient(var(--ring-color) calc(var(--score) * 1%), var(--ring-track) 0);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - var(--ring-size)), #000 calc(100% - var(--ring-size)));
  mask: radial-gradient(farthest-side, transparent calc(100% - var(--ring-size)), #000 calc(100% - var(--ring-size)));
}

.orc-res-op-score-miolo {
  position: relative;
  z-index: 1;
  font-size: 12px;
  font-weight: 700;
  color: #0f172a;
}

.orc-res-op-score-meta {
  display: grid;
  gap: 2px;
}

.orc-res-op-score-meta span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #64748b;
}

.orc-res-op-score-meta strong {
  font-size: 21px;
  line-height: 1;
  color: #0f172a;
}

.orc-res-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  border: 1px solid #cbd5e1;
  background: #f1f5f9;
  color: #334155;
  white-space: nowrap;
}

.orc-res-status-badge.saudavel {
  border-color: #86efac;
  background: #dcfce7;
  color: #166534;
}

.orc-res-status-badge.atencao {
  border-color: #fcd34d;
  background: #fef3c7;
  color: #92400e;
}

.orc-res-status-badge.critico {
  border-color: #fca5a5;
  background: #fee2e2;
  color: #991b1b;
}

.orc-res-hero-margem {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border: 1px solid #dbe1ea;
  border-radius: 8px;
  padding: 5px 8px;
  background: #ffffff;
}

.orc-res-hero-margem span {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #334155;
}

.orc-res-hero-margem strong {
  font-size: 16px;
  color: #1d4ed8;
  font-weight: 700;
}

.orc-res-health {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.orc-res-health-track {
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.orc-res-health-fill {
  height: 100%;
  width: 0;
  border-radius: 999px;
  transition: width 0.25s ease;
  background: #94a3b8;
}

.orc-res-health-fill.saudavel {
  background: linear-gradient(90deg, #22c55e, #16a34a);
}

.orc-res-health-fill.atencao {
  background: linear-gradient(90deg, #f59e0b, #d97706);
}

.orc-res-health-fill.critico {
  background: linear-gradient(90deg, #ef4444, #dc2626);
}

.orc-res-health small {
  font-size: 11px;
  color: #475569;
}

.orc-res-exec-msg {
  margin: 0;
  padding: 6px 8px;
  border-radius: 8px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  font-size: 12px;
  color: #334155;
}

.orc-res-hero-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.orc-res-hero-grid > div {
  border: 1px solid #dbe1ea;
  border-radius: 8px;
  background: #ffffff;
  padding: 6px 8px;
}

.orc-res-hero-grid span {
  display: block;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #475569;
  margin-bottom: 2px;
}

.orc-res-hero-grid strong {
  display: block;
  text-align: right;
  font-size: 14px;
  color: #0f172a;
}

.orc-res-reverso {
  margin-top: 6px;
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  background: #ffffff;
  overflow: hidden;
}

.orc-res-reverso-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
  background: #f8fafc;
  border-bottom: 1px solid #e5e7eb;
}

.orc-res-reverso-head h4 {
  margin: 0;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #334155;
}

.orc-res-reverso-status {
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}

.orc-res-reverso-status.ok {
  color: #047857;
  background: #d1fae5;
}

.orc-res-reverso-status.warn {
  color: #b45309;
  background: #fef3c7;
}

.orc-res-reverso-estimado {
  padding: 8px 12px;
  font-size: 12px;
  color: #6b7280;
  border-bottom: 1px solid #eef2f7;
}

.orc-res-reverso-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 10px 12px;
}

.orc-res-reverso-grid > div {
  border: 1px solid #eef2f7;
  border-radius: 8px;
  padding: 8px 10px;
  background: #ffffff;
}

.orc-res-reverso-grid span {
  display: block;
  font-size: 11px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 3px;
}

.orc-res-reverso-grid strong {
  font-size: 14px;
  color: #0f172a;
}

.orc-res-reverso-foot {
  padding: 8px 12px 10px;
  border-top: 1px solid #eef2f7;
  font-size: 12px;
  color: #475569;
}

.orc-fin-layout {
  display: flex;
  flex-direction: column;
  gap: 7px;
  width: 100%;
  margin: 0;
}

.orc-fin-row {
  display: grid;
  gap: 8px;
  align-items: end;
}

.orc-fin-row-single {
  grid-template-columns: minmax(220px, max-content);
}

.orc-fin-row-tripla {
  grid-template-columns: minmax(130px, 0.8fr) minmax(40px, 42px) minmax(170px, 1fr);
}

.orc-fin-row-calculos {
  grid-template-columns: 104px 104px 36px 104px 104px 52px 104px 104px;
  justify-content: start;
}

.orc-fin-row-dupla {
  grid-template-columns: repeat(2, minmax(190px, 1fr));
}

.orc-fin-row-resumo {
  grid-template-columns: 296px 216px 44px 208px;
  justify-content: start;
}

.orc-fin-row-condicao {
  grid-template-columns: minmax(230px, 1fr) 34px 34px;
  justify-content: start;
}

.orc-fin-row-full {
  grid-template-columns: minmax(0, 1fr);
}

.orc-fin-col-espaco {
  width: 36px;
  min-width: 36px;
}

.orc-fin-col-espaco-resumo {
  width: 44px;
  min-width: 44px;
}

.orc-fin-col-espaco-largo {
  width: 52px;
  min-width: 52px;
}

.orc-fin-campo-acao {
  min-width: 0;
}

.orc-fin-campo-acao .btn {
  width: 100%;
  min-height: 28px;
  padding: 0 10px;
  font-size: 12px;
}

.orc-fin-layout .btn {
  background: #1e3a8a;
  color: #ffffff;
}

.orc-fin-btn-calc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px !important;
  min-width: 34px !important;
  height: 28px;
  min-height: 28px !important;
  margin: 0 auto;
  padding: 0 !important;
  line-height: 1;
  border: none;
  background: #1e3a8a;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
}

.orc-fin-btn-calc:hover {
  background: #1a3279;
}

.orc-fin-btn-icon {
  font-size: 0;
  position: relative;
}

.orc-fin-btn-icon::before {
  font-size: 15px;
  line-height: 1;
}

.orc-fin-btn-taxas::before {
  content: "⚙️";
}

.orc-fin-btn-parcelas::before {
  content: "+";
}

.form-grid-modal .orc-fin-layout .campo {
  gap: 3px;
}

.form-grid-modal .orc-fin-layout .campo label {
  font-size: 11px;
  line-height: 1.2;
}

.form-grid-modal .orc-fin-layout .campo input,
.form-grid-modal .orc-fin-layout .campo select,
.form-grid-modal .orc-fin-layout .campo textarea {
  min-height: 26px;
  padding: 4px 7px;
  font-size: 12px;
}

.form-grid-modal .orc-fin-layout .campo textarea {
  min-height: 48px;
}

.form-grid-modal .orc-fin-layout input.orc-fin-input-curto {
  width: 96px;
  min-width: 96px;
  max-width: 110px;
  text-align: center;
}

.form-grid-modal .orc-fin-layout input.orc-fin-input-duplo {
  width: 192px;
  min-width: 192px;
  max-width: 208px;
  text-align: center;
}

.form-grid-modal .orc-fin-layout .orc-fin-campo-curto {
  width: 104px;
  min-width: 104px;
}

.form-grid-modal .orc-fin-layout .orc-fin-campo-medio {
  width: 296px;
  min-width: 296px;
}

.form-grid-modal .orc-fin-layout .orc-fin-campo-duplo {
  width: 208px;
  min-width: 208px;
}

.form-grid-modal .orc-fin-layout .orc-fin-campo-desconto {
  width: 216px;
  min-width: 216px;
}

.orc-fin-desconto-inline {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 6px;
  align-items: center;
}

.orc-fin-desconto-inline select {
  min-width: 54px;
  width: 54px;
  text-align: center;
  padding-left: 4px;
  padding-right: 4px;
}

.orc-fin-campo-desconto-bloqueado .orc-fin-desconto-inline select,
.orc-fin-campo-desconto-bloqueado .orc-fin-desconto-inline input {
  background: #eef1f5;
  color: #6b7280;
  cursor: not-allowed;
}

.form-grid-modal .orc-fin-layout input[data-campo-form="valor_total_itens"],
.form-grid-modal .orc-fin-layout input[data-campo-form="custo_frete"],
.form-grid-modal .orc-fin-layout input[data-campo-form="custo_refeicao"],
.form-grid-modal .orc-fin-layout input[data-campo-form="subtotal_financeiro"],
.form-grid-modal .orc-fin-layout input[data-campo-form="percentual_especificadores"],
.form-grid-modal .orc-fin-layout input[data-campo-form="vendedor_percentual_comissao"] {
  background: #f7f8fa;
  color: #6b7280;
}

.orc-fin-section-title {
  font-size: 11px;
  font-weight: 700;
  color: #0f172a;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-top: 1px;
}

.orc-fin-parcelas {
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff;
}

.orc-fin-parcelas-head,
.orc-fin-parcela-row {
  display: grid;
  grid-template-columns: minmax(72px, 0.8fr) minmax(120px, 1.2fr) minmax(150px, 1.6fr) minmax(110px, 1fr) minmax(84px, 0.9fr) 36px;
  gap: 6px;
  align-items: center;
  padding: 6px 8px;
}

.orc-fin-parcelas-foot {
  display: grid;
  grid-template-columns: minmax(72px, 0.8fr) minmax(120px, 1.2fr) minmax(150px, 1.6fr) minmax(110px, 1fr) minmax(84px, 0.9fr) 36px;
  gap: 6px;
  align-items: center;
  padding: 6px 8px;
  border-top: 1px solid #e5e7eb;
  background: #f8fafc;
  font-size: 11px;
  color: #334155;
  font-weight: 600;
}

.orc-fin-parcelas-foot-label {
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.orc-fin-parcelas-foot-valor {
  font-weight: 700;
  color: #0f172a;
}

.orc-fin-parcelas-foot-cet {
  font-weight: 700;
  color: #1e3a8a;
}

.orc-fin-parcelas-head {
  background: #f8fafc;
  border-bottom: 1px solid #e5e7eb;
  font-size: 10px;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
}

.orc-fin-parcelas-body {
  max-height: none;
  overflow: visible;
}

.orc-fin-parcela-row {
  border-bottom: 1px solid #f1f5f9;
  font-size: 12px;
  color: #0f172a;
  cursor: pointer;
}

.orc-fin-parcela-row:last-child {
  border-bottom: none;
}

.orc-fin-parcela-row:hover {
  background: #f8fafc;
}

.orc-fin-parcela-acao {
  display: inline-flex;
  justify-content: flex-end;
}

.orc-fin-parcela-cet {
  font-weight: 700;
  color: #1e3a8a;
}

.orc-fin-parcela-remover {
  width: 24px;
  min-width: 24px;
  height: 24px;
  padding: 0;
}

.orc-fin-parcelas-vazio {
  padding: 10px;
  text-align: center;
  color: #64748b;
  font-size: 12px;
}

.orc-fin-total-geral {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 4px 8px 0;
}

.orc-fin-total-geral span {
  font-size: 10px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.orc-fin-total-geral strong {
  font-size: 17px;
  color: #0f172a;
  font-weight: 800;
}

@media (max-width: 900px) {
  .orc-fin-row-single,
  .orc-fin-row-tripla,
  .orc-fin-row-calculos,
  .orc-fin-row-dupla,
  .orc-fin-row-resumo,
  .orc-fin-row-condicao {
    grid-template-columns: minmax(0, 1fr);
  }

  .orc-fin-col-espaco {
    display: none;
  }

  .orc-fin-col-espaco-resumo {
    display: none;
  }

  .orc-fin-col-espaco-largo {
    display: none;
  }

  .orc-fin-campo-acao {
    min-width: 0;
  }

  .form-grid-modal .orc-fin-layout input.orc-fin-input-curto {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    text-align: left;
  }

  .form-grid-modal .orc-fin-layout input.orc-fin-input-duplo {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    text-align: left;
  }

  .form-grid-modal .orc-fin-layout .orc-fin-campo-curto {
    width: 100%;
    min-width: 0;
  }

  .form-grid-modal .orc-fin-layout .orc-fin-campo-medio {
    width: 100%;
    min-width: 0;
  }

  .form-grid-modal .orc-fin-layout .orc-fin-campo-duplo {
    width: 100%;
    min-width: 0;
  }

  .form-grid-modal .orc-fin-layout .orc-fin-campo-desconto {
    width: 100%;
    min-width: 0;
  }

  .orc-fin-desconto-inline {
    grid-template-columns: 56px minmax(0, 1fr);
  }

  .orc-fin-parcelas-head,
  .orc-fin-parcela-row,
  .orc-fin-parcelas-foot {
    grid-template-columns: minmax(62px, 0.8fr) minmax(96px, 1.1fr) minmax(112px, 1.45fr) minmax(90px, 1fr) minmax(72px, 0.85fr) 32px;
    font-size: 11px;
  }

  .orc-fin-total-geral strong {
    font-size: 16px;
  }

  .orc-res-row {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .orc-res-row strong {
    font-size: 15px;
  }

  .orc-res-cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .orc-res-coluna-direita {
    min-height: 0;
  }

  .orc-res-tribut-linha {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
  }

  .orc-res-hero-top {
    flex-direction: column;
    align-items: flex-start;
  }

  .orc-res-hero-main strong {
    font-size: 22px;
  }

  .orc-res-hero-grid {
    grid-template-columns: 1fr;
  }

  .orc-res-op-scores {
    grid-template-columns: 1fr;
  }

  .orc-ia-grid {
    grid-template-columns: 1fr;
  }

  .orc-op-analise-grid {
    grid-template-columns: 1fr;
  }

  .orc-op-kpi-valor {
    font-size: 24px;
  }

  .orc-meta-regua-grid {
    grid-template-columns: 1fr;
  }

  .orc-res-card-ia {
    flex: none;
    min-height: 0;
  }

  .orc-ia-visual {
    grid-template-columns: 1fr;
  }

  .orc-ia-gauge {
    margin: 0 auto;
  }

  .orc-res-reverso-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 720px) {
  .orc-fin-layout {
    gap: 6px;
  }

  .orc-fin-parcelas-head,
  .orc-fin-parcela-row,
  .orc-fin-parcelas-foot {
    grid-template-columns: minmax(54px, 0.75fr) minmax(84px, 1.05fr) minmax(88px, 1.3fr) minmax(78px, 0.95fr) minmax(64px, 0.8fr) 30px;
    gap: 5px;
    padding: 6px 7px;
  }

  .orc-fin-parcelas-head {
    font-size: 9px;
  }
}

.orc-taxa-aplicacao-modal {
  width: min(520px, 100%);
}

.orc-taxa-aplicacao-contexto {
  margin-bottom: 10px;
  font-size: 12px;
  color: #334155;
  font-weight: 600;
}

.orc-taxa-aplicacao-opcoes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.orc-taxa-aplicacao-opcao {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid #dbe1ea;
  border-radius: 8px;
  background: #ffffff;
  cursor: pointer;
  font-size: 13px;
  color: #0f172a;
}

.orc-taxa-aplicacao-opcao:hover {
  background: #f8fafc;
}

.lookup-modal {
  width: min(900px, 100%);
}

.form-modal.orc-parcela-edicao-modal {
  width: min(420px, 94vw);
  height: auto;
  max-height: min(320px, 92vh);
}

.form-modal.orc-parcela-edicao-modal .form-modal-body {
  padding: 10px 14px;
  overflow: visible;
}

.form-grid-modal.orc-parcela-edicao-grid {
  max-width: none;
  margin: 0;
  gap: 8px 10px;
}

.form-grid-modal.orc-parcela-edicao-grid .campo {
  grid-column: span 6;
}

@media (max-width: 640px) {
  .form-modal.orc-parcela-edicao-modal {
    max-height: min(420px, 92vh);
  }

  .form-modal.orc-parcela-edicao-modal .form-modal-body {
    overflow: auto;
  }

  .form-grid-modal.orc-parcela-edicao-grid .campo {
    grid-column: span 12;
  }
}

.lookup-toolbar {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
}

.lookup-input {
  flex: 1;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
}

.lookup-order {
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
}

.lookup-resultados {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 10px;
}

.lookup-item {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #ffffff;
  text-align: left;
  padding: 10px;
  cursor: pointer;
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 10px;
}

.lookup-item:hover {
  background: #f8fafc;
}

.lookup-codigo {
  font-weight: 700;
  color: #111827;
}

.lookup-descricao {
  color: #374151;
}

.form-grid-modal {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 6px;
  max-width: 1080px;
  margin: 0 auto;
}

.form-modal-tools {
  display: flex;
  gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.form-grid-modal .campo {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.form-grid-modal .campo label {
  font-size: 12px;
  font-weight: 600;
  color: #374151;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}


.form-grid-modal .campo input,
.form-grid-modal .campo select,
.form-grid-modal .campo textarea {
  width: 100%;
  min-height: 28px;
  padding: 5px 8px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #ffffff;
  color: #111827;
  outline: none;
}

.campo-input-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}

.campo-input-wrap input,
.campo-input-wrap select,
.campo-input-wrap textarea {
  flex: 1;
}

.acoes-cnpj {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.btn-cnpj-salvar {
  height: 34px;
  padding: 0 12px;
  white-space: nowrap;
}

.btn-remover-grupo-mini {
  width: 30px;
  min-width: 30px;
  height: 30px;
  padding: 0;
  font-size: 14px;
  line-height: 1;
  justify-self: end;
}

.btn-editar-grupo-mini {
  background: #e5e7eb;
  border-color: #d1d5db;
  color: #374151;
}

.btn-editar-grupo-mini:hover {
  background: #d1d5db;
}

.grupo-item-linha-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.grupo-item-fixo-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 20px;
  padding: 0 8px;
  border-radius: 999px;
  background: #dbeafe;
  color: #1e3a8a;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

#geral_lista_grupos .lookup-item,
#dre_lista_contas .lookup-item {
  padding: 6px 8px;
  min-height: 34px;
  align-items: center;
}

#dre_lista_contas .dre-row-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 22px;
}

#dre_lista_contas .dre-toggle {
  width: 12px;
  text-align: center;
  user-select: none;
  color: #4b5563;
}


.form-grid-modal .campo input:focus,
.form-grid-modal .campo select:focus,
.form-grid-modal .campo textarea:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.form-grid-modal .campo input.campo-autocomplete-desvinculado {
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.14);
}

.form-grid-modal .campo input.campo-autocomplete-desvinculado:focus {
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.2);
}

.form-modal-footer {
  padding: 8px 14px;
  border-top: 1px solid #e5e7eb;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.checkbox-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 4px 0;
  justify-content: center;
}

.checkbox-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #111827;
  white-space: nowrap;
}

.checkbox-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  margin: 0;
  flex: 0 0 18px;
}

.input-percentual-especificador {
  width: 48px;
  min-width: 48px;
  max-width: 48px;
  height: 36px;
  padding: 2px 6px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 12px;
  text-align: center;
  flex: 0 0 48px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

.input-percentual-especificador.ativo {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.btn-inativar {
  height: 24px;
  padding: 0 8px;
  font-size: 11px;
}

.btn-campo-acao {
  min-width: 34px;
  width: 34px;
  height: 34px;
  padding: 0;
  font-size: 0;
  position: relative;
  background: #d1d5db !important;
  color: #374151;
}

.btn-campo-acao:hover {
  background: #e5e7eb !important;
}

.btn-campo-acao::before {
  content: "\1F50D";
  font-size: 14px;
  line-height: 1;
}

[data-icone="refresh"]::before {
  content: "\21BB";
}

[data-icone="sliders"]::before {
  content: "\2699";
}

[data-campo-wrap="id"] {
  max-width: 260px;
  grid-column: 1 / span 4 !important;
}

[data-campo-wrap="preco_final_venda"] {
  grid-column: 5 / span 4 !important;
  justify-self: center;
  width: 100%;
  max-width: 320px;
}

[data-campo-wrap="preco_final_venda"] label {
  text-align: center;
}

[data-campo-wrap="preco_final_venda"] input {
  text-align: center;
  font-weight: 700;
}

body.modal-aberto {
  overflow: hidden;
}

/* =========================================================
   DASHBOARD INICIAL
========================================================= */

.dashboard-header {
  margin-bottom: 0;
}

.pagina-inicio {
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 0;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(300px, 1fr));
  gap: 12px;
  align-items: stretch;
}

.dashboard-card {
  background: #ffffff;
  border: 1px solid #dbe1ea;
  border-radius: 14px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: auto;
}

.dashboard-card-comparativo {
  min-height: 414px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 8px;
  overflow: hidden;
}

.dashboard-coluna-direita {
  display: grid;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-self: stretch;
}

.dashboard-card-duplo-mes {
  min-height: 0;
  display: grid;
  grid-template-rows: auto 1fr;
}

.dashboard-card-margem {
  min-height: 0;
}

.dashboard-card-topo {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.dashboard-card-titulo {
  margin: 0;
  font-size: 18px;
  color: #111827;
}

.dashboard-badge {
  background: #e0ecff;
  color: #1d4ed8;
  border-radius: 999px;
  font-size: 12px;
  padding: 4px 10px;
  white-space: nowrap;
}

.dashboard-kpi {
  font-size: 30px;
  font-weight: 800;
  color: #1f2937;
  line-height: 1.15;
}

.dashboard-meta {
  margin: 0;
  color: #4b5563;
  font-size: 13px;
}

.dashboard-observacao {
  margin: 0;
  color: #374151;
  font-size: 14px;
  line-height: 1.45;
}

.dashboard-grafico-wrap {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f8fbff;
  padding: 10px 8px 8px;
  min-height: 0;
}

.dashboard-grafico {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: end;
  gap: 10px;
  min-height: 0;
  height: 100%;
}

.grafico-coluna {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.grafico-barra-base {
  height: 170px;
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  border-bottom: 1px solid #dbe1ea;
  padding-bottom: 4px;
}

.grafico-barra {
  width: 70%;
  min-height: 10px;
  border-radius: 8px 8px 2px 2px;
  background: linear-gradient(180deg, #60a5fa 0%, #2563eb 100%);
}

.grafico-coluna.destaque-base .grafico-barra {
  background: linear-gradient(180deg, #60a5fa 0%, #2563eb 100%);
}

.grafico-coluna.destaque-atual .grafico-barra {
  background: linear-gradient(180deg, #60a5fa 0%, #2563eb 100%);
}

.grafico-mes {
  font-size: 12px;
  font-weight: 700;
  color: #1f2937;
}

.grafico-valor {
  font-size: 11px;
  color: #4b5563;
  white-space: nowrap;
}

.dashboard-resumo-comparativo {
  margin: 0;
  padding: 6px 10px;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fafafa;
  color: #374151;
  font-size: 12px;
  line-height: 1.4;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 40px;
}

.dashboard-duplo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  height: 100%;
}

.dashboard-duplo-item {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 12px;
  background: #f9fafb;
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
  gap: 6px;
}

.dashboard-duplo-label {
  font-size: 12px;
  color: #6b7280;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.dashboard-duplo-valor {
  font-size: 24px;
  line-height: 1.1;
  font-weight: 800;
  color: #111827;
}

.dashboard-meta-compare {
  display: grid;
  gap: 4px;
  font-size: 13px;
  color: #374151;
}

.dashboard-kpi-secundario {
  font-size: 26px;
}

.dashboard-margem-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  height: 100%;
}

.dashboard-margem-bloco {
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  background: #f8fbff;
  padding: 10px;
  display: grid;
  align-content: start;
  gap: 6px;
}

.dashboard-margem-bloco-principal {
  justify-items: center;
  align-content: center;
  text-align: center;
  height: 100%;
}

.dashboard-margem-descricao,
.dashboard-margem-fonte {
  margin: 0;
  width: 100%;
  text-align: center;
}

.dashboard-margem-descricao {
  font-size: 13px;
  color: #374151;
}

.dashboard-margem-fonte {
  font-size: 12px;
  color: #6b7280;
}

.dashboard-meta-compare-destaque {
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  background: #f8fbff;
  padding: 10px 12px;
}

.dashboard-atalhos {
  margin-top: 8px;
}

.dashboard-atalhos .card-menu {
  min-height: 86px;
  padding: 12px 16px;
}

.dashboard-atalhos .card-menu .icone {
  margin-bottom: 8px;
  font-size: 24px;
}

@media (min-width: 1101px) {
  .pagina-inicio {
    height: calc(100vh - 122px);
  }

  .dashboard-grid,
  .dashboard-coluna-direita,
  .dashboard-card-comparativo {
    min-height: 0;
  }
}

/* =========================================================
   RESPONSIVIDADE
========================================================= */

@media (max-width: 1100px) {
  .topbar {
    grid-template-columns: 1fr;
    height: auto;
    padding: 14px 18px;
    gap: 12px;
  }

  .topbar-esquerda,
  .topbar-centro,
  .topbar-direita {
    justify-content: center;
  }

  .empresa-box {
    width: 100%;
    justify-content: center;
  }

  .geral-grid-empresa {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }

  .geral-layout {
    display: block;
  }

  .geral-coluna-lateral {
    height: auto;
    width: 100% !important;
    margin-top: 12px;
  }

  .lateral-card {
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    background: #ffffff;
  }

  .lateral-card h3 {
    position: static;
    margin-bottom: 8px;
    background: transparent;
    padding: 0;
  }

  .lateral-card {
    flex: initial;
  }
}

@media (max-width: 900px) {
  .sidebar {
    width: 230px;
    min-width: 230px;
  }

  .content {
    padding: 18px;
  }

  .global-tabs-host {
    padding: 8px 18px 0;
  }

  .titulo-modulo {
    font-size: 24px;
  }

  .dashboard-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-card-comparativo {
    min-height: auto;
  }

  .dashboard-coluna-direita {
    grid-template-rows: auto;
    align-self: auto;
  }

  .dashboard-grafico {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-height: auto;
  }

  .dashboard-duplo-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-margem-grid {
    grid-template-columns: 1fr;
    height: auto;
  }
}

@media (max-width: 720px) {
  .app {
    flex-direction: column;
    height: auto;
    min-height: 100vh;
  }

  .sidebar {
    width: 100%;
    min-width: 100%;
    border-right: none;
    border-bottom: 1px solid #e5e7eb;
  }

  .sidebar-menu {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 8px;
  }

  .menu-item {
    margin-bottom: 0;
  }

  .main-area {
    width: 100%;
  }

  .content {
    overflow: visible;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .form-grid-modal {
    grid-template-columns: 1fr;
  }

  .geral-grid-empresa {
    grid-template-columns: 1fr;
  }

  .geral-grid-empresa .span-1,
  .geral-grid-empresa .span-2,
  .geral-grid-empresa .span-3,
  .geral-grid-empresa .span-4,
  .geral-grid-empresa .span-5,
  .geral-grid-empresa .span-6 {
    grid-column: span 1;
  }

  .logo-upload-card {
    width: 100%;
    max-width: 320px;
    aspect-ratio: 1 / 1;
    height: auto;
  }

  .grupo-item-compacto {
    width: 100%;
    min-width: 0;
  }

  .geral-cards-rodape {
    grid-template-columns: 1fr;
  }

  .contas-dre-row.row-1,
  .contas-dre-row.row-2 {
    grid-template-columns: 1fr;
  }

  .contas-dre-row .conta-add-btn .btn {
    align-self: stretch;
  }
}

/* =========================================================
   LEADS - KANBAN
========================================================= */

.card-menu-leads {
  border-color: #d6e4ff;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.pagina-leads {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.leads-topo {
  display: flex;
  gap: 16px;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}

.leads-topo-info {
  min-width: 260px;
  flex: 1;
}

.leads-btn-voltar {
  margin-bottom: 10px;
}

.leads-subtitulo {
  margin: -8px 0 0;
  color: #4b5563;
  font-size: 15px;
}

.leads-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(130px, 1fr));
  gap: 10px;
  width: min(470px, 100%);
}

.lead-kpi-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 10px 12px;
}

.lead-kpi-label {
  font-size: 12px;
  color: #64748b;
}

.lead-kpi-valor {
  margin-top: 4px;
  font-size: 24px;
  font-weight: 700;
  color: #0f172a;
  line-height: 1;
}

.leads-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 16px 18px;
}

.leads-card-titulo {
  margin: 0 0 12px;
  font-size: 16px;
  color: #0f172a;
}

.leads-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.leads-campo {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.leads-campo span {
  font-size: 12px;
  font-weight: 600;
  color: #334155;
}

.leads-campo input,
.leads-campo select,
.leads-campo textarea {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  padding: 9px 10px;
  font-size: 14px;
  color: #111827;
}

.leads-campo textarea {
  resize: vertical;
  min-height: 72px;
}

.leads-campo-observacao {
  grid-column: 1 / -1;
}

.leads-form-acoes {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.leads-filtros {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
}

.leads-form-acoes-filtros {
  justify-content: flex-start;
  margin-top: 0;
}

.leads-board-wrap {
  overflow-x: auto;
  padding-bottom: 8px;
}

.leads-board {
  display: grid;
  grid-template-columns: repeat(7, minmax(250px, 1fr));
  gap: 12px;
  min-width: 1820px;
}

.kanban-coluna {
  border: 1px solid #d7dfeb;
  border-radius: 12px;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  min-height: 420px;
}

.kanban-coluna-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  border-bottom: 1px solid #dbe4f0;
}

.kanban-coluna-titulo-wrap {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.kanban-coluna-capa {
  width: 6px;
  min-height: 42px;
  border-radius: 999px;
  flex-shrink: 0;
}

.kanban-coluna-titulo {
  margin: 0;
  font-size: 15px;
  color: #0f172a;
}

.kanban-coluna-descricao {
  margin: 3px 0 0;
  font-size: 12px;
  color: #64748b;
}

.kanban-coluna-qtd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #1e293b;
  font-size: 12px;
  font-weight: 700;
}

.kanban-coluna-dropzone {
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
  transition: background 0.2s ease;
}

.kanban-coluna-dropzone.dragover {
  background: #dbeafe;
}

.lead-coluna-vazia {
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #ffffff;
  color: #64748b;
  font-size: 13px;
  text-align: center;
  padding: 14px 10px;
}

.lead-card {
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #ffffff;
  padding: 10px;
  cursor: grab;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.lead-card.dragging {
  opacity: 0.45;
  transform: rotate(1.2deg);
}

.lead-card-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.lead-card-titulo {
  margin: 0;
  font-size: 14px;
  color: #0f172a;
}

.lead-card-origem {
  font-size: 11px;
  font-weight: 600;
  color: #334155;
  background: #e2e8f0;
  border-radius: 999px;
  padding: 3px 8px;
  white-space: nowrap;
}

.lead-card-meta {
  margin-top: 8px;
  display: grid;
  gap: 4px;
}

.lead-card-meta span {
  font-size: 12px;
  color: #475569;
}

.lead-card-observacao {
  margin: 8px 0 0;
  padding-top: 8px;
  border-top: 1px dashed #e2e8f0;
  font-size: 12px;
  color: #334155;
  line-height: 1.4;
}

.lead-card-acoes {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.lead-card-btn,
.lead-card-link {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
  border-radius: 8px;
  padding: 5px 8px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}

.lead-card-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

@media (max-width: 1200px) {
  .leads-form-grid,
  .leads-filtros {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

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

  .leads-form-grid,
  .leads-filtros {
    grid-template-columns: 1fr;
  }

  .leads-form-acoes {
    justify-content: stretch;
  }

  .leads-form-acoes .btn {
    width: 100%;
  }
}

/* =========================================================
   ATENDIMENTO - HUGGY
========================================================= */

.pagina-atendimento {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: calc(100vh - 180px);
}

.atendimento-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

.atendimento-header-principal {
  display: flex;
  align-items: center;
  gap: 10px;
}

.atendimento-header-principal .titulo-modulo {
  margin: 0;
  line-height: 1.1;
}

.atendimento-status-chip-topo {
  border-radius: 999px;
  border: 1px solid transparent;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.atendimento-status-chip-topo.ativo {
  color: #166534;
  background: #ecfdf5;
  border-color: #86efac;
}

.atendimento-status-chip-topo.inativo {
  color: #92400e;
  background: #fffbeb;
  border-color: #fcd34d;
}

.atendimento-header-acoes {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.atendimento-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 14px;
}

.atendimento-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
  margin-bottom: 12px;
  color: #334155;
  font-size: 14px;
}

.atendimento-status-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.atendimento-status-alerta {
  font-size: 13px;
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 999px;
  padding: 4px 10px;
}

.atendimento-oauth-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
}

.atendimento-oauth-form-integracoes {
  margin-top: 6px;
}

.atendimento-oauth-form label {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.atendimento-oauth-form label span {
  font-size: 12px;
  font-weight: 600;
  color: #334155;
}

.atendimento-oauth-form input {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  padding: 9px 10px;
  font-size: 14px;
  color: #111827;
}

.atendimento-layout {
  display: grid;
  grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
  gap: 0;
  border: 1px solid #d1d7db;
  border-radius: 12px;
  overflow: hidden;
  min-height: 70vh;
}

.atendimento-coluna {
  background: #f0f2f5;
  border: 0;
  border-radius: 0;
  padding: 0;
  min-height: 100%;
}

.atendimento-coluna.conversas {
  border-right: 1px solid #d1d7db;
}

.atendimento-coluna-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 58px;
  padding: 10px 14px;
  background: #f0f2f5;
  border-bottom: 1px solid #d1d7db;
}

.atendimento-coluna-header h3 {
  margin: 0;
  color: #111b21;
  font-size: 16px;
}

.atendimento-coluna-header small {
  color: #667781;
  font-size: 12px;
}

.atendimento-conversas-lista {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-height: calc(70vh - 58px);
  overflow-y: auto;
  background: #ffffff;
}

.atendimento-conversa-item {
  width: 100%;
  text-align: left;
  border: 0;
  border-bottom: 1px solid #f0f2f5;
  background: #ffffff;
  padding: 10px 12px;
  cursor: pointer;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 10px;
}

.atendimento-conversa-item:hover {
  background: #f5f6f6;
}

.atendimento-conversa-item.ativo {
  border-color: transparent;
  background: #f0f2f5;
}

.atendimento-conversa-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #dfe5e7;
  color: #54656f;
  display: grid;
  place-items: center;
  font-weight: 700;
}

.atendimento-conversa-corpo {
  min-width: 0;
}

.atendimento-conversa-topo {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.atendimento-conversa-meta,
.atendimento-conversa-preview {
  font-size: 12px;
  color: #667781;
  margin-top: 4px;
}

.atendimento-conversa-preview {
  color: #3b4a54;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.atendimento-conversa-hora {
  font-size: 11px;
  color: #667781;
  white-space: nowrap;
}

.atendimento-vazio {
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  color: #64748b;
  padding: 12px;
  text-align: center;
  background: #ffffff;
}

.atendimento-mensagens-box {
  min-height: 280px;
  max-height: calc(70vh - 220px);
  overflow-y: auto;
  border: 0;
  border-radius: 0;
  background: #efeae2;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.atendimento-msg {
  border-radius: 10px;
  padding: 8px 10px;
  max-width: 85%;
}

.atendimento-msg.inbound {
  align-self: flex-start;
  background: #ffffff;
  border: 1px solid #e5e7eb;
}

.atendimento-msg.outbound {
  align-self: flex-end;
  background: #d9fdd3;
  color: #111b21;
}

.atendimento-msg.outbound a {
  color: #0a66c2;
}

.atendimento-msg-header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
  opacity: 0.85;
}

.atendimento-msg-text {
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.4;
  white-space: pre-wrap;
}

.atendimento-msg-file {
  margin-top: 6px;
  font-size: 12px;
}

.atendimento-envio-form {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  background: #f0f2f5;
  border-top: 1px solid #d1d7db;
}

.atendimento-envio-form textarea,
.atendimento-envio-form input,
.atendimento-envio-form select {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  padding: 8px 10px;
  font-size: 14px;
  color: #111827;
}

.atendimento-envio-barra {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  background: #ffffff;
  border: 1px solid #d1d7db;
  border-radius: 28px;
  padding: 6px;
}

.atendimento-plus-btn {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #54656f;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.atendimento-plus-btn:hover {
  background: #f0f2f5;
}

.atendimento-envio-barra textarea {
  border: 0;
  background: transparent;
  resize: none;
  outline: none;
  padding: 8px 4px;
  min-height: 24px;
  max-height: 90px;
}

.atendimento-envio-barra .btn {
  border-radius: 999px;
}

.atendimento-send-icon-btn {
  min-width: 38px;
  width: 38px;
  height: 38px;
  padding: 0;
  display: grid;
  place-items: center;
  font-size: 15px;
}

.atendimento-input-oculto {
  display: none !important;
}

.atendimento-anexo-nome {
  min-height: 18px;
  padding-left: 8px;
  font-size: 12px;
  color: #667781;
}

.atendimento-envio-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.atendimento-envio-grid.oculto {
  display: none;
}

.pagina-integracoes {
  max-width: 1120px;
  margin: 0 auto;
}

.integracoes-card-huggy {
  border-color: #d9e4fb;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.integracoes-huggy-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.integracoes-huggy-topo h2 {
  margin: 0;
  color: #0f172a;
}

.integracoes-huggy-subtitulo {
  margin: 4px 0 0;
  color: #475569;
  font-size: 13px;
}

.integracoes-status-chip {
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid transparent;
  white-space: nowrap;
}

.integracoes-status-chip.ok {
  color: #166534;
  background: #ecfdf5;
  border-color: #86efac;
}

.integracoes-status-chip.pendente {
  color: #92400e;
  background: #fffbeb;
  border-color: #fcd34d;
}

.huggy-status-item {
  border: 1px solid #dbe4f0;
  border-radius: 10px;
  background: #f8fafc;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.huggy-status-label {
  font-size: 12px;
  color: #64748b;
}

.huggy-status-value {
  font-size: 14px;
  color: #0f172a;
  line-height: 1.3;
}

.integracoes-huggy-acoes {
  margin-bottom: 10px;
}

.integracoes-huggy-dica {
  margin: 12px 0 8px;
  color: #334155;
  font-size: 13px;
}

.integracoes-huggy-instrucoes {
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
  padding: 10px 12px;
}

.integracoes-huggy-passos {
  margin: 0;
  padding-left: 18px;
  color: #334155;
  display: grid;
  gap: 6px;
  font-size: 14px;
}

.atendimento-oauth-form-integracoes {
  margin-top: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-areas:
    "client_id client_secret redirect_uri redirect_uri"
    "scope scope scope oauth_btn";
}

.atendimento-oauth-form-integracoes label:nth-of-type(1) {
  grid-area: client_id;
}

.atendimento-oauth-form-integracoes label:nth-of-type(2) {
  grid-area: client_secret;
}

.atendimento-oauth-form-integracoes label:nth-of-type(3) {
  grid-area: redirect_uri;
}

.atendimento-oauth-form-integracoes label:nth-of-type(4) {
  grid-area: scope;
}

.atendimento-oauth-form-integracoes button {
  grid-area: oauth_btn;
  width: 100%;
  align-self: stretch;
}

@media (max-width: 1200px) {
  .atendimento-oauth-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .atendimento-layout {
    grid-template-columns: 1fr;
  }

  .atendimento-coluna.conversas {
    border-right: 0;
    border-bottom: 1px solid #d1d7db;
  }

  .atendimento-oauth-form-integracoes {
    grid-template-areas:
      "client_id client_secret"
      "redirect_uri redirect_uri"
      "scope oauth_btn";
  }
}

@media (max-width: 720px) {
  .atendimento-header-principal {
    width: 100%;
    justify-content: space-between;
  }

  .atendimento-layout {
    min-height: auto;
  }

  .atendimento-mensagens-box {
    max-height: 50vh;
  }

  .atendimento-status-grid {
    grid-template-columns: 1fr;
  }

  .integracoes-huggy-topo {
    flex-direction: column;
    align-items: flex-start;
  }

  .atendimento-status-acoes .btn {
    width: 100%;
  }

  .atendimento-status-alerta {
    border-radius: 10px;
    width: 100%;
  }

  .atendimento-oauth-form {
    grid-template-columns: 1fr;
  }

  .atendimento-oauth-form-integracoes {
    grid-template-areas:
      "client_id"
      "client_secret"
      "redirect_uri"
      "scope"
      "oauth_btn";
  }

  .atendimento-envio-grid {
    grid-template-columns: 1fr;
  }

  .atendimento-header-acoes .btn {
    width: 100%;
  }
}

/* -----------------------------
   Autenticacao e Permissoes V1
------------------------------ */
.pagina-login-auth {
  min-height: calc(100vh - 40px);
  display: grid;
  place-items: center;
  padding: 24px;
}

.login-auth-card {
  width: min(460px, 100%);
  background: #ffffff;
  border: 1px solid #dfe5f0;
  border-radius: 14px;
  padding: 24px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.login-auth-card h1 {
  margin: 0 0 8px;
}

.login-auth-card p {
  margin: 0 0 16px;
  color: #52607a;
}

.login-auth-form {
  display: grid;
  gap: 12px;
}

.login-auth-form label {
  display: grid;
  gap: 6px;
}

.login-auth-form input {
  height: 40px;
  border: 1px solid #c7d2e5;
  border-radius: 8px;
  padding: 0 12px;
}

.login-auth-msg {
  margin-top: 12px;
  min-height: 20px;
  color: #1d4ed8;
}

.permissoes-page .tabela {
  overflow-x: auto;
}

.permissoes-page table input[type="text"],
.permissoes-page table input[type="password"],
.permissoes-page table input[type="number"],
.permissoes-page table select {
  min-width: 120px;
}

.permissoes-page .perm-bloco-acoes {
  display: flex;
  justify-content: flex-start;
}

.permissoes-page .perm-cabecalho-secao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.permissoes-page .perm-cabecalho-secao h3 {
  margin: 0;
}

.permissoes-page .perm-btn-add {
  min-width: 36px;
  width: 36px;
  height: 36px;
  padding: 0;
  font-size: 20px;
  line-height: 1;
}

.permissoes-page .perm-acoes-linha {
  display: flex;
  align-items: center;
  gap: 8px;
}

.permissoes-page .btn-icon-editar {
  width: 30px;
  height: 30px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #f3f4f6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.permissoes-page .btn-icon-editar svg {
  width: 15px;
  height: 15px;
  fill: #4b5563;
}

.permissoes-page .btn-trocar-senha {
  background: #1d4ed8;
  color: #ffffff;
  border-color: #1d4ed8;
  padding: 6px 10px;
  font-size: 12px;
}

.dashboard-grid-vendedor {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.cmp-builder {
  display: grid;
  gap: 10px;
}

.cmp-toolbar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.cmp-toolbar-acoes-status {
  justify-content: flex-end;
}

.cmp-lista {
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background: #ffffff;
  overflow: hidden;
}

.cmp-lista-head,
.cmp-lista-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 90px 110px 110px 90px 120px 140px;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  font-size: 12px;
}

.cmp-lista-head {
  background: #eff6ff;
  color: #1e3a8a;
  font-weight: 700;
  border-bottom: 1px solid #dbeafe;
}

.cmp-lista-head-parcelas,
.cmp-lista-row-parcela {
  grid-template-columns: 60px 140px 1fr 140px 140px;
}

.cmp-lista-body {
  max-height: 220px;
  overflow-y: auto;
}

.cmp-lista-row {
  border-bottom: 1px solid #f1f5f9;
}

.cmp-lista-row:last-child {
  border-bottom: none;
}

.cmp-lista-vazia {
  padding: 12px;
  color: #6b7280;
  font-size: 12px;
}

.cmp-acoes {
  display: flex;
  gap: 6px;
  justify-content: flex-end;
}

.cmp-total-itens {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #dbeafe;
  border-radius: 8px;
  background: #f8fbff;
  padding: 8px 10px;
}

.cmp-pagamento-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 8px;
}

.cmp-pagamento-grid .campo {
  grid-column: span 4;
}

.cmp-desconto-tipo {
  max-width: 96px;
  width: fit-content;
}

.cmp-campo-add-parcela {
  display: flex;
  align-items: flex-end;
}

.cmp-campo-add-parcela .cmp-btn-plus {
  min-width: 44px;
  width: 44px;
  padding: 0;
  font-size: 20px;
  line-height: 1;
}

.cmp-item-modal {
  width: min(980px, 96vw);
}

.cmp-btn.desabilitado {
  opacity: 0.6;
  cursor: not-allowed;
}

/* =========================================================
   NF SAIDA - FATURAMENTO
========================================================= */

.nf-saida-modal {
  width: min(1280px, 96vw);
  height: min(900px, 94vh);
}

.nf-saida-layout {
  display: grid;
  grid-template-columns: minmax(300px, 34%) minmax(0, 1fr);
  gap: 10px;
  height: 100%;
}

.nf-saida-card {
  border: 1px solid #dbe1ea;
  border-radius: 10px;
  background: #ffffff;
  padding: 10px;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.nf-saida-card h3 {
  margin: 0 0 8px;
  font-size: 13px;
  color: #111827;
}

.nf-saida-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin-bottom: 8px;
}

.nf-saida-toolbar input {
  min-height: 38px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0 10px;
}

.nf-saida-status {
  font-size: 12px;
  color: #334155;
  margin-bottom: 8px;
}

.nf-saida-resumo {
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #1d4ed8;
  padding: 8px 10px;
  font-size: 12px;
  margin-bottom: 8px;
}

.nf-saida-scroll {
  overflow: auto;
  min-height: 140px;
  max-height: 100%;
}

.nf-saida-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.nf-saida-table th,
.nf-saida-table td {
  border-bottom: 1px solid #e5e7eb;
  padding: 7px 6px;
  font-size: 12px;
  text-align: left;
  vertical-align: top;
}

.nf-saida-table td {
  line-height: 1.35;
}

.nf-saida-table th {
  background: #f8fafc;
  position: sticky;
  top: 0;
  z-index: 1;
}

.nf-row-sel td {
  background: #eef2ff;
}

.nf-saida-table-pedidos th:nth-child(1),
.nf-saida-table-pedidos td:nth-child(1) {
  width: 64px;
  text-align: center;
}

.nf-saida-table-pedidos th:nth-child(2),
.nf-saida-table-pedidos td:nth-child(2) {
  width: auto;
}

.nf-saida-table-pedidos th:nth-child(3),
.nf-saida-table-pedidos td:nth-child(3) {
  width: 130px;
  text-align: right;
  white-space: nowrap;
}

.nf-saida-table-pedidos tbody tr {
  cursor: pointer;
}

.nf-saida-table-pedidos tbody tr:hover td {
  background: #f8fafc;
}

.nf-saida-table-pedidos tbody tr.nf-row-sel:hover td {
  background: #eef2ff;
}

.nf-saida-table-itens th:nth-child(1),
.nf-saida-table-itens td:nth-child(1) {
  width: 42px;
  text-align: center;
}

.nf-saida-table-itens th:nth-child(2),
.nf-saida-table-itens td:nth-child(2) {
  width: auto;
}

.nf-saida-table-itens th:nth-child(3),
.nf-saida-table-itens td:nth-child(3),
.nf-saida-table-itens th:nth-child(4),
.nf-saida-table-itens td:nth-child(4) {
  width: 62px;
  text-align: center;
}

.nf-saida-table-itens th:nth-child(5),
.nf-saida-table-itens td:nth-child(5),
.nf-saida-table-itens th:nth-child(6),
.nf-saida-table-itens td:nth-child(6) {
  width: 95px;
  text-align: right;
  white-space: nowrap;
}

.nf-saida-table-itens th:nth-child(7),
.nf-saida-table-itens td:nth-child(7) {
  width: 98px;
  text-align: center;
}

.nf-item-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 78px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1px;
  border: 1px solid transparent;
}

.nf-item-badge.pendente {
  color: #92400e;
  background: #fef3c7;
  border-color: #fcd34d;
}

.nf-item-badge.completo {
  color: #166534;
  background: #dcfce7;
  border-color: #86efac;
}

.nf-item-pendente td {
  background: #fffdf5;
}

.nf-mini-btn {
  height: 30px;
  padding: 0 10px;
  font-size: 12px;
}

.nf-saida-empty {
  border: 1px dashed #d1d5db;
  border-radius: 8px;
  padding: 10px;
  font-size: 12px;
  color: #475569;
}

.nf-saida-pedido-selecionado-box {
  border-style: solid;
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1e3a8a;
  margin-bottom: 8px;
  line-height: 1.5;
}

.nf-saida-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.nf-tab-btn {
  height: 30px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #ffffff;
  color: #334155;
  padding: 0 10px;
  font-size: 12px;
  cursor: pointer;
}

.nf-tab-btn.ativo {
  background: #1e3a8a;
  color: #ffffff;
  border-color: #1e3a8a;
}

.nf-saida-panels {
  flex: 1;
  min-height: 0;
  overflow: auto;
}

.nf-tab-panel {
  display: none;
}

.nf-tab-panel.ativo {
  display: block;
}

.nf-saida-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.nf-saida-grid-documento {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nf-saida-grid-documento .campo-full {
  grid-column: 1 / -1;
}

.nf-saida-grid .campo input,
.nf-saida-grid .campo select,
.nf-saida-grid .campo textarea {
  width: 100%;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  min-height: 36px;
  padding: 8px 10px;
  font-size: 13px;
}

.nf-saida-grid .campo label {
  font-size: 12px;
  color: #334155;
  margin-bottom: 4px;
  display: block;
}

.nf-saida-grid .campo-full {
  grid-column: 1 / -1;
}

.nf-saida-checks-mov {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding-top: 6px;
}

.nf-saida-check-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #334155;
}

.nf-saida-check-item input[type="checkbox"] {
  width: 16px;
  height: 16px;
  min-width: 16px;
  min-height: 16px;
  margin: 0;
}

.nf-saida-item-fiscal-modal .nf-saida-campo-input-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
}

.nf-saida-item-fiscal-modal .nf-saida-campo-input-wrap input {
  flex: 1;
}

.nf-saida-item-fiscal-modal .nf-saida-btn-campo-acao {
  min-width: 34px;
  width: 34px;
  height: 34px;
  padding: 0;
}

.nf-saida-item-fiscal-modal .nf-saida-campo-aplicar-cadastro {
  padding-top: 2px;
}

.nf-saida-item-fiscal-modal .nf-saida-campo-aplicar-cadastro .nf-saida-check-item {
  gap: 5px;
  font-size: 13px;
}

.nf-saida-item-fiscal-modal .nf-saida-campo-aplicar-cadastro .nf-saida-check-item input[type="checkbox"] {
  width: 14px;
  height: 14px;
  min-width: 14px;
  min-height: 14px;
}

.nf-saida-item-fiscal-overlay {
  z-index: 10020;
}

.nf-saida-item-fiscal-modal {
  width: min(700px, 96vw);
  height: auto;
  max-height: min(640px, 92vh);
}

.nf-saida-hint {
  margin: 0 0 8px;
  font-size: 12px;
  color: #475569;
}

.nf-saida-hidden {
  display: none;
}

.nf-saida-msg {
  margin-top: 8px;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #334155;
}

.nf-saida-msg.erro {
  border-color: #fecaca;
  background: #fef2f2;
  color: #b91c1c;
}

.nf-saida-msg.sucesso {
  border-color: #86efac;
  background: #dcfce7;
  color: #166534;
}

@media (max-width: 1024px) {
  .nf-saida-layout {
    grid-template-columns: 1fr;
  }

  .nf-saida-grid-documento {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.permissoes-page .perm-recurso-label {
  font-weight: 600;
  color: #111827;
}

.permissoes-page .perm-recurso-codigo {
  font-size: 12px;
  color: #64748b;
  margin-top: 2px;
}

.perm-modelo-botoes {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.perm-modelo-acoes-inline {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.form-modal.perm-modal {
  width: min(900px, 96vw);
}

.form-modal.perm-modal .form-modal-title {
  font-size: 16px;
  font-weight: 700;
}

.form-modal.perm-modal .form-modal-body {
  font-size: 13px;
}

.form-modal.perm-modal .filtro-item label,
.form-grid-modal.perm-modal-grid .perm-campo label {
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}

.form-grid-modal.perm-modal-grid .perm-campo input,
.form-grid-modal.perm-modal-grid .perm-campo select {
  height: 32px;
  border-radius: 6px;
  padding: 0 8px;
  font-size: 13px;
}

.form-grid-modal.perm-modal-grid .perm-campo textarea {
  min-height: 72px;
  border-radius: 6px;
  padding: 8px;
  font-size: 13px;
}

.form-grid-modal.perm-modal-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 12px;
}

.form-grid-modal.perm-modal-grid .perm-campo {
  min-width: 0;
}

.form-grid-modal.perm-modal-grid .perm-campo.span-12 {
  grid-column: span 12;
}

.form-grid-modal.perm-modal-grid .perm-campo.span-6 {
  grid-column: span 6;
}

.form-grid-modal.perm-modal-grid .perm-campo.span-3 {
  grid-column: span 3;
}

.form-grid-modal.perm-modal-grid .perm-campo.perm-campo-checkbox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 8px 10px;
  min-height: 40px;
}

.form-grid-modal.perm-modal-grid .perm-campo.perm-campo-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
}

.form-grid-modal.perm-modal-grid .perm-campo.perm-campo-acao-linha {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 6px;
}

.perm-editor-blocos {
  margin-top: 12px;
  display: grid;
  gap: 10px;
}

.perm-grupo-bloco {
  border: 1px solid #dbe3ee;
  border-radius: 10px;
  background: #f8fbff;
  padding: 10px;
}

.perm-grupo-bloco h4 {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 700;
  color: #1e3a8a;
}

.perm-grupo-lista {
  display: grid;
  gap: 8px;
}

.perm-linha-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  padding: 8px 10px;
}

.perm-linha-info {
  min-width: 0;
}

.perm-linha-controle {
  width: 170px;
  flex: 0 0 170px;
}

.perm-linha-controle select {
  width: 100%;
}

@media (max-width: 900px) {
  .form-grid-modal.perm-modal-grid .perm-campo.span-6,
  .form-grid-modal.perm-modal-grid .perm-campo.span-3 {
    grid-column: span 12;
  }

  .perm-linha-item {
    flex-direction: column;
    align-items: stretch;
  }

  .perm-linha-controle {
    width: 100%;
    flex: 1 1 auto;
  }
}
