/* Pi8 Tecnologia — paleta: azul escuro, branco, cinza */
:root, [data-theme="light"] {
  --pi8-blue-dark: #0d1b2a;
  --pi8-blue-mid: #1b263b;
  --pi8-blue-action: #0d6efd;
  --pi8-blue-action-hover: #0b5ed7;
  /* Ações destrutivas (excluir, estornar): fundo vermelho sólido */
  --pi8-danger: #c82333;
  --pi8-danger-hover: #a71d2a;
  --pi8-gray-bg: #e9ecef;
  --pi8-gray-text: #6c757d;
  --pi8-white: #ffffff;
  --pi8-bg: var(--pi8-gray-bg);
  --pi8-surface: var(--pi8-white);
  --pi8-text: #212529;
  --pi8-border: #dee2e6;
  /* Tipografia padrão Pi8: títulos 14px, conteúdo/inputs/botões 12px */
  --pi8-font-title: 14px;
  --pi8-font-body: 12px;
  /* Mesma faixa útil da navbar + conteúdo */
  --pi8-page-margin: 1.25rem;
  /* Shell tipo painel (sidebar + topbar), alinhado ao finAI */
  --pi8-sidebar-expanded-width: 232px;
  --pi8-sidebar-width: var(--pi8-sidebar-expanded-width);
  --pi8-topbar-height: 56px;
  --pi8-radius-card: 12px;
  --pi8-radius-control: 8px;
  --pi8-table-cell-y: 0.62rem;
  --pi8-table-cell-x: 0.85rem;
}

/* Largura total da viewport com margem lateral uniforme (navbar, main, rodapé). */
.pi8-page-gutter {
  width: 100%;
  max-width: 100%;
  padding-left: var(--pi8-page-margin);
  padding-right: var(--pi8-page-margin);
  box-sizing: border-box;
}

/* container-fluid soma gutter próprio; com pi8 usamos só a margem Pi8. */
.pi8-page-gutter.container-fluid {
  --bs-gutter-x: 0;
}

body.pi8-body {
  font-size: var(--pi8-font-body);
  color: var(--pi8-text, #212529);
  background-color: var(--pi8-bg, var(--pi8-gray-bg));
}

/* Títulos (14px): hierarquia por peso, não por tamanho — alinha com Bootstrap headings */
body.pi8-body h1,
body.pi8-body h2,
body.pi8-body h3,
body.pi8-body h4,
body.pi8-body h5,
body.pi8-body h6,
body.pi8-body .h1,
body.pi8-body .h2,
body.pi8-body .h3,
body.pi8-body .h4,
body.pi8-body .h5,
body.pi8-body .h6,
body.pi8-body .card-title,
body.pi8-body .modal-title,
body.pi8-body .offcanvas-title,
body.pi8-body .accordion-button {
  font-size: var(--pi8-font-title) !important;
  line-height: 1.35;
}

body.pi8-body h1,
body.pi8-body .h1 {
  font-weight: 700;
}

body.pi8-body h2,
body.pi8-body .h2 {
  font-weight: 600;
}

body.pi8-body h3,
body.pi8-body .h3,
body.pi8-body h4,
body.pi8-body .h4 {
  font-weight: 600;
}

body.pi8-body h5,
body.pi8-body .h5,
body.pi8-body h6,
body.pi8-body .h6 {
  font-weight: 600;
}

/* Conteúdo geral, rótulos, botões e campos (12px) */
body.pi8-body .btn,
body.pi8-body .form-control,
body.pi8-body .form-select,
body.pi8-body .form-label,
body.pi8-body label:not(.btn),
body.pi8-body .col-form-label,
body.pi8-body .input-group-text,
body.pi8-body textarea,
body.pi8-body input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.pi8-body .form-check-label {
  font-size: var(--pi8-font-body);
}

body.pi8-body .btn {
  padding: 0.45rem 0.85rem;
  border-radius: var(--pi8-radius-control);
}

body.pi8-body .form-control,
body.pi8-body .form-select {
  padding: 0.45rem 0.65rem;
  border-radius: var(--pi8-radius-control);
}

body.pi8-body .btn-sm,
body.pi8-body .btn-group-sm > .btn {
  font-size: var(--pi8-font-body);
  padding: 0.35rem 0.75rem;
}

body.pi8-body .btn-lg {
  font-size: var(--pi8-font-body);
}

body.pi8-body .form-control-sm,
body.pi8-body .form-select-sm {
  font-size: var(--pi8-font-body);
  padding: 0.4rem 0.65rem;
}

body.pi8-body .small,
body.pi8-body small {
  font-size: var(--pi8-font-body);
}

body.pi8-body .alert {
  font-size: var(--pi8-font-body);
}

body.pi8-body .dropdown-menu,
body.pi8-body .dropdown-item {
  font-size: var(--pi8-font-body);
}

body.pi8-body .list-group-item {
  font-size: var(--pi8-font-body);
}

body.pi8-body .nav-tabs .nav-link {
  font-size: var(--pi8-font-body);
}

body.pi8-body .breadcrumb {
  font-size: var(--pi8-font-body);
}

body.pi8-body .badge {
  font-size: var(--pi8-font-body);
}

body.pi8-body .popover {
  font-size: var(--pi8-font-body);
}

body.pi8-body .lead {
  font-size: var(--pi8-font-body);
}

/* ——— Shell: sidebar fixa + topbar + conteúdo (paleta Pi8) ——— */
.pi8-sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1025;
  background: rgba(13, 27, 42, 0.45);
}

