:root {
  --purple-900: #2D085D;
  --purple-700: #440C8C;
  --purple-600: #5B11BA;
  --purple-500: #6613D0;
  --purple-400: #8E44ED;
  --purple-200: #C6A1F6;
  --purple-100: #E2D0FA;
  --orange:     #FE8F1C;
  --orange-dark:#CB6700;
  --gray-900:   #0b0d19;
  --gray-700:   #34353f;
  --gray-500:   #5f616a;
  --gray-300:   #c0c1c9;
  --gray-100:   #f5f6fc;
  --white:      #ffffff;
  --off-white:  #F5F6FC;
  --green:      #27d780;
  --green-dark: #1fac66;
  --red:        #f90505;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: 'Poppins', sans-serif;
  background: var(--gray-100);
  color: var(--gray-900);
  min-height: 100vh;
}

/* ── HEADER ─────────────────────────────────────── */
header {
  background: linear-gradient(135deg, var(--purple-900) 0%, var(--purple-500) 100%);
  padding: 0 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  box-shadow: 0 2px 12px rgba(102,19,208,.35);
}

.header-brand svg {
  height: 34px;
  width: auto;
}

.header-title {
  font-size: .85rem;
  font-weight: 400;
  color: var(--purple-200);
}

.session-chip {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-width: 280px;
  justify-content: flex-end;
}

.session-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  overflow: hidden;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  flex-shrink: 0;
}

.session-avatar img,
.session-avatar-fallback {
  width: 100%;
  height: 100%;
}

.session-avatar img {
  object-fit: cover;
}

.session-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  font-size: .8rem;
  font-weight: 700;
}

.session-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  text-align: right;
}

.session-user-name {
  color: var(--white);
  font-size: .8rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.session-user-email {
  color: var(--purple-100);
  font-size: .68rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.session-logout-btn {
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: var(--white);
  font-family: 'Poppins', sans-serif;
  font-size: .72rem;
  font-weight: 600;
  border-radius: 999px;
  padding: .45rem .8rem;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease;
}

.session-logout-btn:hover {
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.28);
}

/* ── HEADER RIGHT GROUP ─────────────────────────── */
.header-right {
  display: flex;
  align-items: center;
  gap: 1rem;
}

/* ── LANGUAGE SWITCHER ─────────────────────────── */
.lang-switcher {
  display: flex;
  align-items: center;
  gap: .375rem;
  background: rgba(255,255,255,.1);
  border-radius: 24px;
  padding: .25rem .375rem;
}

.lang-btn {
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: .3rem .6rem;
  border: none;
  border-radius: 18px;
  background: transparent;
  color: rgba(255,255,255,.65);
  font-family: 'Poppins', sans-serif;
  font-size: .72rem;
  font-weight: 500;
  cursor: pointer;
  transition: background .18s, color .18s;
  white-space: nowrap;
}

.lang-btn .flag {
  width: 22px;
  height: 15px;
  border-radius: 2px;
  flex-shrink: 0;
  display: block;
  overflow: hidden;
}

.lang-btn:hover {
  background: rgba(255,255,255,.15);
  color: #ffffff;
}

.lang-btn.active {
  background: rgba(255,255,255,.22);
  color: #ffffff;
  font-weight: 600;
}

/* ── MONTH SELECTOR ─────────────────────────────── */
.month-bar {
  background: var(--purple-700);
  padding: .5rem 2rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}

.month-bar label {
  font-size: .75rem;
  font-weight: 500;
  color: var(--purple-200);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-right: .25rem;
}

.month-btn {
  padding: .35rem .9rem;
  border-radius: 20px;
  border: 1.5px solid transparent;
  background: transparent;
  color: var(--purple-200);
  font-family: 'Poppins', sans-serif;
  font-size: .8rem;
  font-weight: 500;
  cursor: pointer;
  transition: all .2s;
}

.month-btn:hover {
  background: rgba(255,255,255,.1);
  color: var(--white);
}

.month-btn.active {
  background: var(--orange);
  color: var(--white);
  border-color: var(--orange);
  font-weight: 600;
}

/* ── MAIN LAYOUT ────────────────────────────────── */
.container {
  max-width: 1800px;
  margin: 0 auto;
  padding: 2rem;
}

/* ── GROUP TABS ─────────────────────────────────── */
.group-tabs {
  display: flex;
  gap: .5rem;
  margin-bottom: 1.5rem;
  border-bottom: 2px solid var(--purple-100);
  padding-bottom: 0;
}

.group-tab {
  padding: .65rem 1.4rem;
  border: none;
  background: transparent;
  font-family: 'Poppins', sans-serif;
  font-size: .85rem;
  font-weight: 500;
  color: var(--gray-500);
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  transition: all .2s;
  border-radius: 4px 4px 0 0;
}

.group-tab:hover { color: var(--purple-500); }

.group-tab.active {
  color: var(--purple-500);
  border-bottom-color: var(--purple-500);
  font-weight: 600;
}

/* ── SECTION PANEL ──────────────────────────────── */
.panel { display: none; }
.panel.active { display: block; }

/* ── CARD ───────────────────────────────────────── */
.card {
  background: var(--white);
  border-radius: 12px;
  box-shadow: 0 1px 8px rgba(0,0,0,.07);
  overflow: hidden;
}

.card-no-padding {
  padding: 0;
}

.card-header {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--gray-100);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.card-header h2 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--gray-900);
}

