/* [G1.05] AVVA Gestão: tokens AVVA em .gestao. Desde 21/10/2026 o shell inteiro é azul
   (styles.css), então a seção não desenha mais uma "caixa" própria: herda o fundo da página. */
.gestao {
  --onix: #0A0D14; --grafite: #10141D; --ardosia: #1C1F29; --azul: #0055FF; --azul-prof: #1148CC; --prata: #BCC2CC; --gelo: #E9EDF4;
  --verde: #2BD48A; --ambar: #FFB547; --rosa: #FF5C7A; --cartao: #1C1F29; --cartao-2: #232735; --borda: rgba(188,194,204,.12);
  --texto-1: #E9EDF4; --texto-2: #BCC2CC; --texto-3: #9AA1AD; --azul-texto: #5C8DFF;
  font-family: "Montserrat AVVA", Montserrat, system-ui, sans-serif; color: var(--texto-1);
  background: none; border-radius: 0; padding: 0; min-height: 70vh;
  font-size: 13px; line-height: 1.45; box-sizing: border-box; max-width: 100%; overflow-x: hidden; position: relative;
}
.gestao *, .gestao *::before, .gestao *::after { box-sizing: border-box; }
.gestao h1 { font-size: 22px; font-weight: 700; margin: 0; color: var(--texto-1); letter-spacing: -.01em; }
.gestao h2 { font-size: 15px; font-weight: 600; margin: 0 0 12px; color: var(--texto-1); }
.gestao p { margin: 4px 0; color: var(--texto-2); }
.gestao a { color: var(--azul-texto); }
.gestao :focus-visible { outline: 2px solid var(--azul-texto); outline-offset: 2px; }
.gestao .g-num { font-variant-numeric: tabular-nums; }
.gestao .g-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.gestao .g-cab-acoes { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
/* [G1.11] cartões: largura mínima de 200px (valor em reais nunca quebra), quantas colunas couberem */
.gestao .g-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 22px; }
.gestao .g-cards-3 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.gestao .g-card { display: flex; flex-direction: column; gap: 6px; padding: 16px; background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; text-decoration: none; color: inherit; min-width: 0; }
.gestao a.g-card:hover { border-color: rgba(0,85,255,.7); box-shadow: inset 0 0 0 1px rgba(0,85,255,.25); }
.gestao .g-card-rot { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--texto-3); }
.gestao .g-card strong { font-size: clamp(17px, .9rem + .55vw, 22px); font-weight: 700; color: var(--texto-1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gestao .g-card strong.g-card-multi { display: flex; gap: 4px 12px; align-items: baseline; flex-wrap: wrap; white-space: normal; }
.gestao .g-card-par { display: inline-flex; align-items: baseline; gap: 5px; white-space: nowrap; }
.gestao .g-card-par small { font-size: 12px; font-weight: 600; color: var(--texto-2); }
.gestao .g-card-sub { font-size: 12px; color: var(--texto-2); }
.gestao .g-card-ok strong { color: var(--verde); }
.gestao .g-card-rosa strong { color: var(--rosa); }
.gestao .g-card-ambar strong { color: var(--ambar); }
.gestao .g-bloco { background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; padding: 16px; margin-bottom: 18px; min-width: 0; }
.gestao .g-tab-wrap { overflow-x: auto; max-width: 100%; }
.gestao .g-tab { width: 100%; border-collapse: collapse; font-size: 13px; }
.gestao .g-tab th { text-align: left; font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-3); padding: 8px 10px; border-bottom: 1px solid var(--borda); }
.gestao .g-tab td { padding: 10px; border-bottom: 1px solid var(--borda); color: var(--texto-1); vertical-align: middle; }
.gestao .g-tab .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gestao .g-tab tfoot td { border-bottom: 0; font-weight: 600; text-align: right; }
.gestao .g-tab tfoot td > span { margin-right: 16px; color: var(--texto-2); }
.gestao .g-pil { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.gestao .g-pil-ok { color: var(--verde); background: rgba(43,212,138,.12); }
.gestao .g-pil-rosa { color: var(--rosa); background: rgba(255,92,122,.12); }
.gestao .g-pil-ambar { color: var(--ambar); background: rgba(255,181,71,.12); }
.gestao .g-pil-azul { color: var(--azul-texto); background: rgba(0,85,255,.16); }
.gestao .g-pil-neutro { color: #C8D3E6; background: rgba(188,194,204,.14); }
.gestao .g-pil-cinza { color: var(--texto-3); background: rgba(154,161,173,.12); }
.gestao .g-atraso { color: var(--rosa); font-weight: 600; font-variant-numeric: tabular-nums; }
.gestao .g-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 14px; border-radius: 6px; border: 1px solid var(--azul); background: var(--azul); color: #fff; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
.gestao .g-btn:hover { background: var(--azul-prof); }
.gestao .g-btn-sec { background: transparent; color: var(--texto-1); border-color: var(--borda); }
.gestao .g-btn-sec:hover { background: rgba(0,85,255,.16); }
.gestao .g-btn-mini { min-height: 30px; padding: 0 10px; font-size: 12px; margin-right: 6px; }
.gestao .g-link { color: var(--azul-texto); text-decoration: none; font-weight: 600; }
.gestao .g-link:hover { text-decoration: underline; }
.gestao .g-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.gestao .g-chip { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--borda); color: var(--texto-2); text-decoration: none; font-weight: 600; font-size: 12px; }
.gestao .g-chip.is-on { background: rgba(0,85,255,.16); border-color: rgba(0,85,255,.7); color: var(--texto-1); }
.gestao input, .gestao select, .gestao textarea { background: var(--grafite); color: var(--texto-1); border: 1px solid var(--borda); border-radius: 6px; min-height: 36px; padding: 0 10px; font: inherit; max-width: 100%; }
.gestao .g-busca { margin-left: auto; min-width: 200px; }
.gestao .g-abas { display: flex; gap: 4px; border-bottom: 1px solid var(--borda); margin-bottom: 16px; overflow-x: auto; }
.gestao .g-aba { padding: 10px 14px; color: var(--texto-2); text-decoration: none; font-weight: 600; border-bottom: 2px solid transparent; white-space: nowrap; }
.gestao .g-aba.is-on { color: var(--texto-1); border-bottom-color: var(--azul); }
.gestao .g-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.gestao .g-cli { display: flex; flex-direction: column; gap: 6px; padding: 16px; background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; text-decoration: none; color: inherit; }
.gestao .g-cli:hover { border-color: rgba(0,85,255,.7); }
.gestao .g-cli-topo { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.gestao .g-cli-topo strong { color: var(--texto-1); font-size: 14px; }
.gestao .g-cli-meta { color: var(--texto-2); font-size: 12px; }
.gestao .g-cli-valor { color: var(--texto-1); font-weight: 700; }
.gestao .g-dl { display: grid; grid-template-columns: 160px 1fr; gap: 8px 16px; margin: 0 0 16px; }
.gestao .g-dl dt { color: var(--texto-3); }
.gestao .g-dl dd { margin: 0; }
.gestao .g-tempo { list-style: none; padding: 0; margin: 12px 0 0; }
.gestao .g-tempo li { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--borda); }
.gestao .g-tempo time { color: var(--texto-3); min-width: 84px; font-variant-numeric: tabular-nums; }
.gestao .g-nota-form, .gestao .g-linha { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-end; }
.gestao .g-nota-form input { flex: 1; min-width: 180px; }
.gestao .g-linha label { display: flex; flex-direction: column; gap: 4px; color: var(--texto-2); font-size: 12px; }
.gestao .g-acoes { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.gestao .g-reaj { background: var(--cartao); border: 1px solid rgba(0,85,255,.7); box-shadow: inset 0 0 0 1px rgba(0,85,255,.25); border-radius: 12px; padding: 16px; margin-bottom: 18px; }
.gestao .g-reaj-res { color: var(--texto-1); font-weight: 600; margin: 12px 0 4px; }
.gestao .g-vazio { padding: 24px; text-align: center; color: var(--texto-3); }
.gestao .g-vazio.is-erro { color: var(--rosa); }
.gestao .g-alerta { background: rgba(255,92,122,.12); color: var(--rosa); padding: 10px 14px; border-radius: 6px; margin-bottom: 14px; font-weight: 600; }
.gestao .g-nota { color: var(--texto-3); font-size: 12px; }
.gestao .g-mes { display: flex; gap: 6px; align-items: center; color: var(--texto-2); }
.gestao .g-modal-fundo { position: fixed; inset: 0; background: rgba(0,0,0,.6); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 16px; }
.gestao .g-modal { background: var(--ardosia); border: 1px solid var(--borda); border-radius: 12px; padding: 20px; width: min(560px, 100%); max-height: 90vh; overflow-y: auto; }
.gestao .g-modal label { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; color: var(--texto-2); font-size: 12px; }
.gestao .g-modal label.g-check { flex-direction: row; align-items: center; gap: 8px; }
.gestao .g-modal fieldset { border: 1px solid var(--borda); border-radius: 6px; margin: 0 0 12px; padding: 10px 12px; }
.gestao .g-modal legend { color: var(--texto-1); font-weight: 600; padding: 0 4px; }
.gestao .g-modal-acoes { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.gestao .g-toast { position: fixed; right: 20px; bottom: 20px; background: var(--ardosia); border: 1px solid rgba(43,212,138,.55); color: var(--texto-1); padding: 10px 16px; border-radius: 6px; z-index: 1100; }
.gestao .g-toast.is-erro { border-color: var(--rosa); }
@media (max-width: 640px) {
  .gestao { padding: 0; border-radius: 0; }
  .gestao .g-cards, .gestao .g-cards-3 { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
  .gestao .g-card { padding: 12px; }
  .gestao .g-card strong { font-size: clamp(16px, 4.6vw, 18px); }
  .gestao .g-busca { margin-left: 0; width: 100%; min-width: 0; }
  .gestao .g-dl { grid-template-columns: 1fr; }
  .gestao .g-tab thead { display: none; }
  .gestao .g-tab, .gestao .g-tab tbody, .gestao .g-tab tr, .gestao .g-tab td, .gestao .g-tab tfoot { display: block; width: 100%; }
  .gestao .g-tab tr { border: 1px solid var(--borda); border-radius: 12px; margin-bottom: 10px; padding: 6px 10px; }
  .gestao .g-tab td { border: 0; padding: 5px 0; display: flex; justify-content: space-between; gap: 12px; text-align: right; }
  .gestao .g-tab td::before { content: attr(data-label); color: var(--texto-3); font-size: 11px; text-transform: uppercase; text-align: left; }
  .gestao .g-tab td[data-label=""]::before, .gestao .g-tab tfoot td::before { content: none; }
  .gestao .g-btn, .gestao .g-btn-mini { min-height: 44px; }
  .gestao .g-modal-fundo { padding: 0; }
  .gestao .g-modal { width: 100%; height: 100%; max-height: none; border-radius: 0; }
}

/* =====================================================================
   PAINEL AVVA GESTÃO (layout aprovado, visao.html, classe .h)
   ===================================================================== */
.gestao .pv-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.gestao .pv-top h1 { font-size: 28px; font-weight: 700; letter-spacing: -.01em; }
.gestao .pv-top h1 b { color: var(--azul); font-weight: 700; }
.gestao .pv-top p { font-size: 13px; color: var(--prata); margin: 4px 0 0; }
.gestao .pv-legend { display: flex; gap: 10px; font-size: 11px; color: var(--prata); flex-wrap: wrap; align-items: center; }
.gestao .pv-pill { font-size: 10px; font-weight: 700; border-radius: 20px; padding: 2px 8px; letter-spacing: .04em; white-space: nowrap; display: inline-block; line-height: 1.5; }
.gestao .pv-ex { color: var(--verde); border: 1px solid var(--verde); }
.gestao .pv-dif { color: #fff; background: var(--azul); border: 1px solid var(--azul); }
.gestao .pv-demo { color: var(--ambar); border: 1px dashed var(--ambar); text-transform: uppercase; }
.gestao .pv-lg-d { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: #fff; }
.gestao .pv-lg-d i { width: 7px; height: 7px; border-radius: 50%; background: var(--ambar); }
.gestao .pv-mes { display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; font-size: 11px; color: var(--ambar); margin: 0 0 14px; }
.gestao .pv-mes-sel { display: inline-flex; align-items: center; gap: 6px; color: var(--texto-3); font-size: 11px; }
.gestao .pv-mes-sel input { min-height: 26px; font-size: 11px; padding: 0 6px; color-scheme: dark; }
/* 7 KPIs (Recebido no mês, MRR, A receber, Em atraso, Vencendo, Leads, Clientes):
   uma linha de 7 no desktop; 3+4 (grade de 12) entre 900 e 1199px; 2+2+3 (grade
   de 6) abaixo de 900px. Sem cartão órfão em nenhuma largura. */
.gestao .pv-dash { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
@media (max-width: 1199px) and (min-width: 900px) {
  .gestao .pv-dash { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .gestao .pv-dash > .pv-kpi { grid-column: span 3; }
  .gestao .pv-dash > .pv-kpi:nth-child(-n+3) { grid-column: span 4; }
}
@media (max-width: 899px) {
  .gestao .pv-dash { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .gestao .pv-dash > .pv-kpi { grid-column: span 2; }
  .gestao .pv-dash > .pv-kpi:nth-child(-n+4) { grid-column: span 3; }
}
.gestao .pv-kpi { background: var(--ardosia); border: 1px solid rgba(188,194,204,.1); border-radius: 12px; padding: 12px 14px; text-decoration: none; color: var(--texto-1); display: block; min-width: 0; }
@media (hover: hover) {
  .gestao a.pv-kpi:hover { border-color: rgba(0,85,255,.7); box-shadow: inset 0 0 0 1px rgba(0,85,255,.25); }
}
.gestao .pv-kpi small { font-size: 11px; color: var(--prata); display: block; }
.gestao .pv-kpi strong { font-size: clamp(16px, 1.45vw, 26px); font-weight: 700; display: block; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; color: var(--texto-1); }
.gestao .pv-kpi em { font-style: normal; font-size: 11px; color: var(--texto-3); display: block; }
.gestao .pv-kpi.good strong { color: var(--verde); }
.gestao .pv-kpi.bad strong { color: var(--rosa); }
.gestao .pv-kpi.warn strong { color: var(--ambar); }
.gestao .pv-kpi.is-vazio strong { color: var(--texto-3); }
.gestao .pv-mods { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.gestao .pv-card { background: rgba(28,31,41,.9); border: 1px solid rgba(188,194,204,.1); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: var(--texto-1); min-width: 0; }
.gestao .pv-card.has-ex { border-color: rgba(43,212,138,.55); }
.gestao .pv-card.has-dif { border-color: rgba(0,85,255,.7); box-shadow: 0 0 0 1px rgba(0,85,255,.25) inset; }
@media (hover: hover) {
  .gestao a.pv-card:hover { border-color: rgba(0,85,255,.9); box-shadow: inset 0 0 0 1px rgba(0,85,255,.35); }
}
.gestao a.pv-card:focus-visible { border-color: rgba(0,85,255,.9); box-shadow: inset 0 0 0 1px rgba(0,85,255,.35); }
.gestao .pv-card h3 { font-size: 16px; font-weight: 700; display: block; margin: 0; color: var(--texto-1); line-height: 1.5; }
.gestao .pv-card h3 .n { margin-right: 8px; }
.gestao .pv-card h3 .pv-pill { margin-left: 4px; vertical-align: 2px; }
.gestao .pv-card h3 .n, .gestao .pv-n { color: var(--azul); font-size: 12px; font-weight: 700; }
.gestao .pv-card ul, .gestao .pv-obra ul { list-style: none; display: flex; flex-direction: column; gap: 5px; margin: 0; padding: 0; }
.gestao .pv-card li, .gestao .pv-obra li { font-size: 14px; color: var(--prata); padding-left: 12px; position: relative; line-height: 1.3; }
.gestao .pv-card li::before, .gestao .pv-obra li::before { content: ""; position: absolute; left: 0; top: 7px; width: 5px; height: 5px; border-radius: 50%; background: var(--azul); }
.gestao .pv-card li.d, .gestao .pv-obra li.d { color: #fff; font-weight: 600; }
.gestao .pv-card li.d::before, .gestao .pv-obra li.d::before { background: var(--ambar); }
.gestao .pv-card.is-bloq { opacity: .72; }
.gestao .pv-bloq { margin-top: auto; font-size: 11px; color: var(--texto-3); }
.gestao .pv-top-mod h1 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; font-size: 24px; }
.gestao .pv-top-mod .pv-n { font-size: 16px; }
.gestao .pv-obra { background: var(--ardosia); border: 1px solid rgba(255,181,71,.45); border-radius: 12px; padding: 18px 20px; max-width: 720px; }
.gestao .pv-obra > strong { display: block; color: var(--ambar); font-size: 14px; margin-bottom: 10px; }
.gestao .pv-obra > p { margin: 0 0 10px; }
@media (max-width: 1439px) and (min-width: 641px) { .gestao .pv-card li, .gestao .pv-obra li { font-size: 13px; } .gestao .pv-card li::before { top: 6px; } .gestao .pv-card h3 { font-size: 15px; } }
@media (max-width: 1099px) { .gestao .pv-mods { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 899px) { .gestao .pv-mods { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .gestao .pv-top { flex-direction: column; align-items: flex-start; gap: 10px; }
  .gestao .pv-top h1 { font-size: 26px; }
  .gestao .pv-dash { gap: 8px; }
  .gestao .pv-kpi { padding: 10px; }
  .gestao .pv-kpi strong { font-size: 17px; }
  .gestao .pv-kpi em { font-size: 10px; }
}
@media (max-width: 480px) { .gestao .pv-mods { grid-template-columns: 1fr; } }

/* [GA.01] Minha conta > Trocar senha. Overlay próprio (fora do #app), no padrão
   azul AVVA da Gestão: herda os tokens de .gestao (Montserrat, #0055FF). */
.troca-gate.gestao {
  position: fixed; inset: 0; z-index: 110; display: grid; place-items: center; padding: 24px;
  min-height: 100vh; overflow-y: auto; font-size: 14px;
  background: radial-gradient(60% 50% at 80% 0%, rgba(0,85,255,.28) 0%, transparent 70%), var(--onix);
}
.troca-gate[hidden] { display: none; }
.troca-gate .troca-card {
  width: 100%; max-width: 420px; background: var(--cartao); border: 1px solid var(--borda);
  border-top: 3px solid var(--azul); border-radius: 14px; padding: 28px 28px 24px;
  display: flex; flex-direction: column; gap: 8px; box-shadow: 0 18px 50px rgba(0,0,0,.45);
}
.troca-gate .troca-logo { width: 132px; height: auto; margin-bottom: 10px; }
.troca-gate .troca-rot { margin: 0; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--azul-texto); }
.troca-gate .troca-titulo { font-size: 22px; font-weight: 700; margin: 0; }
.troca-gate .troca-lede { margin: 0 0 8px; color: var(--texto-2); }
.troca-gate.is-obrigatoria .troca-lede { color: var(--ambar); }
.troca-gate .troca-form { display: flex; flex-direction: column; gap: 12px; }
.troca-gate .troca-campo { display: flex; flex-direction: column; gap: 6px; }
.troca-gate .troca-campo span { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--texto-3); }
.troca-gate .troca-campo input { min-height: 42px; font-size: 15px; width: 100%; }
.troca-gate .troca-campo input:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 2px rgba(0,85,255,.35); }
.troca-gate .troca-regras { margin: 0; padding-left: 18px; color: var(--texto-3); font-size: 12px; }
.troca-gate .troca-erro { margin: 0; color: var(--rosa); font-weight: 600; font-size: 13px; }
.troca-gate .troca-ok { margin: 0; color: var(--verde); font-weight: 600; font-size: 13px; }
.troca-gate .troca-acoes { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.troca-gate .troca-acoes .g-btn { min-height: 42px; }
.troca-gate .troca-acoes #trocaSalvar { flex: 1 1 200px; }
.troca-gate .g-btn:disabled { opacity: .6; cursor: default; }
.troca-gate.is-obrigatoria #trocaCancelar { display: none; }
.troca-gate:not(.is-obrigatoria) #trocaSair { display: none; }
@media (max-width: 480px) {
  .troca-gate.gestao { padding: 12px; align-items: start; }
  .troca-gate .troca-card { padding: 22px 18px 18px; }
  .troca-gate .troca-acoes .g-btn { flex: 1 1 100%; }
}
.link-quiet.link-conta:hover { color: #5C8DFF; } /* [GA.01] "Minha conta" não é ação destrutiva: hover azul, não vermelho */
/* [GA.03] boletos em aberto antes do início do contrato (o dono decide um a um) */
.gestao .g-alerta-bloco { border: 1px solid rgba(255,181,71,.45); border-radius: 12px; padding: 14px 16px; background: rgba(255,181,71,.06); }
.gestao .g-alerta-bloco h2 { color: var(--ambar); }
.gestao .g-modal .g-linha { margin: 4px 0 6px; }
.gestao .g-tab td .g-btn-mini + .g-btn-mini { margin-left: 6px; }
/* [pós-QA] botões de ação na mesma linha (Recorrentes: Editar + Encerrar) */
.gestao .g-tab-acoes { display: inline-flex; align-items: center; gap: 6px; flex-wrap: nowrap; white-space: nowrap; }
.gestao .g-tab td .g-tab-acoes .g-btn-mini { margin: 0; }
/* [G1.11] aviso "Este lead virou cliente": camada própria, fora da seção da Gestão (abre no CRM) */
.gestao.g-aviso-lead { position: fixed; inset: 0; min-height: 0; background: rgba(0,0,0,.6); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 16px; overflow: auto; }
.gestao.g-aviso-lead .g-modal-acoes { flex-wrap: wrap; }
@media (max-width: 480px) {
  .gestao.g-aviso-lead .g-modal-acoes .g-btn { flex: 1 1 100%; text-align: center; }
  /* [pós-QA] o aviso é curto: altura pelo conteúdo, não tela cheia */
  .gestao.g-aviso-lead { padding: 16px; }
  .gestao.g-aviso-lead .g-modal { height: auto; max-height: calc(100vh - 32px); border-radius: 12px; }
}

/* ---------------------------------------------------------------- [GB.02/GB.03/GB.04] lote B */
.gestao .g-verde { color: var(--verde); }
.gestao .g-rosa { color: var(--rosa); }
.gestao .g-card-azul strong { color: var(--azul-texto); }
.gestao .g-link-btn { background: none; border: 0; padding: 0; color: var(--azul-texto); font: inherit; font-weight: 600; cursor: pointer; text-align: left; }
.gestao .g-link-btn:hover { text-decoration: underline; }
.gestao .g-alerta-azul { background: rgba(0,85,255,.14); color: var(--texto-1); display: flex; gap: 12px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.gestao .g-fluxo-filtro { margin-bottom: 14px; }
/* Fluxo de caixa: barras por semana (CSS puro) */
.gestao .g-fluxo { display: flex; flex-direction: column; gap: 6px; }
.gestao .g-fluxo-sem { display: grid; grid-template-columns: 120px minmax(0, 1fr) 210px; gap: 12px; align-items: center; padding: 6px 8px; border-radius: 8px; color: inherit; text-decoration: none; }
.gestao .g-fluxo-sem:hover { background: rgba(0,85,255,.10); }
.gestao .g-fluxo-rot { font-size: 12px; color: var(--texto-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gestao .g-fluxo-barras { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gestao .g-fluxo-b { display: block; height: 8px; border-radius: 4px; min-width: 2px; }
.gestao .g-fluxo-e { background: var(--verde); }
.gestao .g-fluxo-s { background: var(--rosa); }
.gestao .g-fluxo-val { font-size: 12px; text-align: right; white-space: nowrap; }
.gestao .g-fluxo-val b { font-weight: 600; }
.gestao .g-legenda { display: flex; gap: 14px; align-items: center; font-size: 12px; color: var(--texto-3); margin-top: 10px; }
.gestao .g-legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; }
/* Quadro de projetos */
.gestao .g-proj-filtros label { display: flex; align-items: center; gap: 6px; color: var(--texto-2); font-size: 12px; }
.gestao .g-quadro { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: start; }
.gestao .g-col { background: var(--grafite); border: 1px solid var(--borda); border-radius: 12px; padding: 10px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.gestao .g-col-cab { display: flex; justify-content: space-between; align-items: center; padding: 2px 4px 4px; }
.gestao .g-col-cab h2 { margin: 0; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-2); }
.gestao .g-col-n { font-size: 12px; font-weight: 700; color: var(--azul-texto); background: rgba(0,85,255,.16); border-radius: 999px; padding: 1px 8px; }
.gestao .g-col-vazia { font-size: 12px; color: var(--texto-3); padding: 6px 4px; margin: 0; }
.gestao .g-tarefa { background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px; padding: 10px; display: flex; flex-direction: column; gap: 6px; }
.gestao .g-tarefa.is-vencida { border-color: rgba(255,92,122,.55); }
.gestao .g-tarefa-topo { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.gestao .g-tarefa-topo strong { font-weight: 600; overflow-wrap: anywhere; }
.gestao .g-tarefa-cli { display: block; font-size: 12px; color: var(--texto-2); }
.gestao .g-tarefa-pe { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.gestao .g-ini { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--azul); color: #fff; font-size: 11px; font-weight: 700; }
.gestao .g-ini.is-vazio { background: var(--cartao-2); color: var(--texto-3); }
.gestao .g-prazo { font-size: 12px; color: var(--texto-2); font-variant-numeric: tabular-nums; }
.gestao .g-prazo.is-vencida { color: var(--rosa); font-weight: 700; }
.gestao .g-menu { position: relative; }
.gestao .g-menu summary { list-style: none; cursor: pointer; padding: 0 8px; border-radius: 6px; color: var(--texto-2); font-weight: 700; line-height: 24px; min-width: 32px; text-align: center; }
.gestao .g-menu summary::-webkit-details-marker { display: none; }
.gestao .g-menu[open] summary { background: var(--cartao-2); }
.gestao .g-menu-lista { position: absolute; right: 0; top: 28px; z-index: 5; background: var(--ardosia); border: 1px solid var(--borda); border-radius: 8px; padding: 4px; min-width: 220px; box-shadow: 0 10px 30px rgba(0,0,0,.45); display: flex; flex-direction: column; }
.gestao .g-menu-item { background: none; border: 0; color: var(--texto-1); font: inherit; text-align: left; padding: 8px 10px; border-radius: 6px; cursor: pointer; }
.gestao .g-menu-item:hover { background: rgba(0,85,255,.16); }
.gestao .g-menu-item.is-perigo { color: var(--rosa); }
.gestao .g-aprov { display: flex; flex-direction: column; gap: 8px; }
.gestao .g-aprov-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px; padding: 12px 14px; }
.gestao .pv-vivo { display: block; margin-top: 8px; font-size: 12px; font-weight: 700; color: var(--ambar); }
.gestao .g-cli-tarefas { margin-top: 16px; border-top: 1px solid var(--borda); padding-top: 14px; }
.gestao .g-cli-tarefas ul { list-style: none; margin: 0 0 8px; padding: 0; }
.gestao .g-cli-tarefas li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--borda); }
/* Equipe: horas e carga */
.gestao .g-sem-nav label { display: flex; align-items: center; gap: 6px; color: var(--texto-2); font-size: 12px; }
.gestao .g-dia-cab { display: flex; justify-content: space-between; align-items: baseline; }
.gestao .g-dia-cab span { font-weight: 700; }
.gestao .g-pessoas { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; margin: 14px 0 22px; }
.gestao .g-pessoa.is-alerta { border-color: rgba(255,181,71,.6); }
.gestao .g-pessoa.is-alerta strong { color: var(--ambar); }
.gestao .g-barra-fi { display: block; height: 8px; border-radius: 4px; background: var(--cartao-2); overflow: hidden; }
.gestao .g-barra-fi span { display: block; height: 100%; background: var(--azul); }
.gestao .g-radio { border: 0; padding: 0; margin: 0 0 10px; display: flex; gap: 14px; flex-wrap: wrap; }
.gestao .g-radio legend { font-size: 12px; color: var(--texto-2); margin-bottom: 4px; }
.gestao .g-modal textarea { padding: 8px 10px; }
@media (max-width: 1099px) { .gestao .g-quadro { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .gestao .g-quadro { grid-template-columns: 1fr; }
  .gestao .g-fluxo-sem { grid-template-columns: 1fr; gap: 4px; }
  .gestao .g-fluxo-val { text-align: left; }
  .gestao .g-aprov-item { grid-template-columns: 1fr; }
  .gestao .g-menu-lista { min-width: 200px; }
}
/* [GB.05] propostas: ações da linha */
.gestao .g-prop-acoes { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.gestao .g-prop-acoes .g-btn-mini { margin: 0; }
.gestao .g-sub { display: block; color: var(--texto-3); font-size: 12px; margin-top: 2px; }
.gestao .g-sub-tit { font-size: 15px; margin: 22px 0 10px; }
/* [GB.06] checklist de entrada e saída */
.gestao .g-chk-bloco { margin-bottom: 22px; }
.gestao .g-chk-bloco h2 { font-size: 15px; margin: 0 0 10px; display: flex; gap: 10px; align-items: baseline; }
.gestao .g-chk-prog { color: var(--azul-texto); font-size: 13px; font-weight: 600; }
.gestao .g-chk-barra { height: 6px; border-radius: 6px; background: rgba(188,194,204,.14); overflow: hidden; margin-bottom: 12px; max-width: 520px; }
.gestao .g-chk-barra span { display: block; height: 100%; background: var(--azul, #0055FF); }
.gestao .g-chk-barra.is-ok span { background: var(--verde); }
.gestao .g-chk { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.gestao .g-chk li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; padding: 10px 12px; border: 1px solid rgba(188,194,204,.12); border-radius: 10px; }
.gestao .g-chk label { display: flex; gap: 10px; align-items: center; cursor: pointer; min-height: 28px; }
.gestao .g-chk input { width: 18px; height: 18px; accent-color: #0055FF; }
.gestao .g-chk-quem { color: var(--texto-3); font-size: 12px; }
.gestao .g-cli-chk:empty { display: none; }
/* [GB.07] arquivos da pasta do cliente */
.gestao .g-arq-topo { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-bottom: 14px; }
.gestao .g-arq-cat { margin-bottom: 16px; }
.gestao .g-arq-cat h3 { font-size: 14px; margin: 0 0 8px; display: flex; gap: 8px; align-items: baseline; }
.gestao .g-arq-n { color: var(--texto-3); font-size: 12px; font-weight: 600; }
.gestao .g-arq-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.gestao .g-arq-lista li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 12px; padding: 10px 12px; border: 1px solid rgba(188,194,204,.12); border-radius: 10px; }
.gestao .g-arq-nome { display: grid; gap: 2px; min-width: 0; }
.gestao .g-arq-nome strong { overflow-wrap: anywhere; font-size: 14px; }
.gestao .g-arq-acoes { display: flex; gap: 6px; }
.gestao .g-arq-acoes .g-btn { margin: 0; }
.gestao .g-arq-prog { height: 6px; border-radius: 6px; background: rgba(188,194,204,.14); overflow: hidden; margin: 6px 0 4px; }
.gestao .g-arq-prog span { display: block; height: 100%; width: 0; background: var(--azul, #0055FF); transition: width .15s; }
@media (max-width: 640px) { .gestao .g-arq-acoes { width: 100%; } .gestao .g-arq-acoes .g-btn { flex: 1; text-align: center; } }
/* [GB.08] entregas recorrentes */
.gestao .g-rec-topo { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; margin-bottom: 16px; }
.gestao .g-rec-topo input[type=month] { min-height: 38px; }
.gestao .g-rec-cli { margin-bottom: 18px; }
.gestao .g-rec-cli h2 { font-size: 15px; margin: 0 0 8px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.gestao .g-rec-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.gestao .g-rec-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, 260px) auto; gap: 8px 16px; align-items: center; padding: 10px 12px; border: 1px solid rgba(188,194,204,.12); border-radius: 10px; }
.gestao .g-rec-tit { display: grid; gap: 2px; min-width: 0; }
.gestao .g-rec-barra { height: 8px; border-radius: 8px; background: rgba(188,194,204,.14); overflow: hidden; }
.gestao .g-rec-barra span { display: block; height: 100%; background: var(--azul, #0055FF); }
.gestao .g-rec-barra.is-completo span { background: var(--verde); }
.gestao .g-rec-barra.is-atrasado span { background: var(--rosa, #E94B7B); }
.gestao .g-rec-fora { margin-top: 14px; color: var(--texto-2); }
.gestao .g-rec-fora summary { cursor: pointer; margin-bottom: 8px; }
@media (max-width: 640px) { .gestao .g-rec-item { grid-template-columns: 1fr; } }

/* [GC.02] Rentabilidade */
.gestao .g-rt-custo { margin-bottom: 14px; }
.gestao .g-rt-custo input[name=custo] { width: 140px; }
.gestao .g-rt-margem { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 4px; min-width: 120px; }
.gestao .g-rt-barra { display: block; width: 100%; height: 6px; border-radius: 6px; background: rgba(188,194,204,.14); overflow: hidden; }
.gestao .g-rt-barra span { display: block; height: 100%; background: var(--verde); margin-left: auto; }
.gestao .g-rt-barra.is-neg span { background: var(--rosa); margin-left: 0; }
.gestao .g-rt-custos { list-style: none; margin: 0 0 8px; padding: 0; }
.gestao .g-rt-custos li { display: flex; gap: 12px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--borda); }
.gestao .g-rt-custos li span { flex: 1; min-width: 0; }
@media (max-width: 640px) { .gestao .g-rt-margem { align-items: flex-start; } }

/* [GC.03] Indicadores e metas */
.gestao .g-ind-svg { width: 100%; height: auto; max-height: 220px; display: block; margin-bottom: 8px; }
.gestao .g-ind-linha { fill: none; stroke: var(--azul); stroke-width: 2.5; }
.gestao .g-ind-pt { fill: var(--azul); stroke: var(--cartao); stroke-width: 2; }
.gestao .g-ind-pt.is-rec { fill: var(--ambar); }
.gestao .g-ind-pt.is-vivo { fill: var(--azul-texto); }
.gestao .g-ind-rot { fill: var(--texto-3); font-size: 11px; font-family: inherit; }
.gestao .g-ind-lista { list-style: none; margin: 0 0 8px; padding: 0; }
.gestao .g-ind-lista li { display: flex; gap: 12px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--borda); flex-wrap: wrap; }
.gestao .g-ind-lista li > span:first-child { min-width: 120px; color: var(--texto-2); text-transform: capitalize; }
.gestao .g-ind-lista li > span.g-nota:first-child { text-transform: none; } /* pós-QA D2: só o nome do mês leva maiúscula */
.gestao .g-ind-metas-topo { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.gestao .g-ind-metas-topo h2 { margin: 0; }
.gestao .g-ind-metas { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.gestao .g-ind-meta { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px solid var(--borda); border-radius: 10px; background: var(--cartao-2); }
.gestao .g-ind-meta-topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.gestao .g-ind-meta-val { font-size: 17px; font-weight: 700; }

/* [GC.04] Saúde do cliente */
.gestao .g-tab td small { color: var(--texto-3); font-weight: 400; }
.gestao .g-sd-ficha { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.gestao .g-sd-nota { font-size: 28px; font-weight: 700; }

/* [GC.05] bloco "Tráfego por cliente" no topo da aba Tráfego (fora de uma view .gestao inteira) */
.gestao.g-tf-cli { min-height: 0; margin: 0 0 18px; }
@media (min-width: 641px) {
  .gestao .g-rt-tab td:first-child { min-width: 150px; }
  /* pós-QA D1: 8 colunas cabem em 1280 sem rolagem; cabeçalhos quebram em 2 linhas e o respiro lateral encolhe */
  .gestao .g-rt-tab .g-tab th { white-space: normal; vertical-align: bottom; padding: 8px 6px; line-height: 1.3; }
  .gestao .g-rt-tab .g-tab td { padding: 10px 6px; }
  .gestao .g-rt-tab .g-rt-margem { min-width: 104px; }
}
.gestao .g-sd-obs { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; }
@media (max-width: 640px) { .gestao .g-sd-obs { align-items: flex-end; text-align: right; } }