.pi8-sidebar-overlay.is-visible {
  display: block;
}

.pi8-app-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  display: flex;
  flex-direction: column;
  width: var(--pi8-sidebar-expanded-width);
  height: 100vh;
  background-color: var(--pi8-blue-dark);
  color: var(--pi8-white);
  box-shadow: 2px 0 8px rgba(0, 0, 0, 0.12);
  transition: transform 0.22s ease;
}

.pi8-app-sidebar-header {
  flex-shrink: 0;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  justify-content: center;
  align-items: center;
}

.pi8-app-sidebar-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--pi8-white) !important;
  font-size: var(--pi8-font-title);
  font-weight: 600;
}

.pi8-app-sidebar-brand:hover {
  color: var(--pi8-gray-bg) !important;
}

.pi8-app-sidebar-nav {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0.35rem 0 0.65rem;
}

.pi8-app-sidebar .nav-link {
  color: rgba(255, 255, 255, 0.88);
  font-size: var(--pi8-font-body);
  margin: 0.1rem 0.45rem;
  padding: 0.38rem 0.65rem;
  border-left: none;
  border-radius: var(--pi8-radius-control);
}

.pi8-app-sidebar .nav-link:hover {
  background-color: rgba(255, 255, 255, 0.08);
  color: var(--pi8-white);
}

.pi8-app-sidebar .nav-link.active {
  background-color: rgba(255, 255, 255, 0.14);
  color: var(--pi8-white);
  font-weight: 600;
}

/* Submenus expansíveis (CRM / Cadastros) */
.pi8-app-sidebar .pi8-app-subtoggle {
  border: none;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
}

.pi8-app-sidebar .pi8-app-subtoggle.active {
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--pi8-white);
}

.pi8-app-subchev {
  transition: transform 0.2s ease;
  opacity: 0.85;
}

.pi8-app-subtoggle[aria-expanded="true"] .pi8-app-subchev {
  transform: rotate(180deg);
}

.pi8-app-submenu {
  padding: 0.1rem 0 0.25rem;
  margin: 0 0 0 0.4rem;
  border-left: 2px solid rgba(255, 255, 255, 0.14);
}

.pi8-app-sidebar .pi8-app-submenu .nav-link {
  padding: 0.32rem 0.55rem;
  font-size: var(--pi8-font-body);
  border-left: none;
  margin-left: 0;
  border-radius: var(--pi8-radius-control);
}

.pi8-app-sidebar .pi8-app-submenu .nav-link:hover {
  background-color: rgba(255, 255, 255, 0.07);
}

.pi8-app-sidebar .pi8-app-submenu .nav-link.active {
  background-color: rgba(255, 255, 255, 0.16);
  font-weight: 600;
}

.pi8-app-submenu-label {
  font-size: var(--pi8-font-body);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
  padding: 0.55rem 0.6rem 0.15rem;
  list-style: none;
}

.pi8-app-sidebar-footer {
  flex-shrink: 0;
  padding: 0.65rem 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  font-size: var(--pi8-font-body);
}

/* Botão discreto para recolher/expandir sidebar (desktop) */
.pi8-sidebar-collapse-btn {
  position: fixed;
  top: calc(var(--pi8-topbar-height) + 0.65rem);
  left: calc(var(--pi8-sidebar-expanded-width) - 11px);
  z-index: 1045;
  width: 22px;
  height: 22px;
  padding: 0;
  display: none;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: var(--pi8-blue-mid);
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.65rem;
  line-height: 1;
  cursor: pointer;
  opacity: 0.88;
  transition: left 0.22s ease, background-color 0.15s ease, color 0.15s ease, opacity 0.15s ease, border-color 0.15s ease;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}