.card-meta {
  font-size: .75rem;
  color: var(--gray-500);
}

/* ── TABLE ──────────────────────────────────────── */
.table-wrap { overflow-x: auto; }

table {
  width: 100%;
  border-collapse: collapse;
  font-size: .8rem;
}

thead tr {
  background: var(--purple-900);
  color: var(--white);
}

thead th {
  padding: .75rem 1rem;
  text-align: center;
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .4px;
  text-transform: uppercase;
  white-space: nowrap;
}

thead th:first-child { text-align: left; }

tbody tr {
  border-bottom: 1px solid var(--gray-100);
  transition: background .15s;
}

tbody tr:hover { background: var(--purple-100); }

tbody td {
  padding: .7rem 1rem;
  text-align: right;
  color: var(--gray-700);
  white-space: nowrap;
}

tbody td:first-child {
  text-align: left;
  font-weight: 500;
  color: var(--gray-900);
}

.td-dash { color: var(--gray-300); text-align: center; }

/* Célula de texto secundário em tabela (lider, cargo, bu) */
.td-meta { color: var(--gray-500); font-size: .75rem; }
.td-meta-center { color: var(--gray-500); font-size: .75rem; text-align: center; }

/* Alinhamento de células */
.td-center { text-align: center; }
.td-right  { text-align: right; }
.th-left   { text-align: left; }

/* Grid item que ocupa todas as colunas (loading/empty em kpi-grid) */
.grid-col-full { grid-column: 1 / -1; }

/* ── BADGES ─────────────────────────────────────── */
.badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .2rem .65rem;
  border-radius: 20px;
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .3px;
}

.badge-pendente {
  background: #FFF2E4;
  color: var(--orange-dark);
}

.badge-aprovado {
  background: #d3f7e5;
  color: var(--green-dark);
}

.badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.badge-pendente .badge-dot { background: var(--orange); }
.badge-aprovado .badge-dot { background: var(--green-dark); }

/* ── KPI GRID (REVOPS) ──────────────────────────── */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
  padding: 1.5rem;
}

.kpi-card {
  background: var(--off-white);
  border-radius: 10px;
  padding: 1.1rem 1.25rem;
  border-left: 4px solid var(--purple-500);
  position: relative;
}

.kpi-card.invertido { border-left-color: var(--orange); }

.kpi-name {
  font-size: .75rem;
  font-weight: 600;
  color: var(--gray-500);
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}

.kpi-tag-inv {
  font-size: .65rem;
  background: #FFF2E4;
  color: var(--orange-dark);
  padding: .1rem .4rem;
  border-radius: 4px;
  font-weight: 600;
}

.kpi-values {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.kpi-atg {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--purple-500);
  line-height: 1;
}

.kpi-detail {
  text-align: right;
  font-size: .72rem;
  color: var(--gray-500);
  line-height: 1.6;
}

.kpi-peso {
  font-size: .7rem;
  color: var(--gray-500);
  margin-top: .4rem;
}

.kpi-progress {
  height: 4px;
  background: var(--gray-100);
  border-radius: 2px;
  margin-top: .75rem;
  overflow: hidden;
}

.kpi-progress-bar {
  height: 100%;
  border-radius: 2px;
  background: var(--purple-500);
  transition: width .6s ease;
}

