/*
 * Rede que Soma — Console 3.0
 * Camada visual exclusiva dos ambientes autenticados.
 * A experiência pública permanece isolada em app.css.
 */

:root {
  --console-navy: #10263f;
  --console-navy-soft: #183650;
  --console-blue: #28649d;
  --console-blue-dark: #184a77;
  --console-teal: #17695a;
  --console-gold: #b77a20;
  --console-ink: #172522;
  --console-muted: #66736f;
  --console-faint: #8d9894;
  --console-paper: #f3f1eb;
  --console-surface: #fffefa;
  --console-surface-alt: #eeece5;
  --console-line: #dcd9d0;
  --console-line-strong: #c7c4bb;
  --console-danger: #a43a32;
  --console-success: #26735d;
  --console-radius: 8px;
  --console-sidebar: 278px;
}

.app-body,
.auth-shell {
  font-family: "Plus Jakarta Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.app-body h1,
.app-body h2,
.app-body h3,
.app-body .brand,
.auth-shell h1,
.auth-shell h2,
.auth-shell .brand {
  font-family: "Manrope", sans-serif;
}

.app-body .brand-copy small,
.auth-shell .brand-copy small {
  font-family: "Plus Jakarta Sans", sans-serif;
}

.app-body {
  color: var(--console-ink);
  background: var(--console-paper);
}

.app-body button,
.app-body input,
.app-body select,
.app-body textarea,
.auth-shell button,
.auth-shell input {
  font-family: inherit;
}

.app-body :focus-visible,
.auth-shell :focus-visible {
  outline: 3px solid rgba(40, 100, 157, .22);
  outline-offset: 2px;
}

/* Navegação e estrutura */
.sidebar {
  width: var(--console-sidebar);
  padding: 0;
  background: var(--console-navy);
  border-right: 1px solid rgba(255, 255, 255, .08);
  color: #c9d2d7;
}

.sidebar-head {
  padding: 27px 22px 22px;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.sidebar .brand {
  padding: 0;
  gap: 12px;
  letter-spacing: -.025em;
}

.sidebar .brand-symbol {
  width: 38px;
  height: 38px;
}

.sidebar .brand-copy {
  font-size: 15px;
  font-weight: 700;
}

.sidebar .brand-copy small {
  margin-top: 6px !important;
  color: #8fa3b1;
  font-size: 7px !important;
  letter-spacing: .17em !important;
  font-weight: 500;
}

.workspace-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 23px;
  color: #91a5b3;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  letter-spacing: .02em;
}

.workspace-badge i,
.live-mark i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #62b99b;
  box-shadow: 0 0 0 3px rgba(98, 185, 155, .12);
}

.sidebar nav {
  gap: 3px;
  padding: 20px 13px;
}

.nav-section {
  padding: 0 11px 10px;
  color: #788e9d;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.sidebar nav a {
  min-height: 54px;
  padding: 8px 11px;
  border: 1px solid transparent;
  border-radius: 6px;
  gap: 12px;
  color: #b8c5cc;
  font-size: 13px;
  font-weight: 500;
  transition: background .16s, color .16s, border-color .16s;
}

.sidebar nav a span {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 2px;
}

.sidebar nav a small {
  color: #758b99;
  font-size: 9px;
  font-weight: 400;
}

.sidebar nav a:hover {
  background: rgba(255, 255, 255, .055);
  color: #fff;
}

.sidebar nav a.active {
  color: var(--console-ink);
  background: #f3f0e8;
  border-color: #f3f0e8;
}

.sidebar nav a.active small {
  color: #68736f;
}

.sidebar nav a .nav-icon {
  width: 18px;
  height: 18px;
  color: #8399a7;
}

.sidebar nav a.active .nav-icon,
.sidebar nav a:hover .nav-icon {
  color: var(--console-blue);
}

.icon-network {
  mask-image: url('/icons/network.svg');
  -webkit-mask-image: url('/icons/network.svg');
}

.icon-reports {
  mask-image: url('/icons/chart-bars.svg');
  -webkit-mask-image: url('/icons/chart-bars.svg');
}

.icon-contacts {
  mask-image: url('/icons/database.svg');
  -webkit-mask-image: url('/icons/database.svg');
}

.icon-users {
  mask-image: url('/icons/shield-check.svg');
  -webkit-mask-image: url('/icons/shield-check.svg');
}

.sidebar-foot {
  margin-top: auto;
  padding: 15px 13px 18px;
  border-top: 1px solid rgba(255, 255, 255, .09);
}

.sidebar-help {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 3px 10px;
  padding: 10px;
  border-radius: 5px;
  background: transparent;
}

.sidebar-help > i,
.security-note > i {
  width: 17px;
  height: 17px;
  flex: none;
  background: currentColor;
  mask: url('/icons/shield-check.svg') center / contain no-repeat;
  -webkit-mask: url('/icons/shield-check.svg') center / contain no-repeat;
}

.sidebar-help p {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  color: #7f94a2;
  font-size: 9px;
  line-height: 1.45;
}

.sidebar-help b {
  color: #b9c7cf;
  font-size: 10px;
  font-weight: 600;
}

.sidebar-logout {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 11px;
  padding: 11px 13px;
  border-radius: 5px;
  color: #9eb0bb;
  font-size: 12px;
  text-align: left;
}

.sidebar-logout:hover {
  color: #fff;
  background: rgba(255, 255, 255, .055);
}

.sidebar-logout i {
  width: 17px;
  height: 17px;
  background: currentColor;
  mask: url('/icons/log-out.svg') center / contain no-repeat;
  -webkit-mask: url('/icons/log-out.svg') center / contain no-repeat;
}

.app-main {
  width: calc(100% - var(--console-sidebar));
  margin-left: var(--console-sidebar);
}

.topbar {
  height: 96px;
  padding: 0 38px;
  background: rgba(243, 241, 235, .94);
  border-bottom: 1px solid var(--console-line);
  backdrop-filter: blur(14px);
}

.topbar-title {
  display: flex;
  flex-direction: column;
}

.breadcrumb {
  color: var(--console-muted);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  letter-spacing: .035em;
}

.breadcrumb i {
  padding: 0 5px;
  color: #a5aaa6;
  font-style: normal;
}

.topbar h1 {
  margin: 7px 0 0;
  color: var(--console-ink);
  font-size: 24px;
  line-height: 1;
  letter-spacing: -.035em;
}

.topbar-context {
  margin-left: auto;
}

.live-mark {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-right: 22px;
  color: var(--console-muted);
  font-size: 10px;
}

.user-chip {
  margin-left: 0;
  padding-left: 22px;
  border-left: 1px solid var(--console-line-strong);
}

.user-chip > span,
.avatar-sm {
  border: 1px solid #c7d6df;
  border-radius: 5px;
  color: var(--console-blue-dark);
  background: #e7eef1;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 10px;
}

.user-chip strong {
  color: var(--console-ink);
  font-size: 12px;
  font-weight: 600;
}

.user-chip small {
  color: var(--console-muted);
  font-size: 9px;
}

.menu-toggle {
  width: 38px;
  height: 38px;
  padding: 9px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  background: var(--console-surface);
}

.menu-toggle span {
  display: block;
  height: 1px;
  margin: 4px 0;
  background: var(--console-ink);
}

.page {
  width: 100%;
  max-width: 1540px;
  padding: 31px 38px 64px;
}

.page-brief {
  display: flex;
  min-height: 42px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 23px;
}

.page-brief > div {
  display: flex;
  align-items: baseline;
  gap: 20px;
}

.page-brief p {
  max-width: 720px;
  margin: 0;
  color: var(--console-muted);
  font-size: 13px;
  line-height: 1.55;
}

.page-brief time,
.section-index {
  color: var(--console-faint);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.page-brief time {
  text-transform: capitalize;
}

/* Ações, etiquetas e mensagens */
.btn {
  min-height: 40px;
  padding: 9px 14px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  transition: color .15s, background .15s, border-color .15s, box-shadow .15s;
}

.btn:hover {
  transform: none;
}

.btn-primary {
  color: #fff;
  background: var(--console-blue-dark);
  border-color: var(--console-blue-dark);
  box-shadow: none;
}

.btn-primary:hover {
  background: #113d63;
  border-color: #113d63;
}

.btn-outline {
  color: #30443f;
  background: var(--console-surface);
  border-color: var(--console-line-strong);
}

.btn-outline:hover {
  background: #eae8e1;
  border-color: #aaa79f;
}

.btn-ghost {
  color: #52605d;
  background: transparent;
  border-color: transparent;
}

.btn-danger {
  color: var(--console-danger);
  background: transparent;
  border-color: #d8b3af;
}

.btn-whatsapp {
  color: #fff;
  background: var(--console-teal);
}

.eyebrow {
  color: var(--console-blue-dark);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: none;
}

.tag {
  padding: 5px 8px;
  border: 1px solid var(--console-line);
  border-radius: 4px;
  color: var(--console-muted);
  background: transparent;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  font-weight: 500;
}

.flash {
  padding: 12px 14px;
  border: 1px solid;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
}

.flash span {
  width: 20px;
  height: 20px;
  border-radius: 4px;
}

.flash-success {
  color: #225b49;
  background: #e9f1eb;
  border-color: #bdd1c3;
}

.flash-error {
  color: #82372f;
  background: #f5e9e6;
  border-color: #dcbfba;
}

/* Métricas e painéis */
.metric-grid {
  overflow: hidden;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-bottom: 18px;
  border: 1px solid var(--console-line);
  border-radius: var(--console-radius);
  background: var(--console-surface);
}

.metric-card {
  min-height: 151px;
  padding: 22px;
  border: 0;
  border-right: 1px solid var(--console-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.metric-card:last-child {
  border-right: 0;
}

.metric-card::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: transparent;
}

.metric-card:hover::after {
  background: var(--console-blue);
}

.metric-icon,
.metric-icon.blue,
.metric-icon.violet,
.metric-icon.orange,
.metric-icon.green {
  top: 19px;
  right: 18px;
  width: auto;
  height: auto;
  border-radius: 0;
  color: #9aa39f;
  background: none;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  font-weight: 600;
}

.metric-card > span {
  color: #52615d;
  font-size: 11px;
  font-weight: 500;
}

.metric-card > strong {
  margin: 17px 0 10px;
  color: var(--console-ink);
  font-family: "Manrope", sans-serif;
  font-size: clamp(29px, 2.5vw, 38px);
  font-weight: 600;
  letter-spacing: -.06em;
  line-height: 1;
}

.metric-card small {
  color: var(--console-faint);
  font-size: 10px;
}

.metric-card small b {
  color: var(--console-success);
}

.dashboard-grid {
  grid-template-columns: minmax(0, 1.75fr) minmax(300px, .9fr);
  gap: 18px;
}

.panel {
  padding: 22px;
  border: 1px solid var(--console-line);
  border-radius: var(--console-radius);
  background: var(--console-surface);
}

.panel-heading {
  align-items: flex-start;
  margin-bottom: 19px;
  padding-bottom: 17px;
  border-bottom: 1px solid #e7e4dc;
}

.panel-heading h2 {
  margin: 5px 0 0;
  color: var(--console-ink);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -.02em;
}

.panel-heading p {
  margin: 5px 0 0;
  color: var(--console-faint);
  font-size: 10px;
  line-height: 1.45;
}

.panel-heading a {
  color: var(--console-blue-dark);
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}

.chart-box {
  height: 274px;
}

.ranking-list > div,
.subleader-list > div,
.compact-recent > div {
  min-height: 55px;
  padding: 9px 0;
  border-bottom-color: #e9e6de;
}

.ranking-list .rank {
  width: 21px;
  color: #8c9692;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
}

.ranking-list p strong,
.subleader-list strong,
.compact-recent strong {
  color: var(--console-ink);
  font-size: 11px;
  font-weight: 600;
}

.ranking-list p small,
.subleader-list small,
.compact-recent small,
.compact-recent time {
  color: var(--console-faint);
  font-size: 9px;
}

.ranking-list > div > b:last-child {
  display: flex;
  flex-direction: column;
  color: var(--console-ink);
  font-family: "Manrope", sans-serif;
  font-size: 13px;
  text-align: right;
}

.ranking-list > div > b:last-child small {
  color: var(--console-faint);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 8px;
  font-weight: 400;
}

.campaign-progress > div {
  grid-template-columns: minmax(160px, 1.1fr) 1fr 44px;
  padding: 14px 0;
  border-bottom-color: #e9e6de;
}

.campaign-progress strong,
.city-list strong {
  color: var(--console-ink);
  font-size: 11px;
  font-weight: 600;
}

.campaign-progress span,
.city-list small {
  color: var(--console-faint);
  font-size: 9px;
}

.campaign-progress b {
  color: var(--console-muted);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  text-align: right;
}

.progress {
  height: 5px;
  border-radius: 0;
  background: #e5e3dc;
}

.progress i {
  border-radius: 0;
  background: var(--console-blue);
}

.city-list > div {
  min-height: 47px;
  padding: 8px 0;
  border-bottom: 1px solid #ebe8e1;
}

.city-list > div:last-child {
  border-bottom: 0;
}

.city-list > div > span {
  width: 58px;
  height: 4px;
  border-radius: 0;
  background: #e4e2db;
}

.city-list i {
  border-radius: 0;
  background: var(--console-teal);
}

/* Barras de filtro e tabelas */
.action-bar,
.network-toolbar,
.report-filter-bar {
  min-height: 64px;
  margin-bottom: 16px;
  padding: 11px 13px;
  border: 1px solid var(--console-line);
  border-radius: 7px;
  background: rgba(255, 254, 250, .72);
}

.action-bar > div strong {
  color: var(--console-ink);
  font-size: 12px;
  font-weight: 600;
}

.action-bar p {
  margin-top: 3px;
  color: var(--console-faint);
  font-size: 10px;
}

.filter-form {
  gap: 7px;
}

.filter-form select,
.context-switcher select,
.network-search input {
  min-height: 40px;
  padding: 9px 34px 9px 11px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: #354943;
  background-color: var(--console-surface);
  font-size: 11px;
  outline: none;
}

.filter-form select:focus,
.context-switcher select:focus,
.network-search input:focus {
  border-color: var(--console-blue);
  box-shadow: 0 0 0 3px rgba(40, 100, 157, .1);
}

.table-panel {
  border: 1px solid var(--console-line);
  border-radius: var(--console-radius);
  background: var(--console-surface);
}

.table-heading {
  min-height: 86px;
  padding: 18px 20px;
}

.table-heading h2 {
  margin: 6px 0 0;
  color: var(--console-ink);
  font-size: 16px;
  font-weight: 600;
}

.table-heading p {
  max-width: 430px;
  color: var(--console-muted);
  font-size: 10px;
  line-height: 1.5;
  text-align: right;
}

.table-heading p b {
  color: #33443f;
}

.responsive-table {
  border-top: 1px solid var(--console-line);
}

table {
  font-variant-numeric: tabular-nums;
}

th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 12px 15px;
  border: 0;
  border-bottom: 1px solid var(--console-line);
  color: #697570;
  background: #efede7;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

td {
  padding: 14px 15px;
  border-bottom-color: #e9e7df;
  color: #4b5b56;
  font-size: 10px;
  line-height: 1.35;
}

tbody tr:hover td {
  background: #f7f5ef;
}

.person-cell strong {
  color: var(--console-ink);
  font-size: 11px;
  font-weight: 600;
}

.person-cell small,
td > small {
  color: var(--console-faint);
  font-size: 9px;
}

.status-pill,
.level-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 7px;
  border: 1px solid #d5d2ca;
  border-radius: 4px;
  color: #626f6b;
  background: transparent;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 8px;
  font-weight: 500;
}

.status-pill.active {
  color: #24604d;
  background: #e9f1eb;
  border-color: #c3d5c8;
}

.level-pill.sub {
  color: #5a576c;
  background: #eeecf2;
  border-color: #d6d2de;
}

.network-total {
  color: var(--console-blue-dark) !important;
}

.icon-btn {
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid var(--console-line-strong);
  border-radius: 4px;
  color: #42534e;
  background: transparent;
  font-size: 9px;
  font-weight: 600;
}

.icon-btn:hover {
  background: var(--console-surface-alt);
}

.table-empty {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 58px 30px;
  color: var(--console-faint);
  font-size: 11px;
}

.table-empty b {
  color: var(--console-ink);
  font-size: 13px;
}

/* Campanhas */
.card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 17px;
}