.pi8-sidebar-collapse-btn:hover {
  opacity: 1;
  color: #fff;
}

body.pi8-shell.pi8-sidebar-collapsed {
  --pi8-sidebar-width: 0px;
}

body.pi8-shell.pi8-sidebar-collapsed .pi8-sidebar-collapse-btn {
  left: 0.65rem;
  background: var(--pi8-white);
  border-color: #ced4da;
  color: var(--pi8-gray-text);
}

body.pi8-shell.pi8-sidebar-collapsed .pi8-sidebar-collapse-btn:hover {
  color: var(--pi8-blue-dark);
  border-color: #adb5bd;
}

.pi8-app-sidebar-user {
  color: rgba(255, 255, 255, 0.85);
  word-break: break-word;
}

.pi8-topbar {
  position: fixed;
  top: 0;
  left: var(--pi8-sidebar-width);
  right: 0;
  z-index: 1035;
  height: var(--pi8-topbar-height);
  background-color: var(--pi8-white);
  border-bottom: 1px solid #dee2e6;
  box-shadow: 0 1px 3px rgba(13, 27, 42, 0.08);
}

.pi8-topbar-inner {
  height: 100%;
  padding-left: var(--pi8-page-margin);
  padding-right: var(--pi8-page-margin);
}

.pi8-topbar-title {
  font-size: var(--pi8-font-title) !important;
  font-weight: 600;
  color: var(--pi8-blue-dark);
}

.pi8-topbar-menu-btn {
  color: var(--pi8-blue-dark) !important;
  text-decoration: none !important;
}

.pi8-topbar-tarefas-btn {
  color: var(--pi8-blue-dark) !important;
}

.pi8-topbar-tarefas-btn:hover,
.pi8-topbar-tarefas-btn:focus-visible {
  color: #0a58ca !important;
}

.pi8-navbar-tarefas-menu {
  min-width: 17rem;
  max-width: min(22rem, calc(100vw - 1.5rem));
  max-height: min(22rem, 70vh);
  overflow-y: auto;
}

.pi8-navbar-tarefa-meta {
  font-size: 0.72rem;
  line-height: 1.3;
  margin-top: 0.15rem;
}

/* Evita overflow horizontal: 100% + margin-left da sidebar somava à largura da janela */
.pi8-main-content.with-sidebar {
  margin-left: var(--pi8-sidebar-width);
  margin-top: var(--pi8-topbar-height);
  min-height: calc(100vh - var(--pi8-topbar-height) - 4rem);
  width: calc(100% - var(--pi8-sidebar-width));
  box-sizing: border-box;
  min-width: 0;
  padding-top: 1.25rem;
  padding-bottom: 1.5rem;
}

footer.pi8-footer-with-sidebar {
  margin-left: var(--pi8-sidebar-width);
  width: calc(100% - var(--pi8-sidebar-width));
  box-sizing: border-box;
  min-width: 0;
}

@media (min-width: 992px) {
  .pi8-sidebar-collapse-btn {
    display: inline-flex;
  }

  body.pi8-shell.pi8-sidebar-collapsed .pi8-app-sidebar {
    transform: translateX(-100%);
    pointer-events: none;
  }

  .pi8-sidebar-overlay {
    display: none !important;
  }
}

@media (max-width: 991.98px) {
  .pi8-app-sidebar {
    transform: translateX(-100%);
    transition: transform 0.2s ease;
  }

  .pi8-app-sidebar.is-open {
    transform: translateX(0);
  }

  .pi8-topbar {
    left: 0;
  }

  .pi8-main-content.with-sidebar {
    margin-left: 0;
    width: 100%;
  }

  footer.pi8-footer-with-sidebar {
    margin-left: 0;
    width: 100%;
  }

  body.pi8-sidebar-open {
    overflow: hidden;
  }

  body.pi8-sidebar-collapsed {
    --pi8-sidebar-width: var(--pi8-sidebar-expanded-width);
  }
}

/* Botões primários e cartões no shell (visual “painel”) */
.pi8-shell .btn-primary {
  background-color: var(--pi8-blue-dark);
  border-color: var(--pi8-blue-dark);
  color: var(--pi8-white);
}

.pi8-shell .btn-primary:hover,
.pi8-shell .btn-primary:focus,
.pi8-shell .btn-primary:active {
  background-color: var(--pi8-blue-mid);
  border-color: var(--pi8-blue-mid);
  color: var(--pi8-white);
}

/* Outline primário alinhado à paleta Pi8 (#0D1B2A), em vez do azul padrão do Bootstrap */
.pi8-shell .btn-outline-primary {
  color: var(--pi8-blue-dark);
  border-color: var(--pi8-blue-dark);
  background-color: transparent;
}