.kpi-card.invertido .kpi-progress-bar { background: var(--orange); }
.kpi-card.invertido .kpi-atg { color: var(--orange-dark); }

/* ── REVOPS RESULT ──────────────────────────────── */
.revops-result {
  margin: 0 1.5rem 1.5rem;
  background: linear-gradient(135deg, var(--purple-900), var(--purple-600));
  border-radius: 10px;
  padding: 1.25rem 1.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--white);
}

.revops-result-label {
  font-size: .8rem;
  font-weight: 500;
  color: var(--purple-200);
  text-transform: uppercase;
  letter-spacing: .5px;
}

.revops-result-value {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

.revops-result-sub {
  font-size: .75rem;
  color: var(--purple-200);
  margin-top: .2rem;
}

/* ── HIGHLIGHT VALUES ───────────────────────────── */
.val-highlight {
  font-weight: 600;
  color: var(--purple-600);
}

.val-orange {
  font-weight: 600;
  color: var(--orange-dark);
}

/* ── EMPTY STATE ────────────────────────────────── */
.empty {
  padding: 3rem;
  text-align: center;
  color: var(--gray-300);
  font-size: .9rem;
}

/* ── LOADING ────────────────────────────────────── */
.loading {
  padding: 3rem;
  text-align: center;
  color: var(--gray-500);
  font-size: .85rem;
}

.spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid var(--purple-200);
  border-top-color: var(--purple-500);
  border-radius: 50%;
  animation: spin .7s linear infinite;
  margin-right: .5rem;
  vertical-align: middle;
}

@keyframes spin { to { transform: rotate(360deg); } }

/* ── NAVEGAÇÃO PORTAL (entre banners e month-bar) ───────── */
.portal-nav-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  padding: 0.5rem 1.5rem;
  background: #f0f2fa;
  border-bottom: 1px solid rgba(102, 19, 208, 0.12);
  font-size: 0.8rem;
}

.portal-nav-label {
  font-weight: 600;
  color: var(--gray-500);
  margin-right: 0.15rem;
}

.portal-nav-sep {
  color: var(--gray-300);
  user-select: none;
  margin: 0 0.15rem;
}

.portal-nav-link {
  color: var(--purple-600);
  text-decoration: none;
  font-weight: 500;
  padding: 0.2rem 0.35rem;
  border-radius: 4px;
  transition: background 0.15s, color 0.15s;
}

.portal-nav-link:hover {
  background: rgba(102, 19, 208, 0.08);
  color: var(--purple-700);
}

.portal-nav-link.is-active {
  color: var(--gray-900);
  font-weight: 600;
  background: rgba(102, 19, 208, 0.12);
  pointer-events: none;
  cursor: default;
}

@media (max-width: 980px) {
  header {
    height: auto;
    min-height: 64px;
    padding: .85rem 1rem;
    gap: .85rem;
    flex-wrap: wrap;
  }

  .header-right {
    min-width: 100%;
    justify-content: space-between;
  }

  .session-chip {
    min-width: 0;
    justify-content: flex-start;
  }

  .lang-btn .label {
    display: none;
  }

  .session-meta {
    text-align: left;
  }
}

/* ── MOBILE: 768px ─────────────────────────────── */
@media (max-width: 768px) {
  header {
    padding: .6rem .85rem;
    gap: .5rem;
  }

  .header-brand svg {
    height: 28px;
  }

  .header-title {
    font-size: .75rem;
  }

  /* Month-bar: scroll horizontal silencioso */
  .month-bar {
    padding: .4rem .75rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
    scrollbar-width: none;
  }

  .month-bar::-webkit-scrollbar { display: none; }

  .month-bar label {
    flex-shrink: 0;
  }

  .month-btn {
    flex-shrink: 0;
    min-height: 36px;
    padding: .5rem .9rem;
  }

  /* Group tabs: scroll horizontal */
  .group-tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
    scrollbar-width: none;
    padding-bottom: 2px;
  }

  .group-tabs::-webkit-scrollbar { display: none; }

  .group-tab {
    flex-shrink: 0;
    padding: .55rem 1rem;
  }

  .container {
    padding: 1.25rem 1rem;
  }
}

