/**
 * rentabilidade.css — Estilos do módulo de Rentabilidade de Projetos
 * Cobre: secção Orçamento no modal de projeto + modais de rentabilidade por projeto e global.
 */

/* ── Secção Orçamento no modal de projeto ──────────────────────────────── */

.proj-orcamento-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  padding: 9px 12px;
  border: 1px solid var(--borda);
  border-radius: var(--radius-sm);
  background: var(--bg-input);
  font-size: .88rem;
  font-weight: 600;
  transition: background .15s;
}

.proj-orcamento-toggle:hover { background: var(--bg-hover, rgba(0,0,0,.04)); }

.proj-orcamento-icone { font-size: 1rem; }

.proj-orcamento-resumo {
  margin-left: auto;
  font-size: .75rem;
  font-weight: 400;
  color: var(--texto-secundario);
}

.proj-orcamento-chevron {
  font-size: .7rem;
  transition: transform .2s;
  color: var(--texto-secundario);
}
.proj-orcamento-chevron.aberto { transform: rotate(90deg); }

.proj-orcamento-corpo {
  margin-top: 10px;
  padding: 14px;
  border: 1px solid var(--borda);
  border-radius: var(--radius-sm);
  background: var(--bg);
}

/* Tabela inline editable de orçamento */
.orc-table-wrap {
  overflow-x: auto;
  margin-bottom: 6px;
  border: 1px solid var(--borda);
  border-radius: var(--radius-sm);
}

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

.orc-table th {
  background: var(--bg-input);
  padding: 6px 10px;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--texto-secundario);
  border-bottom: 1px solid var(--borda);
  white-space: nowrap;
}

.orc-table td {
  padding: 5px 6px;
  border-bottom: 1px solid var(--borda);
  vertical-align: middle;
}
.orc-table tbody tr:last-child td { border-bottom: none; }

.orc-table .orc-nome-col { min-width: 130px; }
.orc-table .orc-num-col  { width: 96px; }
.orc-table .orc-act-col  { width: 34px; text-align: center; }

.orc-table input[type="number"],
.orc-table input[type="text"] {
  width: 100%;
  padding: 4px 7px;
  border: 1px solid var(--borda-input);
  border-radius: var(--radius-sm);
  background: var(--bg-input);
  color: var(--texto);
  font-size: .82rem;
  font-family: inherit;
  box-sizing: border-box;
}

.orc-rem-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--vermelho, #dc2626);
  font-size: .95rem;
  padding: 2px 5px;
  border-radius: 4px;
  line-height: 1;
}
.orc-rem-btn:hover { background: rgba(220,38,38,.1); }

.orc-subhdr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.orc-picker {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 8px;
  background: var(--bg-input);
  border: 1px solid var(--borda);
  border-radius: var(--radius-sm);
}

/* ── Módulo Rentabilidade — geral ──────────────────────────────────────── */

.rent-loading {
  padding: 40px;
  text-align: center;
  color: var(--texto-secundario);
  font-size: .9rem;
}

/* Barra de indicadores no topo do modal */
.rent-header-info {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: center;
  padding: 10px 14px;
  background: var(--bg-input);
  border: 1px solid var(--borda);
  border-radius: var(--radius-sm);
  margin-bottom: 12px;
}

.rent-header-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 99px;
  font-size: .8rem;
  font-weight: 700;
}

.rent-header-item {
  font-size: .84rem;
  color: var(--texto-secundario);
}
.rent-header-item strong { color: var(--texto); font-weight: 600; }

/* ── Alertas ────────────────────────────────────────────────────────────── */

.rent-alertas {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}

.rent-alerta {
  padding: 7px 12px;
  border-radius: var(--radius-sm);
  font-size: .82rem;
  border-left: 3px solid;
  line-height: 1.4;
}