.pi8-shell .btn-outline-primary:hover,
.pi8-shell .btn-outline-primary:focus,
.pi8-shell .btn-outline-primary:active {
  background-color: var(--pi8-blue-dark);
  border-color: var(--pi8-blue-dark);
  color: var(--pi8-white);
}

.pi8-shell .card,
.pi8-shell .pi8-card {
  border-radius: var(--pi8-radius-card);
  box-shadow: 0 1px 4px rgba(13, 27, 42, 0.08);
}

.pi8-title {
  font-size: var(--pi8-font-title) !important;
  font-weight: 600;
  color: var(--pi8-blue-dark);
}

.pi8-subtitle,
.pi8-content {
  font-size: var(--pi8-font-body);
}

.pi8-navbar {
  background-color: var(--pi8-blue-dark) !important;
}

.pi8-navbar .navbar-brand,
.pi8-navbar .nav-link {
  color: var(--pi8-white) !important;
  font-size: var(--pi8-font-body);
}

.pi8-navbar .nav-link:hover {
  color: var(--pi8-gray-bg) !important;
}

.pi8-card {
  border: 1px solid #dee2e6;
  background: var(--pi8-white);
  border-radius: var(--pi8-radius-card);
}

/* Tabelas dentro de cartões Pi8 — altura de linha confortável */
.pi8-card .table > :not(caption) > * > * {
  padding: var(--pi8-table-cell-y) var(--pi8-table-cell-x);
  line-height: 1.45;
  vertical-align: middle;
}

.pi8-card .table.table-sm > :not(caption) > * > * {
  padding: var(--pi8-table-cell-y) var(--pi8-table-cell-x);
}

.pi8-card .table tbody tr:hover > td {
  background-color: #f1f3f5;
}

.pi8-logo {
  max-height: 36px;
  width: auto;
}

.pi8-sidebar-brand-logo {
  max-height: 44px;
  display: block;
}

.pi8-table th,
.pi8-table td {
  font-size: var(--pi8-font-body);
  padding: var(--pi8-table-cell-y) var(--pi8-table-cell-x);
  line-height: 1.45;
  vertical-align: middle;
}

/* table-sm nas listagens Pi8: mantém células confortáveis para leitura */
.pi8-table.table-sm > :not(caption) > * > * {
  padding: var(--pi8-table-cell-y) var(--pi8-table-cell-x);
}

.pi8-table th {
  font-weight: 600;
}

.pi8-table thead th {
  background-color: var(--pi8-blue-dark);
  color: var(--pi8-white);
  border-color: var(--pi8-blue-mid);
  font-weight: 600;
}

.pi8-table tbody tr:hover > td {
  background-color: #f1f3f5;
}

.pi8-row-link {
  cursor: pointer;
}

.crm-customer-row,
.cad-fabricante-row {
  cursor: pointer;
}

.pi8-row-link:hover > td {
  background-color: #e9ecef;
}

li.pi8-row-link:hover {
  background-color: #e9ecef;
}

.pi8-stage-badge {
  color: #fff;
}

.pi8-stage-novo {
  background-color: #6c757d;
}

.pi8-stage-qualificado {
  background-color: #0d6efd;
}

.pi8-stage-proposta {
  background-color: #6f42c1;
}

.pi8-stage-negociacao {
  background-color: #fd7e14;
}

.pi8-stage-ganho {
  background-color: #198754;
}

.pi8-stage-perdido {
  background-color: #dc3545;
}

/* Botões de filtro multiselect com visual igual input */
/* Select compacto em filtros de listagem (ex.: Cadastros / fabricantes) */
.pi8-filter-select-narrow {
  max-width: 8rem;
}

.pi8-filter-select-btn {
  background-color: #fff;
  border: 1px solid #ced4da;
  color: #212529;
}

.pi8-filter-select-btn:hover,
.pi8-filter-select-btn:focus,
.pi8-filter-select-btn:active,
.pi8-filter-select-btn.show {
  background-color: #fff !important;
  border-color: #ced4da !important;
  color: #212529 !important;
}

.row-cols-7 > * {
  flex: 0 0 auto;
  width: 14.285714%;
}

/* Paginação — CRM / Cadastros / listagens (paleta Pi8: cartões + thead) */
.pi8-pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
  padding: 0.65rem 0.85rem;
  background-color: var(--pi8-white);
  border: 1px solid #dee2e6;
  border-radius: var(--pi8-radius-card);
  box-shadow: 0 1px 4px rgba(13, 27, 42, 0.08);
  font-size: var(--pi8-font-body);
  color: #212529;
}