/* ── MOBILE: 640px ─────────────────────────────── */
@media (max-width: 640px) {
  .session-meta {
    display: none;
  }

  .lang-switcher {
    display: none;
  }

  .session-logout-btn {
    min-height: 36px;
    padding: .45rem .85rem;
  }

  .portal-nav-bar {
    padding: .4rem .75rem;
    font-size: .75rem;
    gap: .25rem .5rem;
  }

  .kpi-grid {
    grid-template-columns: 1fr;
    padding: 1rem;
  }

  .revops-result {
    margin: 0 1rem 1rem;
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
    padding: 1rem 1.25rem;
  }

  .revops-result-value {
    font-size: 1.6rem;
  }
}

/* ── UTILITÁRIOS COMPARTILHADOS ─────────────────── */

/* Sticky top bar (header + nav + month-bar) */
.sticky-top {
  position: sticky;
  top: 0;
  z-index: 200;
  box-shadow: 0 2px 12px rgba(0,0,0,.35);
}

/* Avatar: oculto por padrão, exibido pelo JS via .avatar-visible */
.session-user-avatar-img {
  display: none;
}
.session-user-avatar-img.avatar-visible {
  display: block;
}

/* Fallback de avatar: oculto quando há foto */
.session-avatar-fallback.avatar-hidden {
  display: none;
}

/* Footer do portal */
.portal-footer {
  text-align: center;
  padding: 1.25rem 2rem;
  font-size: .7rem;
  color: var(--gray-500);
  border-top: 1px solid var(--gray-100);
  margin-top: 2rem;
}

.portal-footer-revops {
  color: var(--gray-500);
}

/* Elementos ocultados por JS (display:none alternado) */
.is-hidden {
  display: none !important;
}

/* Elementos flex ocultados por JS */
.is-hidden-flex {
  display: none !important;
}

/* Card-header com flex-row inline usado em aprovacoes */
.card-header-actions {
  display: flex;
  align-items: center;
  gap: .75rem;
}

/* Stat-card visualizados com opacidade reduzida */
.stat-card-dim {
  opacity: .7;
}

/* Coluna de tabela alinhada à direita (th genérico) */
.th-right {
  text-align: right;
}