.rent-alerta-critico { background: rgba(220,38,38,.07);  border-color: #ef4444; color: #991b1b; }
.rent-alerta-aviso   { background: rgba(217,119,6,.08);  border-color: #f59e0b; color: #92400e; }
.rent-alerta-margem  { background: rgba(234,179,8,.09);  border-color: #eab308; color: #713f12; }
.rent-alerta-config  { background: rgba(37,99,235,.07);  border-color: #3b82f6; color: #1e40af; }

/* ── Tabs ───────────────────────────────────────────────────────────────── */

.rent-tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--borda);
  margin: 14px 0 0;
}

.rent-tab-btn {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  padding: 8px 18px;
  font-size: .85rem;
  font-family: inherit;
  color: var(--texto-secundario);
  cursor: pointer;
  transition: color .15s;
  white-space: nowrap;
}
.rent-tab-btn:hover { color: var(--texto); }
.rent-tab-btn.ativo {
  color: var(--azul-primario, #2563eb);
  border-bottom-color: var(--azul-primario, #2563eb);
  font-weight: 600;
}

/* ── Tabelas de rentabilidade ───────────────────────────────────────────── */

.rent-tabela-wrap {
  overflow-x: auto;
  border: 1px solid var(--borda);
  border-radius: var(--radius-sm);
  margin-top: 12px;
}

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

.rent-table th {
  background: var(--bg-input);
  padding: 8px 12px;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--texto-secundario);
  border-bottom: 1px solid var(--borda);
  white-space: nowrap;
}

.rent-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--borda);
  vertical-align: middle;
}
.rent-table tbody tr:last-child td { border-bottom: none; }
.rent-table tbody tr:hover td { background: var(--bg-hover, rgba(0,0,0,.025)); }

.rent-num     { text-align: right; white-space: nowrap; }
.rent-muted   { color: var(--texto-secundario); }
.rent-pct     { font-size: .77rem; color: var(--texto-secundario); }
.rent-negativo { color: #dc2626; font-weight: 600; }
.rent-warn    { color: #d97706; font-weight: 600; }
.rent-positivo { color: #16a34a; font-weight: 600; }

.rent-sem-orc td { opacity: .78; font-style: italic; }

/* Linha de totais */
.rent-total-row td {
  border-top: 2px solid var(--borda) !important;
  background: var(--bg-input);
  font-size: .85rem;
}

/* ── Badges ─────────────────────────────────────────────────────────────── */

.rent-badge {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: .71rem;
  font-weight: 600;
  margin-left: 5px;
  white-space: nowrap;
  vertical-align: middle;
}

.rent-badge-ok      { background: rgba(22,163,74,.14);  color: #15803d; }
.rent-badge-aviso   { background: rgba(217,119,6,.14);  color: #b45309; }
.rent-badge-critico { background: rgba(220,38,38,.13);  color: #b91c1c; }
.rent-badge-config  { background: rgba(37,99,235,.11);  color: #1d4ed8; }
.rent-badge-neutro  { background: var(--bg-input);      color: var(--texto-secundario); border: 1px solid var(--borda); }

.rent-header-badge.rent-badge-ok      { background: rgba(22,163,74,.14);  color: #15803d; }
.rent-header-badge.rent-badge-aviso   { background: rgba(217,119,6,.14);  color: #b45309; }
.rent-header-badge.rent-badge-critico { background: rgba(220,38,38,.13);  color: #b91c1c; }

/* ── Tab Resumo ─────────────────────────────────────────────────────────── */

.rent-resumo-contrato {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
  margin-top: 14px;
}
.rent-resumo-label { color: var(--texto-secundario); font-size: .82rem; }
.rent-resumo-valor { font-weight: 700; font-size: 1.05rem; }

.rent-progress-wrap {
  height: 8px;
  background: var(--borda);
  border-radius: 99px;
  overflow: hidden;
  margin-bottom: 5px;
}
.rent-progress-bar {
  height: 100%;
  background: #22c55e;
  border-radius: 99px;
  transition: width .3s;
}
.rent-progress-bar.rent-progress-aviso   { background: #f59e0b; }
.rent-progress-bar.rent-progress-critico { background: #ef4444; }

.rent-progress-label {
  font-size: .78rem;
  color: var(--texto-secundario);
  margin-bottom: 4px;
}
.rent-proj-warn { color: #b45309; font-weight: 600; }

/* ── Vista Global ───────────────────────────────────────────────────────── */

.rent-global-row { cursor: pointer; }
.rent-global-row:hover td { background: rgba(37,99,235,.04) !important; }

/* ── Estado vazio ───────────────────────────────────────────────────────── */

.rent-vazio {
  padding: 36px 20px;
  text-align: center;
  color: var(--texto-secundario);
  font-size: .9rem;
  line-height: 1.7;
}
.rent-vazio .btn { margin-top: 12px; }

/* ═══════════════════════════════════════════════════════════════════════════
   REDESIGN PRIME — Rentabilidade (rent.css port)
   ═══════════════════════════════════════════════════════════════════════════ */

.mono { font-family: var(--f-data,'Open Sans',sans-serif); font-variant-numeric: tabular-nums; }
.ptable td.num,.ptable th.num { text-align: right; }
.r-dash { color: var(--g-300,#C9CBD1); }

/* ── header extras ── */
.r-phead { gap: 16px; }
.r-crumb { font-size: 11.5px; font-weight: 600; letter-spacing: .04em; color: var(--g-400,#9A9CA3); text-transform: uppercase; margin-bottom: 2px; }
.r-back { width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--g-200,#E5E6EA); background: var(--bg-card,#fff); color: var(--g-700,#474747); cursor: pointer; display: inline-grid; place-items: center; flex: 0 0 auto; }
.r-back:hover { border-color: var(--g-300,#C9CBD1); background: var(--g-50,#F6F7F9); }

/* ── type badge ── */
.r-typebadge { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border-radius: 99px; font-weight: 600; font-family: var(--f-ui,'Poppins',sans-serif); white-space: nowrap; font-size: 12px; }

/* ── health pill ── */
.r-health { display: inline-flex; align-items: center; gap: 7px; border-radius: 99px; font-weight: 600; font-family: var(--f-ui,'Poppins',sans-serif); background: var(--g-100,#EFF0F3); padding: 4px 10px; font-size: 11.5px; }
.r-health.good { background: var(--green-soft,#E4F5EC); color: #157a41; }
.r-health.warn { background: var(--amber-soft,#FCF0DC); color: #9a6207; }
.r-health.crit { background: var(--red-soft,#FCE9EA); color: var(--red,#D81F2A); }
.r-health.na   { background: var(--g-100,#EFF0F3); color: var(--g-500,#6E7178); }
.r-health-dot  { width: 7px; height: 7px; border-radius: 99px; flex: 0 0 auto; }

/* ── body + subnav ── */
.r-pbody { padding-top: 0; }
.r-subnav {
  position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 6px;
  background: var(--bg-app,#F6F7F9); padding: 14px 0 12px; margin-bottom: 4px; flex-wrap: wrap;
  border-bottom: 1px solid var(--g-100,#EFF0F3);
}
.r-subnav-btn { height: 34px; padding: 0 15px; border-radius: 99px; border: 1px solid transparent; background: transparent; font-family: var(--f-ui,'Poppins',sans-serif); font-size: 13px; font-weight: 600; color: var(--g-500,#6E7178); cursor: pointer; }
.r-subnav-btn:hover { color: var(--g-900,#1A1C20); background: var(--bg-card,#fff); }
.r-subnav-btn.on { background: var(--g-900,#1A1C20); color: #fff; }

/* ── eyebrow ── */
.r-eyebrow { display: flex; align-items: center; gap: 9px; font-family: var(--f-ui,'Poppins',sans-serif); font-weight: 600; font-size: 12px; color: var(--g-700,#474747); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 14px; }
.r-eyebrow-count { background: var(--g-200,#E5E6EA); color: var(--g-500,#6E7178); font-size: 11px; font-weight: 700; border-radius: 99px; min-width: 20px; height: 20px; padding: 0 6px; display: inline-grid; place-items: center; font-family: var(--f-data,'Open Sans',sans-serif); }
.r-eyebrow-hint { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 12px; color: var(--g-400,#9A9CA3); }

/* ── HERO ── */
.r-hero { padding: 0; overflow: hidden; }
.r-hero-main { display: grid; grid-template-columns: 300px 1fr; }
.r-hero-verdict { padding: 24px 26px; display: flex; flex-direction: column; gap: 6px; }
.r-hero-mlbl { font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--g-500,#6E7178); }
.r-hero-mval { font-family: var(--f-ui,'Poppins',sans-serif); font-weight: 800; font-size: 40px; line-height: 1; letter-spacing: -.02em; }
.r-hero-mrow { display: flex; align-items: center; gap: 12px; margin-top: 8px; flex-wrap: wrap; }
.r-hero-pct  { font-family: var(--f-ui,'Poppins',sans-serif); font-weight: 700; font-size: 20px; }
.r-hero-vs   { font-size: 12.5px; color: var(--g-500,#6E7178); font-family: var(--f-data,'Open Sans',sans-serif); margin-top: 6px; }
.r-hero-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--g-100,#EFF0F3); align-content: stretch; }
.r-herostat { background: var(--bg-card,#fff); padding: 20px 22px; display: flex; flex-direction: column; justify-content: center; }
.r-herostat-lbl { font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--g-400,#9A9CA3); margin-bottom: 6px; }
.r-herostat-val { font-family: var(--f-ui,'Poppins',sans-serif); font-weight: 700; font-size: 22px; letter-spacing: -.01em; }
.r-herostat-sub { font-size: 12px; color: var(--g-400,#9A9CA3); font-family: var(--f-data,'Open Sans',sans-serif); margin-top: 4px; }
.r-hero-bullet { padding: 16px 26px 20px; border-top: 1px solid var(--g-100,#EFF0F3); }

/* ── alerts ── */
.r-alert-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.r-alert { display: flex; gap: 13px; padding: 14px 16px; border-radius: var(--r-md,12px); background: var(--bg-card,#fff); border: 1px solid var(--g-200,#E5E6EA); position: relative; }
.r-alert::before { content: ''; position: absolute; left: 0; top: 12px; bottom: 12px; width: 3px; border-radius: 0 3px 3px 0; }
.r-alert-ic { width: 34px; height: 34px; border-radius: 9px; display: inline-grid; place-items: center; flex: 0 0 auto; }
.r-alert-body { min-width: 0; }
.r-alert-text { font-size: 13px; font-weight: 600; color: var(--g-900,#1A1C20); line-height: 1.35; font-family: var(--f-ui,'Poppins',sans-serif); }
.r-alert-hint { font-size: 12px; color: var(--g-500,#6E7178); margin-top: 3px; line-height: 1.35; font-family: var(--f-data,'Open Sans',sans-serif); }
.tone-crit::before { background: var(--red,#D81F2A); } .tone-crit .r-alert-ic { background: var(--red-soft,#FCE9EA); color: var(--red,#D81F2A); }
.tone-warn::before { background: var(--amber,#E8920C); } .tone-warn .r-alert-ic { background: var(--amber-soft,#FCF0DC); color: #9a6207; }
.tone-good::before { background: var(--verde,#1E9E57); } .tone-good .r-alert-ic { background: var(--green-soft,#E4F5EC); color: #157a41; }
.tone-info::before { background: var(--blue,#2563C9); } .tone-info .r-alert-ic { background: #E6EEFB; color: var(--blue,#2563C9); }

/* ── forecast ── */
.r-pad { padding: 20px 22px; }
.r-cardtitle { font-size: 13px; font-weight: 600; color: var(--g-900,#1A1C20); font-family: var(--f-ui,'Poppins',sans-serif); }
.r-cardsub { font-size: 12px; color: var(--g-400,#9A9CA3); font-family: var(--f-data,'Open Sans',sans-serif); margin-top: 3px; margin-bottom: 6px; }
.r-forecast-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.r-idx-legend { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; font-size: 11.5px; color: var(--g-500,#6E7178); font-family: var(--f-data,'Open Sans',sans-serif); }
.r-eac { margin-top: 12px; display: flex; flex-direction: column; }
.r-eac-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; font-size: 13px; color: var(--g-500,#6E7178); border-bottom: 1px solid var(--g-100,#EFF0F3); font-family: var(--f-ui,'Poppins',sans-serif); }
.r-eac-row:last-child { border-bottom: none; }
.r-eac-row b { font-family: var(--f-data,'Open Sans',sans-serif); color: var(--g-900,#1A1C20); font-size: 13.5px; white-space: nowrap; }
.r-eac-row.hi { background: var(--g-50,#F6F7F9); margin: 2px -10px; padding: 9px 10px; border-radius: 8px; border: none; }
.r-margin-fecho { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--g-100,#EFF0F3); font-size: 12.5px; color: var(--g-500,#6E7178); font-weight: 600; }
.r-margin-fecho b { font-family: var(--f-data,'Open Sans',sans-serif); font-size: 14px; white-space: nowrap; }
.r-evm-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 14px; }
.r-evm-legend span { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--g-500,#6E7178); font-weight: 500; font-family: var(--f-ui,'Poppins',sans-serif); }
.r-evm-legend i { width: 14px; height: 3px; border-radius: 99px; display: inline-block; }
.r-empty { display: flex; align-items: center; gap: 18px; }

/* ── resources table ── */
.r-restable td,.r-globtable td { font-size: 13.5px; padding: 10px 12px; vertical-align: middle; border-bottom: 1px solid var(--g-100,#EFF0F3); }
.r-restable td:first-child,.r-globtable td:first-child { padding-left: 16px; }
.r-restable tbody tr:last-child td { border-bottom: none; }
.r-restable tfoot td { border-top: 2px solid var(--g-200,#E5E6EA); background: var(--g-50,#F6F7F9); font-size: 13.5px; padding: 10px 12px; vertical-align: middle; }
.r-restable tfoot td:first-child { padding-left: 16px; }
.r-restable th,.r-globtable th { padding: 9px 12px; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--g-400,#9A9CA3); background: var(--g-50,#F6F7F9); border-bottom: 1px solid var(--g-200,#E5E6EA); }
.r-restable th:first-child { padding-left: 16px; }
.r-restable th.num,.r-restable td.num,.r-globtable th.num,.r-globtable td.num { text-align: right; }

/* ── milestones ── */
.r-milestones { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--g-100,#EFF0F3); display: flex; flex-direction: column; gap: 2px; }
.r-ms { display: flex; align-items: center; gap: 12px; padding: 10px 0; }
.r-ms-dot { width: 11px; height: 11px; border-radius: 99px; flex: 0 0 auto; border: 2px solid var(--g-300,#C9CBD1); background: var(--bg-card,#fff); }
.r-ms.done .r-ms-dot   { background: var(--verde,#1E9E57); border-color: var(--verde,#1E9E57); }
.r-ms.inprog .r-ms-dot { background: var(--blue,#2563C9); border-color: var(--blue,#2563C9); }
.r-ms-body { flex: 1; }
.r-ms-name { font-size: 13.5px; font-weight: 500; color: var(--g-900,#1A1C20); }
.r-ms-date { font-size: 11.5px; color: var(--g-400,#9A9CA3); font-family: var(--f-data,'Open Sans',sans-serif); margin-top: 1px; }
.r-ms-tag { font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 99px; }
.r-ms-tag.done   { background: var(--green-soft,#E4F5EC); color: #157a41; }
.r-ms-tag.inprog { background: #E6EEFB; color: var(--blue,#2563C9); }
.r-ms-tag.todo   { background: var(--g-100,#EFF0F3); color: var(--g-500,#6E7178); }

/* ── GLOBAL view ── */
.r-gkpi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 20px 0 18px; }
.r-gkpi { padding: 20px 22px; position: relative; overflow: hidden; }
.r-gkpi-accent { position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
.r-gkpi-lbl { font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--g-400,#9A9CA3); margin-bottom: 10px; }
.r-gkpi-val { font-family: var(--f-ui,'Poppins',sans-serif); font-weight: 700; font-size: 30px; line-height: 1; letter-spacing: -.01em; }
.r-gkpi-sub { font-size: 12px; color: var(--g-500,#6E7178); font-family: var(--f-data,'Open Sans',sans-serif); margin-top: 8px; }

.r-completeness { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: var(--r-md,12px); background: var(--amber-soft,#FCF0DC); border: 1px solid #f3dca8; font-size: 13px; color: #6b4d10; margin-bottom: 22px; font-family: var(--f-data,'Open Sans',sans-serif); }
.r-completeness > div { flex: 1; }
.r-completeness b { color: #5a4008; }

.r-global-cols { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; }
.r-alertsynth { display: flex; gap: 10px; margin: 14px 0 12px; }
.r-synth-row { flex: 1; border-radius: var(--r-md,12px); padding: 12px 14px; display: flex; align-items: baseline; gap: 8px; }
.r-synth-row.crit { background: var(--red-soft,#FCE9EA); } .r-synth-row.crit .n { color: var(--red,#D81F2A); }
.r-synth-row.warn { background: var(--amber-soft,#FCF0DC); } .r-synth-row.warn .n { color: #9a6207; }
.r-synth-row .n { font-family: var(--f-ui,'Poppins',sans-serif); font-weight: 800; font-size: 24px; }
.r-synth-row span:last-child { font-size: 12.5px; color: var(--g-500,#6E7178); font-weight: 600; }
.r-synth-list { display: flex; flex-direction: column; }
.r-synth-item { display: flex; align-items: flex-start; gap: 11px; padding: 11px 6px; border: none; border-top: 1px solid var(--g-100,#EFF0F3); background: transparent; cursor: pointer; text-align: left; width: 100%; }
.r-synth-item:hover { background: var(--g-50,#F6F7F9); }
.r-synth-body { min-width: 0; }
.r-synth-text { font-size: 12.5px; font-weight: 500; color: var(--g-900,#1A1C20); line-height: 1.35; font-family: var(--f-ui,'Poppins',sans-serif); }
.r-synth-proj { font-size: 11.5px; color: var(--g-400,#9A9CA3); margin-top: 2px; }

.r-am-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.r-am { padding: 18px 20px; }
.r-am-name { font-size: 13.5px; font-weight: 600; color: var(--g-900,#1A1C20); }
.r-am-pct { font-family: var(--f-ui,'Poppins',sans-serif); font-weight: 700; font-size: 26px; margin-top: 6px; line-height: 1; }
.r-am-sub { font-size: 12px; color: var(--g-500,#6E7178); font-family: var(--f-data,'Open Sans',sans-serif); margin-top: 6px; }

.r-segbar { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.r-seg { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 14px; border-radius: 99px; border: 1px solid var(--g-200,#E5E6EA); background: var(--bg-card,#fff); font-family: var(--f-ui,'Poppins',sans-serif); font-size: 13px; font-weight: 600; color: var(--g-500,#6E7178); cursor: pointer; }
.r-seg:hover { border-color: var(--g-300,#C9CBD1); }
.r-seg.on { background: var(--g-900,#1A1C20); color: #fff; border-color: var(--g-900,#1A1C20); }
.r-seg-n { font-family: var(--f-data,'Open Sans',sans-serif); font-size: 11.5px; opacity: 0.6; }
.r-seg.on .r-seg-n { opacity: 0.8; }

.r-gt-proj { display: flex; flex-direction: column; }
.r-gt-proj .nm { font-size: 13.5px; font-weight: 600; color: var(--g-900,#1A1C20); }
.r-gt-proj .cl { font-size: 11.5px; color: var(--g-400,#9A9CA3); margin-top: 1px; }
.r-globtable tr:hover td { background: var(--g-50,#F6F7F9); }
.r-globtable tr { cursor: pointer; }

/* ── receita vs custo ── */
.r-revcost { display: grid; grid-template-columns: 1.05fr 1.3fr 0.7fr; gap: 22px; align-items: center; }
.r-revcost-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.r-rc-lbl { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--g-400,#9A9CA3); margin-bottom: 5px; }
.r-rc-val { font-family: var(--f-ui,'Poppins',sans-serif); font-weight: 700; font-size: 19px; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.r-revcost-bars { display: flex; flex-direction: column; gap: 10px; border-left: 1px solid var(--g-100,#EFF0F3); border-right: 1px solid var(--g-100,#EFF0F3); padding: 0 18px; }
.r-rcbar-row { display: flex; align-items: center; gap: 10px; }
.r-rcbar-lbl { width: 58px; font-size: 12px; font-weight: 600; color: var(--g-500,#6E7178); font-family: var(--f-ui,'Poppins',sans-serif); }
.r-rcbar-track { flex: 1; height: 12px; border-radius: 99px; background: var(--g-100,#EFF0F3); overflow: hidden; }
.r-rcbar-fill { height: 100%; border-radius: 99px; transition: width .4s; }
.r-rcbar-v { width: 90px; text-align: right; font-size: 12px; font-weight: 700; color: var(--g-900,#1A1C20); font-family: var(--f-data,'Open Sans',sans-serif); font-variant-numeric: tabular-nums; }
.r-revcost-side { display: flex; flex-direction: column; gap: 12px; }
.r-rc-cob { display: flex; align-items: center; gap: 10px; }
.r-rc-cob-val { font-family: var(--f-ui,'Poppins',sans-serif); font-weight: 800; font-size: 28px; line-height: 1; letter-spacing: -.01em; }
.r-rc-cob-lbl { font-size: 11px; font-weight: 600; color: var(--g-500,#6E7178); line-height: 1.25; font-family: var(--f-ui,'Poppins',sans-serif); }

/* ── view switcher ── */
.r-viewswitch { display: flex; gap: 4px; background: var(--g-100,#EFF0F3); border-radius: 10px; padding: 4px; }
.r-viewswitch button { height: 32px; padding: 0 16px; border-radius: 7px; border: none; background: transparent; font-family: var(--f-ui,'Poppins',sans-serif); font-size: 13px; font-weight: 600; color: var(--g-500,#6E7178); cursor: pointer; }
.r-viewswitch button.on { background: var(--bg-card,#fff); color: var(--g-900,#1A1C20); box-shadow: var(--sh-1); }

@media (max-width: 900px) {
  .r-hero-main { grid-template-columns: 1fr; }
  .r-hero-stats { grid-template-columns: 1fr 1fr; }
  .r-forecast-grid { grid-template-columns: 1fr; }
  .r-global-cols { grid-template-columns: 1fr; }
  .r-gkpi-grid { grid-template-columns: repeat(2, 1fr); }
  .r-am-grid { grid-template-columns: repeat(2, 1fr); }
  .r-revcost { grid-template-columns: 1fr; }
}