.campaign-card,
.empty-card {
  border: 1px solid var(--console-line);
  border-radius: var(--console-radius);
  background: var(--console-surface);
  box-shadow: none;
}

.campaign-cover {
  height: 122px;
  align-items: center;
  justify-content: flex-start;
  padding: 20px;
  background: color-mix(in srgb, var(--campaign) 16%, #edeae2);
  border-bottom: 1px solid color-mix(in srgb, var(--campaign) 24%, #d8d5cd);
}

.campaign-cover::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--campaign);
}

.campaign-cover img,
.campaign-cover > .campaign-initials {
  width: 77px;
  height: 77px;
  transform: none;
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 6px;
  background: var(--campaign);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 19px;
}

.campaign-cover > .campaign-number {
  position: absolute;
  right: 16px;
  bottom: 13px;
  display: block;
  width: auto;
  height: auto;
  transform: none;
  border: 0;
  border-radius: 0;
  color: color-mix(in srgb, var(--campaign) 70%, #25342f);
  background: transparent;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 23px;
  font-weight: 600;
}

.campaign-cover > .campaign-status {
  position: absolute;
  top: 13px;
  right: 13px;
  display: flex;
  width: auto;
  height: auto;
  transform: none;
  align-items: center;
  gap: 5px;
  padding: 4px 7px;
  border: 1px solid rgba(32, 54, 47, .15);
  border-radius: 4px;
  color: #4d5d57;
  background: rgba(255, 254, 250, .7);
  font-size: 8px;
  font-weight: 600;
}

.campaign-status i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #89928e;
}

.campaign-status.active i {
  background: var(--console-success);
}

.campaign-card-body {
  padding: 20px;
  text-align: left;
}

.campaign-card-body h2 {
  margin: 0 0 6px;
  color: var(--console-ink);
  font-size: 17px;
  font-weight: 600;
}

.campaign-card-body > p {
  height: 36px;
  margin-bottom: 15px;
  color: var(--console-muted);
  font-size: 11px;
  line-height: 1.55;
}

.mini-stats {
  margin: 0 0 17px;
  padding: 13px 0;
  border-color: #e8e5de;
}

.mini-stats span {
  align-items: flex-start;
  color: var(--console-faint);
  font-size: 8px;
}

.mini-stats span + span {
  padding-left: 16px;
  border-left-color: #e3e0d8;
}

.mini-stats b {
  margin-bottom: 2px;
  color: var(--console-ink);
  font-family: "Manrope", sans-serif;
  font-size: 18px;
  font-weight: 600;
}

.campaign-goal {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
  color: var(--console-faint);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 8px;
}

.campaign-goal b {
  color: var(--console-ink);
}

.campaign-card-body > .progress {
  margin: 0 0 18px;
}

.campaign-card-body > .btn {
  justify-content: space-between;
}

.empty-card {
  min-height: 366px;
}

.empty-card > span,
.empty-state > span {
  width: auto;
  height: auto;
  border-radius: 0;
  color: var(--console-blue-dark);
  background: transparent;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 11px;
}

.empty-card h2,
.empty-state h2 {
  font-size: 18px;
  font-weight: 600;
}

.empty-card p,
.empty-state p {
  max-width: 390px;
  color: var(--console-muted);
  font-size: 11px;
  line-height: 1.55;
}

/* Formulários e janelas */
.modal {
  overflow: auto;
  border: 1px solid #b9b6ae;
  border-radius: 10px;
  color: var(--console-ink);
  background: var(--console-surface);
  box-shadow: 0 30px 70px rgba(15, 29, 27, .28);
}

.modal::backdrop {
  background: rgba(12, 24, 31, .7);
  backdrop-filter: blur(2px);
}

.modal form {
  padding: 25px;
}

.modal-head {
  align-items: flex-start;
  margin: -25px -25px 23px;
  padding: 22px 25px 18px;
  border-bottom: 1px solid var(--console-line);
  background: #f4f2ec;
}

.modal-head h2 {
  margin: 6px 0 0;
  color: var(--console-ink);
  font-size: 20px;
  font-weight: 600;
}

.modal-head p {
  margin: 6px 0 0;
  color: var(--console-muted);
  font-size: 10px;
}

.modal-head button,
.inspector-close,
.network-fullscreen-exit {
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: #485853;
  background: transparent;
}

.modal-actions {
  margin: 23px -25px -25px;
  padding: 16px 25px;
  border-top-color: var(--console-line);
  background: #f4f2ec;
}

.modal-confirm {
  width: min(440px, calc(100% - 30px));
  padding: 27px;
}

.modal-confirm .confirm-marker {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  margin-bottom: 21px;
  border: 1px solid #d8b3af;
  border-radius: 5px;
  color: var(--console-danger);
  background: #f5e9e6;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
}

.modal-confirm h2 {
  margin: 7px 0 9px;
  color: var(--console-ink);
  font-size: 21px;
  font-weight: 600;
}

.modal-confirm > p {
  margin: 0;
  color: var(--console-muted);
  font-size: 11px;
  line-height: 1.6;
}

.modal-confirm > p b {
  color: var(--console-ink);
}

.modal-confirm .modal-actions {
  margin: 24px -27px -27px;
  padding: 16px 27px;
}

.field {
  gap: 7px;
}

.field > span,
.stack-form label {
  color: #344843;
  font-size: 10px;
  font-weight: 600;
}

.field input,
.field select,
.field textarea,
.stack-form input {
  min-height: 43px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: var(--console-ink);
  background: var(--console-surface);
  font-size: 12px;
}

.field textarea {
  line-height: 1.5;
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.stack-form input:focus {
  border-color: var(--console-blue);
  box-shadow: 0 0 0 3px rgba(40, 100, 157, .1);
}

.field > small {
  color: var(--console-faint);
  font-size: 9px;
}

.choice-tabs {
  padding: 3px;
  border: 1px solid var(--console-line);
  border-radius: 6px;
  background: #eeece5;
}

.choice-tabs span {
  border-radius: 4px;
  color: var(--console-muted);
  font-size: 11px;
}

.choice-tabs input:checked + span {
  color: var(--console-blue-dark);
  background: var(--console-surface);
  box-shadow: none;
}

.link-preview {
  padding: 13px;
  border-color: var(--console-line);
  border-radius: 5px;
  background: #f0eee8;
}

.link-preview code {
  color: var(--console-blue-dark);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

/* Portal da liderança */
.leader-welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 17px;
  padding: 0 2px;
}

.leader-welcome > div > span,
.leader-results-heading > div > span {
  color: var(--console-faint);
  font-size: 9px;
  font-weight: 650;
  letter-spacing: .075em;
}

.leader-welcome h2 {
  margin: 5px 0 3px;
  color: var(--console-ink);
  font-size: 23px;
  font-weight: 650;
  letter-spacing: -.035em;
}

.leader-welcome p {
  margin: 0;
  color: var(--console-muted);
  font-size: 11px;
}

.leader-campaign-switcher,
.leader-campaign-name {
  display: flex;
  min-width: 235px;
  flex-direction: column;
  gap: 5px;
  padding: 10px 12px;
  border: 1px solid var(--console-line);
  border-radius: 6px;
  background: var(--console-surface);
}

.leader-campaign-switcher label,
.leader-campaign-name small {
  color: var(--console-faint);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.leader-campaign-switcher select {
  min-height: 35px;
  padding: 7px 30px 7px 9px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: var(--console-ink);
  background: var(--console-surface);
  font-size: 10px;
}

.leader-campaign-name strong {
  overflow: hidden;
  color: var(--console-ink);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.leader-share-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  gap: 24px;
  overflow: hidden;
  margin-bottom: 18px;
  padding: 28px;
  border: 1px solid #264961;
  border-radius: var(--console-radius);
  color: #fff;
  background: linear-gradient(125deg, #10263f 0%, #123b52 100%);
}

.leader-share-card::after {
  content: "";
  position: absolute;
  right: -110px;
  bottom: -165px;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(254, 221, 0, .23);
  border-radius: 50%;
}

.leader-share-main,
.leader-link-panel,
.leader-share-steps {
  position: relative;
  z-index: 1;
}

.leader-primary-action {
  display: inline-flex;
  padding: 5px 8px;
  border: 1px solid rgba(254, 221, 0, .42);
  border-radius: 4px;
  color: #f6df5a;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .075em;
}

.leader-share-main h2 {
  margin: 11px 0 6px;
  font-size: clamp(23px, 2.5vw, 31px);
  font-weight: 650;
  letter-spacing: -.045em;
}

.leader-share-main > p {
  margin: 0;
  color: #b8c8d1;
  font-size: 12px;
  line-height: 1.55;
}

.leader-share-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 19px;
}

.leader-share-actions .btn {
  min-height: 44px;
  padding-inline: 17px;
}

.leader-whatsapp-button {
  color: #fff;
  background: #16834f;
  border-color: #16834f;
}

.leader-whatsapp-button:hover {
  background: #116a41;
  border-color: #116a41;
}

.leader-share-card .btn-primary {
  color: #173b33;
  background: #f4d94d;
  border-color: #f4d94d;
}

.leader-share-card .btn-primary:hover {
  background: #e5ca3d;
  border-color: #e5ca3d;
}

.leader-share-card .btn-outline {
  color: #fff;
  background: rgba(255, 255, 255, .07);
  border-color: rgba(255, 255, 255, .3);
}

.leader-preview-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 15px;
  color: #c6d7df;
  font-size: 10px;
  font-weight: 600;
}

.leader-preview-link:hover {
  color: #fff;
}

.leader-link-panel {
  align-self: center;
  padding: 17px;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 7px;
  background: rgba(4, 25, 40, .32);
}

.leader-link-panel label {
  display: block;
  margin-bottom: 7px;
  color: #9fc1d3;
  font-size: 9px;
  font-weight: 650;
}

.leader-link-panel input {
  width: 100%;
  min-height: 43px;
  padding: 10px 11px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 5px;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 10px;
}

.leader-link-panel > p {
  margin: 7px 0 0;
  color: #9fb2bc;
  font-size: 8.5px;
}

.leader-link-panel .leader-share-feedback {
  min-height: 14px;
  color: #f4d94d;
  font-weight: 650;
}

.leader-share-steps {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 1px 0 -5px;
  padding: 17px 0 0;
  border-top: 1px solid rgba(255, 255, 255, .13);
  list-style: none;
}

.leader-share-steps li {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding-right: 16px;
  color: #c6d5dc;
  font-size: 9.5px;
}

.leader-share-steps li + li {
  padding-left: 16px;
  border-left: 1px solid rgba(255, 255, 255, .12);
}

.leader-share-steps b {
  display: grid;
  width: 24px;
  height: 24px;
  flex: none;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .23);
  border-radius: 50%;
  color: #f4d94d;
  font-size: 9px;
}

.leader-share-steps strong {
  color: #fff;
}

.leader-secondary-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.leader-secondary-heading {
  grid-column: 1 / -1;
  padding: 3px 1px 5px;
}

.leader-secondary-heading > span {
  color: #178252;
  font-size: 8px;
  font-weight: 750;
  letter-spacing: .09em;
}

.leader-secondary-heading h2 {
  margin: 4px 0 3px;
  color: var(--console-ink);
  font-size: 17px;
  font-weight: 650;
}

.leader-secondary-heading p {
  margin: 0;
  color: var(--console-muted);
  font-size: 10px;
}

.leader-alternative-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 13px;
  padding: 18px;
  border: 1px solid var(--console-line);
  border-radius: var(--console-radius);
  background: var(--console-surface);
}

.leader-alternative-index {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  color: #17694c;
  background: #e9f5ef;
  font-size: 9px;
  font-weight: 750;
}

.leader-alternative-card h3 {
  margin: 0 0 3px;
  color: var(--console-ink);
  font-size: 13px;
  font-weight: 650;
}

.leader-alternative-card p {
  margin: 0;
  color: var(--console-muted);
  font-size: 9px;
  line-height: 1.5;
}

.leader-alternative-card > input {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 39px;
  padding: 9px 10px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: #41544c;
  background: #f8faf8;
  font: 9px ui-monospace, SFMono-Regular, Menlo, monospace;
}

.leader-alternative-actions {
  display: flex;
  grid-column: 1 / -1;
  gap: 7px;
}

.leader-alternative-actions .btn {
  min-height: 35px;
  padding: 8px 12px;
  font-size: 9px;
}

.leader-link-unavailable {
  grid-column: 1 / -1;
  padding: 10px;
  border-radius: 5px;
  color: #8a6d1e;
  background: #fff8df;
  font-size: 9px;
}

.leader-recruit-card {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(380px, 1.2fr);
  gap: 24px;
  margin-bottom: 18px;
  padding: 23px;
  border: 1px solid #bcd8ca;
  border-left: 4px solid var(--console-teal);
  border-radius: var(--console-radius);
  background: linear-gradient(110deg, #f4fbf7 0%, var(--console-surface) 65%);
}

.leader-recruit-copy > span {
  color: var(--console-teal);
  font-size: 8px;
  font-weight: 750;
  letter-spacing: .1em;
}

.leader-recruit-copy h2 {
  margin: 6px 0 7px;
  color: var(--console-ink);
  font-size: 19px;
  font-weight: 650;
  letter-spacing: -.025em;
}

.leader-recruit-copy p {
  margin: 0;
  color: var(--console-muted);
  font-size: 10px;
  line-height: 1.6;
}

.leader-recruit-link {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding-left: 23px;
  border-left: 1px solid var(--console-line);
}

.leader-recruit-link label {
  margin-bottom: 7px;
  color: var(--console-muted);
  font-size: 9px;
  font-weight: 650;
}

.leader-recruit-link > input {
  width: 100%;
  min-height: 41px;
  padding: 9px 10px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: #344e44;
  background: #fff;
  font: 9px ui-monospace, SFMono-Regular, Menlo, monospace;
}

.leader-recruit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 9px;
}

.leader-recruit-actions .btn {
  min-height: 36px;
  padding: 8px 12px;
  font-size: 9px;
}

.leader-recruit-link > small {
  margin-top: 9px;
  color: var(--console-faint);
  font-size: 8.5px;
  line-height: 1.45;
}

.modal-campaign {
  width: min(880px, calc(100% - 30px));
}

.campaign-whatsapp-manager {
  margin-top: 24px;
  padding-top: 23px;
  border-top: 1px solid var(--console-line);
}

.campaign-whatsapp-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.campaign-whatsapp-heading h3 {
  margin: 5px 0 4px;
  color: var(--console-ink);
  font-size: 16px;
  font-weight: 650;
}

.campaign-whatsapp-heading p {
  max-width: 560px;
  margin: 0;
  color: var(--console-muted);
  font-size: 9.5px;
  line-height: 1.55;
}