/* Seção de política — ciência */
.policy-section-ciencia {
  border-top: 1px solid var(--border, #e5e7eb);
  padding-top: 1.5rem;
  margin-top: 2rem;
}

/* Painel loading inline da política */
.policy-panel-loading {
  font-size: .82rem;
  color: var(--gray-500);
}

/* Margem-top genérica pequena */
.mt-sm {
  margin-top: .75rem;
}

/* Tabela de política com margem-top */
.policy-table-mt {
  margin-top: .75rem;
}

/* Geral: btn export CSV */
.btn-export-csv {
  margin-left: auto;
  background: transparent;
  border: 1.5px solid var(--orange);
  color: var(--orange);
  border-radius: 20px;
  padding: .35rem 1rem;
  font-size: .8rem;
  font-weight: 600;
  font-family: 'Poppins', sans-serif;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .4rem;
  transition: all .2s;
}
.btn-export-csv:hover {
  background: var(--orange);
  color: #fff;
}

/* Geral: admin impersonate bar */
.admin-impersonate-bar {
  display: none;
  background: #1e293b;
  border-bottom: 1px solid #334155;
  padding: .6rem 1.5rem;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.admin-impersonate-bar.is-visible {
  display: flex;
}

.admin-impersonate-label {
  color: #94a3b8;
  font-size: .8rem;
  display: flex;
  align-items: center;
  gap: .5rem;
  cursor: pointer;
  white-space: nowrap;
}

.admin-impersonate-checkbox {
  cursor: pointer;
  accent-color: #f59e0b;
}

.admin-impersonate-select {
  width: 100%;
  background: #0f172a;
  color: #e2e8f0;
  border: 1px solid #334155;
  border-radius: 6px;
  padding: .35rem .75rem;
  font-size: .83rem;
  outline: none;
}

.admin-impersonate-wrap {
  display: none;
  flex: 1;
  min-width: 220px;
  max-width: 420px;
}
.admin-impersonate-wrap.is-visible {
  display: flex;
}

/* Banner impersonação */
.banner-impersonate {
  display: none;
  background: #78350f;
  color: #fde68a;
  font-size: .78rem;
  padding: .45rem 1.5rem;
  align-items: center;
  gap: .5rem;
}
.banner-impersonate.is-visible {
  display: flex;
}

.btn-clear-impersonate {
  margin-left: auto;
  background: none;
  border: none;
  color: #fde68a;
  cursor: pointer;
  font-size: .78rem;
  text-decoration: underline;
}

/* Minha comissão: painel admin */
.admin-panel {
  display: none;
  background: #0f172a;
  border-bottom: 1px solid #1e293b;
  padding: .65rem 1.5rem;
}
.admin-panel.is-visible {
  display: block;
}

.admin-panel-inner {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.admin-panel-label-tag {
  color: #f59e0b;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.admin-panel-toggle-label {
  display: flex;
  align-items: center;
  gap: .5rem;
  color: #94a3b8;
  font-size: .82rem;
  cursor: pointer;
  user-select: none;
}

.admin-impersonate-select-mc {
  width: 100%;
  background: #1e293b;
  color: #e2e8f0;
  border: 1px solid #334155;
  border-radius: 6px;
  padding: .35rem .75rem;
  font-size: .83rem;
  outline: none;
}

/* Banner dev */
.banner-dev {
  display: none;
  background: #1e293b;
  color: #94a3b8;
  font-size: .75rem;
  padding: .5rem 1.5rem;
  align-items: center;
  gap: .5rem;
}
.banner-dev.is-visible {
  display: flex;
}

.banner-dev-icon {
  color: #f59e0b;
}

/* Minha comissão: card-header perfil */
.card-header-perfil {
  flex-direction: column;
  align-items: flex-start;
  gap: .4rem;
}

.perfil-nome-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
}

.perfil-nome-row h2 {
  margin: 0;
}

.perfil-meta-row {
  display: flex;
  gap: 1rem;
  align-items: center;
  flex-wrap: wrap;
}

.perfil-cargo {
  color: var(--gray-400, #9ca3af);
  font-size: .8rem;
}

.perfil-ref {
  color: var(--gray-500);
  font-size: .75rem;
}

/* KPI grid com margem-top */
.kpi-grid-mt {
  margin-top: 1.25rem;
}

/* Resultado / revops-result com margem-top */
.resultado-mt {
  margin-top: 1.5rem;
}

/* Bloco ATG oculto por padrão */
.resultado-atg-bloco {
  display: none;
}
.resultado-atg-bloco.is-visible {
  display: block;
}

/* Seção detalhes */
.secao-bloco {
  display: none;
  margin: 1.5rem;
}
.secao-bloco.is-visible {
  display: block;
}

.secao-bloco-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .82rem;
}

.secao-bloco-titulo {
  margin: 0;
  font-size: .9rem;
  font-weight: 600;
  color: var(--gray-300);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.btn-toggle-detalhes {
  background: none;
  border: 1px solid var(--border, #e5e7eb);
  color: var(--gray-400, #9ca3af);
  border-radius: 6px;
  padding: .25rem .75rem;
  font-size: .75rem;
  cursor: pointer;
}

.detalhes-content {
  display: none;
}
.detalhes-content.is-visible {
  display: block;
}

.detalhes-subtitulo {
  font-size: .82rem;
  color: var(--gray-500);
  margin: 0 0 .82rem;
}

.detalhes-table-wrap {
  overflow-x: auto;
}

/* Tabela de negócios */
.tabela-negocios {
  width: 100%;
  border-collapse: collapse;
  font-size: .82rem;
}

.tabela-negocios thead tr {
  border-bottom: 1px solid var(--border, #e5e7eb);
}

.tabela-negocios th {
  padding: .5rem .75rem;
  color: var(--gray-400, #9ca3af);
  font-weight: 500;
}

.tabela-negocios .th-left { text-align: left; }
.tabela-negocios .th-right { text-align: right; }
.tabela-negocios .th-center { text-align: center; }

/* Seção ciência */
.secao-ciencia-bloco {
  display: none;
  margin: 0 1.5rem 1.5rem;
}
.secao-ciencia-bloco.is-visible {
  display: block;
}

.secao-ciencia-inner {
  border-top: 1px solid var(--border, #e5e7eb);
  padding-top: 1.25rem;
}

.secao-ciencia-titulo {
  margin: 0 0 .4rem;
  font-size: .9rem;
  font-weight: 600;
  color: var(--gray-300);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.secao-ciencia-desc {
  font-size: .82rem;
  color: var(--gray-500);
  margin: 0 0 1rem;
}

.ciencia-status-msg {
  display: none;
}
.ciencia-status-msg.is-visible {
  display: block;
}

.ciencia-actions {
  display: none;
}
.ciencia-actions.is-visible {
  display: block;
}

.ciencia-actions-btns {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  align-items: flex-start;
}

.btn-ciente {
  background: #16a34a;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: .55rem 1.2rem;
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
}

.btn-contestar-toggle {
  background: transparent;
  color: #f59e0b;
  border: 1px solid #f59e0b;
  border-radius: 8px;
  padding: .55rem 1.2rem;
  font-size: .85rem;
  font-weight: 500;
  cursor: pointer;
}

.contestar-form {
  display: none;
  margin-top: 1rem;
  border: 1px solid #92400e;
  border-radius: 8px;
  padding: 1rem;
  background: #1a1008;
}
.contestar-form.is-visible {
  display: block;
}

.contestar-motivo-label {
  font-size: .82rem;
  color: var(--gray-300);
  display: block;
  margin-bottom: .5rem;
}

.contestar-textarea {
  width: 100%;
  background: #f8f9fa;
  color: #111827;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: .5rem .75rem;
  font-size: .82rem;
  resize: vertical;
  box-sizing: border-box;
  font-family: inherit;
}

.contestar-actions {
  display: flex;
  gap: .5rem;
  margin-top: .75rem;
  justify-content: flex-end;
}

.btn-contestar-cancel {
  background: transparent;
  color: var(--gray-400, #9ca3af);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  padding: .4rem .9rem;
  font-size: .8rem;
  cursor: pointer;
}

.btn-contestar-submit {
  background: #92400e;
  color: #fde68a;
  border: none;
  border-radius: 6px;
  padding: .4rem .9rem;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
}

/* Link para política */
.politica-link-wrap {
  display: none;
  margin-top: 1.25rem;
  text-align: center;
}
.politica-link-wrap.is-visible {
  display: block;
}

/* Resumo executivo */
.exec-arr-banner-hidden {
  display: none;
}

.exec-section-mt {
  margin-top: 2rem;
}

.exec-brl-label {
  font-size: .75rem;
  font-weight: 400;
  color: var(--gray-400, #9ca3af);
}

.exec-destaques-wrap {
  display: none;
  margin-top: 2rem;
}
.exec-destaques-wrap.is-visible {
  display: block;
}

/* Geral: revops-result inline */
.revops-result-right {
  text-align: right;
}

/* kpi-atg tamanho reduzido (valorCard) */
.kpi-atg-lg {
  font-size: 1.1rem;
}

/* Linha inelegível na tabela de negócios */
.row-inelegivel {
  opacity: .6;
}

/* Células da tabela de negócios (renderizada via JS) */
.td-negocio      { padding: .45rem .75rem; color: var(--gray-200); }
.td-negocio-num  { padding: .45rem .75rem; text-align: right; color: var(--gray-300); }
.td-negocio-ctr  { padding: .45rem .75rem; text-align: center; }

/* Status inline no painel de ciência */
.ciencia-badge-ciente {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: #14532d;
  color: #bbf7d0;
  border-radius: 8px;
  padding: .55rem 1rem;
  font-size: .85rem;
  font-weight: 600;
}

.ciencia-badge-contestado {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: #78350f;
  color: #fde68a;
  border-radius: 8px;
  padding: .55rem 1rem;
  font-size: .85rem;
  font-weight: 600;
}

.ciencia-badge-fechado {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: #4c1d95;
  color: #ddd6fe;
  border-radius: 8px;
  padding: .55rem 1rem;
  font-size: .85rem;
  font-weight: 600;
}

/* Status span no resultado — variantes de badge por status de ciência */
.badge-resultado-ciente     { background: rgba(20,83,45,.25); color: #4ade80; }
.badge-resultado-ciente     .badge-dot { background: #4ade80; }
.badge-resultado-contestado { background: rgba(120,53,15,.25); color: #fbbf24; }
.badge-resultado-contestado .badge-dot { background: #fbbf24; }
.badge-resultado-fechado    { background: rgba(76,29,149,.25); color: #a78bfa; }
.badge-resultado-fechado    .badge-dot { background: #a78bfa; }

/* Status span na tabela de negócios */
.status-contabilizado { color: #4ade80; font-size: .75rem; }
.status-nf-pendente   { color: #f59e0b; font-size: .75rem; }

/* ── APROVAÇÕES: stat-grid e cards ────────────── */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.stat-card {
  background: var(--white);
  border-radius: 10px;
  padding: 1rem 1.25rem;
  box-shadow: 0 1px 6px rgba(0,0,0,.07);
  display: flex;
  flex-direction: column;
  gap: .25rem;
}

.stat-label {
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .4px;
  color: var(--gray-500);
}

.stat-value {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--gray-900);
}

.stat-card.contestado .stat-value { color: #b45309; }
.stat-card.pendente   .stat-value { color: var(--orange-dark); }
.stat-card.ciente     .stat-value { color: var(--green-dark); }
.stat-card.fechado    .stat-value { color: var(--purple-600); }

/* Badges de aprovação */
.badge-visualizado { background: #e0e7ff; color: #3730a3; }
.badge-ciente      { background: #d3f7e5; color: var(--green-dark); }
.badge-contestado  { background: #fef3c7; color: #92400e; }
.badge-fechado     { background: #ede9fe; color: var(--purple-600); }

/* Botões de aprovação */
.btn-primary {
  background: var(--purple-600);
  color: var(--white);
  border: none;
  border-radius: 8px;
  padding: .55rem 1.25rem;
  font-size: .85rem;
  font-weight: 600;
  font-family: 'Poppins', sans-serif;
  cursor: pointer;
  transition: background .2s;
}
.btn-primary:hover    { background: var(--purple-700); }
.btn-primary:disabled { opacity: .5; cursor: not-allowed; }

.btn-danger {
  background: #7f1d1d;
  color: #fecaca;
  border: none;
  border-radius: 8px;
  padding: .55rem 1.5rem;
  font-size: .85rem;
  font-weight: 600;
  font-family: 'Poppins', sans-serif;
  cursor: pointer;
  transition: background .2s;
}
.btn-danger:hover    { background: #991b1b; }
.btn-danger:disabled { opacity: .5; cursor: not-allowed; }

.btn-sm {
  background: transparent;
  color: var(--gray-500);
  border: 1px solid var(--gray-100);
  border-radius: 6px;
  padding: .25rem .65rem;
  font-size: .72rem;
  font-weight: 500;
  font-family: 'Poppins', sans-serif;
  cursor: pointer;
  transition: all .15s;
}
.btn-sm:hover { background: var(--gray-100); color: var(--gray-900); }

.banner-fechado {
  background: #4c1d95;
  color: #ddd6fe;
  font-size: .82rem;
  padding: .6rem 1.5rem;
  display: none;
  align-items: center;
  gap: .5rem;
  font-weight: 500;
}
.banner-fechado.is-visible {
  display: flex;
}

/* Aviso dados preliminares (dentro do card, acima dos KPIs) */
.aviso-previa {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  background: #fffbeb;
  border-left: 4px solid #f59e0b;
  border-radius: 6px;
  padding: .75rem 1rem;
  margin: 1rem 1.5rem 0;
  font-size: .82rem;
  color: #78350f;
  line-height: 1.5;
}
.aviso-previa-icon {
  font-size: 1rem;
  color: #f59e0b;
  flex-shrink: 0;
  margin-top: .05rem;
}

.motivo-cell {
  max-width: 280px;
  white-space: normal;
  font-size: .75rem;
  color: var(--gray-500);
}

#tabela-wrap td                  { vertical-align: middle; }
#tabela-wrap tr.row-contestado   { background: #fffbeb; }
#tabela-wrap tr.row-contestado:hover { background: #fef3c7; }

/* Link de política de comissão na página minha-comissão */
.politica-link-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .8rem;
  color: var(--gray-500);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  padding: .35rem .9rem;
  text-decoration: none;
  margin: .25rem;
}

/* Demo badge (páginas demo) */
.demo-badge {
  display: inline-block;
  background: #FE8F1C;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: .5rem;
  vertical-align: middle;
  text-transform: uppercase;
}

/* ── MOBILE: 480px ─────────────────────────────── */
@media (max-width: 480px) {
  header {
    padding: .5rem .75rem;
  }

  .header-brand svg {
    height: 24px;
  }

  .container {
    padding: 1rem .75rem;
  }

  table {
    font-size: .75rem;
  }

  thead th {
    padding: .6rem .75rem;
    font-size: .68rem;
  }

  tbody td {
    padding: .55rem .75rem;
  }

  .card-header {
    padding: 1rem 1.1rem;
    flex-direction: column;
    align-items: flex-start;
    gap: .25rem;
  }

  .card-header h2 {
    font-size: .9rem;
  }
}
