:root {
  --bg: #f4f6fa;
  --panel: #ffffff;
  --text: #111827;
  --muted: #667085;
  --line: #d9e0ea;
  --soft: #eef2f7;
  --navy: #16273f;
  --accent: #0455a2;            /* azul oficial Contas */
  --brand-blue: #0455a2;        /* azul oficial */
  --brand-green: #039c5b;       /* verde oficial */
  --brand-mint: #80c4a8;        /* verde claro (símbolo) */
  --brand-navy: #16273f;
  --prejuizo: #dc2626;          /* vermelho */
  --critico:  #f97316;          /* laranja  */
  --atencao:  #b7791f;
  --saudavel: #15803d;
  --neutro:   #475569;
  --sem:      #8a94a6;
  --shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  font-family: 'Montserrat', Arial, Helvetica, sans-serif;
  color: var(--text);
  background: var(--bg);
}

button,
input,
select {
  font: inherit;
}

.app-shell {
  min-height: 100vh;
  display: flex;
  align-items: stretch;
}
.app-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* ── Barra lateral ── */
.sidebar {
  flex: 0 0 248px;
  width: 248px;
  background: #0f172a;
  color: #cbd5e1;
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  transition: width 0.18s ease, flex-basis 0.18s ease;
  z-index: 40;
}
.sb-head { display: flex; align-items: center; gap: 11px; padding: 16px 16px 14px; }
.sb-logo {
  width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center;
  border-radius: 10px; background: #ffffff; padding: 6px;
}
.sb-logo svg { width: 100%; height: 100%; display: block; }
.sb-title { display: flex; flex-direction: column; line-height: 1.15; white-space: nowrap; overflow: hidden; }
.sb-title strong { font-size: 15px; color: #fff; }
.sb-title span { font-size: 12px; color: #94a3b8; }
.sb-nav { padding: 6px 10px 20px; }
.sb-group { margin-bottom: 14px; }
.sb-group-title { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.06em; color: #64748b; padding: 6px 10px; font-weight: 700; white-space: nowrap; }
.sb-item {
  width: 100%; display: flex; align-items: center; gap: 11px;
  padding: 9px 10px; margin: 1px 0; border: 0; border-radius: 9px;
  background: transparent; color: #cbd5e1; font: inherit; font-size: 13.5px; font-weight: 600;
  cursor: pointer; text-align: left; white-space: nowrap;
}
.sb-item:hover { background: rgba(148, 163, 184, 0.14); color: #fff; }
.sb-item.active { background: linear-gradient(135deg, #1f6fb5, #37a936); color: #fff; }
.sb-ic { width: 20px; text-align: center; flex: 0 0 auto; font-size: 15px; }
.sb-overlay { display: none; }

/* Recolhida (desktop): só ícones */
body.sb-collapsed .sidebar { flex-basis: 64px; width: 64px; }
body.sb-collapsed .sb-title, body.sb-collapsed .sb-lb, body.sb-collapsed .sb-group-title { display: none; }
body.sb-collapsed .sb-head { justify-content: center; padding: 16px 8px 14px; }
body.sb-collapsed .sb-item { justify-content: center; padding: 10px 0; }
body.sb-collapsed .sb-group { border-top: 1px solid rgba(148,163,184,0.12); padding-top: 8px; }

/* Rodapé: indicador de última sincronização */
.sb-foot { margin-top: auto; display: flex; align-items: center; gap: 8px; padding: 11px 14px; border-top: 1px solid rgba(148,163,184,0.16); font-size: 11.5px; color: #94a3b8; white-space: nowrap; cursor: default; }
.sb-foot-ic { flex: 0 0 auto; font-size: 13px; }
.sb-foot-tx { overflow: hidden; text-overflow: ellipsis; line-height: 1.3; }
.sb-foot.is-stale { color: #fbbf24; }
.sb-foot.is-stale .sb-foot-ic { filter: none; }
body.sb-collapsed .sb-foot { justify-content: center; padding: 11px 0; }
body.sb-collapsed .sb-foot-tx { display: none; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 24px;
  background: rgba(244, 246, 250, 0.92);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(217, 224, 234, 0.9);
}
.topbar-left { display: flex; align-items: center; gap: 12px; min-width: 0; }
.topbar-meta { margin: 0; color: var(--muted); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sb-toggle {
  border: 1px solid var(--line); background: #fff; border-radius: 9px;
  width: 38px; height: 38px; font-size: 17px; cursor: pointer; flex: 0 0 auto; color: var(--ink, #0f172a);
}
.sb-toggle:hover { background: #f1f5f9; }

@media (max-width: 880px) {
  .sidebar {
    position: fixed; left: 0; top: 0; height: 100vh;
    transform: translateX(-100%); transition: transform 0.2s ease;
  }
  body.sb-open .sidebar { transform: translateX(0); }
  body.sb-open .sb-overlay { display: block; position: fixed; inset: 0; background: rgba(15,23,42,0.5); z-index: 30; }
}

/* Tudo (Grupos/Clientes, Crescimento, Processos, sino, usuário) numa linha só */
.top-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
  justify-content: flex-end;
}
.top-actions .view-toggle { padding: 8px 13px; font-size: 12.5px; }
.topbar-period { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; background: var(--soft, #f1f5f9); border-radius: 10px; white-space: nowrap; }
.topbar-period .period-label { font-size: 12px; color: var(--muted, #64748b); font-weight: 600; }
.topbar-period select { padding: 4px 7px; border: 1px solid var(--line, #d6dbe4); border-radius: 7px; font-size: 12.5px; background: #fff; }
.topbar-period .period-arrow { color: var(--muted, #94a3b8); }
.topbar-period .period-hint { font-size: 11px; color: var(--muted, #94a3b8); }
@media (max-width: 1100px) { .topbar-period .period-hint, .topbar-period .period-label { display: none; } }

.brand {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 11px;
  background: #ffffff;
  color: #ffffff;
  font-weight: 800;
  flex: 0 0 auto;
  padding: 8px;
  box-shadow: 0 2px 8px rgba(15,23,42,.12);
}
.brand-mark svg { width: 100%; height: 100%; display: block; }

.brand h1 {
  margin: 0;
  font-size: 22px;
  line-height: 1.1;
}

.brand p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.segmented {
  display: inline-flex;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #ffffff;
}

.segment {
  border: 0;
  color: var(--muted);
  background: transparent;
  padding: 9px 14px;
  border-radius: 9px;
  cursor: pointer;
}

.segment.active {
  color: #ffffff;
  background: var(--navy);
}

.dashboard {
  padding: 22px 28px 32px;
}

.threshold-panel {
  display: grid;
  grid-template-columns: repeat(4, minmax(190px, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.threshold-card,
.kpi,
.main-panel,
.detail-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.threshold-card {
  border-radius: 16px;
  padding: 15px;
  border-top-width: 4px;
}

.threshold-card label {
  display: block;
  margin-bottom: 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.threshold-value {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 10px;
}

.threshold-value input {
  width: 88px;
  border: 0;
  outline: none;
  color: var(--text);
  background: transparent;
  font-size: 26px;
  font-weight: 800;
}

.threshold-value span {
  color: var(--muted);
  font-size: 18px;
  font-weight: 700;
}

input[type='range'] {
  width: 100%;
  accent-color: var(--accent);
}

.status-prejuizo { border-top-color: var(--prejuizo); }
.status-critico { border-top-color: var(--critico); }
.status-atencao { border-top-color: var(--atencao); }
.status-target { border-top-color: var(--accent); }

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.kpi {
  border-radius: 16px;
  padding: 17px;
}

.kpi span,
.metric-grid span,
.score-box span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.kpi strong {
  display: block;
  margin-top: 8px;
  font-size: 26px;
  line-height: 1;
}

.kpi small {
  display: block;
  margin-top: 8px;
  color: var(--muted);
}

.workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(440px, 32%, 560px);
  gap: 16px;
  align-items: start;
}

.main-panel,
.detail-panel {
  border-radius: 18px;
}

.panel-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px;
  border-bottom: 1px solid var(--line);
}

.search-box {
  flex: 1;
  min-width: 250px;
}

.search-box input,
.panel-toolbar select {
  width: 100%;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
  color: var(--text);
  padding: 0 12px;
  outline: none;
}

.panel-toolbar select {
  flex: 0 0 220px;
}

.toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: max-content;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.toggle input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
}

.alert-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-right: 14px;
}
.alert-row .alert-strip { flex: 1 1 auto; }

/* Controle de média aparada */
.trim-control {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px;
  margin-top: 13px;
  background: linear-gradient(135deg, #f0f4ff 0%, #e8f5f3 100%);
  border: 1px solid #d7e3f4;
  border-radius: 10px;
  white-space: nowrap;
}
.trim-label { font-size: 11.5px; font-weight: 800; color: var(--navy); text-transform: uppercase; letter-spacing: 0.03em; }
.trim-btn {
  width: 24px; height: 24px; border: 1px solid var(--line); border-radius: 7px;
  background: #fff; color: var(--navy); font-size: 16px; font-weight: 800; line-height: 1;
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
}
.trim-btn:hover { background: var(--soft); border-color: var(--accent); }
.trim-value { min-width: 16px; text-align: center; font-weight: 800; font-size: 15px; color: var(--accent); }
.trim-hint { font-size: 11px; color: var(--muted); font-weight: 600; }
.trim-hint.warn { color: var(--prejuizo); font-weight: 800; }

.extras-controls { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pico-control { background: linear-gradient(135deg, #fef3c7 0%, #fef9e7 100%); border-color: #f3d37a; }
.pico-control .trim-label { color: #92400e; }
.pico-control .trim-value { color: #b45309; }
.pico-x { font-weight: 800; color: #b45309; margin-left: -2px; }

/* Quadrinho ⚡ Pico */
.alert-chip.pico-chip {
  background: #fffbeb; color: #92400e; border: 1px solid #f3d37a;
}
.alert-chip.pico-chip.on { background: #f59e0b; color: #fff; border-color: #d97706; }
.alert-chip.pico-chip b { color: inherit; }

/* Selo ⚡ na linha — sempre ao lado do badge de alerta, na mesma linha */
.entity-table td.alert-cell {
  white-space: nowrap;
}
.entity-table td.alert-cell .badge { vertical-align: middle; }
.pico-selo {
  margin-left: 5px; font-size: 13px; cursor: help; vertical-align: middle;
  display: inline-block;
  filter: drop-shadow(0 1px 1px rgba(180,83,9,0.3));
}

/* Tag de pico na tabela de análise */
.pico-tag {
  display: inline-block; margin-left: 7px; padding: 1px 7px; border-radius: 8px;
  font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em;
  background: #fef3c7; color: #92400e; vertical-align: middle;
}

/* Mês aparado na tabela de análise */
.analysis-table tr.trimmed-row td { opacity: 0.55; }
.analysis-table tr.trimmed-row .sticky-col { opacity: 1; }
.trim-tag {
  display: inline-block; margin-left: 7px; padding: 1px 7px; border-radius: 8px;
  font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em;
  background: #fee2e2; color: #b91c1c; vertical-align: middle;
}

.alert-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 13px 14px 0;
}

.alert-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 7px 10px;
  background: #ffffff;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.alert-chip b {
  color: var(--text);
}

.table-wrap {
  overflow: auto;
  padding: 12px 14px 0;
  max-height: calc(100vh - 390px);
  min-height: 420px;
}

.entity-table {
  width: 100%;
  min-width: 1280px;
  border-collapse: separate;
  border-spacing: 0 8px;
}

.entity-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--panel);
  color: var(--muted);
  font-size: 11px;
  text-align: left;
  text-transform: uppercase;
  padding: 0 10px 6px;
  white-space: nowrap;
}
.entity-table th.sortable {
  cursor: pointer;
  user-select: none;
  transition: color 0.12s;
}
.entity-table th.sortable:hover { color: var(--navy); }
.entity-table th.sorted { color: var(--accent); }
.entity-table th .sort-ind {
  font-size: 9px;
  margin-left: 2px;
  color: var(--accent);
}

.entity-table td {
  background: #f9fbfd;
  border-top: 1px solid #e6ebf2;
  border-bottom: 1px solid #e6ebf2;
  padding: 11px 10px;
  vertical-align: middle;
  font-size: 13px;
}

.entity-table tr td:first-child {
  border-left: 1px solid #e6ebf2;
  border-radius: 12px 0 0 12px;
}

.entity-table tr td:last-child {
  border-right: 1px solid #e6ebf2;
  border-radius: 0 12px 12px 0;
}

.entity-table tbody tr {
  cursor: pointer;
}

.entity-table tbody tr:hover td,
.entity-table tbody tr.selected td {
  background: #eef8f6;
  border-color: #b9ded7;
}

.entity-table td.current-fee {
  font-weight: 700;
  color: var(--navy);
}

.entity-table td.current-sm {
  font-variant-numeric: tabular-nums;
  color: var(--accent);
  font-weight: 700;
}

.entity-table td.current-sm::after {
  content: ' SM';
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  margin-left: 2px;
}

/* Coluna Regime — só visível quando o modo é "cliente" */
body.mode-grupo .col-regime { display: none; }

/* Colunas compactas (Faturamento médio / Vidas) */
.entity-table th.col-fat,
.entity-table th.col-vidas,
.entity-table td.compact {
  text-align: right;
  font-size: 12.5px;
  white-space: nowrap;
  padding-left: 4px;
  padding-right: 8px;
  font-variant-numeric: tabular-nums;
}
.entity-table td.compact {
  font-weight: 700;
  color: var(--text);
}
.entity-table td.col-fat   { color: var(--navy); }
.entity-table td.col-vidas { color: var(--accent); }

/* Mini-seta inline ao lado do valor compacto */
.trend-arrow.inline {
  display: inline-block;
  margin-right: 4px;
  padding: 1px 5px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 800;
  vertical-align: middle;
}
.entity-table td.regime {
  font-size: 12px;
  color: var(--text);
  white-space: nowrap;
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.entity-table td.regime .regime-na,
.month-detail-table .regime-na { color: var(--muted); font-style: italic; }

/* Regime na sub-tabela do drill-down mensal */
.month-detail-table .mini-regime {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--navy);
  background: #eef2f7;
  border-radius: 8px;
  padding: 2px 7px;
  display: inline-block;
  white-space: nowrap;
}
.month-detail-table .mini-regime.regime-na { background: transparent; color: var(--muted); font-weight: 400; }

.entity-name {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 230px;
}

.entity-name-button {
  width: 100%;
  border: 0;
  border-radius: 10px;
  padding: 0;
  text-align: left;
  background: transparent;
  cursor: zoom-in;
}

.entity-name-button:hover strong {
  color: var(--accent);
}

.entity-name-button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.entity-name strong {
  color: var(--text);
  line-height: 1.2;
}

.entity-name span {
  color: var(--muted);
  font-size: 12px;
}

.score-pill,
.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  border-radius: 999px;
  padding: 6px 9px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.badge {
  min-width: 0;
  padding: 7px 10px;
}

.alert-PREJUIZO { background: var(--prejuizo); color: #ffffff; }
.alert-CRITICO { background: var(--critico); color: #ffffff; }
.alert-ATENCAO { background: #fef3c7; color: #7c4a03; border: 1px solid #f3d37a; }
.alert-SAUDAVEL { background: #dcfce7; color: #166534; border: 1px solid #a8e7ba; }
.alert-NEUTRO { background: #e2e8f0; color: #334155; border: 1px solid #cbd5e1; }
.alert-SEM-MOVIMENTO { background: #eeeeee; color: #667085; border: 1px solid #d4d4d8; }

.score-p1 { background: #b42318; }
.score-p2 { background: #b7791f; }
.score-p3 { background: #475569; }
.score-zero { background: #cbd5e1; color: #334155; }

.trend {
  color: var(--muted);
  font-weight: 800;
}

.trend.up { color: var(--saudavel); }
.trend.down { color: var(--critico); }

.empty {
  text-align: center;
  color: var(--muted);
  padding: 40px !important;
}

.table-footer {
  padding: 10px 14px 14px;
  color: var(--muted);
  font-size: 12px;
}

/* ── Period bar ──────────────────────────────────────────── */
.period-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: linear-gradient(135deg, #f0f4ff 0%, #e8f5f3 100%);
  border-bottom: 1px solid var(--line);
  border-top: 1px solid #e2e8f4;
  flex-wrap: wrap;
}

.period-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: 0.03em;
  white-space: nowrap;
  text-transform: uppercase;
}

.period-selectors {
  display: flex;
  align-items: center;
  gap: 8px;
}

.period-selectors select {
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #ffffff;
  color: var(--text);
  font-size: 13px;
  outline: none;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s;
  min-width: 110px;
}

.period-selectors select:hover {
  border-color: var(--accent);
}

.period-selectors select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.12);
}

.period-arrow {
  color: var(--muted);
  font-size: 16px;
  font-weight: 400;
  user-select: none;
}

.period-hint {
  font-size: 12px;
  color: var(--accent);
  font-weight: 700;
  background: rgba(15, 118, 110, 0.08);
  border-radius: 20px;
  padding: 3px 10px;
  white-space: nowrap;
}

.detail-panel {
  position: sticky;
  top: 92px;
  padding: 16px;
}

.detail-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.eyebrow {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.detail-header h2 {
  margin: 5px 0 4px;
  font-size: 21px;
  line-height: 1.18;
}

.detail-header p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.score-box {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 10px;
  margin-top: 14px;
}

.score-box > div,
.metric-grid > div {
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #f9fbfd;
  padding: 12px;
}

.score-box strong {
  display: block;
  margin-top: 7px;
  font-size: 22px;
}

.motives {
  margin-top: 12px;
  padding: 12px;
  border-radius: 13px;
  background: #fff7ed;
  color: #7c2d12;
  font-size: 13px;
  line-height: 1.35;
}

#marginChart {
  width: 100%;
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #ffffff;
}

.metric-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}

.metric-grid strong {
  display: block;
  margin-top: 6px;
  font-size: 16px;
}

.children-block {
  margin-top: 14px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.children-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.children-title h3 {
  margin: 0;
  font-size: 15px;
}

.children-title span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.children-list {
  display: grid;
  gap: 8px;
}

.child-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f9fbfd;
}

.child-row strong {
  display: block;
  font-size: 13px;
  line-height: 1.2;
}

.child-row span {
  color: var(--muted);
  font-size: 12px;
}

.money,
.pct {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.46);
  backdrop-filter: blur(5px);
}

.modal-backdrop.open {
  display: flex;
}

.company-modal {
  width: min(760px, 100%);
  max-height: min(760px, calc(100vh - 48px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--panel);
  box-shadow: 0 28px 90px rgba(15, 23, 42, 0.28);
}

.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 20px 14px;
  border-bottom: 1px solid var(--line);
}

.modal-header h2 {
  margin: 5px 0 5px;
  font-size: 22px;
  line-height: 1.15;
}

.modal-header p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.icon-button {
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
  color: var(--muted);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.icon-button:hover {
  color: var(--text);
  border-color: #b8c3d2;
}

.modal-toolbar {
  padding: 14px 20px;
  border-bottom: 1px solid var(--line);
}

.modal-toolbar input {
  width: 100%;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 11px;
  padding: 0 12px;
  outline: none;
}

.company-table-wrap {
  overflow: auto;
  padding: 10px 20px 18px;
}

.company-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 8px;
}

.company-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 4px 12px 7px;
  background: var(--panel);
  color: var(--muted);
  font-size: 11px;
  text-align: left;
  text-transform: uppercase;
}

.company-table td {
  padding: 12px;
  background: #f9fbfd;
  border-top: 1px solid #e6ebf2;
  border-bottom: 1px solid #e6ebf2;
  font-size: 13px;
}

.company-table th:nth-child(3),
.company-table th:nth-child(4),
.company-table td.money,
.company-table td.num {
  text-align: right;
  white-space: nowrap;
}

.company-table td:first-child {
  width: 92px;
  border-left: 1px solid #e6ebf2;
  border-radius: 12px 0 0 12px;
  color: var(--navy);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.company-table td:nth-child(2) {
  font-weight: 700;
}

.company-table td.money {
  color: var(--navy);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  width: 140px;
}

.company-table td.money .ref {
  display: block;
  color: var(--muted);
  font-weight: 500;
  font-size: 10.5px;
  margin-top: 2px;
}

.company-table td.num {
  color: var(--accent);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  width: 80px;
}

.company-table td.num::after {
  content: ' SM';
  font-size: 10.5px;
  font-weight: 600;
  color: var(--muted);
  margin-left: 2px;
}

.company-table td:last-child {
  border-right: 1px solid #e6ebf2;
  border-radius: 0 12px 12px 0;
}

/* Tag EVENTUAL no modal de empresas */
.company-tag {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 9px;
  border-radius: 11px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  vertical-align: middle;
}

.company-tag.eventual {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #92400e;
  border: 1px solid #f6c356;
}

.company-table tr.eventual-row td {
  background: #fffbf2;
}

.company-table tr.eventual-row td:first-child {
  border-left: 3px solid #f59e0b;
}

/* Regime tributário no modal de empresas */
.company-table th:nth-child(3),
.company-table td.regime {
  text-align: left;
  font-size: 12px;
  color: var(--text);
  white-space: nowrap;
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.company-table td.regime .regime-na { color: var(--muted); font-style: italic; }

/* ═══════════════════════════════════════════════════════════════════════
 * Cards de tendência (Faturamento, Vidas) na sidebar
 * ═══════════════════════════════════════════════════════════════════════ */
.metric-grid .metric-trend {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  position: relative;
}
.metric-trend-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.metric-trend-head > span:first-child {
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: 0.05em;
}
.metric-trend strong {
  display: block;
  margin-top: 6px;
  font-size: 19px;
  font-weight: 800;
  color: var(--text);
}
.metric-trend .metric-sub {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.trend-arrow {
  font-size: 16px;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 8px;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.trend-arrow.trend-up     { color: #ffffff; background: var(--saudavel); }
.trend-arrow.trend-down   { color: #ffffff; background: var(--prejuizo); }
.trend-arrow.trend-stable { color: #92400e; background: #fef3c7; border: 1px solid #fcd34d; }

/* "de X → para Y" nas listas de volumetria */
.vol-fromto {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--text);
}
.vol-fromto .vol-arrow {
  color: var(--accent);
  margin: 0 3px;
  font-weight: 800;
}

/* Regime no header da sidebar */
.detail-regime {
  margin: 4px 0 0;
  padding: 3px 9px;
  display: inline-block;
  background: linear-gradient(135deg, #eef2f7 0%, #e2e8f0 100%);
  border-radius: 10px;
  font-size: 11px;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: 0.02em;
}

/* ═══════════════════════════════════════════════════════════════════════
 * KPI especial (custo total no período)
 * ═══════════════════════════════════════════════════════════════════════ */
.kpi.kpi-accent {
  background: linear-gradient(135deg, #17324d 0%, #37a936 100%);
  color: #ffffff;
  border-color: transparent;
}
.kpi.kpi-accent span { color: rgba(255, 255, 255, 0.78); }
.kpi.kpi-accent strong { color: #ffffff; }
.kpi.kpi-accent small { color: rgba(255, 255, 255, 0.85); }

/* ═══════════════════════════════════════════════════════════════════════
 * Sidebar — pares total/média (Honorário gerado e pago)
 * ═══════════════════════════════════════════════════════════════════════ */
.metric-grid .metric-pair {
  position: relative;
}
.metric-grid .metric-pair .metric-sub {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

/* ═══════════════════════════════════════════════════════════════════════
 * Modal de análise — coluna "Hon. Pago" + linha expansível por mês
 * ═══════════════════════════════════════════════════════════════════════ */
.analysis-table td.paid,
.analysis-table tfoot td.paid {
  background: rgba(15, 118, 110, 0.04);
  color: var(--accent);
  font-weight: 700;
}
.analysis-table tbody tr:hover td.paid {
  background: rgba(15, 118, 110, 0.10);
}

.analysis-table tr.expandable {
  cursor: pointer;
}
.analysis-table tr.expandable .row-caret {
  display: inline-block;
  width: 14px;
  margin-right: 4px;
  color: var(--muted);
  transition: transform 0.15s;
  font-size: 11px;
}
.analysis-table tr.expandable.expanded .row-caret {
  transform: rotate(90deg);
  color: var(--accent);
}
.analysis-table tr.expandable.expanded .sticky-col {
  background: #e6f4f1;
  border-left-color: var(--accent) !important;
  border-left-width: 4px !important;
}

.analysis-table tr.month-detail-row td {
  padding: 0;
  background: #f8fafc;
  border-top: 0;
}

.month-detail {
  padding: 14px 18px;
  border-left: 4px solid var(--accent);
  background: #f8fafc;
}

.month-detail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.month-detail-header strong {
  font-size: 13px;
  color: var(--text);
}

.month-detail-header span {
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}

.month-detail-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 12px;
}

.month-detail-table thead th {
  padding: 8px 8px;
  text-align: left;
  background: #eef2f7;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--line);
}
.month-detail-table thead th.num { text-align: right; }

.month-detail-table tbody td {
  padding: 7px 8px;
  border-bottom: 1px solid #e8edf3;
  background: #ffffff;
  font-variant-numeric: tabular-nums;
}
.month-detail-table tbody td.num { text-align: right; }
.month-detail-table tbody td.strong { font-weight: 800; color: var(--navy); }
.month-detail-table tbody td.pos { color: var(--saudavel); font-weight: 700; }
.month-detail-table tbody td.neg { color: var(--prejuizo); font-weight: 700; }

.month-detail-table tbody tr.row-prejuizo td:first-child {
  border-left: 3px solid var(--prejuizo);
}

.month-detail-table tbody tr:hover td {
  background: #f0fdfa;
}

.mini-sit {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--muted);
}

.month-detail-loading,
.month-detail-empty,
.month-detail-error {
  padding: 18px;
  text-align: center;
  font-size: 13px;
  color: var(--muted);
  background: #f8fafc;
  border-left: 4px solid var(--line);
}

.month-detail-error {
  color: var(--prejuizo);
  border-left-color: var(--prejuizo);
}

/* ═══════════════════════════════════════════════════════════════════════
 * Sidebar — card duplo (Resultado: total + média ambos em destaque)
 * ═══════════════════════════════════════════════════════════════════════ */
.metric-grid .metric-double {
  grid-column: span 2;
  background: linear-gradient(135deg, #eef2f7 0%, #f8fafc 100%);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px 16px;
}

.metric-double > span {
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.metric-double-row {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  gap: 12px;
  align-items: center;
  margin-top: 6px;
}
.metric-double-row::before {
  content: '';
  grid-column: 2;
  height: 36px;
  background: var(--line);
  width: 1px;
  justify-self: center;
}
.metric-double-row > div:first-child { grid-column: 1; }
.metric-double-row > div:last-child  { grid-column: 3; }

.metric-double-row > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.metric-double-row strong {
  font-size: 18px;
  font-weight: 800;
  color: var(--text);
  line-height: 1.1;
}
.metric-double-row small {
  font-size: 10.5px;
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ═══════════════════════════════════════════════════════════════════════
 * Botão CTA no topbar (Volumetria)
 * ═══════════════════════════════════════════════════════════════════════ */
.topbar-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: linear-gradient(135deg, #1f6fb5 0%, #37a936 100%);
  color: #ffffff;
  border: 0;
  border-radius: 12px;
  font: inherit;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  letter-spacing: 0.02em;
  box-shadow: 0 6px 20px rgba(15, 118, 110, 0.22);
  transition: transform 0.1s, box-shadow 0.15s;
}
.topbar-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(15, 118, 110, 0.32);
}
.topbar-cta:active { transform: translateY(0); }

.topbar-cta.secondary {
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #ffffff;
  box-shadow: none;
  padding: 7px 12px;
  font-size: 12px;
}
.topbar-cta.secondary:hover {
  background: rgba(255, 255, 255, 0.28);
  transform: none;
}

/* ═══════════════════════════════════════════════════════════════════════
 * Seção Volumetria (dentro do dashboard, abaixo do workspace)
 * ═══════════════════════════════════════════════════════════════════════ */
/* Garante que qualquer view oculta colapse 100% (evita espaços vazios) */
[hidden] { display: none !important; }

/* ── Botão de alternância Painel ⇄ Crescimento (topbar) ── */
.view-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #ffffff;
  font: inherit;
  font-weight: 700;
  font-size: 13px;
  color: var(--navy);
  cursor: pointer;
  transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}
.view-toggle:hover { background: var(--soft); }
.view-toggle.active {
  background: linear-gradient(135deg, #1f6fb5 0%, #37a936 100%);
  color: #ffffff;
  border-color: transparent;
  box-shadow: 0 6px 18px rgba(15, 118, 110, 0.25);
}

/* Esconde a barra de período quando a aba Crescimento está ativa
   (a volumetria usa histórico desde o reajuste, não o período) */
body.view-cresc .period-bar { display: none; }

/* ── Aba Crescimento ── */
#crescimentoView { animation: viewIn 0.18s ease-out; }
@keyframes viewIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }

.cresc-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  padding: 14px 22px;
  border-radius: 14px;
  background: linear-gradient(135deg, #0f172a 0%, #1f6fb5 50%, #37a936 100%);
  color: #ffffff;
  box-shadow: var(--shadow);
  margin-bottom: 14px;
}
.cresc-head-text { flex: 1 1 420px; min-width: 0; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); }
.cresc-header .eyebrow {
  color: rgba(255, 255, 255, 0.95);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.cresc-header h2 { margin: 3px 0; font-size: 18px; color: #ffffff; }
.cresc-header p { margin: 0; font-size: 12px; color: #ffffff; line-height: 1.45; }
/* "Pílulas" coloridas mantêm seu próprio contraste, sem sombra. */
.cresc-header .leg { text-shadow: none; }

.cresc-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.cresc-controls .segmented { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.25); }
.cresc-controls .segmented .segment { color: rgba(255,255,255,0.82); }
.cresc-controls .segmented .segment.active { background: #ffffff; color: var(--navy); }
.cresc-search {
  height: 36px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 9px;
  background: rgba(255,255,255,0.95);
  font: inherit;
  font-size: 13px;
  outline: none;
  min-width: 220px;
}

/* ── Layout LISTA ÚNICA ── */
.cresc-lista-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 10px 14px;
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: 10px;
  margin-bottom: 10px;
  font-size: 13px;
}
.cresc-lista-bar input {
  width: 64px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 700;
  text-align: right;
}
.cresc-lista-count { color: var(--accent); font-weight: 800; font-size: 12px; }
.cresc-lista-wrap { overflow: auto; border-radius: 12px; }
.cresc-table { width: 100%; min-width: 760px; border-collapse: separate; border-spacing: 0; }
.cresc-table thead th {
  position: sticky; top: 0; z-index: 1;
  background: var(--navy); color: #fff;
  padding: 10px 12px; text-align: left; font-size: 11px;
  font-weight: 800; letter-spacing: 0.03em; text-transform: uppercase; white-space: nowrap;
}
.cresc-table thead th.num { text-align: right; }
.cresc-table thead th.sortable { cursor: pointer; user-select: none; }
.cresc-table thead th.sortable:hover { background: #1e293b; }
.cresc-table thead th.sorted { color: #7dd3c7; }
.cresc-table tbody td { padding: 9px 12px; border-bottom: 1px solid #e8edf3; font-size: 13px; background: #fff; }
.cresc-table tbody tr { cursor: pointer; }
.cresc-table tbody tr:hover td { background: #f0fdfa; }
.cresc-table td.ent strong { display: block; color: var(--text); }
.cresc-table td.ent small { color: var(--muted); font-size: 11px; }
.cresc-table td.anchor { font-size: 11.5px; color: var(--accent); font-weight: 700; white-space: nowrap; }
.cresc-table td.anchor small { display: block; color: var(--muted); font-weight: 500; }
.cresc-table td.num { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }
.cresc-table td.num.pos { color: var(--saudavel); }
.cresc-table td.num.neg { color: var(--prejuizo); }
.cresc-table td.num.hot { color: #fff; }
.cresc-table td.num.hot { background: var(--saudavel); border-radius: 6px; }

/* ── Layout ABAS ── */
.cresc-metric-tabs { margin-bottom: 12px; flex-wrap: wrap; }
.cresc-aba-bar {
  display: flex; align-items: center; gap: 14px;
  padding: 10px 14px; background: var(--soft);
  border: 1px solid var(--line); border-radius: 10px; margin-bottom: 12px;
}
.cresc-aba-bar .vol-range { flex: 1; }
.cresc-aba-list {
  border: 1px solid var(--line); border-radius: 12px; background: #fff;
  max-height: 64vh; overflow: auto; padding: 8px 12px 14px;
}

.volumetria-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.vol-frame {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 280px;
  max-height: 520px;
}

.vol-frame > header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  font-size: 13px;
  background: var(--soft);
  border-bottom: 1px solid var(--line);
}
.vol-frame > header strong { font-size: 13.5px; color: var(--text); letter-spacing: 0.02em; }

.vol-controls {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
}

.vol-controls .vol-range {
  flex: 1;
  height: 4px;
  -webkit-appearance: none;
  appearance: none;
  background: linear-gradient(90deg, var(--saudavel) 0%, var(--atencao) 60%, var(--prejuizo) 100%);
  border-radius: 4px;
  outline: none;
}
.vol-controls .vol-range::-webkit-slider-thumb,
.vol-controls .vol-range::-moz-range-thumb {
  width: 18px;
  height: 18px;
  background: var(--navy);
  border-radius: 50%;
  border: 2px solid #ffffff;
  box-shadow: 0 2px 6px rgba(15,23,42,0.18);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.vol-input-wrap {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 10px;
  background: var(--soft);
  border-radius: 8px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.vol-input-wrap input {
  width: 60px;
  border: 0;
  background: transparent;
  font: inherit;
  font-weight: 800;
  text-align: right;
  outline: none;
  color: var(--text);
}

.vol-list {
  flex: 1;
  overflow: auto;
  padding: 8px 12px 14px;
}
.vol-count {
  font-size: 11px;
  font-weight: 800;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 6px 8px;
  border-bottom: 1px dashed var(--line);
  margin-bottom: 6px;
}
.vol-empty {
  padding: 26px 10px;
  text-align: center;
  color: var(--muted);
  font-size: 12.5px;
  font-style: italic;
}

.vol-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 12px;
  padding: 10px 10px;
  border-radius: 9px;
  cursor: pointer;
  transition: background 0.12s;
}
.vol-item:hover { background: #f0fdfa; }
.vol-item-name strong {
  display: block;
  font-size: 13px;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.vol-item-name span { display: block; font-size: 11px; color: var(--muted); margin-top: 1px; }
.vol-item-name .vol-anchor { color: var(--accent); font-weight: 700; }

/* Badge de transição "de X → para Y" em destaque */
.vol-fromto {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: 10px;
  background: linear-gradient(135deg, #eef9f7 0%, #e0f2fe 100%);
  border: 1px solid #c5e9f1;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  font-size: 12.5px;
  color: var(--navy);
  white-space: nowrap;
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.vol-fromto .vol-from { color: var(--muted); }
.vol-fromto .vol-to   { color: var(--accent); font-size: 13px; }
.vol-fromto .vol-arrow {
  color: var(--accent);
  font-weight: 900;
}

.vol-item-pct {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  font-size: 14px;
  min-width: 70px;
  text-align: right;
}
.vol-item-pct.pos { color: var(--saudavel); }
.vol-item-pct.neg { color: var(--prejuizo); }

@media (max-width: 720px) {
  .vol-item { grid-template-columns: minmax(0, 1fr) auto; }
  .vol-fromto, .badge { grid-column: 1; justify-self: start; }
  .vol-item-pct { grid-row: 1; grid-column: 2; }
}

@media (max-width: 920px) {
  .volumetria-grid { grid-template-columns: 1fr; }
  .metric-grid .metric-double { grid-column: span 1; }
}

/* ═══════════════════════════════════════════════════════════════════════
 * Garante PREJUIZO sempre fundo vermelho + texto branco
 * ═══════════════════════════════════════════════════════════════════════ */
.badge.alert-PREJUIZO,
.child-row .badge.alert-PREJUIZO,
.detail-panel .badge.alert-PREJUIZO {
  background: var(--prejuizo) !important;
  color: #ffffff !important;
  border-color: var(--prejuizo) !important;
}
.badge.alert-CRITICO,
.child-row .badge.alert-CRITICO,
.detail-panel .badge.alert-CRITICO {
  background: var(--critico) !important;
  color: #ffffff !important;
  border-color: var(--critico) !important;
}

@media (max-width: 1180px) {
  .workspace {
    grid-template-columns: 1fr;
  }

  .detail-panel {
    position: static;
  }
}

@media (max-width: 900px) {
  .topbar,
  .panel-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .top-actions,
  .segmented {
    width: 100%;
  }

  .segment {
    flex: 1;
  }

  .threshold-panel,
  .kpi-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 620px) {
  .dashboard,
  .topbar {
    padding-left: 14px;
    padding-right: 14px;
  }

  .threshold-panel,
  .kpi-grid,
  .metric-grid,
  .score-box {
    grid-template-columns: 1fr;
  }

  .brand h1 {
    font-size: 18px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
 * LOGIN PAGE
 * ═══════════════════════════════════════════════════════════════════════ */
.login-body {
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #0d4f4f 100%);
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 20px;
}

.login-shell {
  width: 100%;
  max-width: 420px;
}

.login-card {
  background: #ffffff;
  border-radius: 20px;
  padding: 36px 32px 28px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
  animation: loginIn 0.35s ease-out;
}

@keyframes loginIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.login-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}

.login-brand .brand-mark {
  width: 48px;
  height: 48px;
  font-size: 22px;
  border-radius: 12px;
}

.login-brand h1 {
  margin: 0;
  font-size: 19px;
  line-height: 1.2;
  color: var(--text);
}

.login-brand p {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--muted);
}

#loginForm {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

#loginForm label {
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
  margin-top: 10px;
  letter-spacing: 0.02em;
}

#loginForm input {
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0 14px;
  font-size: 14px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

#loginForm input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.14);
}

#loginButton {
  margin-top: 18px;
  height: 44px;
  border: 0;
  border-radius: 10px;
  background: var(--navy);
  color: #ffffff;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  transition: background 0.15s, transform 0.05s;
}

#loginButton:hover:not(:disabled) { background: #0e2640; }
#loginButton:active:not(:disabled) { transform: scale(0.98); }
#loginButton:disabled { opacity: 0.6; cursor: not-allowed; }

.login-error {
  margin: 14px 0 0;
  padding: 10px 12px;
  background: #fff1f2;
  border: 1px solid #ffcdd2;
  border-radius: 10px;
  color: #9c0006;
  font-size: 13px;
  font-weight: 600;
}

.login-footer {
  margin: 24px 0 0;
  text-align: center;
  color: var(--muted);
  font-size: 11px;
}

/* ═══════════════════════════════════════════════════════════════════════
 * USER MENU (topbar)
 * ═══════════════════════════════════════════════════════════════════════ */
.user-menu {
  position: relative;
  display: inline-block;
}

.user-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 6px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 24px;
  cursor: pointer;
  font: inherit;
  color: var(--text);
  transition: border-color 0.15s, box-shadow 0.15s;
}

.user-pill:hover {
  border-color: var(--accent);
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
}

.user-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--navy);
  color: #ffffff;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.5px;
}

.user-name {
  font-weight: 600;
  font-size: 13px;
  max-width: 140px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-caret {
  color: var(--muted);
  font-size: 10px;
}

.user-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 240px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 14px 40px rgba(15, 23, 42, 0.15);
  z-index: 30;
  overflow: hidden;
  animation: dropIn 0.12s ease-out;
}

@keyframes dropIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.user-dropdown-header {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f8fafc 0%, #eef2f7 100%);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.user-dropdown-header strong {
  font-size: 14px;
  color: var(--text);
}

.user-dropdown-header span {
  font-size: 12px;
  color: var(--muted);
}

.user-role {
  align-self: flex-start;
  margin-top: 4px;
  padding: 2px 9px;
  border-radius: 11px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.user-role.role-admin {
  background: #fff4e5;
  color: #9c5700;
}

.user-role.role-user {
  background: #eaf4ff;
  color: #1d4ed8;
}

.user-dropdown-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 13px;
  text-align: left;
  cursor: pointer;
  color: var(--text);
  transition: background 0.1s;
}

.user-dropdown-item:hover {
  background: var(--soft);
}

.user-dropdown-item.logout {
  color: #9c0006;
  border-top: 1px solid var(--line);
}

.user-dropdown-item.logout:hover {
  background: #fff1f2;
}

/* ═══════════════════════════════════════════════════════════════════════
 * USERS MODAL
 * ═══════════════════════════════════════════════════════════════════════ */
.users-modal {
  max-width: 900px;
  width: 100%;
  background: #ffffff;
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 92vh;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}

.users-create {
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f0f4ff 0%, #e8f5f3 100%);
}

.users-create h3 {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--navy);
}

.users-create-form {
  display: grid;
  grid-template-columns: 1.4fr 1.8fr 1.2fr 0.9fr auto;
  gap: 8px;
}

.users-create-form input,
.users-create-form select {
  height: 38px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  font: inherit;
  font-size: 13px;
  background: #ffffff;
  outline: none;
  transition: border-color 0.15s;
}

.users-create-form input:focus,
.users-create-form select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.12);
}

.users-create-form .primary {
  height: 38px;
  padding: 0 18px;
  background: var(--accent);
  color: #ffffff;
  border: 0;
  border-radius: 9px;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.15s;
}

.users-create-form .primary:hover { background: #0d6660; }

.users-error {
  margin: 10px 0 0;
  padding: 8px 12px;
  background: #fff1f2;
  border: 1px solid #ffcdd2;
  border-radius: 8px;
  color: #9c0006;
  font-size: 13px;
}

/* Permissões por usuário */
.perm-resumo { font-size: 11px; color: var(--muted); font-weight: 600; }
.perm-resumo.full { color: #6d28d9; }
.perm-row > td { background: #f8fafc; padding: 0; }
.perm-editor { padding: 14px 18px; display: flex; flex-wrap: wrap; gap: 18px 28px; align-items: flex-start; }
.perm-editor-head { flex-basis: 100%; font-size: 13px; color: var(--ink, #0f172a); }
.perm-editor-head small { color: var(--muted); font-weight: 500; }
.perm-group h5 { margin: 0 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }
.perm-checks { display: flex; flex-direction: column; gap: 6px; }
.perm-checks label { display: flex; align-items: center; gap: 7px; font-size: 13px; cursor: pointer; }
.perm-editor-actions { flex-basis: 100%; display: flex; gap: 10px; justify-content: flex-end; border-top: 1px solid var(--line); padding-top: 12px; }
.perm-scope { flex-basis: 100%; border-top: 1px dashed var(--line); padding-top: 10px; }
.scope-line { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.scope-line label { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; }
.scope-lbl { font-size: 12px; font-weight: 700; color: var(--muted); min-width: 120px; }
.scope-ms { }

.users-table-wrap {
  overflow: auto;
  padding: 4px 6px 18px;
}

.users-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 4px;
  font-size: 13px;
}

.users-table thead th {
  text-align: left;
  padding: 12px 14px;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
  position: sticky;
  top: 0;
}

.users-table tbody td {
  padding: 12px 14px;
  background: #ffffff;
  border-top: 1px solid #f1f4f9;
  border-bottom: 1px solid #f1f4f9;
  vertical-align: middle;
}

.users-table tbody td:first-child {
  border-left: 1px solid #f1f4f9;
  border-radius: 10px 0 0 10px;
}

.users-table tbody td:last-child {
  border-right: 1px solid #f1f4f9;
  border-radius: 0 10px 10px 0;
}

.users-table tr.inactive td {
  opacity: 0.55;
  background: #fafbfd;
}

.users-table .email { color: var(--muted); font-size: 12px; }
.users-table .last-login { color: var(--muted); font-size: 12px; }

.self-tag {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 8px;
  background: var(--soft);
  border-radius: 10px;
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  vertical-align: middle;
}

.role-select {
  height: 30px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-size: 12px;
  background: #ffffff;
  cursor: pointer;
}

.role-select:disabled { opacity: 0.5; cursor: not-allowed; }

.status-pill {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 11px;
  font-size: 11px;
  font-weight: 700;
}

.status-pill.active   { background: #e6f9ec; color: #15803d; }
.status-pill.inactive { background: #f1f5f9; color: #64748b; }

.user-actions {
  display: flex;
  gap: 6px;
}

.icon-action {
  width: 30px;
  height: 30px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #ffffff;
  cursor: pointer;
  font-size: 13px;
  transition: border-color 0.15s, background 0.15s;
}

.icon-action:hover:not(:disabled) {
  border-color: var(--accent);
  background: var(--soft);
}

.icon-action.danger:hover:not(:disabled) {
  border-color: #c2410c;
  background: #fff4ed;
}

.icon-action:disabled { opacity: 0.4; cursor: not-allowed; }

/* responsive */
@media (max-width: 720px) {
  .users-create-form {
    grid-template-columns: 1fr 1fr;
  }
  .users-create-form .primary { grid-column: 1 / -1; }
  .user-name { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════════
 * SIDE PANEL — Métricas (Honorário atual em destaque + Análise detalhada)
 * ═══════════════════════════════════════════════════════════════════════ */
.metric-grid .metric-highlight {
  grid-column: span 2;
  background: linear-gradient(135deg, #37a936 0%, #134e4a 100%);
  color: #ffffff;
  border-radius: 12px;
  padding: 14px 16px;
  border: 0;
}

.metric-grid .metric-highlight span {
  color: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 700;
}

.metric-grid .metric-highlight strong {
  display: block;
  margin-top: 4px;
  color: #ffffff;
  font-size: 22px;
}

.metric-grid .metric-highlight .metric-sub {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  font-weight: 600;
}

.btn-analysis {
  margin-top: 14px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #1f6fb5 0%, #37a936 100%);
  color: #ffffff;
  border: 0;
  border-radius: 12px;
  font: inherit;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(15, 118, 110, 0.22);
  transition: transform 0.1s, box-shadow 0.15s;
}

.btn-analysis:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(15, 118, 110, 0.32);
}

.btn-analysis:active { transform: translateY(0); }

.btn-analysis .btn-arrow {
  font-size: 20px;
  font-weight: 400;
  opacity: 0.85;
}
.btn-analysis-hint {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  opacity: 0.8;
  margin-top: 2px;
  letter-spacing: 0.02em;
}

/* Botão de processo destacado no cabeçalho da análise */
.btn-soft.btn-proc { border-color: #f6c356; color: #92400e; background: #fffbeb; }
.btn-soft.btn-proc:hover { background: #fef3c7; }

/* Ações no cabeçalho do modal de processo */
.proc-head-actions { display: flex; align-items: center; gap: 10px; }

/* Card "Honorário em SM" na barra lateral */
.metric-sm strong { color: var(--accent); }
.metric-sm .metric-sub { color: var(--muted); font-weight: 600; }

/* FASE 2 — Card "Honorário de referência" (precificação por volumetria) */
.metric-grid .metric-highlight.metric-ref {
  background: linear-gradient(135deg, #4338ca 0%, #312e81 100%);
}
.metric-grid .metric-highlight.metric-ref.is-sub {
  background: linear-gradient(135deg, #b45309 0%, #7c2d12 100%);
}
.metric-grid .metric-highlight.metric-ref.is-check {
  background: linear-gradient(135deg, #b91c1c 0%, #7f1d1d 100%);
}
.metric-ref .ref-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: none;
  vertical-align: middle;
}
.metric-ref .ref-tag:empty { display: none; }

/* FASE 2 — célula "Referência" na tabela principal */
td.col-ref.ref-sub   { color: #b45309; font-weight: 700; }
td.col-ref.ref-check { color: #b91c1c; font-weight: 700; }
.ref-mark { font-size: 11px; }
.ref-mark.up    { color: #b45309; }
.ref-mark.check { color: #b91c1c; }

/* Indicador de carta editada (no modal da carta) */
.letter-edited-hint {
  margin: 6px 0 0; font-size: 12px; font-weight: 600; color: #92400e;
  background: #fef3c7; border: 1px solid #f3d37a; border-radius: 8px; padding: 4px 10px; display: inline-block;
}

/* Versões de carta no processo */
.proc-cartas-title { margin-top: 18px; }
.proc-cartas { display: flex; flex-direction: column; gap: 8px; }
.proc-carta { border: 1px solid var(--line); border-radius: 10px; padding: 9px 11px; background: #f9fbfd; }
.pcz-head { display: flex; justify-content: space-between; align-items: center; font-size: 12.5px; }
.pcz-head strong { color: var(--navy); }
.pcz-edit { font-size: 10px; font-weight: 800; color: #92400e; background: #fef3c7; padding: 1px 7px; border-radius: 8px; }
.pcz-auto { font-size: 10px; font-weight: 700; color: var(--muted); }
.pcz-meta { font-size: 11px; color: var(--muted); margin-top: 2px; }
.pcz-toggle { margin-top: 5px; border: 0; background: none; color: var(--accent); font-weight: 700; font-size: 12px; cursor: pointer; padding: 0; }
.pcz-body { margin: 7px 0 0; white-space: pre-wrap; font: inherit; font-size: 12px; color: var(--text); background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 9px 11px; max-height: 260px; overflow: auto; }

/* Popover Compartilhar análise */
.share-wrap { position: relative; display: inline-block; }
.share-pop {
  position: absolute; top: 42px; right: 0; z-index: 90; width: 300px;
  background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow);
  padding: 14px; display: flex; flex-direction: column; gap: 14px; text-align: left;
}
.share-sec > strong { display: block; font-size: 12px; color: var(--navy); margin-bottom: 8px; }
.share-pdf-btns { display: flex; flex-direction: column; gap: 6px; }
.share-pdf-btns .btn-soft { width: 100%; justify-content: center; font-size: 12.5px; }
.share-pdf-one { width: 100%; justify-content: center; }
.share-radio { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text); padding: 3px 0; cursor: pointer; }
.share-input { width: 100%; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 13px; margin: 2px 0 4px; }
.share-gen { width: 100%; margin-top: 6px; }
.share-link-result { display: flex; gap: 6px; margin-top: 8px; }
.share-link-result input { flex: 1; min-width: 0; padding: 7px 9px; border: 1px solid var(--accent); border-radius: 8px; font-size: 12px; background: #f0fdfa; }

/* Menu de ocultar/exibir colunas */
.col-menu-wrap { position: relative; }
.col-btn {
  border: 1px solid var(--line); background: #fff; border-radius: 10px;
  padding: 9px 13px; font: inherit; font-size: 13px; cursor: pointer; white-space: nowrap;
}
.col-btn:hover { background: var(--soft); }
.col-btn.has-hidden { border-color: var(--accent); color: var(--accent); font-weight: 700; }
.col-menu {
  position: absolute; top: 44px; right: 0; z-index: 70; width: 220px;
  background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow);
  padding: 8px; display: flex; flex-direction: column; gap: 2px; max-height: 380px; overflow: auto;
  color: var(--text); text-align: left; font-weight: 400;
}
.col-item { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 7px; font-size: 13px; cursor: pointer; color: var(--text); }
.col-item:hover { background: var(--soft); }
.col-showall { margin-top: 6px; border: 0; background: var(--navy); color: #fff; border-radius: 8px; padding: 8px; font: inherit; font-weight: 700; cursor: pointer; }
.col-showall:hover { filter: brightness(1.1); }

/* Botão "Gerar carta de majoração" */
.btn-letter {
  margin-top: 10px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 16px;
  background: #ffffff;
  color: var(--navy);
  border: 1.5px solid var(--accent);
  border-radius: 12px;
  font: inherit;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.15s, transform 0.1s;
}
.btn-letter:hover { background: #eef9f7; transform: translateY(-1px); }
.btn-letter .btn-arrow { font-size: 20px; font-weight: 400; color: var(--accent); }

/* ═══════════════════════════════════════════════════════════════════════
 * MODAL: Carta de majoração
 * ═══════════════════════════════════════════════════════════════════════ */
.letter-modal {
  width: 100%;
  max-width: 1180px;
  background: var(--panel);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 92vh;
  box-shadow: 0 30px 80px rgba(0,0,0,0.35);
}
.letter-header {
  background: linear-gradient(135deg, #0f172a 0%, #1f6fb5 55%, #37a936 100%);
  color: #fff;
}
.letter-header .eyebrow { color: rgba(255,255,255,0.78); }
.letter-header h2, .letter-header p { color: #fff; }
.letter-header p { opacity: 0.9; font-size: 13px; margin-top: 2px; }
.letter-header .icon-button { color: #fff; background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.25); }

.letter-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 18px;
  padding: 18px;
  overflow: auto;
}
.letter-field { margin-bottom: 14px; }
.letter-field label { display: block; font-size: 12px; font-weight: 700; color: var(--muted); margin-bottom: 6px; }
.letter-field label .hint { color: var(--accent); font-weight: 600; }
.letter-field input, .letter-field textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 11px 13px;
  font: inherit;
  font-size: 14px;
  color: var(--text);
  outline: none;
  resize: vertical;
}
.letter-field textarea { line-height: 1.6; min-height: 320px; font-family: Georgia, 'Times New Roman', serif; }
.letter-field input:focus, .letter-field textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(15,118,110,0.12); }

.letter-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.btn-soft {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 14px; border: 1px solid var(--line); border-radius: 9px;
  background: var(--soft); color: var(--text); font: inherit; font-weight: 700; font-size: 13px; cursor: pointer;
  text-decoration: none;
}
.btn-soft:hover { background: #e4ebf3; }
.btn-soft:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-soft.btn-ai { border-color: #8b5cf6; color: #6d28d9; background: #f5f3ff; }
.btn-soft.btn-ai:hover { background: #ede9fe; }

/* ═══════════════════════════════════════════════════════════════════════
 * PROCESSOS DE MAJORAÇÃO + NOTIFICAÇÕES
 * ═══════════════════════════════════════════════════════════════════════ */
/* Sino de notificações */
.notif-wrap { position: relative; }
.notif-bell {
  position: relative; border: 1px solid var(--line); background: #fff; border-radius: 12px;
  width: 42px; height: 40px; font-size: 17px; cursor: pointer;
}
.notif-bell:hover { background: var(--soft); }
.notif-count {
  position: absolute; top: -6px; right: -6px; background: var(--prejuizo); color: #fff;
  font-size: 10px; font-weight: 800; min-width: 17px; height: 17px; border-radius: 9px;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 4px;
}
.notif-panel {
  position: absolute; top: 48px; right: 0; width: 320px; max-height: 60vh; overflow: auto;
  background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); z-index: 80;
}
.notif-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.notif-readall { border: 0; background: none; color: var(--accent); font-weight: 700; font-size: 12px; cursor: pointer; }
.notif-item { padding: 11px 14px; border-bottom: 1px solid var(--soft); cursor: pointer; font-size: 13px; }
.notif-item:hover { background: var(--soft); }
.notif-item.unread { background: #eef9f7; }
.notif-item small { color: var(--muted); font-size: 11px; }

/* ── Gerenciador de rotas: botão "Ir para" + paleta ──────────────────────── */
.goto-btn {
  display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 13px;
  border: 1px solid var(--line); background: #fff; border-radius: 12px; cursor: pointer;
  font: inherit; font-size: 13px; font-weight: 600; color: var(--text, #0f172a); white-space: nowrap;
}
.goto-btn:hover { background: var(--soft); border-color: var(--accent); }
.goto-btn span { font-size: 16px; color: var(--accent); }
.goto-kbd, .rp-foot kbd {
  font: inherit; font-size: 10.5px; font-weight: 700; color: var(--muted); background: var(--soft, #f1f5f9);
  border: 1px solid var(--line); border-radius: 5px; padding: 1px 6px; line-height: 1.5;
}
@media (max-width: 720px) { .goto-kbd { display: none; } }

.rp-overlay {
  position: fixed; inset: 0; z-index: 200; background: rgba(15,23,42,.45);
  display: flex; align-items: flex-start; justify-content: center; padding-top: 12vh;
}
.rp-overlay[hidden] { display: none; }
.rp-box {
  width: min(560px, 92vw); background: #fff; border-radius: 14px; box-shadow: 0 24px 60px rgba(15,23,42,.35);
  overflow: hidden; border: 1px solid var(--line);
}
.rp-input {
  width: 100%; box-sizing: border-box; border: 0; border-bottom: 1px solid var(--line);
  padding: 16px 18px; font: inherit; font-size: 16px; color: var(--text, #0f172a); outline: none;
}
.rp-list { max-height: 52vh; overflow: auto; padding: 6px; }
.rp-item {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%;
  border: 0; background: none; text-align: left; padding: 10px 12px; border-radius: 9px; cursor: pointer; font: inherit;
}
.rp-item:hover, .rp-item.active { background: var(--soft, #f1f5f9); }
.rp-item.active { box-shadow: inset 0 0 0 1px var(--accent); }
.rp-item-main { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.rp-item-main strong { font-size: 14px; color: var(--text, #0f172a); }
.rp-item-main small { font-size: 11px; color: var(--muted); }
.rp-item-slug { font-size: 12px; color: var(--accent); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rp-empty { padding: 18px; text-align: center; color: var(--muted); font-size: 13px; }
.rp-foot { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; padding: 9px 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11.5px; }
.notif-empty { padding: 24px; text-align: center; color: var(--muted); font-size: 13px; }

/* Selo na tabela */
.proc-selo {
  display: inline-block; margin-left: 7px; padding: 1px 8px; border-radius: 9px;
  font-size: 10px; font-weight: 800; letter-spacing: 0.02em; vertical-align: middle; white-space: nowrap;
}
.proc-selo.open { background: #fef3c7; color: #92400e; border: 1px solid #f6c356; }
.proc-selo.done { background: #dcfce7; color: #166534; border: 1px solid #a8e7ba; }
.proc-selo.eval { background: #e2e8f0; color: #475569; }

/* Board */
.proc-header { margin-bottom: 14px; }
.proc-board { display: grid; grid-template-columns: repeat(5, minmax(190px, 1fr)); gap: 12px; overflow-x: auto; padding-bottom: 8px; }
.proc-col.drop-target { outline: 2px dashed var(--accent); outline-offset: -2px; background: #eef9f7; }
.proc-card { cursor: grab; }
.proc-card.dragging { opacity: 0.5; cursor: grabbing; }
.proc-col { background: var(--soft); border: 1px solid var(--line); border-radius: 12px; min-height: 120px; }
.proc-col-head { padding: 10px 12px; font-size: 12px; font-weight: 800; text-transform: uppercase; color: var(--navy); border-bottom: 1px solid var(--line); }
.proc-col-head b { color: var(--accent); }
.proc-col-body { padding: 8px; display: flex; flex-direction: column; gap: 8px; }
.proc-col-empty { color: var(--muted); text-align: center; font-size: 12px; padding: 10px; }
.proc-card { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; cursor: pointer; transition: box-shadow 0.12s; }
.proc-card:hover { box-shadow: 0 6px 16px rgba(15,23,42,0.1); }
.proc-card strong { display: block; font-size: 13px; color: var(--text); }
.proc-card-fee { font-size: 12.5px; font-weight: 700; color: var(--navy); margin-top: 3px; }
.proc-card-meta { font-size: 11px; color: var(--muted); margin-top: 3px; }

/* Modal de processo */
.processo-modal { width: 100%; max-width: 1100px; background: #fff; border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; max-height: 92vh; box-shadow: 0 30px 80px rgba(0,0,0,0.35); }
.proc-modal-header { background: linear-gradient(135deg, #0f172a 0%, #1f6fb5 55%, #37a936 100%); color: #fff; }
.proc-modal-header .eyebrow, .proc-modal-header h2, .proc-modal-header p { color: #fff; }
.proc-modal-header p { opacity: 0.9; font-size: 12.5px; }
.proc-modal-header .icon-button { color: #fff; background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.25); }
.proc-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; padding: 16px; overflow: auto; }
.proc-statusbar { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
/* Valores em R$ no modal do processo */
.proc-values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 16px; }
.proc-values .pv { border: 1px solid var(--line); border-radius: 10px; padding: 9px 11px; background: #f9fbfd; }
.proc-values .pv span { display: block; font-size: 10px; font-weight: 800; text-transform: uppercase; color: var(--muted); }
.proc-values .pv strong { display: block; font-size: 15px; color: var(--navy); margin-top: 2px; font-variant-numeric: tabular-nums; }
.proc-values .pv.accent strong { color: var(--accent); }
.proc-values .pv.pago strong { color: #166534; }
/* Botões de perigo */
.btn-danger { border: 0; background: var(--prejuizo, #dc2626); color: #fff; border-radius: 10px; padding: 9px 14px; font: inherit; font-weight: 700; cursor: pointer; }
.btn-danger:hover { filter: brightness(1.08); }
.btn-soft.btn-danger-soft { border-color: #f3b4b4; color: #b91c1c; background: #fef2f2; }
.btn-soft.btn-danger-soft:hover { background: #fee2e2; }

/* Modal de motivo */
.reason-modal { width: 100%; max-width: 460px; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,0.35); }
.reason-body { padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.reason-sub { margin: 0; font-size: 13px; color: var(--muted); }
.reason-body label { display: flex; flex-direction: column; font-size: 12px; font-weight: 700; color: var(--muted); gap: 5px; }
.reason-body select, .reason-body textarea { padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; font: inherit; font-size: 14px; }
.reason-body textarea { resize: vertical; }
.reason-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }

/* Seleção / lote na tabela de processos */
.col-check { width: 38px; text-align: center; }
.proc-table tbody tr.sel td { background: #eef9f7; }
.proc-table td.proc-open { cursor: pointer; }
.proc-bulkbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  background: var(--navy); color: #fff; border-radius: 12px; padding: 10px 16px; margin-bottom: 10px; }
.proc-bulkbar #procBulkCount { font-weight: 700; }
.proc-bulk-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.proc-bulk-actions select { padding: 7px 10px; border-radius: 8px; border: 0; font: inherit; font-size: 13px; }

/* Autocomplete de @menção */
.mention-box { position: fixed; z-index: 100001; background: #fff; border: 1px solid var(--line); border-radius: 10px;
  box-shadow: var(--shadow); overflow: hidden; max-height: 220px; overflow-y: auto; }
.mention-opt { padding: 8px 12px; font-size: 13px; cursor: pointer; color: var(--text); }
.mention-opt:hover, .mention-opt.active { background: var(--soft); }

/* Tabela de processos */
.proc-table-wrap { overflow-x: auto; }
.proc-table { width: 100%; min-width: 920px; }
.proc-table tbody tr { cursor: pointer; }
.proc-table .money { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 640px) { .proc-values { grid-template-columns: repeat(2, 1fr); } }
.proc-statusbar label { display: flex; flex-direction: column; font-size: 11px; font-weight: 700; color: var(--muted); gap: 4px; }
.proc-statusbar select, .proc-statusbar input { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 13px; }
.proc-field { margin-bottom: 14px; }
.proc-field label { display: block; font-size: 12px; font-weight: 700; color: var(--muted); margin-bottom: 6px; }
.proc-field label .hint { color: var(--accent); font-weight: 600; }
.proc-field textarea { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; font: inherit; font-size: 14px; resize: vertical; }
.proc-links { display: flex; flex-direction: column; gap: 5px; margin-bottom: 8px; }
.proc-link-item { display: flex; justify-content: space-between; align-items: center; background: var(--soft); border-radius: 8px; padding: 6px 10px; font-size: 13px; }
.proc-link-item a { color: var(--accent); text-decoration: none; }
.proc-link-item button { border: 0; background: none; color: var(--prejuizo); font-size: 16px; cursor: pointer; }
.proc-link-add { display: flex; gap: 6px; flex-wrap: wrap; }
.proc-link-add input { flex: 1; min-width: 120px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 13px; }
.proc-discussion { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; }
.proc-discussion h3 { margin: 0 0 10px; font-size: 14px; color: var(--navy); }
.proc-comments { max-height: 280px; overflow: auto; display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.proc-comment { background: var(--soft); border-radius: 10px; padding: 9px 12px; }
.pc-head { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted); }
.pc-head strong { color: var(--text); }
.pc-body { font-size: 13.5px; margin-top: 3px; white-space: pre-wrap; }
.mention { color: var(--accent); font-weight: 700; background: #eef9f7; padding: 0 3px; border-radius: 4px; }
.proc-comment-box { display: flex; gap: 8px; }
.proc-comment-box textarea { flex: 1; border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; font: inherit; resize: vertical; }
.proc-side h3 { margin: 0 0 10px; font-size: 14px; color: var(--navy); }
.proc-dossie { display: flex; flex-direction: column; gap: 8px; }
.pd-card { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #f9fbfd; }
.pd-card span { display: block; font-size: 11px; font-weight: 800; text-transform: uppercase; color: var(--muted); }
.pd-card div { font-variant-numeric: tabular-nums; margin-top: 3px; }
.pd-card b { color: var(--accent); }
.pd-card em { color: var(--saudavel); font-style: normal; font-weight: 700; margin-left: 4px; }

@media (max-width: 900px) {
  .proc-grid { grid-template-columns: 1fr; }
  .proc-board { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
}
.btn-primary {
  width: 100%; padding: 11px 16px; border: 0; border-radius: 10px;
  background: linear-gradient(135deg, #1f6fb5 0%, #37a936 100%); color: #fff;
  font: inherit; font-weight: 800; font-size: 14px; cursor: pointer; margin-top: 8px;
}
.btn-primary:hover { filter: brightness(1.05); }
.btn-primary:disabled { opacity: 0.6; cursor: progress; }

.letter-side { display: flex; flex-direction: column; gap: 16px; }
.side-block { border: 1px solid var(--line); border-radius: 12px; padding: 14px; background: #f9fbfd; }
.side-block h3 { margin: 0 0 10px; font-size: 13px; color: var(--navy); }

.dossie-cards { display: flex; flex-direction: column; gap: 8px; }
.dossie-card { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #fff; }
.dossie-card.highlight { background: #eef9f7; border-color: #c5e9f1; }
.dc-top { display: flex; justify-content: space-between; align-items: center; font-size: 12px; font-weight: 700; color: var(--muted); }
.dc-since { font-size: 10.5px; color: var(--accent); font-weight: 700; }
.dc-pct.pos { color: var(--saudavel); font-weight: 800; }
.dc-pct.neg { color: var(--prejuizo); font-weight: 800; }
.dc-vals { margin-top: 5px; font-variant-numeric: tabular-nums; color: var(--muted); font-size: 13px; }
.dc-vals strong { color: var(--navy); font-size: 16px; }
.dc-arrow { color: var(--accent); font-weight: 800; margin: 0 4px; }

.objections { margin: 0; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 9px; }
.objections li { font-size: 12px; line-height: 1.5; color: var(--text); padding-left: 14px; position: relative; }
.objections li::before { content: '▹'; position: absolute; left: 0; color: var(--accent); font-weight: 800; }

.link-protect { display: flex; flex-direction: column; gap: 9px; margin-bottom: 12px; }
.link-protect .radio { display: flex; align-items: center; gap: 7px; font-size: 13px; flex-wrap: wrap; }
.inline-field { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 12px; }
.inline-field input { width: 130px; padding: 5px 8px; border: 1px solid var(--line); border-radius: 7px; font: inherit; }
.inline-field input:disabled { background: #f1f4f8; opacity: 0.6; }

.link-result { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.link-result input { flex: 1; min-width: 180px; padding: 9px 11px; border: 1px solid var(--accent); border-radius: 9px; font: inherit; font-size: 12.5px; background: #f0fdfa; }
.link-saved-hint { margin: 8px 0 0; font-size: 12px; color: var(--muted); }

@media (max-width: 860px) {
  .letter-grid { grid-template-columns: 1fr; }
}

/* Cabeçalho da análise: ações (aparo + abrir aba / voltar / carta) */
.analysis-head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.analysis-trim {
  margin-top: 0;
  background: rgba(255,255,255,0.92);
}
.analysis-header .btn-soft { white-space: nowrap; }

/* Visibilidade conforme contexto (modal x página dedicada) */
.standalone-only { display: none !important; }
body.standalone-analise .standalone-only { display: inline-flex !important; }
body.standalone-analise .modal-only { display: none !important; }

/* ── Página dedicada de análise (/analise/:key) ── */
body.standalone-analise { overflow: auto; }
body.standalone-analise .app-shell { min-height: 0; }
body.standalone-analise .dashboard,
body.standalone-analise #modeSegmented,
body.standalone-analise #viewToggle { display: none !important; }
body.standalone-analise #analysisModal {
  position: static;
  display: block;
  background: transparent;
  padding: 0;
  inset: auto;
}
body.standalone-analise .analysis-modal {
  max-width: 1180px;
  margin: 18px auto 40px;
  max-height: none;
  box-shadow: var(--shadow);
}

/* ═══════════════════════════════════════════════════════════════════════
 * MODAL: Análise detalhada
 * ═══════════════════════════════════════════════════════════════════════ */
.analysis-modal {
  width: 100%;
  max-width: 1280px;
  background: #ffffff;
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 94vh;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}

.analysis-header {
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #0d4f4f 100%);
  color: #ffffff;
}

.analysis-header .eyebrow,
.analysis-header h2,
.analysis-header p {
  color: #ffffff;
}

.analysis-header .eyebrow {
  color: rgba(255, 255, 255, 0.75);
}

.analysis-header p {
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
}

.analysis-header .icon-button {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.25);
}

.analysis-header .icon-button:hover {
  background: rgba(255, 255, 255, 0.22);
}

.analysis-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  padding: 18px 22px;
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
  border-bottom: 1px solid var(--line);
}

.summary-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  transition: transform 0.15s, box-shadow 0.15s;
}

.summary-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
}

.summary-card span {
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.summary-card strong {
  font-size: 19px;
  color: var(--text);
  line-height: 1.2;
}

.summary-card small {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}

.summary-card.tone-navy {
  background: linear-gradient(135deg, var(--navy) 0%, #1e3a5f 100%);
  border-color: transparent;
}
.summary-card.tone-navy span,
.summary-card.tone-navy small { color: rgba(255, 255, 255, 0.78); }
.summary-card.tone-navy strong { color: #ffffff; }

.summary-card.tone-success { border-left: 4px solid var(--saudavel); }
.summary-card.tone-success strong { color: var(--saudavel); }

.summary-card.tone-danger { border-left: 4px solid #c2410c; }
.summary-card.tone-danger strong { color: #c2410c; }

.summary-card.tone-amber { border-left: 4px solid var(--atencao); }
.summary-card.tone-amber strong { color: var(--atencao); }

.summary-card.tone-neutral { border-left: 4px solid #cbd5e1; }

.analysis-table-wrap {
  overflow: auto;
  flex: 1;
  padding: 0 6px 18px;
}

.analysis-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
}

.analysis-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 12px 10px;
  text-align: right;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: #f1f5f9;
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}

.analysis-table thead th:first-child,
.analysis-table tbody td:first-child,
.analysis-table tfoot td:first-child {
  text-align: left;
}

.analysis-table .sticky-col {
  position: sticky;
  left: 0;
  z-index: 3;
  background: #ffffff;
  border-right: 1px solid var(--line);
}

.analysis-table thead .sticky-col { background: #f1f5f9; z-index: 4; }

.analysis-table tbody td {
  padding: 9px 10px;
  text-align: right;
  border-bottom: 1px solid #f1f4f9;
  white-space: nowrap;
}

.analysis-table tbody td.money { font-variant-numeric: tabular-nums; }
.analysis-table tbody td.num   { font-variant-numeric: tabular-nums; }
.analysis-table tbody td.pct   { font-variant-numeric: tabular-nums; font-weight: 700; }

.analysis-table tbody td.strong { font-weight: 700; }
.analysis-table tbody td.pos { color: var(--saudavel); font-weight: 700; }
.analysis-table tbody td.neg { color: #c2410c; font-weight: 700; }

.analysis-table tbody tr.row-saudavel .sticky-col { border-left: 3px solid var(--saudavel); }
.analysis-table tbody tr.row-atencao  .sticky-col { border-left: 3px solid var(--atencao); }
.analysis-table tbody tr.row-critico  .sticky-col { border-left: 3px solid #c2410c; }
.analysis-table tbody tr.row-prejuizo .sticky-col { border-left: 3px solid var(--prejuizo); }
.analysis-table tbody tr.row-neutral  .sticky-col { border-left: 3px solid var(--neutro); }
.analysis-table tbody tr.row-sem      .sticky-col { border-left: 3px solid var(--sem); color: var(--muted); }
.analysis-table tbody tr.row-sem td { color: var(--muted); }

.analysis-table tbody tr:hover td {
  background: #eef8f6;
}
.analysis-table tbody tr:hover .sticky-col {
  background: #eef8f6;
}

.analysis-table tfoot td {
  padding: 12px 10px;
  text-align: right;
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  border-top: 2px solid var(--line);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.analysis-table tfoot td small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-weight: 500;
  font-size: 10.5px;
}

.analysis-table tfoot .sticky-col {
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

/* responsive */
@media (max-width: 1100px) {
  .analysis-summary { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .metric-grid .metric-highlight { grid-column: span 1; }
  .analysis-summary { grid-template-columns: 1fr; }
  .analysis-table thead th, .analysis-table tbody td, .analysis-table tfoot td { padding: 8px 7px; font-size: 12px; }
}

/* ── FASE 2 — Tela de parâmetros do honorário de referência ── */
.ref-modal {
  max-width: 720px;
  width: 100%;
  background: #ffffff;
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 92vh;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}
.ref-body {
  padding: 18px 22px 22px;
  overflow-y: auto;
}
.ref-readonly {
  margin: 0 0 12px;
  padding: 8px 12px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  color: #9a3412;
  font-size: 13px;
}
.ref-section {
  padding: 14px 0;
  border-top: 1px solid var(--line);
}
.ref-section:first-of-type { border-top: 0; }
.ref-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.ref-grid2 > label,
.ref-inline {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}
.ref-grid2 input,
.ref-inline input {
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
}
.ref-sec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.ref-sec-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
  color: var(--ink, #0f172a);
}
.ref-sec-head .hint { font-weight: 600; color: var(--muted); font-size: 12px; }
.ref-add { white-space: nowrap; }
.ref-bands, .ref-trib { display: flex; flex-direction: column; gap: 7px; }
.ref-band, .ref-trib-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ref-band-lbl { font-size: 12px; color: var(--muted); font-weight: 700; }
.ref-band-arrow { color: var(--accent); font-weight: 700; }
.ref-band-unit { font-size: 12px; color: var(--muted); min-width: 52px; }
.ref-band-ate { width: 130px; }
.ref-band-val, .ref-trib-pct { width: 90px; }
.ref-trib-regime { flex: 1; min-width: 160px; }
.ref-band input, .ref-trib-row input {
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
}
.ref-band-del {
  margin-left: auto;
  width: 28px;
  height: 28px;
  border: 1px solid #fecaca;
  background: #fff1f2;
  color: #b91c1c;
  border-radius: 8px;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.ref-band-del:hover { background: #fee2e2; }
.ref-hint { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; }
.ref-inline { flex-direction: row; align-items: center; gap: 8px; margin-top: 10px; }
.ref-inline input { width: 80px; }
.ref-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.ref-spacer { flex: 1; }
@media (max-width: 640px) {
  .ref-grid2 { grid-template-columns: 1fr; }
  .ref-band, .ref-trib-row { flex-wrap: wrap; }
  .ref-band-ate { width: 100px; }
}

/* ── Painel de Insights da carteira ── */
.insights-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 14px;
}
.insight-loading { padding: 30px; color: var(--muted); font-size: 14px; }
.insight-card {
  background: #fff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--accent);
  border-radius: 14px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
}
.insight-label { font-size: 12px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.03em; }
.insight-value { font-size: 26px; font-weight: 800; color: var(--ink, #0f172a); font-variant-numeric: tabular-nums; }
.insight-sub { font-size: 12px; color: var(--muted); font-weight: 600; }
.insight-soon { font-style: italic; color: #b45309; }
.insight-card.tone-navy  { border-left-color: #1f6fb5; }
.insight-card.tone-teal  { border-left-color: #37a936; }
.insight-card.tone-teal  .insight-value { color: #37a936; }
.insight-card.tone-amber { border-left-color: #b45309; }
.insight-card.tone-muted { border-left-color: #cbd5e1; background: #f8fafc; }
.insight-card.tone-muted .insight-value { color: var(--muted); }
.insight-card.tone-success { border-left-color: #15803d; }
.insight-card.tone-success .insight-value { color: #15803d; }
.insight-card.tone-danger { border-left-color: #b91c1c; }
.insight-card.tone-danger .insight-value { color: #b91c1c; }
.insight-card.tone-ref { border-left-color: #6d28d9; }
.insight-card.tone-ref .insight-value { color: #6d28d9; }

/* ── Aba de Tutoriais (vídeos) ── */
.tut-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
  gap: 18px;
}
.tut-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
  display: flex;
  flex-direction: column;
}
.tut-video { background: #0f172a; aspect-ratio: 16 / 9; }
.tut-video video { width: 100%; height: 100%; display: block; background: #0f172a; }
.tut-info { padding: 12px 16px 16px; position: relative; }
.tut-num {
  position: absolute; top: -16px; right: 14px;
  background: linear-gradient(135deg, #1f6fb5, #37a936); color: #fff;
  font-weight: 800; font-size: 12px; padding: 4px 9px; border-radius: 999px;
  box-shadow: 0 4px 12px rgba(15, 118, 110, 0.3);
}
.tut-title { display: block; font-size: 15px; font-weight: 800; color: var(--ink, #0f172a); }
.tut-novo {
  display: inline-block; margin-left: 6px; vertical-align: middle;
  background: #16a34a; color: #fff; font-size: 10px; font-weight: 800;
  padding: 1px 7px; border-radius: 999px; text-transform: uppercase; letter-spacing: 0.03em;
}
.tut-desc { display: block; margin-top: 5px; font-size: 12.5px; color: var(--muted); line-height: 1.45; }

/* ── Recebíveis ── */
.rec-filtros { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; margin-bottom: 16px; display: flex; flex-direction: column; gap: 12px; }
.rec-period { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rec-period label, .rec-filtros-row label { font-size: 12px; font-weight: 600; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.rec-period input[type=date] { padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.rec-presets { display: flex; gap: 6px; flex-wrap: wrap; }
.rec-filtros-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rec-check { white-space: nowrap; }

/* Seleção múltipla com busca (.ms) */
.ms { position: relative; }
.ms-control {
  display: inline-flex; align-items: center; gap: 7px; min-width: 170px; max-width: 240px;
  padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff;
  font: inherit; font-size: 13px; color: var(--ink, #0f172a); cursor: pointer; white-space: nowrap;
}
.ms-control:hover { border-color: #94a3b8; }
.ms-control.has-sel { border-color: var(--navy); }
.ms-text { flex: 1; overflow: hidden; text-overflow: ellipsis; text-align: left; color: var(--muted); font-weight: 600; }
.ms-control.has-sel .ms-text { color: var(--ink, #0f172a); }
.ms-badge { background: var(--navy); color: #fff; font-size: 11px; font-weight: 800; border-radius: 999px; padding: 0 7px; min-width: 18px; text-align: center; }
.ms-caret { color: var(--muted); font-size: 11px; }
.ms-pop {
  position: absolute; z-index: 50; top: calc(100% + 4px); left: 0; width: 270px;
  background: #fff; border: 1px solid var(--line); border-radius: 10px;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.18); padding: 8px; display: flex; flex-direction: column; gap: 6px;
}
.ms-search { padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.ms-acts { display: flex; gap: 8px; }
.ms-acts button { flex: 1; border: 1px solid var(--line); background: #f8fafc; border-radius: 7px; padding: 4px; font: inherit; font-size: 12px; cursor: pointer; color: var(--muted); }
.ms-acts button:hover { background: #eef2f7; }
.ms-list { max-height: 240px; overflow-y: auto; display: flex; flex-direction: column; }
.ms-opt { display: flex; align-items: center; gap: 8px; padding: 6px 7px; border-radius: 7px; font-size: 13px; cursor: pointer; }
.ms-opt:hover { background: #f1f5f9; }
.ms-opt input { flex: 0 0 auto; }
.ms-none { padding: 10px; color: var(--muted); font-size: 13px; text-align: center; }
/* Contraste: multiselects sempre texto escuro / fundo branco, mesmo dentro de headers escuros */
.ms-control { background: #fff !important; color: #0f172a !important; }
.ms-text { color: #475569 !important; }
.ms-control.has-sel .ms-text { color: #0f172a !important; }
.ms-caret { color: #64748b !important; }
.ms-pop { color: #0f172a; }
.ms-pop .ms-search, .ms-pop .ms-opt, .ms-pop .ms-none { color: #0f172a; }
.ms-pop .ms-search { background: #fff; }
.ms-pop .ms-acts button { color: #334155; }
.scope-hint { color: var(--muted); font-size: 11.5px; flex-basis: 100%; }

.rec-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 14px; }
.rec-kpi { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 12px; padding: 13px 16px; display: flex; flex-direction: column; gap: 3px; }
.rec-kpi span { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); }
.rec-kpi strong { font-size: 23px; font-weight: 800; font-variant-numeric: tabular-nums; }
.rec-kpi small { font-size: 11.5px; color: var(--muted); }
.rec-kpi.tone-success { border-left-color: #15803d; } .rec-kpi.tone-success strong { color: #15803d; }
.rec-kpi.tone-danger  { border-left-color: #b91c1c; } .rec-kpi.tone-danger strong { color: #b91c1c; }
.rec-kpi.tone-amber   { border-left-color: #b45309; } .rec-kpi.tone-amber strong { color: #b45309; }
.rec-kpi.tone-teal    { border-left-color: #37a936; } .rec-kpi.tone-teal strong { color: #37a936; }
.rec-kpi.tone-navy    { border-left-color: #1f6fb5; }
.rec-kpi.tone-info    { border-left-color: #6d28d9; } .rec-kpi.tone-info strong { color: #6d28d9; }

.rec-aging { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; margin-bottom: 16px; }
.ag-title { font-size: 12px; font-weight: 800; color: var(--muted); text-transform: uppercase; margin-bottom: 8px; }
.ag-bar { display: flex; height: 16px; border-radius: 8px; overflow: hidden; gap: 2px; }
.ag-seg { min-width: 2px; }
.ag-bar .ag-ok, .ag-leg i.ag-ok { background: #15803d; }
.ag-bar .ag-1, .ag-leg i.ag-1 { background: #eab308; }
.ag-bar .ag-2, .ag-leg i.ag-2 { background: #f97316; }
.ag-bar .ag-3, .ag-leg i.ag-3 { background: #dc2626; }
.ag-bar .ag-4, .ag-leg i.ag-4 { background: #7f1d1d; }
.ag-leg { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 8px; font-size: 12px; color: var(--muted); }
.ag-leg span { display: inline-flex; align-items: center; gap: 5px; }
.ag-leg i { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }

.rec-grids { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.rec-block { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; overflow-x: auto; }
.rec-block h3 { margin: 0 0 10px; font-size: 14px; }
.rec-block h3 small { color: var(--muted); font-weight: 500; }
.rec-table { width: 100%; border-collapse: collapse; }
.rec-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); padding: 6px 8px; border-bottom: 1px solid var(--line); }
.rec-table th.num, .rec-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.rec-table td { padding: 7px 8px; font-size: 13px; border-bottom: 1px solid #f1f5f9; }
.rec-table td small { color: var(--muted); }
.rec-table .money.pos { color: #15803d; }
.rec-table .money.neg { color: #b91c1c; font-weight: 600; }
.rec-empty { color: var(--muted); font-size: 13px; padding: 8px 0; }
@media (max-width: 880px) { .rec-grids { grid-template-columns: 1fr; } }

/* Evolução mensal */
.rec-evol { margin-bottom: 16px; }
.rec-evol-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.rec-evol-head h3 { margin: 0; }
.rec-evol-metric .segment { font-size: 12px; padding: 5px 10px; }
.rec-evol-legend { display: flex; gap: 16px; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.rec-evol-leg { display: inline-flex; align-items: center; gap: 5px; }
.rec-evol-leg i { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
.rec-evol-svg { overflow-x: auto; }
.rec-evol-x { font-size: 10px; fill: var(--muted); }
.rec-evol-table, #recEvolTable { margin-top: 12px; }

/* Sub-abas e comparativo multi-período */
.rec-submode { align-self: flex-start; }
.rec-comp-ctrl { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; margin-bottom: 12px; }
.rec-comp-ctrl label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; color: var(--muted); }
.rec-comp-ctrl select, .rec-comp-ctrl input { padding: 6px 9px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.rec-comp-ctrl input[type=number] { width: 70px; }
.rec-comp-presets { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.rcp-label { font-size: 12px; font-weight: 700; color: var(--muted); }
.rec-preset { display: inline-flex; align-items: center; }
.rec-preset .btn-mini { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.rec-preset-del { border: 1px solid var(--line); border-left: 0; background: #fff; color: #b91c1c; cursor: pointer; border-radius: 0 8px 8px 0; padding: 0 7px; height: 28px; }
.rec-preset-del:hover { background: #fee2e2; }
.rec-cmp-val { font-size: 10px; fill: var(--ink, #0f172a); font-weight: 700; }

/* Comparativo (legado A/B) */
.rec-comp-bar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
.rec-comp-period { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--muted); }
.rec-comp-period input[type=date] { padding: 5px 7px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.rcp-tag { width: 20px; height: 20px; border-radius: 6px; color: #fff; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }
.rcp-tag.a { background: #1f6fb5; } .rcp-tag.b { background: #64748b; }
.cmp-table .cmp-up { color: #15803d; font-weight: 700; }
.cmp-table .cmp-down { color: #b91c1c; font-weight: 700; }
.cmp-table .cmp-val { display: block; }
.cmp-table .cmp-h { display: block; font-size: 11px; font-weight: 700; }
.cmp-table .cmp-h.cmp-up::before { content: '▲ '; font-size: 9px; }
.cmp-table .cmp-h.cmp-down::before { content: '▼ '; font-size: 9px; }
.cmp-table .cmp-sep td { background: #f1f5f9; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); font-weight: 700; }

/* ── Boletos saltados ── */
.salt-dias { font-weight: 700; }
.salt-dias.old { color: #b91c1c; }
.salt-detail td { background: #fff7ed; padding: 8px 12px; }
.salt-boletos { display: flex; flex-wrap: wrap; gap: 6px; }
.salt-b { font-size: 12px; background: #fff; border: 1px solid #fed7aa; color: #9a3412; border-radius: 999px; padding: 2px 9px; font-variant-numeric: tabular-nums; }

/* Filtros multiselect na tela de saltados */
.salt-ms { min-width: 190px; }
.salt-ms .ms-control { min-height: 38px; }

/* Cabeçalhos ordenáveis */
.salt-th { cursor: pointer; user-select: none; white-space: nowrap; }
.salt-th:hover { color: var(--brand-blue, #1f6fb5); }

/* Badge de situação do cliente */
.situ-badge { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.situ-ativo { background: #dcfce7; color: #166534; }
.situ-inativo { background: #fee2e2; color: #991b1b; }
.situ-paralisado { background: #fef3c7; color: #92400e; }
.situ-eventual { background: #e0e7ff; color: #3730a3; }
.situ-neutro { background: #f1f5f9; color: #64748b; }

/* Período inline (tela de Honorários) */
.period-bar-inline { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 6px 10px; background: var(--soft); border-radius: 10px; }
.period-bar-inline .period-label { font-size: 12px; color: var(--muted); font-weight: 600; }
.period-bar-inline select { padding: 5px 8px; border: 1px solid var(--line); border-radius: 7px; font-size: 12.5px; background: #fff; }
.period-bar-inline .period-hint { font-size: 11.5px; color: var(--muted); white-space: nowrap; }

/* Nome fantasia na tabela de clientes */
.cli-fant { font-size: 11px; color: var(--muted); }

/* Link clicável p/ abrir o hub */
.hub-link { color: var(--brand-blue, #1f6fb5); cursor: pointer; text-decoration: none; background: none; border: none; padding: 0; font: inherit; text-align: left; }
.hub-link:hover { text-decoration: underline; }

/* Modal do hub do cliente/grupo */
.hub-panel { position: relative; background: #fff; border-radius: 14px; width: min(1100px, 94vw); max-height: 92vh; overflow-y: auto; padding: 22px 24px 26px; box-shadow: 0 24px 60px rgba(15,23,42,.3); }
.hub-close { position: absolute; top: 14px; right: 16px; }
.hub-head { border-bottom: 1px solid #e2e8f0; padding-bottom: 14px; margin-bottom: 14px; }
.hub-head h2 { margin: 2px 0 6px; font-size: 20px; }
.hub-cad { display: flex; flex-wrap: wrap; gap: 6px 22px; font-size: 13px; color: #334155; }
.hub-cad b { color: #64748b; font-weight: 600; }
.hub-empresas { margin-top: 8px; font-size: 13px; }
.hub-emp-list { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 8px; }
.hub-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.hub-card { border: 1px solid #e2e8f0; border-left: 4px solid var(--brand-blue, #1f6fb5); border-radius: 10px; padding: 12px 14px; background: #f8fafc; }
.hub-card.active { background: #eff6ff; border-left-color: var(--brand-green, #37a936); }
.hub-card-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.hub-card-top span { font-size: 12.5px; color: #475569; font-weight: 600; }
.hub-card-top strong { font-size: 20px; color: #16273f; }
.hub-card small { display: block; color: var(--muted); font-size: 11.5px; margin: 4px 0 8px; }
.hub-detail { margin-top: 16px; }
.hub-detail-scroll { max-height: 50vh; overflow: auto; border: 1px solid #e2e8f0; border-radius: 8px; }
.hub-detail-scroll table { width: 100%; }
.hub-detail-scroll thead th { position: sticky; top: 0; background: #f1f5f9; z-index: 1; }
.hub-th { cursor: pointer; user-select: none; white-space: nowrap; }
.hub-th:hover { color: var(--brand-blue, #1f6fb5); }
/* Selos de situação (honorários / custo) */
.hub-selos { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.hub-selo { font-size: 12.5px; font-weight: 700; border-radius: 999px; padding: 4px 12px; }
.hub-selo.sit-ok { background: #dcfce7; color: #166534; }
.hub-selo.sit-bad { background: #fee2e2; color: #991b1b; }
.hub-selo.sit-crit { background: #ffedd5; color: #9a3412; }
.hub-selo.sit-warn { background: #fef3c7; color: #92400e; }
.hub-selo.sit-acordo { background: #ede9fe; color: #6d28d9; }
.hub-card-soon { opacity: .7; border-left-color: #94a3b8 !important; }

/* Editor de acessos (prefeitura/estado) */
.acesso-box { padding: 6px 2px; }
.acesso-head { font-size: 13px; margin-bottom: 8px; }
.acesso-list { display: flex; flex-direction: column; gap: 6px; }
.acesso-row { display: grid; grid-template-columns: 1.3fr 1.9fr 1fr 1fr auto; gap: 6px; align-items: center; }
.acesso-row input { padding: 6px 8px; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 12.5px; min-width: 0; background: #fff; }
.acesso-row input:focus { outline: none; border-color: var(--brand-blue, #1f6fb5); }
.acesso-row .ac-del { color: #b91c1c; }
.acesso-actions { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.acesso-actions .ac-msg { margin-left: auto; }
@media (max-width: 900px) { .acesso-row { grid-template-columns: 1fr 1fr; } }

/* Aviso de escopo (grupos selecionados) */
.salt-scope-note { font-size: 12.5px; color: var(--muted); background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 7px 12px; margin: 10px 0 0; }
.salt-scope-note strong { color: var(--brand-blue, #1f6fb5); }

/* Badge de acordo/renegociação */
.acordo-badge { display: inline-block; font-size: 10.5px; font-weight: 700; background: #ede9fe; color: #6d28d9; border-radius: 999px; padding: 1px 8px; margin-left: 6px; cursor: help; vertical-align: middle; }

/* Detalhe "listar todos" */
.salt-boletos-wrap { padding: 4px 2px; }
.salt-bol-table { width: 100%; border-collapse: collapse; font-size: 13px; background: #fff; border-radius: 8px; overflow: hidden; }
.salt-bol-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: #64748b; padding: 6px 10px; border-bottom: 1px solid #e2e8f0; }
.salt-bol-table th.num, .salt-bol-table td.num { text-align: right; }
.salt-bol-table td { padding: 6px 10px; border-bottom: 1px solid #f1f5f9; font-variant-numeric: tabular-nums; }
.salt-bol-table tr.bol-aberto td { background: #fff7ed; }
.salt-bol-table tr.bol-cancelado td, .salt-bol-table tr.bol-renegociado td { color: #94a3b8; text-decoration: line-through; }
.bol-tag { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 8px; }
.bol-tag-pago { background: #dcfce7; color: #166534; }
.bol-tag-aberto { background: #fed7aa; color: #9a3412; }
.bol-tag-acordo { background: #ede9fe; color: #6d28d9; }
.bol-tag-negociacao { background: #e0e7ff; color: #3730a3; }
.bol-tag-renegociado { background: #f1f5f9; color: #64748b; }
.bol-tag-cancelado { background: #e2e8f0; color: #94a3b8; }

/* ── Aba de Checagem cadastral ── */
.chk-section { margin-bottom: 26px; }
.chk-section > h3 { margin: 0 0 4px; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.chk-count { background: #fee2e2; color: #b91c1c; font-size: 12px; font-weight: 800; padding: 1px 9px; border-radius: 999px; }
.chk-count:empty { display: none; }
.chk-hint { margin: 0 0 12px; font-size: 13px; color: var(--muted); max-width: 900px; }
.chk-empty { color: var(--muted); font-size: 14px; padding: 12px 0; }
.chk-card { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; margin-bottom: 12px; }
.chk-card-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 8px; flex-wrap: wrap; }
.chk-card-head strong { font-size: 14px; color: var(--ink, #0f172a); }
.chk-cnpj { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.chk-table { width: 100%; border-collapse: collapse; }
.chk-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); padding: 6px 10px; border-bottom: 1px solid var(--line); }
.chk-table th.num, .chk-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.chk-table td { padding: 7px 10px; font-size: 13px; border-bottom: 1px solid #f1f5f9; }
.chk-table tr:last-child td { border-bottom: 0; }
.chk-table tbody tr.em-uso { background: #f0fdf4; }
.chk-tag { font-size: 11px; font-weight: 800; padding: 1px 8px; border-radius: 999px; }
.chk-tag.use { background: #dcfce7; color: #15803d; }
.chk-tag.dup { background: #fef3c7; color: #92400e; }
.chk-verif-table { background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.chk-verif-table tbody tr:hover { background: #fffbeb; }

/* ── Tela de Custos & Impostos ── */
.custos-summary { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.cs-card, .cs-delta {
  flex: 1; min-width: 200px; background: #fff; border: 1px solid var(--line);
  border-radius: 12px; padding: 12px 16px; display: flex; flex-direction: column; gap: 3px;
}
.cs-card.adj { border-color: #f3d37a; background: #fffdf5; }
.cs-card.cs-real { border-color: var(--brand-blue, #0455a2); background: rgba(4,85,162,.05); }
.cs-card.cs-real .cs-val { color: var(--brand-blue, #0455a2); }
.cs-card.cs-aloc { border-color: var(--brand-green, #039c5b); background: rgba(3,156,91,.06); }
.cs-card.cs-aloc .cs-val { color: var(--brand-green, #039c5b); }
.custos-table .cs-real-col { background: rgba(4,85,162,.05); }
.custos-table .cs-suite { color: var(--muted, #64748b); }
.cs-lbl { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); }
.cs-val { font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; }
.cs-val.pos { color: #15803d; } .cs-val.neg { color: #b91c1c; }
.cs-card small, .cs-delta small { font-size: 12px; color: var(--muted); }
.cs-arrow { align-self: center; font-size: 26px; color: var(--muted); font-weight: 700; }
.cs-arrow.up { color: #15803d; } .cs-arrow.down { color: #b91c1c; }
.cs-delta { justify-content: center; }
.cs-delta strong { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
.cs-delta.up strong { color: #15803d; } .cs-delta.down strong { color: #b91c1c; } .cs-delta.flat strong { color: var(--muted); }
.custos-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.custos-bar label { font-size: 13px; font-weight: 600; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.custos-bar input { width: 70px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.custos-table-wrap { overflow: auto; max-height: calc(100vh - 240px); border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.custos-table { width: 100%; min-width: 1000px; border-collapse: collapse; }
.custos-table thead th {
  position: sticky; top: 0; z-index: 2; background: #eef2f7; text-align: left;
  padding: 11px 12px; font-size: 12px; font-weight: 800; color: var(--muted);
  box-shadow: inset 0 -1px 0 var(--line); white-space: nowrap;
}
.custos-table thead th.num { text-align: right; }
.custos-table tbody td { padding: 9px 12px; border-bottom: 1px solid #f1f5f9; font-size: 13px; }
.custos-table tbody td.num { text-align: right; font-variant-numeric: tabular-nums; }
.custos-table tbody tr.is-adj { background: #fffdf5; }
.custos-input { width: 120px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; text-align: right; }
.custos-input.sm { width: 70px; }
.custo-haj { color: #b45309; font-weight: 700; }
.custo-badge { font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: #fef3c7; color: #92400e; }
.custo-badge.planilha { background: #eef2f7; color: var(--muted); }
.btn-mini { padding: 5px 10px; font-size: 12px; margin-right: 4px; }

/* ── FASE 2 — KPI de oportunidade pela referência ── */
.kpi.kpi-ref strong { color: #6d28d9; }
.kpi.kpi-ref { border-color: #ddd6fe; }
.kpi.kpi-hon { border-color: rgba(4,85,162,.28); }
.kpi.kpi-hon strong { color: var(--brand-blue, #0455a2); }
/* Sugestões */
.sug-form { background: var(--surface, #fff); border: 1px solid var(--line, #e2e8f0); border-radius: 12px; padding: 12px; margin-bottom: 14px; }
.sug-form textarea { width: 100%; border: 1px solid var(--line, #d6dbe4); border-radius: 8px; padding: 10px; font: inherit; font-size: 14px; resize: vertical; box-sizing: border-box; }
.sug-form-bar { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; }
.sug-hint { font-size: 12px; color: var(--muted, #94a3b8); }
.sug-form-bar .btn-soft { background: var(--brand-blue, #0455a2); color: #fff; border: 0; padding: 7px 16px; border-radius: 8px; cursor: pointer; font-size: 13px; }
.sug-filters { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.sug-fbtn { border: 1px solid var(--line, #d6dbe4); background: var(--surface, #fff); color: var(--muted, #64748b); padding: 5px 12px; border-radius: 999px; font-size: 12.5px; cursor: pointer; }
.sug-fbtn.active { background: var(--navy, #0f2748); color: #fff; border-color: var(--navy, #0f2748); font-weight: 600; }
.sug-list { display: flex; flex-direction: column; gap: 10px; }
.sug-empty { color: var(--muted, #94a3b8); padding: 24px; text-align: center; }
.sug-card { border: 1px solid var(--line, #e2e8f0); border-left: 4px solid var(--line, #cbd5e1); border-radius: 10px; padding: 12px 14px; background: var(--surface, #fff); }
.sug-card.st-analisando { border-left-color: #b45309; }
.sug-card.st-concluida { border-left-color: #039c5b; }
.sug-card.st-recusada { border-left-color: #dc2626; }
.sug-card.st-aberta { border-left-color: var(--brand-blue, #0455a2); }
.sug-body { font-size: 14px; line-height: 1.5; color: var(--text, #1f2937); }
.sug-menu-chip { display: inline-block; background: rgba(4,85,162,.08); color: var(--brand-blue, #0455a2); border-radius: 6px; padding: 0 6px; font-weight: 600; text-decoration: none; cursor: pointer; }
.sug-menu-chip:hover { background: rgba(4,85,162,.16); }
.sug-at { color: var(--brand-green, #039c5b); font-weight: 600; }
.sug-meta { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; font-size: 12px; color: var(--muted, #64748b); }
.sug-meta-r { display: inline-flex; align-items: center; gap: 8px; }
.sug-status-sel { padding: 3px 6px; border: 1px solid var(--line, #d6dbe4); border-radius: 6px; font-size: 12px; }
.sug-status { padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; }
.sug-status.st-aberta { background: rgba(4,85,162,.1); color: #0455a2; }
.sug-status.st-analisando { background: rgba(180,83,9,.12); color: #b45309; }
.sug-status.st-concluida { background: rgba(3,156,91,.12); color: #039c5b; }
.sug-status.st-recusada { background: rgba(220,38,38,.1); color: #dc2626; }
.sug-del { border: 0; background: transparent; cursor: pointer; font-size: 13px; opacity: .6; }
.sug-del:hover { opacity: 1; }
/* Conciliação: ocultar folha (visão sem salário / sem permissão) + email */
body.fol-sem-folha .fol-custo-col { display: none; }
.fol-mail { font-size: 11px; color: var(--muted, #94a3b8); margin-top: 2px; }
/* Gatilhos → Ação */
.gat-h3 { font-size: 15px; margin: 18px 0 8px; }
.gat-form { background: var(--surface, #fff); border: 1px solid var(--brand-blue, #0455a2); border-radius: 12px; padding: 14px; margin-bottom: 14px; }
.gat-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.gat-form-grid label, .gat-tpl { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: var(--muted, #64748b); }
.gat-form-grid input, .gat-form-grid select, .gat-tpl textarea { padding: 6px 8px; border: 1px solid var(--line, #d6dbe4); border-radius: 7px; font: inherit; font-size: 13px; }
.gat-tpl { margin-top: 10px; }
.gat-form-bar { margin-top: 10px; display: flex; gap: 8px; }
.gat-rules { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.gat-rule { border: 1px solid var(--line, #e2e8f0); border-left: 4px solid var(--brand-blue, #0455a2); border-radius: 10px; padding: 10px 14px; background: var(--surface, #fff); }
.gat-rule.gat-off { opacity: .6; border-left-color: var(--muted, #94a3b8); }
.gat-rule-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gat-rule-sub { font-size: 12px; color: var(--muted, #64748b); margin: 4px 0 8px; }
.gat-rule-acts { display: flex; gap: 6px; }
.gat-badge { font-size: 11px; padding: 1px 7px; border-radius: 999px; background: rgba(4,85,162,.1); color: var(--brand-blue, #0455a2); font-weight: 600; }
.gat-badge.off { background: rgba(100,116,139,.15); color: #64748b; }
.gat-badge.warn { background: rgba(180,83,9,.14); color: #b45309; }
.gat-badge.pendente { background: rgba(4,85,162,.1); color: #0455a2; }
.gat-badge.enviado { background: rgba(3,156,91,.12); color: #039c5b; }
.gat-badge.ignorado { background: rgba(100,116,139,.15); color: #64748b; }
.gat-disp-filters { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.gat-err { color: #dc2626; }
.gat-acts { white-space: nowrap; }
.gat-cond-box { margin: 10px 0; padding: 10px; border: 1px dashed var(--line, #cbd5e1); border-radius: 8px; background: var(--surface-2, #f8fafc); }
.gat-conds { display: flex; flex-direction: column; gap: 6px; margin-bottom: 6px; }
.gat-cond-row { display: flex; gap: 6px; align-items: center; }
.gat-cond-row select, .gat-cond-row input { padding: 5px 7px; border: 1px solid var(--line, #d6dbe4); border-radius: 6px; font-size: 13px; }
.gat-cond-row .gc-campo { flex: 2; } .gat-cond-row .gc-op { width: 64px; } .gat-cond-row .gc-valor { width: 110px; }
.gat-cond-row .gc-del { border: 0; background: transparent; cursor: pointer; color: #dc2626; }
.gat-cond-hint { color: var(--muted, #94a3b8); font-size: 11.5px; }

/* ── FASE 2 — Tela de Precificação (Honorários) ── */
.preco-header .leg { padding: 0 4px; border-radius: 5px; font-weight: 800; }
.leg-sug  { background: #fef3c7; color: #92400e; }
.leg-ref  { background: #ede9fe; color: #6d28d9; }
.leg-both { background: #fee2e2; color: #b91c1c; }
.leg-chk  { background: #fff7ed; color: #9a3412; }

.preco-filter { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--muted); white-space: nowrap; }

.preco-table-wrap {
  overflow: auto;                         /* rola nos 2 eixos dentro do quadro */
  max-height: calc(100vh - 240px);        /* cabeçalho fica congelado no topo */
  border: 1px solid var(--line); border-radius: 14px; background: #fff;
}
.preco-table { width: 100%; min-width: 1280px; border-collapse: collapse; }
.preco-table thead th {
  position: sticky; top: 0; z-index: 2;
  background: #eef2f7; text-align: left;
  padding: 11px 12px; font-size: 12px; font-weight: 800;
  color: var(--muted); box-shadow: inset 0 -1px 0 var(--line); white-space: nowrap;
}
.preco-table thead th.num { text-align: right; }
.preco-table td.preco-pct { font-variant-numeric: tabular-nums; color: var(--brand-blue); font-weight: 700; }
/* Fator R — semáforo */
.preco-table tr.fr-fora   td:first-child { box-shadow: inset 4px 0 0 var(--prejuizo); }
.preco-table tr.fr-queda  td:first-child { box-shadow: inset 4px 0 0 var(--critico); }
.preco-table tr.fr-limite td:first-child { box-shadow: inset 4px 0 0 var(--atencao); }
.preco-table tr.fr-ok     td:first-child { box-shadow: inset 4px 0 0 var(--saudavel); }
.fr-badge { display: inline-block; padding: 2px 9px; border-radius: 999px; font-weight: 800; font-variant-numeric: tabular-nums; color: #fff; }
.fr-badge.fr-fora { background: var(--prejuizo); }
.fr-badge.fr-queda { background: var(--critico); }
.fr-badge.fr-limite { background: var(--atencao); }
.fr-badge.fr-ok { background: var(--saudavel); }
.fr-sai { color: var(--prejuizo); }
/* Controle de Caixa */
.cx-neg { color: var(--prejuizo); }
.cx-pos { color: var(--saudavel); }
#caixaView tr.cx-estourado { background: #fef2f2; }
#caixaView tr.cx-estourado:hover { background: #fee2e2; }
#caixaView tr.cx-estourado td:first-child { box-shadow: inset 3px 0 0 var(--prejuizo); }
/* Validação comparativa (planilha × e-Kontroll) */
.cmp-table th.cmp-grp { text-align: center; border-left: 2px solid var(--border); background: #f1f5f9; }
.cmp-table th.cmp-sub { font-size: 11px; font-weight: 600; color: var(--muted); }
.cmp-table td.cmp-e { color: var(--accent); border-right: 1px dotted var(--border); }
.cmp-table td.cmp-d { font-weight: 700; font-variant-numeric: tabular-nums; }
.cmp-ok { color: var(--saudavel); }
.cmp-bad { color: var(--prejuizo); }
#comparativoView tr.cmp-row-diff { background: #fff7ed; }
#comparativoView tr.cmp-row-diff:hover { background: #ffedd5; }
/* Gestão GRUPO CONTAS */
.gestao-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; margin: 8px 0 4px; }
@media (max-width: 1000px) { .gestao-grid { grid-template-columns: 1fr; } }
.gestao-box { background: var(--card, #fff); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; }
.gestao-box h3 { margin: 0 0 10px; font-size: 14px; }
tr.gestao-tot td { border-top: 2px solid var(--border); background: #f8fafc; }
.gestao-mix-row { display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 10px; padding: 4px 0; font-size: 13px; }
.gestao-mix-lbl { color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gestao-mix-bar { background: #eef2f7; border-radius: 6px; height: 12px; overflow: hidden; }
.gestao-mix-bar > span { display: block; height: 100%; background: linear-gradient(90deg, var(--brand-blue, #0455a2), var(--brand-green, #039c5b)); }
.gestao-mix-val { font-variant-numeric: tabular-nums; color: var(--muted); white-space: nowrap; }
.gestao-ind-title { margin: 18px 0 8px; font-size: 15px; }
.gestao-ind-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(225px, 1fr)); gap: 12px; }
.gestao-ind { background: var(--card, #fff); border: 1px solid var(--border); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 6px; cursor: default; }
.gestao-ind:hover { border-color: var(--accent); box-shadow: 0 2px 10px rgba(4,85,162,.08); }
.gestao-ind-val { font-size: 22px; font-weight: 800; color: var(--brand-blue, #0455a2); font-variant-numeric: tabular-nums; }
.gestao-ind { position: relative; }
.gestao-ind-nome { font-size: 12.5px; color: var(--text); font-weight: 600; line-height: 1.3; padding-right: 16px; }
.gestao-ind-x { position: absolute; top: 6px; right: 8px; border: 0; background: none; color: var(--muted); font-size: 16px; line-height: 1; cursor: pointer; padding: 2px 4px; border-radius: 4px; }
.gestao-ind-x:hover { background: #fee2e2; color: var(--prejuizo); }
.gestao-ind-stats { display: flex; flex-direction: column; gap: 3px; margin-top: 6px; }
.gestao-ind-stat { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.gestao-ind-stat span { font-size: 10px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.gestao-ind-stat b { font-size: 16px; font-weight: 800; color: var(--brand-blue, #0455a2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gestao-ind-stats.one .gestao-ind-stat span { display: none; }
.gestao-ind-stats.one .gestao-ind-stat { justify-content: flex-start; }
.gestao-ind-stats.one .gestao-ind-stat b { font-size: 23px; }
/* sub-abas + toggle de stats */
.gestao-subtabs, .gestao-stats-toggle { display: inline-flex; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.gestao-subtabs button, .gestao-stats-toggle button { border: 0; background: #fff; padding: 6px 12px; font-size: 12.5px; cursor: pointer; color: var(--muted); border-left: 1px solid var(--border); }
.gestao-subtabs button:first-child, .gestao-stats-toggle button:first-child { border-left: 0; }
.gestao-subtabs button.active { background: var(--brand-blue, #0455a2); color: #fff; font-weight: 700; }
.gestao-stats-toggle button.active { background: #e7f0fb; color: var(--brand-blue, #0455a2); font-weight: 700; }
/* tabela de evolução */
.evol-table th.evol-name, .evol-table td.evol-name { position: sticky; left: 0; background: #fff; text-align: left; min-width: 220px; z-index: 1; box-shadow: 1px 0 0 var(--border); }
.evol-table thead th { position: sticky; top: 0; background: #f1f5f9; z-index: 2; }
.evol-table th.evol-name { z-index: 3; }
.evol-table td.evol-up { color: var(--saudavel); }
.evol-table td.evol-down { color: var(--prejuizo); }
.evol-table .evol-tot { border-left: 2px solid var(--border); background: #f8fafc; }
.btn-soft { border: 1px solid var(--border); background: #fff; border-radius: 8px; padding: 5px 12px; font-size: 12px; cursor: pointer; color: var(--accent); }
.btn-soft:hover { background: #f1f5f9; }
.btn-soft.active { background: var(--brand-blue, #0455a2); color: #fff; border-color: var(--brand-blue, #0455a2); }
.gestao-ind-title { display: flex; align-items: center; gap: 12px; }
.gestao-sorec { font-weight: 600; }
/* Colaboradores */
#colaboradoresView .col-row { cursor: pointer; }
#colaboradoresView .col-row:hover { background: #f1f5f9; }
.col-mod { color: var(--muted); font-size: 12px; }
.col-tag { font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: 999px; }
.col-tag.col-est { background: #eef2f7; color: #64748b; }
.col-tag.col-exato { background: #dbeafe; color: #1e40af; }
.col-tag.col-folha { background: #16a34a; color: #fff; }
.col-cargo { color: #64748b; }
.col-na { color: #cbd5e1; }
.col-nosuite { color: #b45309; font-style: normal; font-size: 11px; }
.col-cham-sep { color: #cbd5e1; }
.col-cham-ab { color: #b45309; }
.col-ent { cursor: pointer; }
/* Colunas segregadas de entregas (uma por status) */
.ent-c { font-size: 11.5px; padding-left: 6px !important; padding-right: 6px !important; color: #475569; }
th.ent-c { color: var(--muted); font-weight: 600; white-space: nowrap; }
.ent-total, th.ent-total { border-left: 2px solid #e2e8f0; }
/* Detalhamento das entregas (Acessórias) — card por status */
.ent-det { background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin-bottom: 12px; }
.ent-det-empty { color: var(--muted); font-size: 12px; }
.ent-det-head { font-size: 13px; font-weight: 600; margin-bottom: 8px; color: var(--text, #0f172a); }
.ent-det-head b { color: var(--accent); }
.ent-det-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 3px 16px; }
.ent-det-row { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; padding: 3px 0; border-bottom: 1px dashed #e5eaf0; }
.ent-det-row span { color: var(--muted); }
.ent-det-row b { font-variant-numeric: tabular-nums; color: var(--text, #0f172a); }
.ent-det-row.ent-late span, .ent-det-row.ent-late b { color: #b45309; }
.folha-det .ent-det-grid { display: block; }
.folha-det-tit { font-size: 10.5px; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; margin: 7px 0 1px; }
.folha-det-grp .ent-det-row { max-width: 340px; }
.ent-det-row.ent-det-total { border-top: 1px solid var(--line); margin-top: 5px; padding-top: 6px; max-width: 340px; }
.ent-det-row.ent-det-total b, .ent-det-row.ent-det-total span b { color: var(--text, #0f172a); }
.col-depara { width: 92px; padding: 4px 6px; border: 1px solid var(--line, #cbd5e1); border-radius: 6px; font: inherit; font-size: 12px; color: #0f172a; background: #fff; }
.col-detail > td { background: #f8fafc; padding: 0; }
.col-detail-box { padding: 10px 16px; }
.col-detail-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.col-detail-table th { text-align: left; color: var(--muted); font-size: 11px; text-transform: uppercase; padding: 2px 8px; }
.col-detail-table td { padding: 3px 8px; border-top: 1px solid var(--border); }
/* Custos Gerais */
.cg-month { padding: 6px 8px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; font: inherit; font-size: 13px; }
.cg-form { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; background: var(--card, #fff); border: 1px solid var(--accent); border-radius: 12px; padding: 14px 16px; margin: 8px 0 12px; box-shadow: 0 2px 12px rgba(4,85,162,.08); }
.cg-field { display: flex; flex-direction: column; gap: 3px; }
.cg-field label { font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; }
.cg-field input, .cg-field select { padding: 7px 9px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; font: inherit; font-size: 13px; color: #0f172a; background: #fff; min-width: 130px; }
.cg-field-wide { flex: 1; min-width: 200px; }
.cg-field-wide input { width: 100%; }
.cg-form-actions { display: flex; gap: 8px; align-items: flex-end; }
.cg-cl { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.cg-cl.cg-op { background: #e7f0fb; color: var(--brand-blue, #0455a2); }
.cg-cl.cg-nop { background: #fef3c7; color: #92400e; }
.cg-tipo { font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; text-transform: capitalize; }
.cg-tipo.cg-rec { background: #dcfce7; color: #166534; }
.cg-tipo.cg-ev { background: #eef2f7; color: #64748b; }
.cg-obs { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 12px; }
.cg-acts { white-space: nowrap; }
.cg-mini { border: 1px solid var(--border); background: #fff; border-radius: 6px; padding: 3px 7px; cursor: pointer; font-size: 13px; }
.cg-mini:hover { background: #f1f5f9; }
.cg-mini.cg-del:hover { background: #fee2e2; }
/* Menu de APIs */
.api-provtabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 14px; }
.api-prov { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border: 1px solid var(--border); background: #fff; border-radius: 10px; cursor: pointer; font: inherit; font-size: 13px; font-weight: 600; color: #0f172a; }
.api-prov:hover { border-color: var(--accent); }
.api-prov.sel { background: var(--brand-blue, #0455a2); color: #fff; border-color: var(--brand-blue, #0455a2); }
.api-prov-n { font-size: 11px; background: rgba(0,0,0,.08); padding: 1px 7px; border-radius: 999px; }
.api-prov.sel .api-prov-n { background: rgba(255,255,255,.22); }
.api-live { font-size: 10px; font-weight: 700; color: #16a34a; }
.api-prov.sel .api-live { color: #bbf7d0; }
.api-layout { display: grid; grid-template-columns: minmax(320px, 1.1fr) minmax(300px, 1fr); gap: 16px; align-items: start; }
@media (max-width: 900px) { .api-layout { grid-template-columns: 1fr; } }
.api-catalog { max-height: calc(100vh - 230px); overflow: auto; padding-right: 4px; }
.api-prov-head { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--muted); margin-bottom: 10px; }
.api-base { font-size: 11.5px; color: var(--brand-blue, #0455a2); background: #eef4fb; padding: 3px 7px; border-radius: 6px; align-self: flex-start; }
.api-group { margin-bottom: 14px; }
.api-group-title { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin: 0 0 6px; }
.api-group-title span { background: #eef2f7; padding: 0 6px; border-radius: 999px; }
.api-method { display: block; width: 100%; text-align: left; border: 1px solid var(--border); background: #fff; border-radius: 10px; padding: 9px 12px; margin-bottom: 7px; cursor: pointer; font: inherit; }
.api-method:hover { border-color: var(--accent); background: #f8fbff; }
.api-method.sel { border-color: var(--brand-blue, #0455a2); background: #eef4fb; box-shadow: inset 3px 0 0 var(--brand-blue, #0455a2); }
.api-method-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.api-method-name { font-weight: 700; font-size: 13.5px; color: #0f172a; }
.api-cod { font-size: 11px; font-weight: 700; background: #0f172a; color: #fff; padding: 1px 6px; border-radius: 5px; }
.api-method-ep { font-size: 11.5px; color: #0369a1; background: #eff6ff; padding: 1px 6px; border-radius: 5px; }
.api-method-desc { font-size: 12px; color: var(--muted); margin-top: 3px; }
.api-detail { position: sticky; top: 0; border: 1px solid var(--border); border-radius: 12px; padding: 16px 18px; background: var(--card, #fff); min-height: 160px; }
.api-detail-head { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.api-detail-head h3 { margin: 0; font-size: 16px; }
.api-detail-desc { color: var(--muted); font-size: 13px; margin: 8px 0; }
.api-params { font-size: 12px; margin-bottom: 12px; }
.api-params code { background: #f1f5f9; padding: 2px 6px; border-radius: 5px; font-size: 11.5px; }
.api-fields-title { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-bottom: 6px; }
.api-fields { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.api-fields th { text-align: left; font-size: 10.5px; text-transform: uppercase; color: var(--muted); padding: 4px 8px; border-bottom: 1px solid var(--border); }
.api-fields td { padding: 5px 8px; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.api-fields code { font-size: 12px; color: var(--brand-blue, #0455a2); font-weight: 600; }
.api-hint { color: var(--muted); font-size: 13px; padding: 8px 2px; }
.api-err { color: #b45309; }
/* Custos Folha */
.cfol-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; margin: 4px 0 14px; align-items: start; }
.cfol-grid-3 { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 1200px) { .cfol-grid-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 900px) { .cfol-grid, .cfol-grid-3 { grid-template-columns: 1fr; } }
.cfol-card { border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; background: var(--card, #fff); }
.cfol-card-title { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-bottom: 10px; }
.cfol-chart { width: 100%; }
.cfol-setores { display: flex; flex-direction: column; gap: 11px; }
.cfol-set-row { display: flex; flex-direction: column; gap: 3px; }
.cfol-set-top { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; }
.cfol-set-name { font-weight: 600; color: #0f172a; }
.cfol-set-val { font-weight: 700; color: var(--brand-blue, #0455a2); }
.cfol-set-val small { color: var(--muted); font-weight: 600; }
.cfol-set-bar { height: 7px; background: #eef2f7; border-radius: 999px; overflow: hidden; }
.cfol-set-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--brand-blue, #0455a2), var(--brand-green, #039c5b)); border-radius: 999px; }
.cfol-set-sub { font-size: 11px; color: var(--muted); }
/* Matriz mensal da folha */
.cfol-matrix-title { margin: 6px 0 8px; }
.cfol-matrix th, .cfol-matrix td { white-space: nowrap; }
.cfol-matrix .cfol-emp-col { position: sticky; left: 0; background: #fff; z-index: 2; text-align: left; min-width: 150px; box-shadow: 1px 0 0 var(--line); }
.cfol-matrix thead th { position: sticky; top: 0; background: #fff; z-index: 2; }
.cfol-matrix thead .cfol-emp-col { z-index: 3; left: 0; top: 0; }
.cfol-matrix .cfol-tot-col { border-left: 2px solid #e2e8f0; }
.cfol-matrix .cfol-grp-row td { background: #eef6f1; font-weight: 600; }
.cfol-matrix .cfol-grp-row .cfol-emp-col { background: #eef6f1; }
.cfol-matrix-wrap { max-height: 62vh; }
/* De-para da Folha */
.fol-ok { background: #f0fdf4; }
.fol-sug { font-size: 9px; font-weight: 800; color: #b45309; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 4px; padding: 1px 5px; margin-left: 6px; vertical-align: middle; }
.fol-mod-v { font-variant-numeric: tabular-nums; font-size: 12px; color: #334155; }
.fol-mod-h { color: var(--muted); margin-left: 6px; }
.fol-dom, .fol-suite, .fol-acc, .fol-cls { padding: 4px 6px; border: 1px solid var(--line, #cbd5e1); border-radius: 6px; font: inherit; font-size: 12px; background: #fff; color: #0f172a; }
.fol-dom, .fol-suite, .fol-acc { width: 122px; }
.fol-dom-ev { font-size: 10.5px; color: var(--muted); margin-top: 3px; line-height: 1.35; max-width: 190px; }
.fol-dom-ev b { color: #334155; }
.btn-mini-primary { background: var(--accent, #0455a2); color: #fff; border-color: var(--accent, #0455a2); }
.btn-mini-primary:hover { filter: brightness(1.08); }
.fol-last { display: inline-block; font-size: 10px; font-weight: 800; border-radius: 5px; padding: 1px 6px; vertical-align: middle; white-space: nowrap; }
.fol-last-ok { background: #dcfce7; color: #166534; }
.fol-last-out { background: #fef3c7; color: #92400e; }
.cfol-est { color: #b45309; }
.col-est-mark { color: #b45309; font-weight: 800; margin-left: 1px; }
.cfk-delta { font-weight: 800; }
.cfk-up { color: #b45309; }
.cfk-dn { color: #166534; }
/* Timesheet & Chamados (Equipe Suite) */
.eq-row { cursor: pointer; }
.eq-row:hover { background: #f8fbff; }
.eq-fin { color: #166534; font-weight: 700; }
.eq-ab { color: #b45309; font-weight: 700; }
.eq-detail > td { background: #f8fafc; padding: 0; }
.eq-detail-box { padding: 10px 16px; }
.eq-detail-title { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-bottom: 6px; }
.eq-detail-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.eq-detail-table th { text-align: left; font-size: 10.5px; text-transform: uppercase; color: var(--muted); padding: 3px 8px; border-bottom: 1px solid var(--border); }
.eq-detail-table th.num, .eq-detail-table td.num { text-align: right; }
.eq-detail-table td { padding: 3px 8px; border-top: 1px solid var(--border); }
/* Painel do Cliente */
.pc-controls { flex-wrap: wrap; gap: 8px; }
.pc-fat { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--muted); }
.pc-fat input { width: 88px; padding: 6px 8px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; font: inherit; font-size: 12px; }
.pc-ramo { display: inline-block; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.pc-row { cursor: pointer; }
.pc-row:hover { background: #f8fbff; }
#pcTable th { cursor: pointer; user-select: none; white-space: nowrap; }
.situ-badge { font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: #eef2f7; color: #475569; }
.situ-badge.situ-ativo { background: #dcfce7; color: #166534; }
.situ-badge.situ-paralisado { background: #fef3c7; color: #92400e; }
.situ-badge.situ-eventual { background: #e0e7ff; color: #3730a3; }
.situ-badge.situ-inativo { background: #f1f5f9; color: #64748b; }
.pc-cols-menu { position: absolute; z-index: 90; background: #fff; border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.16); padding: 8px; min-width: 210px; }
.pc-cols-title { font-size: 11px; font-weight: 800; text-transform: uppercase; color: var(--muted); padding: 2px 6px 6px; }
.pc-cols-item { display: flex; align-items: center; gap: 7px; padding: 4px 6px; font-size: 13px; border-radius: 6px; cursor: pointer; }
.pc-cols-item:hover { background: #f1f5f9; }
.pc-cols-fixed { opacity: .6; cursor: default; }
.pc-cols-all { margin-top: 6px; width: 100%; border: 1px solid var(--border); background: #f8fafc; border-radius: 8px; padding: 6px; font: inherit; font-size: 12px; cursor: pointer; }
.pc-cols-all:hover { background: #eef2f7; }
/* Modal detalhamento */
.pc-modal { position: fixed; inset: 0; background: rgba(15,23,42,.55); display: flex; align-items: flex-start; justify-content: center; padding: 28px 16px; z-index: 200; overflow: auto; }
.pc-modal[hidden] { display: none; }
.pc-modal-card { position: relative; background: var(--bg, #f8fafc); border-radius: 14px; width: min(1080px, 96vw); padding: 22px 24px; box-shadow: 0 24px 60px rgba(0,0,0,.3); }
.pc-modal-close { position: absolute; top: 12px; right: 14px; border: none; background: #e2e8f0; width: 30px; height: 30px; border-radius: 50%; cursor: pointer; font-size: 14px; }
.pc-modal-head h3 { margin: 0 40px 2px 0; font-size: 19px; }
.pc-modal-sub { color: var(--muted); font-size: 12.5px; margin-bottom: 12px; }
.pc-info-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px 16px; margin-bottom: 14px; }
.pc-info { display: flex; flex-direction: column; gap: 1px; }
.pc-info span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); font-weight: 700; }
.pc-info strong { font-size: 13px; color: #0f172a; font-weight: 600; }
.pc-modal-kpis { margin: 6px 0 14px; }
.pc-sec-title { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--brand-blue, #0455a2); margin: 14px 0 8px; border-top: 1px solid var(--border); padding-top: 12px; }
.pc-sec-title small { color: var(--muted); font-weight: 600; text-transform: none; }
.pc-serie-wrap { overflow: auto; max-height: 360px; }
.pc-serie { width: 100%; border-collapse: collapse; font-size: 12px; }
.pc-serie th { position: sticky; top: 0; background: #f1f5f9; text-align: left; padding: 5px 8px; font-size: 10.5px; text-transform: uppercase; color: var(--muted); }
.pc-serie th.num, .pc-serie td.num { text-align: right; font-variant-numeric: tabular-nums; }
.pc-serie td { padding: 4px 8px; border-top: 1px solid var(--border); }
.pc-loading { padding: 40px; text-align: center; color: var(--muted); }
/* Esforço TS × Domínio */
.esf-flag { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.esf-flag.esf-ok { background: #dcfce7; color: #166534; }
.esf-flag.esf-sub { background: #fef3c7; color: #92400e; }
.esf-flag.esf-off { background: #dbeafe; color: #1e40af; }
.esf-flag.esf-neutro { background: #f1f5f9; color: #64748b; }
#esforcoView .cx-neg { color: #dc2626; }
/* De-para Colaboradores */
.dep-linked > td { background: #f6fdf9; }
.dep-assign { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.dep-input { min-width: 240px; padding: 6px 9px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; font: inherit; font-size: 13px; color: #0f172a; background: #fff; }
.dep-input.dep-invalid { border-color: #dc2626; background: #fef2f2; }
.dep-via { font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; }
.dep-via-ok { background: #dcfce7; color: #166534; }
.dep-via-med { background: #fef3c7; color: #92400e; }
.dep-clear { border: 1px solid var(--border); background: #fff; border-radius: 6px; width: 24px; height: 24px; cursor: pointer; color: #b91c1c; font-size: 12px; }
.dep-clear:hover { background: #fee2e2; }
.dep-sug { margin-top: 5px; font-size: 11.5px; color: var(--muted); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.dep-none { font-style: italic; }
.dep-sug-chip { border: 1px solid var(--accent); background: #eff6ff; color: #0369a1; border-radius: 999px; padding: 2px 9px; cursor: pointer; font: inherit; font-size: 11.5px; }
.dep-sug-chip:hover { background: #dbeafe; }
.dep-sug-chip em { color: var(--muted); font-style: normal; font-size: 10px; }
.dep-sug-chip.dep-usado { border-color: #f59e0b; background: #fffbeb; color: #92400e; }
.dep-seg { display: inline-flex; gap: 4px; background: #eef2f7; border-radius: 10px; padding: 3px; margin: 0 0 12px; }
.dep-seg-btn { border: none; background: transparent; border-radius: 8px; padding: 7px 14px; cursor: pointer; font: inherit; font-size: 13px; font-weight: 600; color: var(--muted); }
.dep-seg-btn.active { background: #fff; color: var(--brand-blue, #0455a2); box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.dep-sem-btn { border: 1px dashed var(--border); background: #fff; border-radius: 999px; padding: 3px 10px; cursor: pointer; font: inherit; font-size: 11.5px; color: var(--muted); }
.dep-sem-btn:hover { background: #f1f5f9; color: #0f172a; }
.dep-via.dep-sem { background: #e0e7ff; color: #3730a3; }
.dep-sem-row > td { background: #fafaff; }
.dep-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }
#depSuiteWrap th[data-depsort], #depDomWrap th[data-domsort] { cursor: pointer; user-select: none; white-space: nowrap; }
#depSuiteWrap th[data-depsort]:hover, #depDomWrap th[data-domsort]:hover { color: var(--brand-blue, #0455a2); }
.srt { color: var(--brand-blue, #0455a2); font-size: 10px; }
.gestao-emp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.gestao-emp { background: var(--card, #fff); border: 1px solid var(--border); border-radius: 12px; padding: 14px; }
.gestao-emp.gestao-emp-vazio { opacity: .6; }
.gestao-emp > header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; border-bottom: 1px solid var(--border); padding-bottom: 6px; }
.gestao-emp > header strong { font-size: 14px; }
.gestao-emp-cod { font-size: 11px; color: var(--muted); }
.gestao-emp-row { display: flex; justify-content: space-between; font-size: 13px; padding: 2px 0; }
.gestao-emp-row span { color: var(--muted); }
.gestao-emp-row b { font-variant-numeric: tabular-nums; }
.gestao-emp-res { border-top: 1px dashed var(--border); margin-top: 4px; padding-top: 5px; }
.gestao-emp-setores { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.gestao-emp-set { font-size: 11px; background: #f1f5f9; border-radius: 6px; padding: 2px 7px; color: var(--muted); }
.gestao-emp-set b { color: var(--text); }
.fr-anexo { display: inline-block; min-width: 26px; text-align: center; padding: 1px 7px; border-radius: 6px; font-weight: 800; font-size: 12px; }
.fr-anexo-III { background: #dcfce7; color: #166534; }
.fr-anexo-V { background: #fee2e2; color: #991b1b; }
.fr-spark { vertical-align: middle; }
.fr-row { cursor: pointer; }
/* No celular o SVG da curva capturava o toque; deixa o tap passar p/ a linha. */
.fr-row .fr-spark { pointer-events: none; }
.fr-spark-big .fr-spark { pointer-events: auto; }
.fr-meses-lbl { font-size: 12px; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.fr-meses { padding: 5px 8px; border: 1px solid var(--line); border-radius: 7px; font-size: 12.5px; background: #fff; }
.fr-hint { font-size: 11.5px; color: var(--muted); }
/* No banner escuro do cabeçalho, o texto auxiliar cinza fica ilegível → amarelo. */
.cresc-controls .fr-hint, .cresc-controls .fr-meses-lbl { color: #facc15; }
.cresc-controls .preco-filter { color: rgba(255, 255, 255, 0.95); }
/* Modal Fator R — coluna única (sem rolar pro lado) */
.fr-modal-head { margin-bottom: 14px; }
.fr-modal-head h2 { margin: 4px 0; }
.fr-modal-col { display: flex; flex-direction: column; }
.fr-modal-col h3 { font-size: 13px; margin: 16px 0 8px; color: var(--navy); }
.fr-modal-col h3:first-child { margin-top: 0; }
.fr-tbl-wrap { overflow-x: auto; max-width: 100%; }   /* a tabela rola por dentro, não empurra o modal */
.fr-spark-big { background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; padding: 8px; margin-bottom: 6px; }
.fr-spark-big svg { width: 100%; height: auto; }
.fr-mini { width: 100%; font-size: 12.5px; }
.fr-mini th, .fr-mini td { padding: 5px 8px; border-bottom: 1px solid #f1f5f9; text-align: left; }
.fr-mini td.num, .fr-mini th.num { text-align: right; font-variant-numeric: tabular-nums; }
.fr-mini input { width: 100%; padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; font-size: 12.5px; }
.fr-aviso { margin-top: 10px; padding: 9px 12px; border-radius: 9px; font-size: 13px; font-weight: 600; }
.fr-aviso-bad { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.fr-aviso-ok { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.fr-up { color: var(--saudavel); font-weight: 700; }
.fr-down { color: var(--prejuizo); font-weight: 700; }
.fr-spark-big circle { cursor: help; }
@media (max-width: 820px) { .fr-modal-grid { grid-template-columns: 1fr; } }
/* Linha de filtros por faixa (min/máx por coluna) */
.preco-frow th { position: sticky; top: 39px; z-index: 2; background: #f8fafc; padding: 4px 6px; box-shadow: inset 0 -1px 0 var(--line); }
.preco-frow-lbl { font-size: 10.5px; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.frange { display: flex; gap: 3px; justify-content: flex-end; }
.frange input { width: 52px; padding: 3px 5px; border: 1px solid var(--line); border-radius: 5px; font-size: 11px; background: #fff; -moz-appearance: textfield; }
.frange input::-webkit-outer-spin-button, .frange input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.preco-table thead th.sortable { cursor: pointer; user-select: none; }
.preco-table thead th.sortable:hover { color: var(--ink, #0f172a); }
.preco-table tbody td { padding: 10px 12px; border-bottom: 1px solid #f1f5f9; font-size: 13px; vertical-align: middle; }
.preco-table tbody td.num { text-align: right; font-variant-numeric: tabular-nums; }
.preco-table tbody tr { cursor: pointer; }
.preco-table tbody tr:hover { background: #f8fafc; }
.preco-name strong { display: block; font-weight: 700; color: var(--ink, #0f172a); }
.preco-name span { display: block; font-size: 11.5px; color: var(--muted); }

/* Destaque de defasagem por linha */
.preco-table tbody tr.preco-sug  { background: #fffbeb; }
.preco-table tbody tr.preco-sug:hover  { background: #fef3c7; }
.preco-table tbody tr.preco-ref  { background: #f6f4ff; }
.preco-table tbody tr.preco-ref:hover  { background: #ede9fe; }
.preco-table tbody tr.preco-both { background: #fef2f2; }
.preco-table tbody tr.preco-both:hover { background: #fee2e2; }
.preco-table tbody tr.preco-sug  td.preco-gap { color: #92400e; font-weight: 700; }
.preco-table tbody tr.preco-ref  td.preco-gap { color: #6d28d9; font-weight: 700; }
.preco-table tbody tr.preco-both td.preco-gap { color: #b91c1c; font-weight: 800; }
.preco-refcell { font-weight: 600; }
.preco-chk { color: #b91c1c; }

.preco-gaptag { font-size: 10px; font-weight: 800; padding: 1px 5px; border-radius: 999px; margin-left: 4px; vertical-align: middle; }
.preco-gaptag.sug  { background: #fef3c7; color: #92400e; }
.preco-gaptag.ref  { background: #ede9fe; color: #6d28d9; }
.preco-gaptag.both { background: #fee2e2; color: #b91c1c; }

.preco-foot { margin-top: 12px; font-size: 13px; color: var(--muted); }
.preco-foot .leg { padding: 0 5px; border-radius: 5px; }

/* Último aumento + coluna de processo */
.preco-cadastrado { color: var(--muted); }
.preco-ultaum { color: var(--ink, #0f172a); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Etiqueta "último gerado" no card de Honorário atual da sidebar */
.metric-grid .metric-highlight .metric-tag {
  display: inline-block; margin-left: 6px; padding: 0 6px;
  border-radius: 999px; background: rgba(255,255,255,0.22); color: #fff;
  font-size: 9.5px; font-weight: 800; letter-spacing: 0; text-transform: none; vertical-align: middle;
}
.preco-table th.col-proc, .preco-table td.col-proc { text-align: center; width: 56px; }
.preco-proc-btn {
  border: 0; background: transparent; cursor: pointer;
  font-size: 16px; line-height: 1; padding: 4px 6px; border-radius: 8px;
}
.preco-proc-btn.open { filter: saturate(1.1); }
.preco-proc-btn.open:hover { background: #fef3c7; }
.preco-proc-done { color: #15803d; font-weight: 800; }

/* ── Colaboradores: célula única de Entregas (E/A/T) ─────────────────────── */
.ent-eat { cursor: pointer; white-space: nowrap; }
.ent-eat:hover { background: rgba(4,85,162,.05); }
.eat-e { color: #039c5b; font-weight: 800; }
.eat-a { color: #dc2626; font-weight: 800; }
.eat-t { color: #0455a2; font-weight: 800; }
/* Ocultar colunas de custo sem permissão custo_colab */
body.no-custo-colab .col-custo { display: none !important; }

/* ── Modal completo do colaborador ──────────────────────────────────────── */
.modal-overlay { position: fixed; inset: 0; background: rgba(15,23,42,.55); display: flex; align-items: flex-start; justify-content: center; padding: 28px 16px; z-index: 240; overflow: auto; }
.modal-overlay[hidden] { display: none !important; }
.modal-card { position: relative; background: var(--bg, #f8fafc); border-radius: 16px; width: min(940px, 96vw); box-shadow: 0 24px 60px rgba(0,0,0,.32); }
.modal-close { position: absolute; top: 12px; right: 14px; border: none; background: #e2e8f0; width: 30px; height: 30px; border-radius: 50%; cursor: pointer; font-size: 16px; z-index: 2; }
.colab-modal-body { padding: 22px 24px; }
.cm-head { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--border, #e2e8f0); padding-bottom: 12px; }
.cm-head h3 { margin: 0; font-size: 20px; color: var(--navy, #0f172a); }
.cm-head p { margin: 3px 0 8px; font-size: 12.5px; color: var(--muted, #64748b); }
.cm-situ { color: #b45309; font-weight: 700; }
.cm-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cm-chip { font-size: 11px; padding: 2px 8px; border-radius: 999px; background: #eef2f7; color: #334155; font-weight: 600; }
.cm-chip.ok { background: #dcfce7; color: #166534; }
.cm-chip.warn { background: #fef3c7; color: #92400e; }
.cm-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 14px 0; }
.cm-kpi { background: #fff; border: 1px solid var(--border, #e2e8f0); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.cm-kpi span { font-size: 11px; color: var(--muted, #64748b); text-transform: uppercase; letter-spacing: .3px; }
.cm-kpi strong { font-size: 17px; color: var(--navy, #0f172a); font-variant-numeric: tabular-nums; }
.cm-kpi small { font-size: 11px; color: var(--muted, #64748b); }
.cm-kpi.navy { border-left: 3px solid #0455a2; }
.cm-kpi.teal { border-left: 3px solid #0d9488; }
.cm-kpi.amber { border-left: 3px solid #d97706; }
.cm-kpi.success { border-left: 3px solid #039c5b; }
.cm-cards { display: flex; flex-wrap: wrap; gap: 12px; }
.cm-cards .ent-det { flex: 1 1 300px; }
.cm-sec-tit { font-size: 13px; font-weight: 700; color: var(--navy, #0f172a); margin: 16px 0 8px; }
.cm-cli-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 4px 14px; max-height: 200px; overflow: auto; }
.cm-cli-row { display: flex; align-items: baseline; gap: 8px; font-size: 12.5px; padding: 2px 0; border-bottom: 1px dashed #eef2f7; }
.cm-cli-row span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-cli-row b { color: #0455a2; font-variant-numeric: tabular-nums; }
.cm-cli-row em { color: #64748b; font-style: normal; font-size: 11.5px; }
.cm-notas { margin-top: 16px; border-top: 1px solid var(--border, #e2e8f0); padding-top: 12px; }
.cm-notas-list { display: flex; flex-direction: column; gap: 8px; max-height: 260px; overflow: auto; margin-bottom: 10px; }
.cm-nota { background: #fff; border: 1px solid var(--border, #e2e8f0); border-radius: 10px; padding: 8px 10px; }
.cm-nota.pin { border-color: #fcd34d; background: #fffbeb; }
.cm-nota-body { font-size: 13px; color: #1e293b; white-space: pre-wrap; }
.cm-ment { color: #0455a2; }
.cm-nota-meta { display: flex; justify-content: space-between; align-items: center; margin-top: 5px; font-size: 11px; color: var(--muted, #64748b); }
.cm-nota-acts button { border: none; background: none; cursor: pointer; font-size: 13px; padding: 2px 4px; }
.cm-nota-form { display: flex; gap: 8px; align-items: flex-end; }
.cm-nota-form textarea { flex: 1; resize: vertical; border: 1px solid var(--border, #cbd5e1); border-radius: 10px; padding: 8px 10px; font: inherit; font-size: 13px; }
.cm-nota-form button { white-space: nowrap; }

/* ── Custos Folha: linhas clicáveis + detalhamento por componente ────────── */
.cfol-clickable { cursor: pointer; }
.cfol-clickable:hover { background: rgba(4,85,162,.06); }
.cfol-caret { display: inline-block; color: var(--muted, #64748b); font-size: 10px; transition: transform .15s; }
.cfol-open .cfol-caret { transform: rotate(90deg); color: var(--brand-blue, #0455a2); }
.cfol-detail-row > td { padding: 0 !important; background: #f8fafc; }
.cfol-detail-box { padding: 10px 12px 14px; border-left: 3px solid var(--brand-blue, #0455a2); }
.cfol-detail-tit { font-size: 12.5px; font-weight: 700; color: var(--navy, #0f172a); margin-bottom: 6px; }
.cfol-detail-scroll { overflow-x: auto; }
.cfol-detail-table { min-width: 100%; font-size: 12px; }
.cfol-detail-table th, .cfol-detail-table td { padding: 4px 8px; white-space: nowrap; }
.cfol-detail-table tbody td:first-child { font-weight: 600; color: #334155; }
.cfol-detail-table .cfol-det-rescisao td:first-child { color: #dc2626; }
.cfol-detail-table .cfol-det-beneficios td:first-child { color: #0d9488; }
.cfol-detail-table .cfol-det-total td { border-top: 2px solid var(--border, #e2e8f0); background: #eef2f7; }

/* ── Custos Adicionais: tabela mensal (residual) ────────────────────────── */
.ca-mensal-wrap { max-height: 340px; }
.ca-mensal .ca-dif-up { color: #dc2626; font-weight: 700; }   /* decomposto > residual = custo maior */
.ca-mensal .ca-dif-dn { color: #039c5b; font-weight: 700; }
.ca-mensal .ca-go { color: var(--brand-blue, #0455a2); font-size: 11px; font-weight: 600; opacity: .75; }
.ca-mensal tr:hover .ca-go { opacity: 1; }

.custos-addmes { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted,#64748b); }
.custos-addmes input { padding: 3px 6px; }

/* ── Menu Custos: sub-nav + Decomposição ────────────────────────────────── */
.custos-subnav { display: flex; gap: 4px; margin: 0 0 14px; border-bottom: 2px solid var(--border, #e2e8f0); }
.custos-subnav button { border: none; background: none; padding: 8px 16px; font: inherit; font-size: 13px; font-weight: 600; color: var(--muted, #64748b); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; }
.custos-subnav button:hover { color: var(--brand-blue, #0455a2); }
.custos-subnav button.active { color: var(--brand-blue, #0455a2); border-bottom-color: var(--brand-blue, #0455a2); }
.dec-lg { padding: 1px 6px; border-radius: 4px; font-weight: 600; font-size: 11.5px; white-space: nowrap; }
.dec-lg.dec-op { background: #fef3c7; color: #92400e; }
.dec-lg.dec-nop { background: #e0f2fe; color: #075985; }
.dec-lg.dec-soc { background: #fee2e2; color: #991b1b; }
.dec-table .dec-op-col { background: rgba(217,119,6,.06); }
.dec-table .dec-nop-col { background: rgba(3,105,161,.05); }
.dec-table .dec-soc-col { background: rgba(220,38,38,.05); color: #991b1b; }
.dec-table .dec-tot-col { background: rgba(15,23,42,.07); }
.dec-table .dec-aloc-col { background: rgba(3,156,91,.07); }
.cc-table .dec-tot-col { background: rgba(15,23,42,.06); }
.cc-engine { display: inline-flex; border: 1px solid var(--border, #d6dbe4); border-radius: 8px; overflow: hidden; }
.cc-engine button { border: 0; background: transparent; padding: 6px 14px; font: inherit; font-size: 13px; cursor: pointer; color: var(--muted, #64748b); }
.cc-engine button + button { border-left: 1px solid var(--border, #d6dbe4); }
.cc-engine button.active { background: var(--navy, #0f2748); color: #fff; font-weight: 600; }
.cc-modelo { display: inline-flex; border: 1px solid var(--border, #d6dbe4); border-radius: 8px; overflow: hidden; }
.cc-modelo button { border: 0; background: transparent; padding: 6px 14px; font: inherit; font-size: 13px; cursor: pointer; color: var(--muted, #64748b); }
.cc-modelo button + button { border-left: 1px solid var(--border, #d6dbe4); }
.cc-modelo button.active { background: var(--brand-blue, #0455a2); color: #fff; font-weight: 600; }
.cc-ajuste-lbl { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text, #1f2937); cursor: pointer; }
.cc-setores { margin: 4px 0 10px; }
.cc-setor-cards { display: flex; flex-wrap: wrap; gap: 10px; }
.cc-setor-card { display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; border: 1px solid var(--border, #e2e8f0); border-radius: 8px; background: var(--surface, #fff); min-width: 150px; }
.cc-setor-nome { font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--brand-blue, #0455a2); }
.cc-setor-custo { font-size: 12px; color: var(--muted, #64748b); }
.cc-setor-rate { font-size: 13px; color: var(--text, #1f2937); }
.cc-setor-rate small { color: var(--muted, #94a3b8); margin-left: 4px; }
.cc-table th.cc-grpA { text-align: center; background: rgba(100,116,139,.10); }
.cc-table th.cc-grpB { text-align: center; background: rgba(4,85,162,.09); color: var(--brand-blue, #0455a2); }
.cc-table th.cc-sub { font-weight: 500; }
.cc-table td.cc-cellA { background: rgba(100,116,139,.06); }
.cc-table td.cc-cellB { background: rgba(4,85,162,.06); }
.cc-table td.cc-neg { color: #dc2626; }
.cc-table td.cc-low { color: #b45309; }
.cc-table td.cc-pos { color: #039c5b; }
.cc-table td.cc-dn { color: #039c5b; font-weight: 600; }
.cc-table td.cc-up { color: #dc2626; font-weight: 600; }
.cc-motor-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 12px; margin: 4px 0 10px; border: 1px dashed var(--border, #cbd5e1); border-radius: 8px; background: var(--surface-2, #f8fafc); font-size: 13px; }
.cc-motor-bar .cc-mb-lbl { color: var(--text, #1f2937); }
.cc-motor-bar select { padding: 4px 8px; }
.cc-motor-bar .btn-small { padding: 4px 12px; border: 1px solid var(--brand-blue, #0455a2); background: var(--brand-blue, #0455a2); color: #fff; border-radius: 6px; cursor: pointer; font-size: 12px; }
.cc-mb-status { font-size: 12px; color: var(--muted, #94a3b8); }
.cc-mb-status.on { color: var(--brand-green, #039c5b); font-weight: 600; }
.preco-table th.cc-col, .preco-table td.cc-col { background: rgba(4,85,162,.05); }
.preco-table td.cc-up { color: #dc2626; }
.preco-table td.cc-dn { color: #039c5b; }
.preco-table td.cc-neg { color: #dc2626; font-weight: 600; }
.preco-table td.cc-low { color: #b45309; }
.preco-table td.cc-pos { color: #039c5b; }
.preco-motor-lbl { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text, #1f2937); }
.preco-motor-lbl select { padding: 4px 8px; }
#precoMotorRefresh { padding: 5px 12px; border: 1px solid var(--brand-blue, #0455a2); background: var(--brand-blue, #0455a2); color: #fff; border-radius: 6px; cursor: pointer; font-size: 12px; }
.cc-cli-det { background: var(--surface-2, #f8fafc); font-size: 12px; }
.cc-cli-det td { padding: 8px 12px; }
.cc-cli-det .cc-inv-line { display: flex; justify-content: space-between; gap: 12px; padding: 2px 0; }
.cc-cli-det .cc-inv-line b { font-variant-numeric: tabular-nums; }
.cc-cli-det .cc-inv-tot { border-top: 1px solid var(--border, #e2e8f0); margin-top: 4px; padding-top: 4px; font-weight: 700; }
.cc-cli-det .cc-inv-h { color: var(--muted, #64748b); font-size: 11px; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 4px; }
.cc-table tbody tr.cc-clickable { cursor: pointer; }
.cc-table tbody tr.cc-clickable:hover td { background: var(--surface-2, #f8fafc); }
.painel-motor-lbl { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text, #1f2937); }
.painel-motor-lbl select { padding: 4px 8px; }
body.painel-motor-on #painelMotorSel { border-color: var(--brand-blue, #0455a2); background: rgba(4,85,162,.06); font-weight: 600; }
.motor-dot { color: var(--brand-blue, #0455a2); font-size: 9px; vertical-align: middle; }
td.motor-cell { background: rgba(4,85,162,.05); }
.painel-cc-cards { margin: 0 0 16px; }
.painel-cc-head { font-size: 13px; color: var(--muted, #64748b); margin-bottom: 8px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.painel-cc-head b { color: var(--text, #1f2937); }
.painel-cc-link { font-size: 12px; color: var(--brand-blue, #0455a2); text-decoration: none; }
.painel-cc-link:hover { text-decoration: underline; }
.painel-cc-cards .rec-kpis { margin-bottom: 10px; }
.painel-motor-status { font-size: 12px; white-space: nowrap; }
.painel-motor-status.loading { color: var(--brand-blue, #0455a2); }
.painel-motor-status.done { color: var(--brand-green, #039c5b); font-weight: 600; }
.painel-motor-status.err { color: #dc2626; font-weight: 600; }
#painelMotorRefresh.spin { animation: cc-spin 0.8s linear infinite; opacity: .7; }
@keyframes cc-spin { to { transform: rotate(360deg); } }
body.painel-motor-loading .kpi-grid, body.painel-motor-loading .main-panel .entity-table { opacity: .45; transition: opacity .15s; pointer-events: none; }
.dec-badge { font-size: 10px; padding: 1px 5px; border-radius: 4px; background: #e0e7ff; color: #3730a3; font-weight: 700; vertical-align: middle; }

/* Botão minimalista "Abrir chamado" (Suite) nas telas (Caixa, Fator R) */
.cx-acao, .fr-acao { width: 34px; text-align: center; padding: 0 4px !important; }
.cx-acao-h, .fr-acao-h { width: 34px; }
.btn-chamado { border: 1px solid var(--border, #e2e8f0); background: transparent; border-radius: 6px; padding: 2px 6px; font-size: 13px; line-height: 1; cursor: pointer; opacity: .45; transition: opacity .12s, background .12s, border-color .12s; }
tr:hover .btn-chamado { opacity: 1; }
.btn-chamado:hover { background: var(--brand-50, #eef2ff); border-color: var(--brand, #4f46e5); opacity: 1; }
.ch-msg { margin: 8px 0 0; font-size: 13px; min-height: 18px; }
.ch-msg.ok { color: var(--saudavel, #16a34a); }
.ch-msg.err { color: var(--prejuizo, #dc2626); }
#chamadoModal .reason-modal { max-width: 500px; }
#chamadoModal .reason-body label { display: block; margin: 8px 0 0; font-size: 12px; font-weight: 600; color: var(--muted, #64748b); }
#chamadoModal .reason-body select, #chamadoModal .reason-body textarea { width: 100%; margin-top: 3px; font-size: 13px; }
.ch-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; }
.ch-check { display: flex !important; align-items: center; gap: 6px; font-weight: 600; cursor: pointer; }
.ch-check input { width: auto !important; margin: 0; }

/* Painel do Empresário (BI do cliente) */
.emp-controls { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.emp-controls input, .emp-controls select { font-size: 13px; padding: 6px 8px; }
.emp-controls #empSearch { min-width: 260px; }
.emp-ident { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin: 4px 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--border, #e2e8f0); }
.emp-ident h2 { margin: 0; font-size: 22px; }
.emp-tags { color: var(--muted, #64748b); font-size: 13px; }
.emp-desde { text-align: right; font-size: 12px; color: var(--muted, #64748b); }
.emp-sec { margin: 22px 0; }
.emp-sec h3 { font-size: 15px; margin: 0 0 10px; }
.emp-per { font-weight: 400; font-size: 12px; color: var(--muted, #94a3b8); }
.emp-sec h4 { font-size: 13px; margin: 12px 0 6px; color: var(--muted, #64748b); }
.emp-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.emp-kpi { background: var(--card, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.emp-kpi span { font-size: 12px; color: var(--muted, #64748b); }
.emp-kpi strong { font-size: 20px; }
.emp-kpi small { font-size: 11px; color: var(--muted, #94a3b8); }
.emp-kpi.tone-navy { border-left: 3px solid #4f46e5; }
.emp-kpi.tone-success { border-left: 3px solid #16a34a; }
.emp-kpi.tone-amber { border-left: 3px solid #d97706; }
.emp-kpi.tone-danger { border-left: 3px solid #dc2626; }
.emp-chartwrap { margin-top: 14px; background: var(--card, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 12px; padding: 12px; overflow-x: auto; }
.emp-chart { display: block; }
.emp-legend { font-size: 11px; color: var(--muted, #64748b); margin-top: 6px; }
.emp-legend .lg-bar, .emp-legend .lg-line { display: inline-block; width: 14px; height: 3px; vertical-align: middle; margin-right: 3px; }
.emp-legend .lg-bar { background: #4f46e5; height: 10px; border-radius: 2px; }
.emp-legend .lg-line { background: #16a34a; }
.emp-note { margin-top: 12px; padding: 10px 14px; background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 10px; font-size: 13px; }
.emp-details { margin-top: 10px; font-size: 13px; }
.emp-comp { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 8px; }
.emp-comp span { font-size: 12px; }
.emp-chamados { margin-top: 12px; }
.emp-cha { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--border, #eef2f7); font-size: 13px; }
.emp-cha-m { color: var(--muted, #94a3b8); white-space: nowrap; }
.emp-tool { background: var(--card, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 12px; padding: 14px; max-width: 460px; }
.emp-tool label { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 6px 0; font-size: 13px; }
.emp-tool input { width: 160px; font-size: 13px; padding: 5px 8px; }
.emp-tool-out { margin-top: 10px; font-size: 14px; padding-top: 10px; border-top: 1px solid var(--border, #eef2f7); }
@media (max-width: 900px) { .emp-kpis { grid-template-columns: repeat(2, 1fr); } }
@media (prefers-color-scheme: dark) { .emp-note { background: #0c2a3a; border-color: #164e63; } }
/* grupo: lista de empresas */
.emp-grplist { margin: 0 0 14px; padding: 10px 14px; background: var(--card, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 12px; }
.emp-grp-rows { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.emp-grp-row { padding: 5px 10px; border: 1px solid var(--border, #e2e8f0); border-radius: 8px; font-size: 13px; cursor: pointer; user-select: none; }
.emp-grp-row:hover { background: var(--brand-50, #eef2ff); border-color: var(--brand, #4f46e5); }
.emp-grp-row span { color: var(--muted, #94a3b8); font-size: 11px; }
/* gráfico: cabeçalho + ver dados */
.emp-chart-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.emp-chart-head h4 { margin: 0; }
.emp-chartwrap-nochart { padding: 8px 12px; margin-top: 10px; }
.emp-chartwrap-nochart .emp-chart-head { margin-bottom: 0; }
.emp-verdados { border: 1px solid var(--border, #e2e8f0); background: transparent; border-radius: 6px; padding: 3px 8px; font-size: 12px; cursor: pointer; }
.emp-verdados:hover { background: var(--brand-50, #eef2ff); border-color: var(--brand, #4f46e5); }
.emp-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.emp-table th, .emp-table td { padding: 5px 8px; border-bottom: 1px solid var(--border, #eef2f7); text-align: left; }
.emp-table th.num, .emp-table td.num { text-align: right; }
/* clientes & fornecedores */
.emp-perfil-fiscal { margin: 10px 0 14px; }
.emp-perfil-fiscal h4 { margin: 0 0 8px; }
.emp-perfil-fiscal h4 small { font-weight: 400; color: var(--muted, #94a3b8); }
.emp-parc { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.emp-parc-col { background: var(--card, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 12px; padding: 12px 14px; }
.emp-parc-col h4 small { font-weight: 400; color: var(--muted, #94a3b8); }
.emp-parc-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 4px 0; border-bottom: 1px solid var(--border, #eef2f7); font-size: 13px; }
.emp-parc-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.emp-parc-nm { display: flex; flex-direction: column; min-width: 0; }
.emp-parc-nm .emp-parc-nm-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.emp-parc-nm > small { color: var(--muted, #94a3b8); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.emp-parc-col button { margin-top: 8px; }
@media (max-width: 720px) { .emp-parc { grid-template-columns: 1fr; } }
.emp-ident-right { display: flex; gap: 14px; align-items: flex-start; }
.emp-export { display: flex; gap: 6px; }
/* modo cliente: só o Painel do Empresário */
body.is-cliente .sidebar { display: none !important; }
body.is-cliente #topbarPeriod, body.is-cliente .topbar-period { display: none !important; }
body.is-cliente .app-shell { display: block; }
body.is-cliente .dashboard, body.is-cliente main.dashboard { margin-left: 0 !important; width: 100%; }
body.is-cliente #empresarioView .emp-controls { display: none !important; }
/* Ativação de clientes */
.atv-filters { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 10px 0; }
.atv-filters #atvSearch { min-width: 240px; padding: 6px 8px; font-size: 13px; }
.atv-toggle { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.atv-tags { margin-top: 3px; display: flex; flex-wrap: wrap; gap: 3px; }
.atv-tag { font-size: 10px; background: #e0e7ff; color: #3730a3; padding: 1px 5px; border-radius: 4px; }
.atv-badge { font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 10px; background: #e2e8f0; color: #475569; }
.atv-badge.on { background: #dcfce7; color: #166534; }
.atv-badge.off { background: #fee2e2; color: #991b1b; }
.atv-badge.warn { background: #fef3c7; color: #92400e; }
.atv-acts { white-space: nowrap; }
.atv-blocos { display: flex; flex-direction: column; gap: 6px; margin: 6px 0; }
.atv-bloco { display: flex; align-items: center; gap: 8px; font-size: 14px; }

/* Sidebar recolhível (grupos) */
.sb-group-title { width: 100%; display: flex; align-items: center; justify-content: space-between; background: none; border: none; cursor: pointer; font: inherit; text-align: left; }
.sb-caret { font-size: 10px; opacity: .6; }
.sb-grp-collapsed .sb-group-items { display: none; }
/* Tela inicial (home) */
.home-header { margin-bottom: 8px; }
.home-grid { display: flex; flex-direction: column; gap: 18px; }
.home-group > h2 { font-size: 14px; color: var(--muted, #64748b); margin: 6px 0 8px; text-transform: uppercase; letter-spacing: .03em; }
.home-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.home-card { --hc-accent: #4f46e5; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; text-align: left; padding: 16px; border: 1px solid var(--border, #e2e8f0); border-radius: 14px; background: var(--card, #fff); cursor: pointer; transition: transform .1s, box-shadow .1s, border-color .1s; border-top: 3px solid var(--hc-accent); }
.home-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(2, 6, 23, .1); border-color: var(--hc-accent); }
.home-card .hc-ic { font-size: 26px; }
.home-card .hc-tit { font-weight: 700; font-size: 15px; }
.home-card .hc-desc { font-size: 12px; color: var(--muted, #64748b); }
.home-card.hc-sm { padding: 12px; }
.home-card.hc-sm .hc-ic { font-size: 20px; }
.home-card.hc-lg { grid-column: span 2; }
@media (max-width: 640px) { .home-card.hc-lg { grid-column: span 1; } }
/* Personalização (editor) */
.perz-app { display: flex; gap: 12px; flex-wrap: wrap; margin: 10px 0 16px; }
.perz-app label { display: flex; flex-direction: column; font-size: 12px; color: var(--muted, #64748b); gap: 3px; }
.perz-app input { padding: 6px 8px; font-size: 14px; }
.perz-group { border: 1px solid var(--border, #e2e8f0); border-radius: 12px; padding: 10px 12px; margin-bottom: 12px; }
.perz-group-head { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.perz-gtitle { font-weight: 700; flex: 1; padding: 5px 8px; }
.perz-hide { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--muted, #64748b); white-space: nowrap; }
.perz-item { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; align-items: center; padding: 6px 0; border-top: 1px solid var(--border, #eef2f7); }
.perz-item.perz-off { opacity: .5; }
.perz-item-l { display: flex; align-items: center; gap: 4px; }
.perz-item-r { display: flex; align-items: center; gap: 6px; }
.perz-ic { width: 44px; text-align: center; padding: 5px 2px; }
.perz-tit { min-width: 140px; padding: 5px 8px; }
.perz-desc { grid-column: 1 / -1; padding: 4px 8px; font-size: 12px; }
.perz-item-r input[type=color] { width: 28px; height: 28px; padding: 0; border: none; background: none; }
body.is-cliente .home-card { border-top-color: var(--hc-accent); }
/* Painel do Cliente: toggle escopo + atalho Empresário + grupos */
.seg-control { display: inline-flex; border: 1px solid var(--border, #e2e8f0); border-radius: 8px; overflow: hidden; }
.seg-control button { border: none; background: transparent; padding: 6px 12px; font-size: 13px; cursor: pointer; }
.seg-control button.active { background: var(--brand, #4f46e5); color: #fff; }
.pc-act, .pc-act-h { width: 40px; text-align: center; }
.pc-emp-btn { border: 1px solid var(--border, #e2e8f0); background: transparent; border-radius: 6px; padding: 2px 6px; cursor: pointer; font-size: 14px; opacity: .5; }
tr:hover .pc-emp-btn { opacity: 1; }
.pc-emp-btn:hover { background: var(--brand-50, #eef2ff); border-color: var(--brand, #4f46e5); opacity: 1; }
.pc-grp-row { cursor: pointer; background: var(--card-alt, #f8fafc); }
.pc-grp-row:hover { background: var(--brand-50, #eef2ff); }
.pc-grp-meta { color: var(--muted, #64748b); font-size: 12px; font-weight: 400; }
.pc-grp-child td:first-child { padding-left: 6px; }
@media (prefers-color-scheme: dark) { .pc-grp-row { background: rgba(255, 255, 255, .03); } }

/* Conciliação: usuário do app derivado do Suite */
.fol-app-auto { background: #f0fdf4; border-color: #bbf7d0 !important; }
.fol-tag { display: inline-block; font-size: 9px; font-weight: 700; padding: 0 4px; border-radius: 3px; vertical-align: middle; }
.fol-tag.auto { background: #dcfce7; color: #166534; }
.fol-tag.off { background: #fee2e2; color: #991b1b; }