.api-config-status,
.whatsapp-state {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: none;
  padding: 6px 8px;
  border-radius: 20px;
  color: #8a6416;
  background: #fff6d7;
  font-size: 8px;
  font-weight: 700;
}

.api-config-status i,
.whatsapp-state i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.api-config-status.ready,
.whatsapp-state.connected {
  color: #087545;
  background: #e9f7ef;
}

.campaign-whatsapp-list {
  display: grid;
  gap: 7px;
  margin-top: 15px;
}

.campaign-whatsapp-item {
  display: grid;
  grid-template-columns: auto minmax(150px, 1fr) auto auto;
  align-items: center;
  gap: 11px;
  padding: 10px;
  border: 1px solid var(--console-line);
  border-radius: 7px;
  background: #fbfcfb;
}

.whatsapp-device-icon {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #16834f;
  font-size: 10px;
  font-weight: 800;
}

.campaign-whatsapp-item > div:nth-child(2) {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.campaign-whatsapp-item strong {
  color: var(--console-ink);
  font-size: 10px;
}

.campaign-whatsapp-item small {
  overflow: hidden;
  color: var(--console-faint);
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.whatsapp-item-actions {
  display: flex;
  align-items: center;
  gap: 5px;
}

.whatsapp-status-stack {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 4px;
}

.whatsapp-bot-state {
  color: #9b4b46;
  font-size: 7px;
  font-weight: 650;
}

.whatsapp-bot-state.active { color: #087545; }

.whatsapp-item-actions .btn {
  min-height: 30px;
  padding: 6px 9px;
  font-size: 8px;
}

.whatsapp-remove {
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 5px;
  color: #9b4b46;
  background: #fff0ef;
  cursor: pointer;
}

.campaign-whatsapp-empty {
  padding: 16px;
  border: 1px dashed var(--console-line-strong);
  border-radius: 7px;
  color: var(--console-faint);
  font-size: 9px;
  text-align: center;
}

.campaign-whatsapp-add {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  align-items: end;
  gap: 8px;
  margin-top: 11px;
  padding: 12px;
  border-radius: 7px;
  background: #f0f5f2;
}

.campaign-whatsapp-add-auto {
  grid-template-columns: 1fr 1fr auto;
}

.campaign-whatsapp-add label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
}

.campaign-whatsapp-add label > span {
  color: var(--console-muted);
  font-size: 8px;
  font-weight: 650;
}

.campaign-whatsapp-add input {
  width: 100%;
  min-height: 37px;
  padding: 8px 9px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  background: #fff;
  font-size: 9px;
}

.campaign-whatsapp-add .btn {
  min-height: 37px;
  padding-inline: 12px;
  font-size: 8.5px;
}

.campaign-whatsapp-help,
.campaign-whatsapp-feedback {
  margin: 8px 0 0;
  color: var(--console-faint);
  font-size: 8px;
  line-height: 1.5;
}

.campaign-whatsapp-feedback {
  min-height: 13px;
  color: #495f55;
  font-weight: 650;
}

.campaign-whatsapp-feedback[data-type="success"] { color: #087545; }
.campaign-whatsapp-feedback[data-type="error"] { color: #ae3d36; }

/* Central operacional do WhatsApp */
.campaign-whatsapp-entry {
  display: grid;
  grid-template-columns: 35px 1fr auto;
  gap: 10px;
  width: 100%;
  margin: 17px 0 8px;
  padding: 11px;
  border: 1px solid #d7ded8;
  border-radius: 6px;
  color: var(--console-ink);
  background: #f7f9f6;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s, background .15s, transform .15s;
}

.campaign-whatsapp-entry:hover {
  transform: translateY(-1px);
  border-color: #82b49a;
  background: #f0f8f3;
}

.campaign-whatsapp-entry-icon {
  display: grid;
  width: 35px;
  height: 35px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #7b8982;
  font-size: 11px;
  font-weight: 750;
}

.campaign-whatsapp-entry.has-connection .campaign-whatsapp-entry-icon {
  background: #0b8550;
  box-shadow: 0 0 0 4px rgba(11, 133, 80, .1);
}

.campaign-whatsapp-entry > span:nth-child(2) {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
}

.campaign-whatsapp-entry strong {
  color: #263a32;
  font-size: 10px;
  font-weight: 700;
}

.campaign-whatsapp-entry small {
  overflow: hidden;
  margin-top: 2px;
  color: var(--console-muted);
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.campaign-whatsapp-entry > i {
  align-self: center;
  color: #6f8279;
  font-size: 12px;
  font-style: normal;
}

.campaign-config-button {
  margin-top: 0 !important;
}

.campaign-leader-invite-entry {
  display: grid;
  width: 100%;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin: 8px 0;
  padding: 9px 11px;
  border: 1px solid color-mix(in srgb, var(--console-blue) 28%, var(--console-line));
  border-radius: 5px;
  color: var(--console-ink);
  background: color-mix(in srgb, var(--console-blue) 6%, #fffefa);
  text-align: left;
  cursor: pointer;
}

.campaign-leader-invite-icon {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--console-blue-dark);
  font-size: 17px;
}

.campaign-leader-invite-entry > span:nth-child(2) {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.campaign-leader-invite-entry strong { font-size: 10px; }
.campaign-leader-invite-entry small { margin-top: 2px; color: var(--console-muted); font-size: 8px; }
.campaign-leader-invite-entry > i { color: var(--console-blue-dark); font-style: normal; }

.modal-campaign-leader-invite { width: min(620px, calc(100% - 28px)); }
.campaign-leader-invite-content { padding: 4px; }
.campaign-leader-invite-link { margin-top: 20px; }
.campaign-leader-invite-link > label { display: block; margin-bottom: 7px; color: var(--console-muted); font-size: 9px; font-weight: 700; }
.campaign-leader-invite-link > div { display: flex; gap: 8px; }
.campaign-leader-invite-link input { min-width: 0; flex: 1; padding: 12px; border: 1px solid var(--console-line-strong); border-radius: 5px; background: #fffefa; }
.campaign-leader-invite-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }
.campaign-leader-invite-actions .leader-whatsapp-button { color: #fff; background: #168447; }
.campaign-leader-invite-content .share-feedback { min-height: 18px; margin: 8px 0 0; color: var(--console-success); font-size: 9px; text-align: right; }

@media (max-width: 560px) {
  .campaign-leader-invite-link > div,
  .campaign-leader-invite-actions { flex-direction: column; }
  .campaign-leader-invite-actions .btn { width: 100%; }
}

.modal-whatsapp-central {
  width: min(1220px, calc(100% - 28px));
  max-height: 94vh;
  overflow: hidden;
  padding: 0;
  border-color: #b8c2bc;
  background: #f3f5f1;
}

.whatsapp-central {
  display: flex;
  height: min(850px, 92vh);
  min-height: 650px;
  flex-direction: column;
  color: var(--console-ink);
}

.whatsapp-central-header {
  display: flex;
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 21px;
  border-bottom: 1px solid #dce1dc;
  background: #fffefa;
}

.whatsapp-central-title,
.whatsapp-central-title > div,
.whatsapp-central-header-actions {
  display: flex;
  align-items: center;
}

.whatsapp-central-title {
  gap: 13px;
}

.whatsapp-central-title > div {
  align-items: flex-start;
  flex-direction: column;
}

.whatsapp-central-mark {
  display: grid;
  width: 43px;
  height: 43px;
  flex: none;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #0b8550;
  box-shadow: 0 0 0 5px #e7f5ed;
  font-size: 13px;
  font-weight: 750;
}

.whatsapp-central-title h2 {
  margin: 3px 0 1px;
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -.025em;
}

.whatsapp-central-title p {
  margin: 0;
  color: var(--console-muted);
  font-size: 9px;
}

.whatsapp-central-header-actions {
  gap: 14px;
}

.whatsapp-central-header-actions > button {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: #52625b;
  background: #f8f8f4;
  font-size: 19px;
  cursor: pointer;
}

.whatsapp-central-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr)) auto;
  align-items: stretch;
  border-bottom: 1px solid #d8ddd8;
  background: #fafbf8;
}

.whatsapp-central-summary > article {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 68px;
  padding: 12px 17px;
  border-right: 1px solid #e1e5e0;
}

.whatsapp-central-summary article > div {
  display: flex;
  flex-direction: column;
}

.whatsapp-central-summary strong {
  color: #20352c;
  font: 650 18px "Manrope", sans-serif;
}

.whatsapp-central-summary small {
  color: var(--console-muted);
  font-size: 8px;
}

.summary-icon {
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 5px;
  font-size: 9px;
  font-weight: 700;
}

.summary-icon.connected { color: #087545; background: #e5f5ec; }
.summary-icon.bot { color: #245f91; background: #e7f0f7; }
.summary-icon.chats { color: #746017; background: #f8f1ce; }
.summary-icon.errors { color: #a64035; background: #f8e9e6; }

.whatsapp-live-indicator {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0 18px;
  color: #718078;
  font-size: 8px;
  white-space: nowrap;
}

.whatsapp-live-indicator > i,
.whatsapp-polling > i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0b9859;
  box-shadow: 0 0 0 4px rgba(11, 152, 89, .11);
  animation: whatsapp-live 1.8s ease-in-out infinite;
}

@keyframes whatsapp-live {
  50% { opacity: .38; }
}

.whatsapp-central-body {
  display: grid;
  min-height: 0;
  flex: 1;
  grid-template-columns: 270px minmax(0, 1fr);
}

.whatsapp-instance-panel {
  min-height: 0;
  overflow-y: auto;
  padding: 17px 13px;
  border-right: 1px solid #d8ddd8;
  background: #f7f8f5;
}

.whatsapp-section-heading,
.whatsapp-conversation-heading,
.whatsapp-activity-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.whatsapp-section-heading > div,
.whatsapp-conversation-heading > div,
.whatsapp-activity-heading {
  flex-direction: column;
}

.whatsapp-section-heading span,
.whatsapp-conversation-heading span:first-child,
.whatsapp-activity-heading > span {
  color: #718078;
  font-size: 7.5px;
  font-weight: 700;
  letter-spacing: .09em;
}

.whatsapp-section-heading h3,
.whatsapp-activity-heading h3 {
  margin: 3px 0 0;
  font-size: 13px;
  font-weight: 650;
}

.whatsapp-add-toggle {
  display: grid;
  width: 29px;
  height: 29px;
  place-items: center;
  border: 0;
  border-radius: 5px;
  color: #fff;
  background: #0b8550;
  font-size: 17px;
  cursor: pointer;
}

.whatsapp-add-panel {
  margin: 13px 0;
  padding: 12px;
  border: 1px solid #cbd6ce;
  border-radius: 6px;
  background: #fffefa;
  box-shadow: 0 8px 20px rgba(28, 54, 42, .07);
}

.whatsapp-add-panel label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 9px;
  color: #52625a;
  font-size: 8px;
  font-weight: 650;
}

.whatsapp-add-panel label small {
  color: var(--console-faint);
  font-weight: 500;
}

.whatsapp-add-panel input {
  width: 100%;
  min-height: 36px;
  padding: 8px 9px;
  border: 1px solid var(--console-line-strong);
  border-radius: 4px;
  color: var(--console-ink);
  background: #fff;
  font-size: 9px;
}

.whatsapp-add-panel > small {
  display: block;
  margin-top: 8px;
  color: var(--console-faint);
  font-size: 7.5px;
  line-height: 1.45;
}

.whatsapp-instance-all {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  margin: 14px 0 7px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 5px;
  color: #4f6058;
  background: transparent;
  font-size: 9px;
  font-weight: 650;
  cursor: pointer;
}

.whatsapp-instance-all.active,
.whatsapp-instance-all:hover {
  border-color: #c7d8ce;
  color: #176241;
  background: #eaf4ee;
}

.whatsapp-instance-all b {
  display: grid;
  min-width: 21px;
  height: 21px;
  place-items: center;
  border-radius: 20px;
  background: rgba(255, 255, 255, .75);
  font-size: 8px;
}

.whatsapp-instance-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.whatsapp-instance-card {
  overflow: hidden;
  border: 1px solid #d9ded9;
  border-radius: 6px;
  background: #fffefa;
}

.whatsapp-instance-select {
  display: grid;
  width: 100%;
  grid-template-columns: 34px 1fr auto;
  gap: 9px;
  align-items: center;
  padding: 10px;
  border: 0;
  color: var(--console-ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.whatsapp-instance-select.active,
.whatsapp-instance-select:hover {
  background: #f0f7f3;
}

.whatsapp-device-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #89958f;
  font-size: 9px;
  font-weight: 750;
}

.whatsapp-device-icon.connected {
  background: #0b8550;
}

.whatsapp-instance-select > span:nth-child(2) {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.whatsapp-instance-select strong {
  overflow: hidden;
  font-size: 9px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.whatsapp-instance-select small {
  overflow: hidden;
  margin-top: 2px;
  color: var(--console-faint);
  font-size: 7.5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.whatsapp-connection-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ad665e;
}

.whatsapp-connection-dot.connected {
  background: #0c9a5a;
  box-shadow: 0 0 0 3px rgba(12, 154, 90, .1);
}

.whatsapp-instance-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 10px;
  border-top: 1px solid #eceeea;
  color: var(--console-faint);
  background: #fafaf7;
  font-size: 7px;
}

.whatsapp-instance-meta .whatsapp-state {
  font-size: 7px;
}

.whatsapp-instance-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 7px 9px 9px;
  background: #fafaf7;
}

.whatsapp-instance-actions button {
  min-height: 25px;
  padding: 5px 7px;
  border: 1px solid #d3d9d4;
  border-radius: 4px;
  color: #4e6259;
  background: #fff;
  font-size: 7px;
  font-weight: 650;
  cursor: pointer;
}

.whatsapp-instance-actions button.danger {
  margin-left: auto;
  color: #a43c34;
}

.whatsapp-instance-empty,
.whatsapp-conversation-empty,
.whatsapp-chat-empty,
.whatsapp-no-errors {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}

.whatsapp-instance-empty {
  min-height: 175px;
  padding: 20px;
  border: 1px dashed #cbd3cd;
  border-radius: 6px;
  color: var(--console-muted);
}

.whatsapp-instance-empty > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  margin-bottom: 10px;
  border-radius: 50%;
  color: #fff;
  background: #a0aaa5;
  font-size: 10px;
}

.whatsapp-instance-empty strong { font-size: 10px; }
.whatsapp-instance-empty small { max-width: 180px; margin-top: 4px; font-size: 8px; line-height: 1.5; }

.whatsapp-workspace {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  background: #fffefa;
}

.whatsapp-workspace-tabs {
  display: flex;
  min-height: 48px;
  align-items: flex-end;
  gap: 22px;
  padding: 0 19px;
  border-bottom: 1px solid #dde1dc;
  background: #fafbf8;
}

.whatsapp-workspace-tabs button {
  display: flex;
  height: 48px;
  align-items: center;
  gap: 7px;
  padding: 0 2px;
  border: 0;
  border-bottom: 2px solid transparent;
  color: #6d7c75;
  background: transparent;
  font-size: 9px;
  font-weight: 650;
  cursor: pointer;
}

.whatsapp-workspace-tabs button.active {
  border-bottom-color: #0b8550;
  color: #1e3b2f;
}

.whatsapp-workspace-tabs button > span {
  display: grid;
  min-width: 20px;
  height: 19px;
  place-items: center;
  padding: 0 5px;
  border-radius: 12px;
  color: #5e6d66;
  background: #e9ece8;
  font-size: 7px;
}

.whatsapp-tab-panel {
  min-height: 0;
  flex: 1;
}

.whatsapp-inbox {
  display: grid;
  height: 100%;
  min-height: 0;
  grid-template-columns: minmax(250px, 34%) minmax(0, 1fr);
}

.whatsapp-conversation-list-panel {
  min-height: 0;
  overflow: hidden;
  border-right: 1px solid #e0e4df;
  background: #fbfcfa;
}

.whatsapp-conversation-heading {
  min-height: 62px;
  align-items: center;
  padding: 12px 14px;
  border-bottom: 1px solid #e5e8e4;
}

.whatsapp-conversation-heading > div {
  display: flex;
}

.whatsapp-conversation-heading strong {
  margin-top: 3px;
  font-size: 11px;
}

.whatsapp-polling {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #197148 !important;
  letter-spacing: 0 !important;
}

.whatsapp-conversation-list {
  height: calc(100% - 62px);
  overflow-y: auto;
}

.whatsapp-conversation-item {
  display: grid;
  width: 100%;
  grid-template-columns: 35px minmax(0, 1fr);
  gap: 9px;
  padding: 12px 13px;
  border: 0;
  border-bottom: 1px solid #eceeea;
  color: var(--console-ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.whatsapp-conversation-item:hover,
.whatsapp-conversation-item.active {
  background: #eef6f1;
}

.whatsapp-conversation-item.active {
  box-shadow: inset 3px 0 #0b8550;
}

.whatsapp-conversation-avatar {
  display: grid;
  width: 35px;
  height: 35px;
  flex: none;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #2d7355, #0b8550);
  font-size: 8px;
  font-weight: 750;
}

.whatsapp-conversation-copy,
.whatsapp-conversation-name,
.whatsapp-conversation-meta {
  display: flex;
  min-width: 0;
}

.whatsapp-conversation-copy {
  flex-direction: column;
}

.whatsapp-conversation-name {
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.whatsapp-conversation-name strong {
  overflow: hidden;
  font-size: 9px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.whatsapp-conversation-name time {
  color: var(--console-faint);
  font-size: 7px;
}

.whatsapp-conversation-copy > small {
  overflow: hidden;
  margin: 3px 0 5px;
  color: #718078;
  font-size: 7.5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.whatsapp-conversation-meta {
  align-items: center;
  gap: 5px;
  color: var(--console-faint);
}

.whatsapp-conversation-meta > i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #ca9c42;
}

.whatsapp-conversation-meta > i.state-completed { background: #0b9859; }
.whatsapp-conversation-meta > i.state-opted_out { background: #a4564d; }
.whatsapp-conversation-meta small { overflow: hidden; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }

.whatsapp-conversation-empty {
  height: 100%;
  min-height: 230px;
  padding: 25px;
  color: var(--console-muted);
}

.whatsapp-conversation-empty > span { color: #87a395; font-size: 25px; }
.whatsapp-conversation-empty strong { margin-top: 9px; font-size: 10px; }
.whatsapp-conversation-empty small { max-width: 210px; margin-top: 5px; font-size: 8px; line-height: 1.5; }

.whatsapp-chat {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  background-color: #eef0ea;
  background-image: radial-gradient(rgba(55, 83, 69, .1) .7px, transparent .7px);
  background-size: 17px 17px;
}

.whatsapp-chat-empty {
  height: 100%;
  min-height: 360px;
  color: var(--console-muted);
}

.whatsapp-chat-empty > span {
  display: grid;
  width: 53px;
  height: 53px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #8ca398;
  font-size: 19px;
}

.whatsapp-chat-empty h3 { margin: 13px 0 4px; font-size: 14px; }
.whatsapp-chat-empty p { max-width: 300px; margin: 0; font-size: 9px; line-height: 1.55; }

.whatsapp-chat-header {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 10px 15px;
  border-bottom: 1px solid #d8ddd7;
  background: rgba(255, 254, 250, .96);
}

.whatsapp-chat-header > div,
.whatsapp-chat-header > div > span:nth-child(2) {
  display: flex;
  align-items: center;
}

.whatsapp-chat-header > div { gap: 9px; }
.whatsapp-chat-back { display: none; }
.whatsapp-chat-header > div > span:nth-child(2) { align-items: flex-start; flex-direction: column; }
.whatsapp-chat-header strong { font-size: 10px; }
.whatsapp-chat-header small { margin-top: 2px; color: var(--console-muted); font-size: 7.5px; }

.whatsapp-chat-connection {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #8b5a52;
  font-size: 7.5px;
}

.whatsapp-chat-connection > i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #b05b51;
}

.whatsapp-chat-connection.connected { color: #21724d; }
.whatsapp-chat-connection.connected > i { background: #0b9859; }

.whatsapp-chat-messages {
  display: flex;
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  flex-direction: column;
  gap: 7px;
  padding: 16px 19px;
}

.whatsapp-message {
  max-width: min(78%, 530px);
  padding: 9px 10px 6px;
  border: 1px solid #d9ddd7;
  border-radius: 7px 7px 7px 2px;
  background: #fffefa;
  box-shadow: 0 2px 4px rgba(29, 52, 41, .05);
}

.whatsapp-message.outbound {
  align-self: flex-end;
  border-color: #c7dfd0;
  border-radius: 7px 7px 2px 7px;
  background: #dff2e5;
}

.whatsapp-message.failed {
  border-color: #e1b6b0;
  background: #fae9e6;
}

.whatsapp-message p {
  margin: 0;
  color: #283b33;
  font-size: 9px;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.whatsapp-message > span {
  display: block;
  margin-top: 4px;
  color: #7b8982;
  font-size: 6.5px;
  text-align: right;
}

.whatsapp-history-notice {
  align-self: center;
  display: flex;
  max-width: 350px;
  flex-direction: column;
  margin: auto;
  padding: 11px 14px;
  border: 1px solid #d4d8d2;
  border-radius: 6px;
  color: #66746d;
  background: rgba(255, 254, 250, .86);
  text-align: center;
}

.whatsapp-history-notice strong { font-size: 9px; }
.whatsapp-history-notice span { margin-top: 3px; font-size: 7.5px; line-height: 1.5; }

.whatsapp-chat-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  padding: 10px 13px;
  border-top: 1px solid #d8ddd7;
  background: #fffefa;
}

.whatsapp-chat-composer textarea {
  min-height: 42px;
  max-height: 100px;
  resize: vertical;
  padding: 10px 11px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: var(--console-ink);
  background: #fff;
  font-size: 9px;
}

.whatsapp-chat-composer .btn {
  align-self: stretch;
  min-width: 75px;
}

.whatsapp-readonly-notice {
  display: flex;
  flex-direction: column;
  gap: 3px;
  color: #52605a;
  background: #f7f9f6;
}

.whatsapp-readonly-notice strong { color: #263b32; font-size: 9px; }
.whatsapp-readonly-notice span { font-size: 8px; line-height: 1.45; }

.whatsapp-activity-layout {
  display: grid;
  height: 100%;
  min-height: 0;
  overflow: auto;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 18px;
  background: #f5f7f3;
}

.whatsapp-activity-layout > section {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dce1dc;
  border-radius: 7px;
  background: #fffefa;
}

.whatsapp-activity-heading {
  padding: 15px;
  border-bottom: 1px solid #e2e5e0;
}

.whatsapp-activity-heading p {
  margin: 4px 0 0;
  color: var(--console-muted);
  font-size: 8px;
}

.whatsapp-health-list,
.whatsapp-error-list {
  max-height: 480px;
  overflow-y: auto;
  padding: 7px 14px;
}

.whatsapp-health-item {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 11px 0;
  border-bottom: 1px solid #eceeea;
}

.whatsapp-health-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #89958f;
  font-size: 9px;
  font-weight: 750;
}

.whatsapp-health-icon.connected { background: #0b8550; }
.whatsapp-health-item > div:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.whatsapp-health-item strong { font-size: 9px; }
.whatsapp-health-item small { overflow: hidden; margin-top: 3px; color: var(--console-muted); font-size: 7.5px; text-overflow: ellipsis; white-space: nowrap; }
.whatsapp-health-statuses { display: flex; flex-direction: column; gap: 4px; }
.whatsapp-health-statuses span { padding: 4px 6px; border-radius: 10px; color: #8b554f; background: #f7e8e6; font-size: 6.5px; text-align: center; }
.whatsapp-health-statuses span.ok { color: #176543; background: #e6f4eb; }

.whatsapp-error-item {
  display: grid;
  grid-template-columns: 27px 1fr;
  gap: 9px;
  padding: 11px 0;
  border-bottom: 1px solid #eceeea;
}

.whatsapp-error-item > span {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 5px;
  color: #a54138;
  background: #f7e7e4;
  font-size: 10px;
  font-weight: 700;
}

.whatsapp-error-item strong { font-size: 9px; }
.whatsapp-error-item p { margin: 3px 0; color: #78534e; font-size: 8px; line-height: 1.45; overflow-wrap: anywhere; }
.whatsapp-error-item small { color: var(--console-faint); font-size: 7px; }

.whatsapp-no-errors {
  min-height: 250px;
  color: var(--console-muted);
}

.whatsapp-no-errors > span { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; color: #fff; background: #15905a; font-size: 15px; }
.whatsapp-no-errors strong { margin-top: 10px; font-size: 10px; }
.whatsapp-no-errors small { max-width: 230px; margin-top: 4px; font-size: 8px; line-height: 1.5; }
.whatsapp-activity-empty { padding: 30px 15px; color: var(--console-muted); font-size: 9px; text-align: center; }

.whatsapp-content-loading {
  display: flex;
  min-height: 180px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: var(--console-muted);
  font-size: 8px;
}

.whatsapp-content-loading > i {
  width: 15px;
  height: 15px;
  border: 2px solid #cdd6d0;
  border-top-color: #0b8550;
  border-radius: 50%;
  animation: whatsapp-spin .7s linear infinite;
}

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

.whatsapp-central-footer {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 8px 16px;
  border-top: 1px solid #d8ddd8;
  background: #fafbf8;
}

.whatsapp-central-footer > p {
  margin: 0;
  color: var(--console-muted);
  font-size: 7.5px;
  line-height: 1.45;
}

.whatsapp-central-footer .campaign-whatsapp-feedback {
  min-width: 230px;
  color: #176543;
  text-align: right;
}

.modal-whatsapp-qr {
  width: min(440px, calc(100% - 30px));
}

.whatsapp-qr-content {
  position: relative;
  padding: 27px;
  text-align: center;
}

.whatsapp-qr-content > button {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 31px;
  height: 31px;
  border: 0;
  border-radius: 7px;
  background: #f1f3f2;
  cursor: pointer;
}

.whatsapp-qr-content h2 { margin: 6px 0 7px; font-size: 20px; }
.whatsapp-qr-content > p { margin: 0 auto 17px; color: var(--console-muted); font-size: 10px; line-height: 1.55; }
.whatsapp-qr-frame { display: grid; min-height: 260px; place-items: center; border: 1px solid var(--console-line); border-radius: 10px; background: #f7faf8; }
.whatsapp-qr-frame img { width: min(260px, 100%); height: auto; }
.whatsapp-qr-frame span { max-width: 260px; color: var(--console-muted); font-size: 10px; line-height: 1.5; }
.whatsapp-qr-status { display: block; margin-top: 14px; color: #8a6416; font-size: 10px; }
.whatsapp-qr-status.connected { color: #087545; }

.leader-metric-grid .metric-card > span {
  font-size: 12px;
}

.leader-goal-card {
  margin-bottom: 18px;
  padding: 21px 23px;
  border: 1px solid var(--console-line);
  border-radius: var(--console-radius);
  background: var(--console-surface);
}

.leader-goal-heading,
.leader-goal-footer,
.leader-results-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.leader-goal-heading span {
  color: var(--console-muted);
  font-size: 9px;
  font-weight: 600;
}

.leader-goal-heading h2 {
  margin: 4px 0 0;
  color: var(--console-ink);
  font-size: 18px;
  font-weight: 650;
}

.leader-goal-heading > strong {
  color: var(--console-teal);
  font-size: 12px;
}

.leader-goal-progress {
  height: 9px;
  margin: 15px 0;
  overflow: hidden;
  border-radius: 10px;
  background: #e4e2db;
}

.leader-goal-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--console-teal), #d0b83c);
}

.leader-goal-footer > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}

.leader-goal-footer span {
  color: var(--console-muted);
  font-size: 9px;
}

.leader-goal-footer span b {
  color: var(--console-ink);
  font-size: 11px;
}

.leader-results-heading {
  margin: 27px 0 13px;
  padding: 0 2px;
}

.leader-results-heading h2 {
  margin: 4px 0 0;
  color: var(--console-ink);
  font-size: 18px;
  font-weight: 650;
}

.leader-results-heading > small {
  color: var(--console-faint);
  font-size: 9px;
}

.leader-empty-chart {
  display: flex;
  height: 274px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  color: var(--console-faint);
  background: #f5f3ed;
  text-align: center;
}

.leader-empty-chart strong {
  color: var(--console-ink);
  font-size: 12px;
}

.leader-empty-chart span {
  font-size: 9px;
}

/* Relatórios e território */
.state-cloud > div {
  grid-template-columns: 35px 1fr 38px;
  padding: 10px 0;
  border-bottom: 1px solid #ebe8e1;
}

.state-cloud span,
.state-cloud b {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
}

.state-cloud i {
  height: 4px;
  border-radius: 0;
  background: linear-gradient(90deg, var(--console-blue) var(--value), #e5e3dc var(--value));
}

.territory-layout {
  grid-template-columns: minmax(0, 1fr) 225px;
  gap: 25px;
}

.rj-map,
.rj-map.leaflet-container {
  border: 1px solid var(--console-line);
  border-radius: 5px;
  background: #e7ebea;
  box-shadow: none;
}

.map-legend {
  color: var(--console-muted);
  font-size: 10px;
  line-height: 1.55;
}

.map-legend i {
  height: 6px;
  border-radius: 0;
  background: linear-gradient(90deg, #e2e8e7, #3976a8, #b56a30);
}

.map-legend small {
  color: var(--console-faint);
  font-size: 9px;
}

.map-info-card,
.territory-tooltip {
  border-radius: 5px !important;
  background: rgba(16, 38, 63, .95) !important;
  box-shadow: 0 8px 24px rgba(16, 38, 63, .18) !important;
}

.leader-performance > div {
  min-height: 49px;
  border-bottom-color: #e9e6de;
}

.leader-performance .performance-head {
  margin: 0;
  color: var(--console-muted);
  background: #efede7;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 8px;
}

.topic-grid {
  gap: 0;
  border: 1px solid var(--console-line);
}

.topic-grid > div {
  border: 0;
  border-right: 1px solid var(--console-line);
  border-radius: 0;
}

.topic-grid > div:last-child {
  border-right: 0;
}

.topic-grid > div > span {
  border-radius: 4px;
  color: var(--console-blue-dark);
  background: #e8edef;
  font-family: "Plus Jakarta Sans", sans-serif;
}

.topic-grid i {
  height: 2px;
  background: var(--console-blue);
}

/* Mapa hierárquico */
.network-toolbar,
.report-filter-bar {
  gap: 10px;
}

.network-search {
  max-width: 390px;
}

.canvas-controls {
  overflow: hidden;
  border-color: var(--console-line-strong);
  border-radius: 5px;
  background: var(--console-surface);
}

.canvas-controls button {
  min-height: 39px;
  border-right-color: var(--console-line);
  color: #40524c;
  background: transparent;
  font-size: 10px;
}

.canvas-controls button:hover {
  background: var(--console-surface-alt);
}

.network-summary {
  padding: 15px 18px;
  border-color: var(--console-line);
  border-radius: 7px;
  background: var(--console-surface);
}

.campaign-dot {
  width: 5px;
  border-radius: 0;
}

.network-summary p strong {
  color: var(--console-ink);
  font-size: 14px;
  font-weight: 600;
}

.network-summary dt {
  color: var(--console-faint);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 8px;
}

.network-summary dd {
  color: var(--console-ink);
  font-family: "Manrope", sans-serif;
  font-size: 17px;
  font-weight: 600;
}

.network-summary .network-hint {
  display: flex;
  flex-direction: column;
  color: var(--console-faint);
  font-size: 9px;
}

.network-summary .network-hint b {
  color: #4c5c57;
  font-weight: 600;
}

.network-workspace {
  grid-template-columns: minmax(0, 1fr) 305px;
  border-color: var(--console-line-strong);
  border-radius: var(--console-radius);
  box-shadow: none;
}

.network-viewport {
  background-color: #efeee9;
  background-image: radial-gradient(#bdc3bf 1px, transparent 1px);
  background-size: 24px 24px;
}

.network-edge {
  stroke: #9eaaa7;
  stroke-width: 1.5;
}

.network-node {
  border-color: #c9cec9;
  border-radius: 6px;
  color: var(--console-ink);
  background: var(--console-surface);
  box-shadow: 0 4px 12px rgba(25, 42, 38, .07);
  transition: border-color .15s, box-shadow .15s, transform .15s;
}

.network-node:hover,
.network-node.selected {
  transform: translateY(-1px);
  border-color: var(--console-blue);
  box-shadow: 0 7px 18px rgba(24, 74, 119, .13);
}

.network-node.campaign-node {
  border: 1px solid #244966;
  color: #fff;
  background: var(--console-navy-soft);
}

.node-head > i {
  border-radius: 4px;
  color: var(--console-blue-dark);
  background: #e6ecee;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
}

.node-head strong {
  font-size: 11px;
  font-weight: 600;
}

.node-head small,
.node-metrics small {
  color: var(--console-faint);
  font-size: 8px;
}

.node-metrics {
  border-top-color: #e6e4dc;
}

.node-metrics b {
  font-family: "Manrope", sans-serif;
  font-size: 12px;
  font-weight: 600;
}

.network-inspector {
  padding: 23px;
  border-left-color: var(--console-line);
  background: #f8f6f0;
}

.inspector-empty > span {
  width: auto;
  height: auto;
  border-radius: 0;
  color: var(--console-blue-dark);
  background: transparent;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 10px;
}

.inspector-empty h2,
.network-inspector h2 {
  color: var(--console-ink);
  font-size: 17px;
  font-weight: 600;
}

.inspector-empty p,
.inspector-role {
  color: var(--console-muted);
  font-size: 10px;
}

.network-inspector dl > div {
  border-bottom-color: #e2dfd7;
}

.network-inspector dt {
  color: var(--console-muted);
  font-size: 9px;
}

.network-inspector dd {
  color: var(--console-ink);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 10px;
}

/* Login */
.auth-body {
  background: var(--console-paper);
}

.auth-shell {
  grid-template-columns: minmax(480px, 1.08fr) minmax(420px, .92fr);
  color: var(--console-ink);
}

.auth-story {
  min-height: 100vh;
  padding: 42px clamp(44px, 7vw, 105px);
  color: #fff;
  background-color: var(--console-navy);
  background-image:
    linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
  background-size: 52px 52px;
}

.auth-story::after {
  display: none;
}

.auth-story .brand {
  position: relative;
  z-index: 1;
  gap: 12px;
}

.auth-story .brand-copy {
  font-size: 15px;
}

.auth-story .brand-copy small {
  color: #8fa9b8;
}

.auth-message {
  position: absolute;
  top: 50%;
  right: clamp(44px, 7vw, 105px);
  left: clamp(44px, 7vw, 105px);
  z-index: 1;
  max-width: 680px;
  transform: translateY(-50%);
}

.auth-index {
  color: #8fb0c2;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  letter-spacing: .13em;
}

.auth-story h1 {
  max-width: 650px;
  margin: 23px 0 20px;
  font-size: clamp(40px, 4.7vw, 66px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.052em;
}

.auth-story .auth-message p {
  max-width: 540px;
  margin: 0;
  color: #b9cad3;
  font-size: 15px;
  line-height: 1.65;
}

.auth-proof {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid rgba(255, 255, 255, .16);
}

.auth-proof span {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 18px 15px 0 0;
  color: #aebfc8;
  font-size: 10px;
}

.auth-proof b {
  color: #68879a;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
}

.auth-panel {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 45px clamp(35px, 7vw, 100px);
  background: var(--console-paper);
}

.auth-card {
  width: min(405px, 100%);
}

.auth-card-head {
  margin-bottom: 30px;
}

.auth-access {
  color: var(--console-blue-dark);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .12em;
}

.auth-card h2 {
  margin: 12px 0 9px;
  color: var(--console-ink);
  font-size: 31px;
  font-weight: 600;
  letter-spacing: -.04em;
}

.auth-card-head p {
  max-width: 360px;
  margin: 0;
  color: var(--console-muted);
  font-size: 12px;
  line-height: 1.55;
}

.auth-shell .stack-form {
  gap: 18px;
}

.auth-shell .stack-form label {
  gap: 8px;
  font-size: 11px;
}

.auth-shell .stack-form input {
  min-height: 48px;
  padding: 12px 13px;
  background: #fffefa;
  font-size: 13px;
}

.auth-shell .password-wrap button {
  top: 7px;
  right: 7px;
  min-height: 34px;
  padding: 7px 9px;
  border: 0;
  border-left: 1px solid var(--console-line);
  border-radius: 0;
  color: var(--console-blue-dark);
  background: transparent;
  font-size: 9px;
  font-weight: 600;
}

.btn-login {
  min-height: 49px;
  justify-content: space-between;
  margin-top: 5px;
  padding-inline: 16px;
}

.security-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--console-line);
  color: var(--console-muted);
  text-align: left;
}

.security-note span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 9px;
}

.security-note b {
  color: #3f514b;
  font-size: 10px;
}

.auth-support {
  position: absolute;
  right: 30px;
  bottom: 24px;
  left: 30px;
  color: var(--console-faint);
  font-size: 9px;
  text-align: center;
}

.leadership-invite-shell {
  grid-template-columns: minmax(430px, .85fr) minmax(600px, 1.15fr);
}

.leadership-invite-story .auth-message strong {
  color: #fff;
}

.leadership-invite-proof {
  position: relative;
  z-index: 2;
}

.leadership-invite-panel {
  align-items: flex-start;
  overflow-y: auto;
  padding-block: 38px;
}

.leadership-invite-card {
  width: min(680px, 100%);
}

.leadership-invite-card .auth-card-head {
  margin-bottom: 22px;
}

.leader-invite-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.leader-invite-form .field {
  min-width: 0;
}

.leader-invite-form .full {
  grid-column: 1 / -1;
}

.leader-invite-form .field > span {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
}

.leader-invite-form .field > span small {
  color: var(--console-faint);
  font-size: 8px;
  font-weight: 500;
}

.leader-invite-form .field input,
.leader-invite-form .field select {
  min-height: 45px;
  padding: 11px 12px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: var(--console-ink);
  background: #fffefa;
  font-size: 12px;
}

.leader-invite-form .field input:focus,
.leader-invite-form .field select:focus {
  border-color: var(--console-blue);
  box-shadow: 0 0 0 3px rgba(20, 86, 160, .1);
}

.leader-invite-form .consent {
  padding: 3px 0;
}

.leader-invite-form .consent span {
  color: var(--console-muted);
  font-size: 9px;
  line-height: 1.55;
}

.leader-invite-form .consent a,
.leader-invite-login a {
  color: var(--console-blue-dark);
  font-weight: 650;
  text-decoration: underline;
}

.existing-account-note {
  margin: -2px 0 0;
  padding: 9px 11px;
  border-left: 3px solid #d3b834;
  color: #6d6338;
  background: #fff9de;
  font-size: 8.5px;
  line-height: 1.5;
}

.invite-form-error {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 17px;
  padding: 11px 12px;
  border: 1px solid #f4c7c2;
  border-radius: 5px;
  color: #9b2c22;
  background: #fff2f0;
  font-size: 10px;
  font-weight: 600;
}

.invite-form-error span {
  display: grid;
  width: 21px;
  height: 21px;
  flex: none;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #b84034;
}

.leader-invite-login {
  margin-top: 17px;
  color: var(--console-muted);
  font-size: 9px;
  text-align: center;
}

/* Responsividade */
@media (max-width: 1180px) {
  .metric-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .metric-card:nth-child(2) {
    border-right: 0;
  }

  .metric-card:nth-child(-n + 2) {
    border-bottom: 1px solid var(--console-line);
  }

  .card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .leader-share-card {
    grid-template-columns: 1fr;
  }

  .campaign-whatsapp-add {
    grid-template-columns: 1fr 1fr;
  }

  .campaign-whatsapp-add-auto {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 1100px) {
  .network-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  .network-viewport {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 960px) {
  .auth-shell {
    grid-template-columns: 1fr;
  }

  .auth-story {
    min-height: 470px;
    padding: 36px 8%;
  }

  .auth-story h1 {
    max-width: 760px;
    font-size: clamp(39px, 7vw, 59px);
  }

  .auth-panel {
    min-height: 620px;
  }

  .leadership-invite-panel {
    min-height: 0;
  }
}

@media (max-width: 820px) {
  .sidebar {
    width: var(--console-sidebar);
  }

  .app-main {
    width: 100%;
    margin-left: 0;
  }

  .topbar {
    height: 82px;
    padding: 0 20px;
  }

  .topbar-context {
    display: none;
  }

  .page {
    padding: 24px 18px 52px;
  }

  .page-brief > div {
    display: block;
  }

  .page-brief .section-index {
    display: block;
    margin-bottom: 7px;
  }

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

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

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

@media (max-width: 620px) {
  .topbar {
    height: 72px;
    padding: 0 13px;
  }

  .topbar h1 {
    margin-top: 4px;
    font-size: 19px;
  }

  .breadcrumb {
    display: none;
  }

  .user-chip {
    padding-left: 12px;
  }

  .page {
    padding: 18px 12px 45px;
  }

  .page-brief {
    margin-bottom: 16px;
  }

  .page-brief time {
    display: none;
  }

  .metric-grid,
  .metric-grid-three {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .metric-card,
  .metric-card:nth-child(2) {
    min-height: 126px;
    border-right: 0;
    border-bottom: 1px solid var(--console-line);
  }

  .metric-card:last-child {
    border-bottom: 0;
  }

  .metric-card:nth-child(3):last-child {
    grid-column: auto;
  }

  .metric-card > strong {
    font-size: 30px;
  }

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

  .action-bar,
  .report-filter-bar,
  .network-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .action-bar .btn,
  .report-filter-bar > .btn,
  .network-search,
  .network-actions {
    width: 100%;
  }

  .filter-form {
    width: 100%;
  }

  .filter-form select {
    width: 100%;
    min-width: 100%;
  }

  .table-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .table-heading p {
    text-align: left;
  }

  .panel {
    padding: 17px;
  }

  .campaign-progress > div {
    grid-template-columns: 1fr 42px;
  }

  .campaign-progress > div > .progress {
    grid-column: 1 / -1;
  }

  .leader-welcome {
    align-items: stretch;
    flex-direction: column;
    gap: 13px;
  }

  .leader-campaign-switcher,
  .leader-campaign-name {
    width: 100%;
    min-width: 0;
  }

  .leader-share-card {
    gap: 20px;
    padding: 22px 18px;
  }

  .leader-share-actions {
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .leader-share-actions .btn {
    width: 100%;
  }

  .leader-share-steps {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .leader-share-steps li,
  .leader-share-steps li + li {
    padding: 0;
    border-left: 0;
  }

  .leader-secondary-links {
    grid-template-columns: 1fr;
  }

  .campaign-whatsapp-heading,
  .campaign-whatsapp-item {
    align-items: stretch;
    grid-template-columns: auto 1fr;
  }

  .campaign-whatsapp-heading { flex-direction: column; }
  .campaign-whatsapp-item .whatsapp-status-stack,
  .campaign-whatsapp-item .whatsapp-item-actions { grid-column: 2; }
  .campaign-whatsapp-item .whatsapp-status-stack { align-items: flex-start; }
  .campaign-whatsapp-add { grid-template-columns: 1fr; }
  .campaign-whatsapp-add-auto { grid-template-columns: 1fr; }

  .leader-goal-heading,
  .leader-goal-footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .leader-goal-footer .btn {
    width: 100%;
  }

  .modal form {
    padding: 18px;
  }

  .modal-head {
    margin: -18px -18px 20px;
    padding: 19px 18px 16px;
  }

  .modal-actions {
    margin: 20px -18px -18px;
    padding: 14px 18px;
  }

  .modal-actions .btn-danger {
    width: 100%;
    margin-right: 0;
  }

  .auth-story {
    min-height: 430px;
    padding: 28px 24px;
  }

  .auth-message {
    right: 24px;
    left: 24px;
  }

  .auth-story h1 {
    font-size: 39px;
  }

  .auth-story .auth-message p {
    font-size: 13px;
  }

  .auth-proof span {
    font-size: 8px;
  }

  .auth-panel {
    min-height: 570px;
    padding: 48px 22px 75px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar,
  .btn,
  .network-node {
    transition: none;
  }
}

/* Inteligência eleitoral */
.icon-intelligence {
  mask-image: url('/icons/chart-bars.svg');
  -webkit-mask-image: url('/icons/chart-bars.svg');
}

.icon-reports {
  mask-image: url('/icons/layout-dashboard.svg');
  -webkit-mask-image: url('/icons/layout-dashboard.svg');
}

.electoral-brief {
  align-items: center;
}

.electoral-source {
  flex: none;
  padding: 6px 9px;
  border: 1px solid var(--console-line);
  border-radius: 4px;
  color: var(--console-muted);
  background: rgba(255, 254, 250, .65);
  font-size: 9px;
  font-weight: 600;
}

.electoral-reference-note {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: -8px 0 18px;
  padding: 9px 11px;
  border: 1px solid #dedbd2;
  border-radius: 5px;
  color: var(--console-muted);
  background: #f5f3ed;
  font-size: 8.5px;
  line-height: 1.45;
}

.electoral-reference-note strong {
  color: #3c5049;
  font-weight: 650;
}

.electoral-filter-bar {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 18px;
  padding: 13px;
  border: 1px solid var(--console-line);
  border-radius: var(--console-radius);
  background: rgba(255, 254, 250, .76);
}

.electoral-filter-form {
  display: flex;
  flex: 1;
  align-items: flex-end;
  gap: 8px;
  min-width: 0;
}

.electoral-filter-form > label,
.electoral-filter-form .electoral-candidate-field {
  display: flex;
  flex: 0 1 150px;
  flex-direction: column;
  gap: 6px;
  min-width: 105px;
}

.electoral-filter-form .electoral-candidate-field {
  flex: 1 1 235px;
  min-width: 180px;
}

.electoral-filter-form > .electoral-reference-field {
  flex-basis: 185px;
}

.electoral-filter-form > label > span,
.electoral-filter-form .electoral-candidate-field > label {
  color: var(--console-muted);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.electoral-filter-form select {
  width: 100%;
  min-height: 40px;
  padding: 9px 30px 9px 10px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: #354943;
  background: var(--console-surface);
  font-size: 10px;
  outline: none;
}

.electoral-filter-form select:focus {
  border-color: var(--console-blue);
  box-shadow: 0 0 0 3px rgba(40, 100, 157, .1);
}

.candidate-combobox {
  position: relative;
  width: 100%;
}

.candidate-combobox-input {
  width: 100%;
  min-height: 40px;
  padding: 9px 30px 9px 10px;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  color: #354943;
  background-color: var(--console-surface);
  background-image: linear-gradient(45deg, transparent 50%, #74817d 50%), linear-gradient(135deg, #74817d 50%, transparent 50%);
  background-position: calc(100% - 14px) 17px, calc(100% - 10px) 17px;
  background-repeat: no-repeat;
  background-size: 4px 4px, 4px 4px;
  font: inherit;
  font-size: 10px;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

.candidate-combobox-input::-webkit-search-cancel-button {
  margin-right: 7px;
}

.candidate-combobox-input:focus {
  border-color: var(--console-blue);
  box-shadow: 0 0 0 3px rgba(40, 100, 157, .1);
}

.candidate-combobox-input::placeholder {
  color: #89948f;
}

.candidate-combobox-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% + 5px);
  right: 0;
  left: 0;
  max-height: 310px;
  overflow: auto;
  padding: 5px;
  border: 1px solid var(--console-line-strong);
  border-radius: 7px;
  background: #fffefa;
  box-shadow: 0 14px 32px rgba(16, 38, 63, .16);
}

.candidate-combobox-menu[hidden] {
  display: none;
}

.candidate-combobox-option {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  border: 0;
  border-radius: 4px;
  color: #263c36;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

.candidate-combobox-option strong {
  overflow: hidden;
  font-size: 10px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.candidate-combobox-option small {
  flex: none;
  color: var(--console-muted);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .025em;
  white-space: nowrap;
}

.candidate-combobox-option:hover,
.candidate-combobox-option.active {
  color: #174b39;
  background: rgba(38, 115, 93, .1);
}

.candidate-combobox-empty,
.candidate-combobox-more {
  margin: 0;
  padding: 11px 10px;
  color: var(--console-muted);
  font-size: 9px;
  line-height: 1.45;
}

.candidate-combobox-more {
  border-top: 1px solid var(--console-line);
}

.electoral-filter-bar > .btn {
  flex: none;
  white-space: nowrap;
}

.electoral-metrics .metric-card:nth-child(3) > strong {
  overflow: hidden;
  padding-right: 28px;
  font-size: clamp(21px, 2vw, 31px);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.metric-change.negative,
.zone-difference.negative {
  color: var(--console-danger);
}

.electoral-map-panel {
  margin-bottom: 18px;
  overflow: hidden;
}

.electoral-map-heading {
  align-items: center;
}

.electoral-map-modes {
  display: flex;
  overflow: hidden;
  flex: none;
  padding: 3px;
  border: 1px solid var(--console-line);
  border-radius: 6px;
  background: #eeece5;
}

.electoral-map-modes button {
  min-height: 32px;
  padding: 7px 11px;
  border: 0;
  border-radius: 4px;
  color: var(--console-muted);
  background: transparent;
  font-size: 9px;
  font-weight: 600;
  cursor: pointer;
}

.electoral-map-modes button.active {
  color: var(--console-blue-dark);
  background: var(--console-surface);
  box-shadow: 0 1px 3px rgba(20, 40, 36, .08);
}

.electoral-map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 255px;
  gap: 20px;
}

.electoral-map,
.electoral-map.leaflet-container {
  display: block;
  height: 560px;
  min-height: 560px;
  padding: 0;
  border: 1px solid var(--console-line);
  border-radius: 5px;
  background: #e2e7e3;
  font-family: "Plus Jakarta Sans", sans-serif;
  overflow: hidden;
}

.electoral-map .leaflet-control-zoom {
  overflow: hidden;
  border: 1px solid var(--console-line-strong);
  border-radius: 5px;
  box-shadow: 0 6px 20px rgba(16, 38, 63, .12);
}

.electoral-map .leaflet-control-zoom a {
  border: 0;
  color: var(--console-blue-dark);
  background: rgba(255, 254, 250, .95);
}

.electoral-map .leaflet-control-attribution {
  font-size: 8px;
  background: rgba(255, 254, 250, .86);
}

.electoral-map-aside {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 15px;
}

.territory-focus {
  padding: 18px;
  border: 1px solid var(--console-line);
  border-radius: 6px;
  background: #f5f3ed;
}

.territory-focus h3 {
  margin: 7px 0 16px;
  color: var(--console-ink);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -.035em;
}

.territory-focus dl {
  margin: 0 0 16px;
}

.territory-focus dl > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid #dfdcd4;
}

.territory-focus dt {
  overflow: hidden;
  color: var(--console-muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.territory-focus dd {
  margin: 0;
  color: var(--console-ink);
  font-family: "Manrope", sans-serif;
  font-size: 12px;
  font-weight: 600;
}

.territory-coverage {
  display: block;
}

.territory-coverage > span {
  display: block;
  height: 5px;
  background: #dddad2;
}

.territory-coverage i {
  display: block;
  height: 100%;
  background: var(--console-teal);
}

.territory-progress-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
}

.territory-progress-title span {
  color: var(--console-muted);
  font-size: 8px;
}

.territory-progress-title b {
  color: var(--console-ink);
  font-size: 9px;
  text-align: right;
}

.territory-focus > small {
  display: inline-flex;
  margin-top: 10px;
  padding: 4px 7px;
  border: 1px solid #d2cec5;
  border-radius: 4px;
  color: var(--console-muted);
  font-size: 8px;
  font-weight: 600;
}

.territory-focus > small[data-status="strong"] {
  color: var(--console-success);
  background: #e8f1eb;
  border-color: #bfd2c5;
}

.territory-focus > small[data-status="priority"] {
  color: var(--console-danger);
  background: #f5e9e6;
  border-color: #dcbfba;
}

.territory-focus > small[data-status="progress"] {
  color: #8a621d;
  background: #f6eed8;
  border-color: #dfcd9a;
}

.electoral-legend {
  padding: 15px;
  border: 1px solid var(--console-line);
  border-radius: 6px;
  color: var(--console-muted);
  background: var(--console-surface);
}

.electoral-legend span,
.electoral-legend small {
  display: block;
  font-size: 8.5px;
  line-height: 1.5;
}

.electoral-legend span {
  color: #43524e;
  font-weight: 600;
}

.electoral-legend i {
  display: block;
  height: 7px;
  margin: 11px 0 8px;
  background: linear-gradient(90deg, #aec4d5, #d9ddd8, #a8c8b2);
}

.electoral-legend[data-mode="primary"] i {
  background: linear-gradient(90deg, #c8d9ca, #3f7c5d, #15563d);
}

.electoral-legend[data-mode="coverage"] i {
  background: linear-gradient(90deg, #dfe4df, #4c8968, #15563d);
}

.municipal-score {
  padding: 15px;
  border: 1px solid var(--console-line);
  border-radius: 6px;
  background: var(--console-surface);
}

.municipal-score > p {
  margin: 0 0 12px;
  color: var(--console-muted);
  font-size: 8px;
  font-weight: 600;
}

.municipal-score > div {
  display: grid;
  grid-template-columns: 1fr 20px 1fr;
  align-items: center;
}

.municipal-score > div > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  text-align: center;
}

.municipal-score > div b {
  color: var(--console-ink);
  font-family: "Manrope", sans-serif;
  font-size: 20px;
}

.municipal-score > div small {
  overflow: hidden;
  color: var(--console-faint);
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.municipal-score > div > i {
  color: var(--console-faint);
  font-size: 9px;
  font-style: normal;
  text-align: center;
}

.electoral-chart-grid {
  align-items: start;
  margin-bottom: 18px;
}

.electoral-bar-chart,
.electoral-network-chart {
  height: 310px;
}

.electoral-history-chart {
  height: 310px;
}

.electoral-empty-compact {
  display: flex;
  height: 310px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 7px;
  color: var(--console-faint);
  background: #f5f3ed;
  text-align: center;
}

.electoral-empty-compact strong {
  color: var(--console-ink);
  font-size: 12px;
  font-weight: 600;
}

.electoral-empty-compact span {
  font-size: 9px;
}

.electoral-priority-list > div {
  display: flex;
  min-height: 48px;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid #e9e6de;
}

.electoral-priority-list > div:last-child {
  border-bottom: 0;
}

.electoral-priority-list > div > b {
  width: 19px;
  color: var(--console-faint);
  font-size: 8px;
}

.electoral-priority-list p {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  margin: 0;
}

.electoral-priority-list p strong {
  color: var(--console-ink);
  font-size: 10px;
  font-weight: 600;
}

.electoral-priority-list p small,
.electoral-priority-list > div > span small {
  color: var(--console-faint);
  font-size: 8px;
}

.electoral-priority-list > div > span {
  display: flex;
  flex-direction: column;
  color: var(--console-danger);
  font-family: "Manrope", sans-serif;
  font-size: 11px;
  font-weight: 600;
  text-align: right;
}

.electoral-priority-list > div > span small {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 400;
}

.electoral-empty-line {
  justify-content: center;
  color: var(--console-faint);
  font-size: 9px;
}

.electoral-zone-panel {
  margin-bottom: 15px;
}

.electoral-zone-panel table {
  min-width: 650px;
}

.zone-badge {
  display: inline-flex;
  min-width: 34px;
  justify-content: center;
  padding: 4px 7px;
  border: 1px solid var(--console-line);
  border-radius: 4px;
  color: var(--console-blue-dark);
  background: #eef1ef;
  font-size: 9px;
  font-weight: 600;
}

.zone-difference {
  color: var(--console-success);
  font-weight: 600;
}

.electoral-method-note {
  margin: 0;
  padding: 11px 13px;
  border: 1px solid var(--console-line);
  border-radius: 5px;
  color: var(--console-muted);
  background: #f5f3ed;
  font-size: 8.5px;
  line-height: 1.55;
}

.electoral-method-note strong {
  color: #3c5049;
}

.electoral-unavailable {
  max-width: 660px;
  padding: 34px;
}

.electoral-unavailable h2 {
  margin: 8px 0;
  font-size: 21px;
  font-weight: 600;
}

.electoral-unavailable p {
  max-width: 520px;
  margin: 0;
  color: var(--console-muted);
  font-size: 11px;
  line-height: 1.6;
}

@media (max-width: 1280px) {
  .electoral-filter-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .electoral-filter-form {
    flex-wrap: wrap;
  }

  .electoral-filter-form > label,
  .electoral-filter-form .electoral-candidate-field {
    flex: 1 1 180px;
  }

  .electoral-filter-bar > .btn {
    align-self: flex-end;
  }
}

@media (max-width: 960px) {
  .electoral-map-layout {
    grid-template-columns: 1fr;
  }

  .electoral-map-aside {
    display: grid;
    grid-template-columns: 1.25fr 1fr 1fr;
  }
}

@media (max-width: 700px) {
  .electoral-brief {
    align-items: flex-start;
  }

  .electoral-source {
    display: none;
  }

  .electoral-reference-note {
    align-items: flex-start;
    flex-direction: column;
  }

  .electoral-filter-form > label,
  .electoral-filter-form .electoral-candidate-field {
    flex-basis: 100%;
  }

  .electoral-filter-form .btn,
  .electoral-filter-bar > .btn {
    width: 100%;
  }

  .electoral-map-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .electoral-map-modes {
    width: 100%;
  }

  .electoral-map-modes button {
    flex: 1;
  }

  .electoral-map,
  .electoral-map.leaflet-container {
    height: 410px;
    min-height: 410px;
  }

  .electoral-map-aside {
    display: flex;
  }

  .electoral-bar-chart,
  .electoral-history-chart,
  .electoral-network-chart,
  .electoral-empty-compact {
    height: 275px;
  }
}

@media (max-width: 960px) {
  .leader-recruit-card {
    grid-template-columns: 1fr;
  }

  .leader-recruit-link {
    padding-top: 18px;
    padding-left: 0;
    border-top: 1px solid var(--console-line);
    border-left: 0;
  }
}

@media (max-width: 600px) {
  .leader-invite-form {
    grid-template-columns: 1fr;
  }

  .leader-invite-form .full {
    grid-column: auto;
  }

  .leadership-invite-panel {
    padding: 36px 20px 44px;
  }

  .leadership-invite-story {
    min-height: 430px;
  }

  .leadership-invite-proof {
    grid-template-columns: 1fr;
  }

  .leader-recruit-card {
    padding: 19px 16px;
  }

  .leader-recruit-actions {
    flex-direction: column;
  }

  .leader-recruit-actions .btn {
    width: 100%;
  }
}

@media (max-width: 1040px) {
  .whatsapp-central-summary {
    grid-template-columns: repeat(3, 1fr);
  }

  .whatsapp-live-indicator {
    grid-column: 1 / -1;
    min-height: 28px;
    justify-content: center;
    border-top: 1px solid #e1e5e0;
  }

  .whatsapp-central-body {
    grid-template-columns: 235px minmax(0, 1fr);
  }

  .whatsapp-inbox {
    grid-template-columns: minmax(220px, 38%) minmax(0, 1fr);
  }
}

@media (max-width: 780px) {
  .modal-whatsapp-central {
    width: calc(100% - 12px);
    max-height: 98vh;
  }

  .whatsapp-central {
    height: 96vh;
    min-height: 600px;
  }

  .whatsapp-central-header {
    min-height: 68px;
    padding: 12px 14px;
  }

  .whatsapp-central-title p,
  .whatsapp-central-header-actions .api-config-status {
    display: none;
  }

  .whatsapp-central-title h2 {
    max-width: 230px;
    overflow: hidden;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .whatsapp-central-mark {
    width: 36px;
    height: 36px;
  }

  .whatsapp-central-summary {
    grid-template-columns: repeat(2, 1fr);
  }

  .whatsapp-central-summary > article {
    min-height: 53px;
    padding: 8px 11px;
  }

  .whatsapp-central-summary strong {
    font-size: 15px;
  }

  .whatsapp-central-body {
    display: flex;
    overflow: hidden;
    flex-direction: column;
  }

  .whatsapp-instance-panel {
    display: flex;
    min-height: auto;
    overflow-x: auto;
    overflow-y: visible;
    gap: 7px;
    padding: 9px;
    border-right: 0;
    border-bottom: 1px solid #d8ddd8;
  }

  .whatsapp-section-heading {
    flex: none;
    align-items: center;
  }

  .whatsapp-section-heading > div {
    display: none;
  }

  .whatsapp-add-toggle {
    width: 38px;
    height: 38px;
    flex: none;
  }

  .whatsapp-add-panel {
    position: absolute;
    top: 130px;
    left: 9px;
    z-index: 8;
    width: min(290px, calc(100% - 18px));
  }

  .whatsapp-instance-all {
    width: auto;
    min-width: 110px;
    flex: none;
    margin: 0;
  }

  .whatsapp-instance-list {
    flex-direction: row;
  }

  .whatsapp-instance-card {
    width: 190px;
    flex: none;
  }

  .whatsapp-instance-meta,
  .whatsapp-instance-actions {
    display: none;
  }

  .whatsapp-instance-empty {
    width: 190px;
    min-height: 38px;
    flex-direction: row;
    gap: 8px;
    padding: 6px 10px;
  }

  .whatsapp-instance-empty > span {
    width: 28px;
    height: 28px;
    flex: none;
    margin: 0;
  }

  .whatsapp-instance-empty small { display: none; }

  .whatsapp-workspace {
    flex: 1;
  }

  .whatsapp-inbox {
    grid-template-columns: minmax(185px, 42%) minmax(0, 1fr);
  }

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

  .whatsapp-central-footer {
    display: none;
  }
}

@media (max-width: 560px) {
  .whatsapp-inbox {
    display: block;
    position: relative;
  }

  .whatsapp-conversation-list-panel {
    width: 100%;
    height: 100%;
    border-right: 0;
  }

  .whatsapp-chat {
    position: absolute;
    inset: 0;
    z-index: 3;
  }

  .whatsapp-chat:not(.has-selection) { display: none; }

  .whatsapp-chat-header {
    padding-left: 12px;
  }

  .whatsapp-chat-back {
    display: block;
    padding: 0;
    border: 0;
    color: #37745a;
    background: transparent;
    font-size: 24px;
    cursor: pointer;
  }

  .whatsapp-chat-header > div {
    margin-right: auto;
  }

  .whatsapp-chat-connection {
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .whatsapp-workspace-tabs {
    gap: 14px;
    padding: 0 12px;
  }
}

/* Portal da liderança — experiência simples e acessível */
.leader-mobile-nav { display: none; }

.role-leader .page {
  max-width: 1180px;
}

.role-leader .sidebar nav a {
  min-height: 62px;
  font-size: 15px;
}

.role-leader .sidebar nav a small {
  font-size: 10px;
}

.leader-simple-welcome,
.leader-team-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}

.leader-simple-welcome > div > span,
.leader-team-header > div > span,
.leader-simple-stats > header > span,
.leader-simple-goal-heading span,
.leader-team-list-heading > div > span {
  color: var(--console-teal);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
}

.leader-simple-welcome h2,
.leader-team-header h2 {
  margin: 6px 0 4px;
  color: var(--console-ink);
  font-size: 27px;
  font-weight: 700;
  letter-spacing: -.035em;
}

.leader-simple-welcome p,
.leader-team-header p {
  margin: 0;
  color: var(--console-muted);
  font-size: 14px;
}

.leader-onboarding-card {
  margin-bottom: 18px;
  padding: 24px;
  border: 1px solid #a9d4ba;
  border-radius: 14px;
  background: #f0faf4;
}

.leader-onboarding-kicker {
  color: var(--console-teal);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
}

.leader-onboarding-card > h2 {
  margin: 7px 0 5px;
  color: var(--console-ink);
  font-size: 24px;
}

.leader-onboarding-card > p {
  margin: 0;
  color: var(--console-muted);
  font-size: 13px;
}

.leader-onboarding-card > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
  margin-top: 17px;
}

.leader-onboarding-card article {
  display: flex;
  min-width: 0;
  gap: 11px;
  padding: 15px;
  border: 1px solid #cce2d4;
  border-radius: 10px;
  background: #fff;
}

.leader-onboarding-card article > b {
  display: grid;
  width: 28px;
  height: 28px;
  flex: none;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--console-teal);
  font-size: 12px;
}

.leader-onboarding-card article > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.leader-onboarding-card article strong { font-size: 14px; }
.leader-onboarding-card article small { color: var(--console-muted); font-size: 10px; }
.leader-onboarding-card article a { overflow: hidden; margin-top: 5px; color: var(--console-blue-dark); font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.leader-onboarding-card .leader-onboarding-warning { margin-top: 13px; color: #8a621d; font-size: 11px; }

.admin-leader-link-cell { min-width: 235px; }
.admin-leader-link-option + .admin-leader-link-option { margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--console-line); }
.admin-leader-link-option > small { display: block; margin-bottom: 2px; color: var(--console-faint); font-size: 7px; font-weight: 800; letter-spacing: .06em; }
.admin-leader-link-option > a { display: block; color: var(--console-blue-dark); font-size: 10px; font-weight: 700; }
.admin-leader-link-option > button { margin-top: 4px; padding: 0; border: 0; color: var(--console-teal); background: transparent; font-size: 9px; font-weight: 700; cursor: pointer; }
.admin-leader-link-option.direct > a { color: #5b4b8a; }
.admin-leader-link-option.direct > button { color: #6941c6; }
.admin-leader-link-cell > small { min-height: 12px; }
.link-preview .btn { width: max-content; min-height: 34px; margin-top: 10px; }
.leader-link-previews { display: grid; gap: 10px; margin-bottom: 17px; }
.leader-link-previews .link-preview { margin-bottom: 0; }
.leader-link-previews .link-preview.direct { border-color: #ddd5f2; background: #f7f4ff; }
.leader-link-previews .link-preview.direct code { color: #6941c6; }
.leader-link-copy-feedback { min-height: 14px; color: var(--console-teal); font-size: 9px; font-weight: 700; }

.leader-simple-share {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 18px;
  padding: 30px;
  color: #fff;
  background: linear-gradient(130deg, #0c5e3b, #123d35);
  border: 1px solid #195d45;
  border-radius: 16px;
  box-shadow: 0 14px 34px rgba(8, 67, 42, .14);
}

.leader-simple-share-icon {
  display: grid;
  width: 50px;
  height: 50px;
  flex: none;
  place-items: center;
  color: #124a33;
  background: #f2d94e;
  border-radius: 50%;
  font: 800 20px Manrope, sans-serif;
}

.leader-simple-share-content {
  width: 100%;
  min-width: 0;
}

.leader-simple-kicker {
  color: #f4df6d;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
}

.leader-simple-share h2 {
  margin: 7px 0 6px;
  font-size: 31px;
  font-weight: 700;
  letter-spacing: -.04em;
}

.leader-simple-share-content > p:not(.leader-share-feedback) {
  margin: 0;
  color: #d5e5dd;
  font-size: 15px;
  line-height: 1.55;
}

.leader-share-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 218px;
  align-items: center;
  gap: 30px;
  margin-top: 24px;
}

.leader-simple-share-actions {
  min-width: 0;
}

.leader-simple-share-actions h3 {
  margin: 0 0 5px;
  color: #fff;
  font-size: 21px;
  letter-spacing: -.025em;
}

.leader-simple-share-actions > p {
  margin: 0 0 17px;
  color: #d5e5dd;
  font-size: 12px;
}

.leader-share-qr {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 12px 12px 14px;
  color: #123d35;
  background: #fff;
  border: 3px solid #f4d94d;
  border-radius: 15px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .2);
  text-align: center;
}

.leader-share-qr a {
  display: block;
  width: 100%;
  line-height: 0;
}

.leader-share-qr img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 7px;
}

.leader-share-qr strong {
  margin-top: 1px;
  font-size: 16px;
  font-weight: 800;
}

.leader-share-qr small {
  margin: 2px 0 8px;
  color: #587068;
  font-size: 10px;
  line-height: 1.35;
}

.leader-simple-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 0;
}

.leader-simple-buttons .btn,
.leader-simple-action-card > .btn,
.leader-simple-action-card > button,
.leader-team-invite .btn {
  min-height: 50px;
  padding-inline: 20px;
  font-size: 14px;
}

.leader-simple-primary {
  color: #123b2c;
  background: #f4d94d;
  border-color: #f4d94d;
  font-weight: 800;
}

.leader-simple-share-actions .leader-simple-primary { min-width: 290px; min-height: 56px; }

.leader-simple-primary:hover { background: #ffe978; }

.leader-invite-pulse {
  animation: leaderInvitePulse 2s ease-in-out infinite;
}

.leader-invite-pulse .leader-simple-primary {
  animation: leaderInviteButtonPulse 1.45s ease-in-out infinite;
  box-shadow: 0 0 0 0 rgba(244, 217, 77, .42);
}

@keyframes leaderInvitePulse {
  0%, 100% { box-shadow: 0 14px 34px rgba(8, 67, 42, .14), 0 0 0 0 rgba(244, 217, 77, .25); }
  50% { box-shadow: 0 18px 42px rgba(8, 67, 42, .25), 0 0 0 9px rgba(244, 217, 77, 0); }
}

@keyframes leaderInviteButtonPulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(244, 217, 77, .35); }
  50% { transform: scale(1.025); box-shadow: 0 0 0 7px rgba(244, 217, 77, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .leader-invite-pulse,
  .leader-invite-pulse .leader-simple-primary { animation: none; }
}

.leader-simple-secondary {
  color: #fff;
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .32);
}

.leader-share-feedback,
.leader-team-invite > p {
  min-height: 18px;
  margin: 10px 0 0;
  color: #ffe56a;
  font-size: 12px;
  font-weight: 700;
}

.leader-link-details {
  margin-top: 4px;
  border-top: 1px solid rgba(255, 255, 255, .16);
}

.leader-link-details summary,
.leader-extra-links > summary,
.leader-more-results > summary {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  list-style: none;
}

.leader-link-details summary::-webkit-details-marker,
.leader-extra-links > summary::-webkit-details-marker,
.leader-more-results > summary::-webkit-details-marker,
.leader-team-member summary::-webkit-details-marker { display: none; }

.leader-link-details summary::after,
.leader-extra-links > summary::after,
.leader-more-results > summary::after {
  content: "+";
  font-size: 20px;
  font-weight: 500;
}

.leader-link-details[open] summary::after,
.leader-extra-links[open] > summary::after,
.leader-more-results[open] > summary::after { content: "−"; }

.leader-link-details > div {
  display: flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 12px;
}

.leader-link-details input,
.leader-extra-links input {
  width: 100%;
  min-width: 0;
  min-height: 43px;
  padding: 10px 11px;
  border: 1px solid var(--console-line-strong);
  border-radius: 7px;
  color: #40534c;
  background: #fff;
  font: 10px ui-monospace, SFMono-Regular, Menlo, monospace;
}

.leader-simple-share .leader-link-details input {
  color: #fff;
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .26);
}

.leader-link-details a {
  flex: none;
  color: inherit;
  font-size: 12px;
  font-weight: 700;
}

.leader-simple-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-bottom: 23px;
}

.leader-simple-action-card {
  display: grid;
  grid-template-columns: auto 1fr;
  align-content: start;
  gap: 14px;
  padding: 22px;
  border: 1px solid var(--console-line);
  border-radius: 13px;
  background: var(--console-surface);
}

.leader-simple-action-number {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  color: var(--console-blue-dark);
  background: #e8eff3;
  border-radius: 50%;
  font: 800 14px Manrope, sans-serif;
}

.leader-simple-action-label {
  grid-column: 1 / -1;
  color: var(--console-teal);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
}

.leader-simple-action-label + div {
  grid-column: 1 / -1;
}

.leader-simple-action-card h2 {
  margin: 0 0 5px;
  font-size: 18px;
}

.leader-simple-action-card p {
  margin: 0;
  color: var(--console-muted);
  font-size: 12px;
  line-height: 1.5;
}

.leader-simple-action-card > .btn,
.leader-simple-action-card > button,
.leader-simple-action-card > .leader-share-feedback,
.leader-simple-action-card > details {
  grid-column: 1 / -1;
}

.leader-simple-action-card > .leader-share-feedback {
  min-height: 0;
  margin: -5px 0 0;
  color: var(--console-teal);
}

.leader-simple-action-card .leader-link-details {
  border-top-color: var(--console-line);
}

.leader-simple-stats {
  margin-bottom: 16px;
}

.leader-simple-stats > header {
  margin: 0 2px 12px;
}

.leader-simple-stats > header h2 {
  margin: 4px 0 0;
  font-size: 20px;
}

.leader-simple-stats > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--console-line);
  border-radius: 13px;
  background: var(--console-surface);
}

.leader-simple-stats article {
  min-width: 0;
  padding: 19px;
  border-right: 1px solid var(--console-line);
}

.leader-simple-stats article:last-child { border-right: 0; }

.leader-simple-stats article > span,
.leader-simple-stats article > small {
  display: block;
  color: var(--console-muted);
  font-size: 11px;
}

.leader-simple-stats article > strong {
  display: block;
  margin: 8px 0 4px;
  color: var(--console-ink);
  font: 700 29px Manrope, sans-serif;
}

.leader-simple-goal {
  margin-bottom: 16px;
  padding: 20px 22px;
  border: 1px solid var(--console-line);
  border-radius: 13px;
  background: var(--console-surface);
}

.leader-simple-goal-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.leader-simple-goal-heading h2 {
  margin: 5px 0 0;
  font-size: 19px;
}

.leader-simple-goal-heading > strong {
  color: var(--console-teal);
  font-size: 14px;
}

.leader-simple-goal > p {
  margin: 0;
  color: var(--console-muted);
  font-size: 11px;
}

.leader-extra-links,
.leader-more-results {
  margin-bottom: 15px;
  padding: 0 20px;
  border: 1px solid var(--console-line);
  border-radius: 12px;
  background: var(--console-surface);
}

.leader-extra-links > summary,
.leader-more-results > summary {
  min-height: 58px;
  color: var(--console-ink);
  font-size: 15px;
}

.leader-extra-links > p {
  margin: -3px 0 14px;
  color: var(--console-muted);
  font-size: 11px;
}

.leader-extra-links-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding-bottom: 20px;
}

.leader-extra-links-grid article {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 16px;
  border: 1px solid var(--console-line);
  border-radius: 9px;
}

.leader-extra-links-grid h3,
.leader-extra-links-grid p { grid-column: 1 / -1; }
.leader-extra-links-grid h3 { margin: 0; font-size: 15px; }
.leader-extra-links-grid p { margin: 0; color: var(--console-muted); font-size: 11px; }
.leader-extra-links-grid article > span { grid-column: 1 / -1; color: #8a6d1e; font-size: 11px; }
.leader-extra-links-grid article > small { grid-column: 1 / -1; color: var(--console-teal); }

.leader-more-results[open] { padding-bottom: 20px; }
.leader-more-results .leader-dashboard-grid { margin-top: 4px; }

.leader-results-summary {
  margin-bottom: 15px;
  padding: 0 20px;
  border: 1px solid var(--console-line);
  border-radius: 13px;
  background: var(--console-surface);
}

.leader-results-summary > summary {
  display: flex;
  min-height: 72px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
}

.leader-results-summary > summary::-webkit-details-marker { display: none; }

.leader-results-summary > summary > span {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.leader-results-summary > summary b {
  color: var(--console-ink);
  font-size: 17px;
}

.leader-results-summary > summary small {
  color: var(--console-muted);
  font-size: 11px;
}

.leader-results-summary > summary::after {
  content: "+";
  color: var(--console-teal);
  font-size: 24px;
}

.leader-results-summary[open] > summary::after { content: "−"; }
.leader-results-summary > .leader-simple-stats { margin-top: 8px; }
.leader-results-summary > .leader-more-results { margin-bottom: 20px; }

.leader-recent-count { color: var(--console-muted); font-size: 10px; font-weight: 700; }
.leader-inline-pagination {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 10px;
  padding-top: 14px;
}
.leader-inline-pagination a,
.leader-inline-pagination > span {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  padding: 8px 11px;
  border: 1px solid var(--console-line);
  border-radius: 6px;
  color: var(--console-teal);
  background: #fff;
  font-size: 10px;
  font-weight: 800;
}
.leader-inline-pagination a:last-child,
.leader-inline-pagination > span:last-child { justify-self: end; }
.leader-inline-pagination .disabled { color: var(--console-faint); background: #fafafa; }
.leader-inline-pagination strong { color: var(--console-muted); font-size: 10px; text-align: center; }

/* Minha equipe em lista */
.leader-team-back { min-height: 44px; }

.leader-team-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  margin-bottom: 15px;
  border: 1px solid var(--console-line);
  border-radius: 13px;
  background: var(--console-surface);
}

.leader-team-summary article {
  padding: 20px;
  border-right: 1px solid var(--console-line);
}

.leader-team-summary article:last-child { border-right: 0; }
.leader-team-summary span { display: block; color: var(--console-muted); font-size: 12px; }
.leader-team-summary strong { display: block; margin-top: 7px; font: 700 28px Manrope, sans-serif; }

.leader-team-invite {
  margin-bottom: 15px;
  overflow: hidden;
  border: 1px solid var(--console-line);
  border-radius: 13px;
  background: var(--console-surface);
}

.leader-team-invite > summary {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 14px 18px;
  color: var(--console-muted);
  cursor: pointer;
  list-style: none;
}

.leader-team-invite > summary::-webkit-details-marker { display: none; }
.leader-team-invite > summary::after { content: "+"; color: var(--console-teal); font-size: 22px; }
.leader-team-invite[open] > summary::after { content: "−"; }
.leader-team-invite > summary span { display: flex; flex-direction: column; gap: 3px; }
.leader-team-invite > summary strong { color: var(--console-ink); font-size: 13px; }
.leader-team-invite > summary small { font-size: 9px; }

.leader-team-invite-content {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 15px;
  padding: 18px;
  border-top: 1px solid var(--console-line);
  background: #fafbfa;
}

.leader-team-invite-warning strong { color: #8a4b16; font-size: 13px; }
.leader-team-invite-warning p { margin: 5px 0 0; color: var(--console-muted); font-size: 11px; line-height: 1.5; }
.leader-team-invite-content > p { grid-column: 1 / -1; min-height: 0; margin: -5px 0 0; color: var(--console-teal); font-size: 11px; font-weight: 700; }

.leader-team-list-panel {
  overflow: hidden;
  border: 1px solid var(--console-line);
  border-radius: 13px;
  background: var(--console-surface);
}

.leader-team-list-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 20px;
  border-bottom: 1px solid var(--console-line);
}

.leader-team-list-heading h2 { margin: 5px 0 0; font-size: 19px; }

.leader-team-search {
  display: flex;
  width: min(300px, 100%);
  flex-direction: column;
  gap: 6px;
  color: var(--console-muted);
  font-size: 10px;
  font-weight: 700;
}

.leader-team-search input {
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--console-line-strong);
  border-radius: 7px;
  color: var(--console-ink);
  background: #fff;
  font-size: 14px;
}

.leader-team-list { padding: 8px 20px 20px; }

.leader-team-member {
  margin-top: 10px;
  margin-left: calc(var(--team-level) * 24px);
  overflow: hidden;
  border: 1px solid var(--console-line);
  border-left: 4px solid color-mix(in srgb, var(--console-teal) 65%, #fff);
  border-radius: 10px;
  background: #fff;
}

.leader-team-member summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: 12px 15px;
  cursor: pointer;
  list-style: none;
}

.leader-team-person,
.leader-team-total {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.leader-team-person strong {
  overflow: hidden;
  color: var(--console-ink);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.leader-team-person small,
.leader-team-total small { margin-top: 3px; color: var(--console-muted); font-size: 10px; }
.leader-team-total { min-width: 74px; text-align: right; }
.leader-team-total strong { font: 700 20px Manrope, sans-serif; }
.leader-team-member summary > i { color: var(--console-muted); font-size: 20px; font-style: normal; transition: transform .16s; }
.leader-team-member[open] summary > i { transform: rotate(180deg); }

.leader-team-details {
  padding: 0 15px 16px 63px;
  border-top: 1px solid var(--console-line);
}

.leader-team-details dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 8px 0 13px; }
.leader-team-details dl > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px; border-bottom: 1px solid var(--console-line); }
.leader-team-details dt { color: var(--console-muted); font-size: 11px; }
.leader-team-details dd { margin: 0; font-size: 13px; font-weight: 800; }
.leader-team-no-results { padding: 35px 15px; color: var(--console-muted); text-align: center; }

.leader-team-empty {
  display: flex;
  min-height: 260px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 30px;
  border: 1px solid var(--console-line);
  border-radius: 13px;
  background: var(--console-surface);
  text-align: center;
}

.leader-team-empty > span { font-size: 35px; }
.leader-team-empty h2 { margin: 16px 0 7px; font-size: 21px; }
.leader-team-empty p { max-width: 460px; margin: 0; color: var(--console-muted); font-size: 13px; line-height: 1.55; }

/* Listagem completa de cadastros no Portal da Liderança */
.leader-contacts-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 17px; }
.leader-contacts-header > div > span { color: var(--console-faint); font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.leader-contacts-header h2 { margin: 5px 0; color: var(--console-ink); font-size: 27px; letter-spacing: -.035em; }
.leader-contacts-header p { margin: 0; color: var(--console-muted); font-size: 12px; }
.leader-contact-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 16px; overflow: hidden; border: 1px solid var(--console-line); border-radius: 8px; background: var(--console-surface); }
.leader-contact-metrics article { padding: 18px 20px; }
.leader-contact-metrics article + article { border-left: 1px solid var(--console-line); }
.leader-contact-metrics span,.leader-contact-metrics small { display: block; color: var(--console-faint); font-size: 9px; }
.leader-contact-metrics strong { display: block; margin: 5px 0 2px; color: var(--console-ink); font: 700 25px Manrope,sans-serif; }
.leader-contact-filters { display: flex; align-items: flex-end; gap: 10px; margin-bottom: 16px; padding: 14px; border: 1px solid var(--console-line); border-radius: 8px; background: var(--console-surface); }
.leader-contact-filters label { display: flex; min-width: 190px; flex: 1; flex-direction: column; gap: 5px; }
.leader-contact-filters label:first-of-type { flex-grow: 2; }
.leader-contact-filters label > span { color: var(--console-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.leader-contact-filters input,.leader-contact-filters select { min-height: 42px; border: 1px solid var(--console-line-strong); border-radius: 5px; padding: 9px 11px; color: var(--console-ink); background: #fff; outline: none; }
.leader-contact-filters input:focus,.leader-contact-filters select:focus { border-color: var(--console-teal); box-shadow: 0 0 0 3px rgba(15,107,75,.1); }
.leader-contacts-table { min-width: 900px; }
.leader-contact-origin { display: inline-flex; padding: 5px 8px; border-radius: 20px; color: #16553d; background: #e8f5ee; font-size: 9px; font-weight: 800; }
.leader-contact-origin.network { color: #514177; background: #f0ecfa; }
.leader-pagination { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 16px; }
.leader-pagination > div { display: flex; align-items: center; gap: 5px; }
.leader-pagination a { display: inline-flex; min-width: 35px; min-height: 35px; align-items: center; justify-content: center; padding: 7px 10px; border: 1px solid var(--console-line); border-radius: 5px; color: var(--console-muted); background: var(--console-surface); font-size: 10px; font-weight: 700; }
.leader-pagination a.active { color: #fff; border-color: var(--console-teal); background: var(--console-teal); }
.leader-pagination a.disabled { opacity: .45; pointer-events: none; }
.leader-pagination span { color: var(--console-faint); font-size: 10px; }

@media (max-width: 900px) {
  .leader-simple-stats > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .leader-simple-stats article:nth-child(2) { border-right: 0; }
  .leader-simple-stats article:nth-child(-n + 2) { border-bottom: 1px solid var(--console-line); }
}

@media (max-width: 820px) {
  .role-leader .page { padding-bottom: 108px; }
  .role-leader .topbar-context,
  .role-leader .user-chip { display: none; }
  .role-leader .topbar-title { margin-left: 12px; }

  .leader-mobile-nav {
    position: fixed;
    right: 10px;
    bottom: 9px;
    left: 10px;
    z-index: 35;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding: 6px;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 16px;
    background: rgba(16, 38, 63, .96);
    box-shadow: 0 14px 35px rgba(12, 26, 43, .25);
    backdrop-filter: blur(12px);
  }

  .leader-mobile-nav.leader-mobile-nav-two { grid-template-columns: repeat(2, 1fr); }

  .leader-mobile-nav a {
    display: flex;
    min-height: 55px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: #b7c6cf;
    border-radius: 11px;
    font-size: 13px;
    font-weight: 700;
  }

  .leader-mobile-nav a.active { color: #153e32; background: #fff; }
  .leader-mobile-nav .nav-icon { width: 19px; height: 19px; background: currentColor; }

  .leader-simple-welcome,
  .leader-team-header,
  .leader-contacts-header { align-items: stretch; flex-direction: column; gap: 13px; }
  .leader-team-header .btn { width: 100%; }
  .leader-contact-filters { align-items: stretch; flex-direction: column; }
  .leader-contact-filters label,.leader-contact-filters .btn { width: 100%; min-width: 0; }
}

@media (max-width: 680px) {
  .leader-simple-welcome h2,
  .leader-team-header h2,
  .leader-contacts-header h2 { font-size: 24px; }

  .leader-simple-welcome p,
  .leader-team-header p,
  .leader-contacts-header p { font-size: 13px; line-height: 1.45; }
  .leader-contact-metrics { grid-template-columns: 1fr; }
  .leader-contact-metrics article + article { border-top: 1px solid var(--console-line); border-left: 0; }
  .leader-pagination { align-items: stretch; flex-wrap: wrap; }
  .leader-pagination > div { order: -1; width: 100%; justify-content: center; }
  .leader-inline-pagination { grid-template-columns: 1fr 1fr; }
  .leader-inline-pagination strong { grid-column: 1 / -1; grid-row: 1; }

  .leader-simple-share {
    display: block;
    padding: 22px 18px 18px;
    border-radius: 14px;
  }

  .leader-simple-share-icon { width: 42px; height: 42px; margin-bottom: 14px; font-size: 17px; }
  .leader-simple-share h2 { font-size: 27px; }
  .leader-simple-share-content > p:not(.leader-share-feedback) { font-size: 14px; }
  .leader-share-tools { grid-template-columns: 1fr; gap: 18px; margin-top: 20px; }
  .leader-share-qr { width: min(100%, 260px); order: -1; justify-self: center; }
  .leader-simple-share-actions { width: 100%; }
  .leader-simple-share-actions h3,
  .leader-simple-share-actions > p { text-align: center; }
  .leader-simple-share-actions .leader-simple-primary { min-width: 0; }
  .leader-simple-buttons { flex-direction: column; }
  .leader-simple-buttons .btn { width: 100%; min-height: 54px; }
  .leader-link-details > div { align-items: stretch; flex-direction: column; }
  .leader-link-details a { display: flex; min-height: 44px; align-items: center; }

  .leader-simple-actions { grid-template-columns: 1fr; }
  .leader-simple-action-card { padding: 18px; }
  .leader-simple-action-card > .btn,
  .leader-simple-action-card > button { width: 100%; min-height: 52px; }

  .leader-simple-stats article { padding: 16px 13px; }
  .leader-simple-stats article > span { min-height: 31px; font-size: 10px; line-height: 1.35; }
  .leader-simple-stats article > strong { font-size: 27px; }
  .leader-simple-stats article > small { font-size: 9px; }

  .leader-simple-goal { padding: 18px 16px; }
  .leader-simple-goal-heading { align-items: flex-start; flex-direction: column; gap: 8px; }

  .leader-extra-links,
  .leader-more-results { padding-inline: 15px; }
  .leader-extra-links-grid { grid-template-columns: 1fr; }

  .leader-results-summary { padding-inline: 14px; }
  .leader-results-summary > summary { min-height: 68px; }

  .leader-onboarding-card { padding: 19px 16px; }
  .leader-onboarding-card > div { grid-template-columns: 1fr; }

  .leader-team-summary { grid-template-columns: 1fr; }
  .leader-team-summary article { display: flex; align-items: center; justify-content: space-between; padding: 15px 17px; border-right: 0; border-bottom: 1px solid var(--console-line); }
  .leader-team-summary article:last-child { border-bottom: 0; }
  .leader-team-summary strong { margin: 0; font-size: 25px; }

  .leader-team-invite-content { grid-template-columns: 1fr; padding: 16px; }
  .leader-team-invite .btn { width: 100%; min-height: 50px; }

  .leader-team-list-heading { align-items: stretch; flex-direction: column; padding: 17px; }
  .leader-team-search { width: 100%; }
  .leader-team-search input { min-height: 50px; font-size: 16px; }
  .leader-team-list { padding: 4px 10px 14px; }
  .leader-team-member { margin-left: 0; }
  .leader-team-member summary { grid-template-columns: auto minmax(0, 1fr) auto; min-height: 82px; gap: 10px; padding: 12px; }
  .leader-team-member summary > i { grid-column: 3; grid-row: 1; }
  .leader-team-total { grid-column: 2 / -1; min-width: 0; flex-direction: row; align-items: baseline; gap: 5px; text-align: left; }
  .leader-team-total strong { font-size: 16px; }
  .leader-team-total small { margin: 0; }
  .leader-team-details { padding: 0 12px 14px; }
  .leader-team-details dl { grid-template-columns: 1fr; }
  .leader-team-details .btn { width: 100%; min-height: 48px; }
}

/* Convite oficial da campanha — leitura direta no celular */
@media (max-width: 960px) {
  .campaign-leadership-invite .leadership-invite-story {
    min-height: 0;
    padding: 22px 24px 27px;
    background-image: linear-gradient(135deg, #062f65, #07543c);
  }

  .theme-brasil .campaign-leadership-invite .auth-login-wallpaper,
  .theme-brasil .campaign-leadership-invite .leadership-invite-story::after {
    display: none;
  }

  .campaign-leadership-invite .auth-message {
    position: relative;
    inset: auto;
    margin-top: 28px;
    transform: none;
  }

  .campaign-leadership-invite .auth-story h1 {
    max-width: 560px;
    margin: 12px 0 10px;
    font-size: 32px;
    line-height: 1.08;
  }

  .campaign-leadership-invite .auth-story .auth-message p {
    max-width: 580px;
    color: #e4eee9;
    font-size: 14px;
    line-height: 1.5;
  }

  .campaign-leadership-invite .leadership-invite-proof { display: none; }
  .campaign-leadership-invite .leadership-invite-panel { padding-block: 30px 42px; }
}

@media (max-width: 600px) {
  .campaign-leadership-invite .leadership-invite-story {
    min-height: 0;
    padding: 17px 18px 22px;
  }

  .campaign-leadership-invite .auth-message { margin-top: 22px; }
  .campaign-leadership-invite .auth-index { font-size: 10px; }
  .campaign-leadership-invite .auth-story h1 { font-size: 28px; }
  .campaign-leadership-invite .auth-story .auth-message p { font-size: 13px; }

  .campaign-leadership-invite .leadership-invite-panel {
    padding: 27px 18px 38px;
    background: #fffefa;
  }

  .campaign-leadership-invite .leadership-invite-card .auth-card-head { margin-bottom: 20px; }
  .campaign-leadership-invite .auth-card h2 { margin-top: 8px; font-size: 27px; }
  .campaign-leadership-invite .auth-card-head p { font-size: 13px; }
  .campaign-leadership-invite .leader-invite-form { gap: 16px; }

  .campaign-leadership-invite .leader-invite-form .field > span {
    font-size: 13px;
    font-weight: 700;
  }

  .campaign-leadership-invite .leader-invite-form .field input,
  .campaign-leadership-invite .leader-invite-form .field select {
    min-height: 52px;
    font-size: 16px;
  }

  .campaign-leadership-invite .existing-account-note,
  .campaign-leadership-invite .leader-invite-form .consent span,
  .campaign-leadership-invite .leader-invite-login {
    font-size: 12px;
  }

  .campaign-leadership-invite .leader-invite-form .btn-large {
    min-height: 54px;
    font-size: 15px;
  }
}

@media (max-width: 380px) {
  .role-leader .page { padding-inline: 9px; }
  .leader-simple-share,
  .leader-simple-action-card { padding-inline: 15px; }
  .leader-simple-stats article { padding-inline: 10px; }
  .leader-simple-stats article > strong { font-size: 24px; }
}