.pi8-pagination .pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  margin-bottom: 0;
}

.pi8-pagination .page-item {
  margin: 0;
}

.pi8-pagination .page-item .page-link {
  position: relative;
  z-index: 1;
  min-width: 2.15rem;
  padding: 0.4rem 0.55rem;
  font-size: var(--pi8-font-body);
  line-height: 1.35;
  text-align: center;
  color: var(--pi8-blue-dark);
  background-color: var(--pi8-white);
  border: 1px solid #dee2e6;
  border-radius: var(--pi8-radius-control);
}

.pi8-pagination .page-item:not(.disabled):not(.active) .page-link:hover {
  background-color: #f8f9fa;
  border-color: #ced4da;
  color: var(--pi8-blue-dark);
}

.pi8-pagination .page-item.active .page-link {
  z-index: 2;
  font-weight: 600;
  color: var(--pi8-white);
  background-color: var(--pi8-blue-dark);
  border-color: var(--pi8-blue-dark);
}

.pi8-pagination .page-item.disabled .page-link {
  color: var(--pi8-gray-text);
  background-color: #f8f9fa;
  border-color: #e9ecef;
  pointer-events: none;
}

.pi8-pagination .page-link:focus-visible {
  outline: 2px solid var(--pi8-blue-action);
  outline-offset: 2px;
}

.pi8-pagination .form-select.form-select-sm {
  font-size: var(--pi8-font-body);
  border-color: #ced4da;
  color: #212529;
}

.pi8-pagination .form-select.form-select-sm:focus {
  border-color: var(--pi8-blue-dark);
  box-shadow: 0 0 0 0.2rem rgba(13, 27, 42, 0.12);
}

.pi8-pagination .text-muted,
.pi8-pagination .small.text-muted {
  color: var(--pi8-gray-text) !important;
}

.pi8-footer {
  font-size: var(--pi8-font-body);
  color: var(--pi8-gray-text);
}

/* Botão primário padrão para ações de formulário/modais */
.pi8-btn-primary-action {
  background-color: var(--pi8-blue-action);
  border-color: var(--pi8-blue-action);
  color: var(--pi8-white);
}

.pi8-btn-primary-action:hover,
.pi8-btn-primary-action:focus,
.pi8-btn-primary-action:active {
  background-color: var(--pi8-blue-action-hover);
  border-color: var(--pi8-blue-action-hover);
  color: var(--pi8-white);
}

/* Botão destrutivo padrão (excluir com fundo vermelho) — alinhar com pi8-btn-primary-action */
.pi8-btn-danger-action {
  background-color: var(--pi8-danger);
  border-color: var(--pi8-danger);
  color: var(--pi8-white);
}

.pi8-btn-danger-action:hover,
.pi8-btn-danger-action:focus,
.pi8-btn-danger-action:active {
  background-color: var(--pi8-danger-hover);
  border-color: var(--pi8-danger-hover);
  color: var(--pi8-white);
}

/* Select2 (tema Bootstrap 5) */
.select2-container--bootstrap-5 .select2-selection,
.select2-container--bootstrap-5 .select2-search__field,
.select2-container--bootstrap-5 .select2-results__option,
.select2-container--bootstrap-5 .select2-selection__placeholder,
.select2-container--bootstrap-5 .select2-selection__rendered {
  font-size: var(--pi8-font-body) !important;
}

.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field {
  height: 31px !important;
  min-height: 31px !important;
  line-height: 23px !important;
  padding: 4px 8px !important;
}

/* FAB mensagens + painel lateral (offcanvas + iframe) */
button.pi8-fab-mensagens {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  width: 56px;
  height: 56px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 1050;
  box-shadow: 0 4px 12px rgba(13, 27, 42, 0.25);
}

button.pi8-fab-mensagens .pi8-fab-mensagens-icon {
  width: 100%;
  height: 100%;
}

button.pi8-fab-mensagens .pi8-fab-mensagens-badge {
  position: absolute;
  top: 2px;
  right: 2px;
  font-size: 0.65rem;
  font-weight: 700;
  min-width: 1.15rem;
  padding: 0.2em 0.35em;
  line-height: 1.1;
  pointer-events: none;
  border: 2px solid var(--pi8-white, #fff);
}

.pi8-mensagens-offcanvas {
  width: min(420px, 100vw);
  max-width: 100%;
}

.pi8-mensagens-offcanvas-body {
  min-height: 0;
}

iframe.pi8-mensagens-iframe {
  min-height: 0;
  height: calc(100vh - 3.5rem);
  max-height: 100%;
}
