/* =========================================================
   visual-2026.css — casca e componentes, direção "Painel de
   precisão" (spec docs/superpowers/specs/2026-09-10-visual-2026-design.md).
   Camada carregada POR ÚLTIMO: não reescreve styles.css nem os CSS
   de seção, só sobrepõe. Tirar o <link> volta ao visual anterior.
   Fonte única: Inter (Calibri de reserva). Paleta de marca intacta;
   entram neutros e o verde quase preto do menu.
   Contraste medido (WCAG, texto normal >= 4,5:1):
     --n-500 #667065 sobre branco ............ 5,2:1
     --n-500 sobre --n-50 #f7f8f6 ............ 4,9:1
     menu escuro: item #b9c7bc / #0f1f14 ..... 9,6:1
     menu escuro: grupo #8aa08e / #0f1f14 .... 6,1:1
     menu claro: item #4f584e / branco ....... 7,3:1
     menu claro: ativo #1f5a2a / #eaf3e8 ..... 7,6:1
   ========================================================= */
:root{
  --fonte:'Inter', 'Calibri', ui-sans-serif, system-ui, sans-serif;
  --n-0:#ffffff; --n-50:#f7f8f6; --n-100:#f0f2ee; --n-200:#e4e7e2; --n-300:#d3d8d1;
  --n-500:#667065; --n-700:#3d4539; --n-900:#0f1f14;
  --verde-500:#2f7a3b;
  --r-card:12px; --r-ctl:8px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(15,31,20,.05);
  --sh-2:0 1px 2px rgba(15,31,20,.05), 0 8px 24px -12px rgba(15,31,20,.18);
  --sh-pop:0 4px 12px rgba(15,31,20,.10), 0 24px 48px -16px rgba(15,31,20,.30);
  --anel:0 0 0 3px rgba(47,122,59,.18);
  /* tokens de styles.css reapontados para a nova escala */
  --bg:var(--n-50); --texto:var(--n-900); --borda-suave:var(--n-200);
  --raio:var(--r-card); --sombra-1:var(--sh-1); --sombra-2:var(--sh-2);
}

body{
  font-family:var(--fonte);
  background:var(--n-50) !important;
  color:var(--n-900);
  font-feature-settings:'cv11','ss01';
  letter-spacing:-.006em;
}
h1, h2, h3, .font-display{font-family:var(--fonte);letter-spacing:-.02em;}
table, .kpi, .tabular, input, select{font-variant-numeric:tabular-nums;}

/* ── Menu lateral ───────────────────────────────────────── */
#sidebar{
  width:252px; flex:none; padding:14px 10px 10px;
  box-shadow:none !important; border-right:1px solid transparent;
  transition:background-color .2s var(--ease), border-color .2s var(--ease);
}
#sidebar[data-menu="escuro"]{
  --sb-bg:#0f1f14; --sb-txt:#b9c7bc; --sb-forte:#ffffff; --sb-grupo:#8aa08e;
  --sb-hover:#17301e; --sb-ativo:#1f3a26; --sb-ativo-txt:#ffffff; --sb-ic-ativo:#7fcf8a;
  --sb-linha:rgba(255,255,255,.08); --sb-rodape:#16291b;
}
#sidebar[data-menu="claro"]{
  --sb-bg:#ffffff; --sb-txt:#4f584e; --sb-forte:var(--n-900); --sb-grupo:var(--n-500);
  --sb-hover:var(--n-100); --sb-ativo:#eaf3e8; --sb-ativo-txt:#1f5a2a; --sb-ic-ativo:#2f7a3b;
  --sb-linha:var(--n-200); --sb-rodape:var(--n-50);
  border-right-color:var(--n-200);
}
#sidebar{background:var(--sb-bg); color:var(--sb-txt); overflow:hidden !important;}
#sidebar ul{padding:0;}
/* Só a lista rola: marca e rodapé (conta, alternador) ficam sempre à vista. */
.nav-lista{flex:1 1 auto;min-height:0;overflow-y:auto;margin:0 -4px;padding:0 4px !important;scrollbar-color:var(--sb-linha) transparent;}

/* Marca do sistema no alto do menu: símbolo em vetor e nome em texto,
   na cor do tema (sem moldura, para fazer parte do menu). Mesma grade
   da fazenda logo abaixo: o símbolo tem a largura do selo (32px) e o
   nome começa na mesma coluna do nome da fazenda; a linha divisória
   tem a largura dos itens do menu. */
.marca-sistema{
  --mc-de:#0c8a52; --mc-ate:#22d47e; --mc-ia:#2fd07f;
  position:relative;display:flex;align-items:flex-end;gap:10px;
  padding:6px 6px 18px;margin-bottom:16px;user-select:none;
}
#sidebar[data-menu="claro"] .marca-sistema{--mc-de:#0b6b43; --mc-ate:#14995f; --mc-ia:#0f7f4f;}
.marca-sistema::after{
  content:"";position:absolute;left:6px;right:6px;bottom:0;height:1px;background:var(--sb-linha);
}
.marca-sis-simbolo{width:32px;height:29.4px;flex:none;display:block;}
.marca-sis-simbolo .de{stop-color:var(--mc-de);}
.marca-sis-simbolo .ate{stop-color:var(--mc-ate);}
.marca-sis-nome{
  color:var(--sb-forte);font-size:21px;font-weight:640;letter-spacing:-.028em;
  line-height:1;white-space:nowrap;padding-bottom:3px;
}
.marca-sis-ia{color:var(--mc-ia);font-weight:690;}

/* Fazenda: abaixo da marca, com selo discreto no tom do menu. */
.marca{display:flex;align-items:center;gap:10px;padding:0 6px 16px;}
.marca-selo{
  width:32px;height:32px;border-radius:9px;flex:none;display:grid;place-items:center;
  background:var(--sb-hover);color:var(--sb-ic-ativo);
}
.marca-selo svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.marca-texto{display:flex;flex-direction:column;min-width:0;line-height:1.2;}
.marca-nome{color:var(--sb-forte);font-weight:700;font-size:14px;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.marca-sub{color:var(--sb-grupo);font-size:12px;font-weight:500;}

.nav-grupo{
  color:var(--sb-grupo);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  padding:14px 10px 4px;
}
.nav-grupo:first-child{padding-top:4px;}
/* Grupo recolhível: o rótulo vira botão com seta; fechado, os itens somem
   (só no computador: no celular o menu é a fila de ícones, sem rótulos). */
.nav-grupo{padding:6px 0 0;}
.nav-grupo:first-child{padding-top:0;}
.nav-grupo-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
  min-height:36px;padding:6px 10px;border-radius:var(--r-ctl);
  background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;
  transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.nav-grupo-btn:hover{background:var(--sb-hover);color:var(--sb-forte);}
.nav-grupo-seta{width:15px;height:15px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--dur) var(--ease);}
.nav-grupo-fechado .nav-grupo-seta{transform:rotate(-90deg);}
@media (min-width:641px){ #sidebar li.nav-fechado{display:none;} }

#sidebar .nav-item{
  width:100%;display:flex;align-items:center;gap:11px;
  padding:7px 10px;margin:1px 0;min-height:36px;
  border-radius:var(--r-ctl);
  font-size:14px;font-weight:500;text-align:left;
  color:var(--sb-txt);background:transparent;box-shadow:none;
  transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
#sidebar .nav-item:hover{background:var(--sb-hover);color:var(--sb-forte);}
#sidebar .nav-item.active,
#sidebar .nav-item.active:hover{background:var(--sb-ativo);color:var(--sb-ativo-txt);font-weight:600;box-shadow:none;}
#sidebar[data-menu="claro"] .nav-item.active{box-shadow:inset 3px 0 0 var(--verde-500);}
#sidebar[data-menu="escuro"] .nav-item.active{box-shadow:inset 0 0 0 1px rgba(127,207,138,.14);}
.nav-ic{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.9;}
#sidebar .nav-item.active .nav-ic{color:var(--sb-ic-ativo);opacity:1;}
#sidebar .nav-item [data-ag-badge]{
  margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);
  display:inline-grid;place-items:center;font-size:11px;background:#fdecea;color:#b3261e !important;
}

/* Rodapé do menu: conta, ajustes e alternador escuro/claro */
.menu-rodape{margin-top:auto;padding-top:12px;}
.rodape-linha{display:flex;align-items:center;gap:6px;padding:6px;border-radius:var(--r-card);background:var(--sb-rodape);border:1px solid var(--sb-linha);}
.btn-usuario{
  flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:6px;border-radius:var(--r-ctl);
  background:transparent;color:var(--sb-forte);text-align:left;min-height:44px;
}
.btn-usuario:hover{background:var(--sb-hover);}
.avatar{
  width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-size:12px;font-weight:700;color:#3d2e06;
  background:linear-gradient(140deg,#f1cf6b,#d9a521);
}
.usuario-texto{display:flex;flex-direction:column;min-width:0;line-height:1.2;}
.usuario-nome{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.usuario-sub{font-size:11.5px;color:var(--sb-grupo);}
.btn-usuario .chevron{margin-left:auto;width:15px;height:15px;color:var(--sb-grupo);}
.btn-menu-tema{
  width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:var(--r-ctl);
  color:var(--sb-txt);background:transparent;
}
.btn-menu-tema:hover{background:var(--sb-hover);color:var(--sb-forte);}
.btn-menu-tema svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
#sidebar[data-menu="escuro"] .ic-lua, #sidebar[data-menu="claro"] .ic-sol{display:none;}

/* Menu da conta: fixed para não ser cortado pelo overflow do menu lateral
   (no celular o menu tem 64px de largura). */
.menu-usuario{
  position:fixed;left:12px;bottom:76px;z-index:60;width:248px;padding:6px;
  background:#fff;border:1px solid var(--n-200);border-radius:var(--r-card);box-shadow:var(--sh-pop);
  animation:v26-pop 140ms var(--ease);
}
@keyframes v26-pop{from{opacity:0;transform:translateY(4px) scale(.98);}to{opacity:1;transform:none;}}
.mu-item{
  width:100%;display:flex;align-items:center;gap:10px;padding:10px;min-height:44px;border-radius:var(--r-ctl);
  font-size:14px;font-weight:500;color:var(--n-700);background:transparent;text-align:left;
}
.mu-item.hidden{display:none;}
.mu-item:hover{background:var(--n-100);color:var(--n-900);}
.mu-item.mu-sair{color:#b3261e;border-top:1px solid var(--n-100);border-radius:0 0 var(--r-ctl) var(--r-ctl);margin-top:4px;}
.mu-item.mu-sair:hover{background:#fdecea;color:#8f1d17;}

/* Celular: menu recolhido em ícones (64px), mesma regra de antes. */
@media (max-width:640px){
  #sidebar{width:64px;padding:12px 8px;}
  .marca-sistema{justify-content:center;padding:4px 0 14px;margin-bottom:12px;}
  .marca-sistema::after{left:10px;right:10px;}
  .marca{justify-content:center;padding:0 0 12px;}
  #sidebar .nav-item{justify-content:center;padding:10px 0;min-height:44px;position:relative;}
  #sidebar .nav-item [data-ag-badge]{position:absolute;top:3px;right:3px;margin:0;min-width:17px;height:17px;padding:0 4px;font-size:10px;}
  .nav-grupo{display:none;}
  .rodape-linha{flex-direction:column;padding:4px;}
  .btn-usuario{justify-content:center;padding:6px 0;flex:none;}
  .menu-usuario{left:8px;bottom:120px;}
}

/* ── Barra superior (substitui a antiga faixa verde) ────── */
#topbar{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  min-height:60px;padding:10px 24px;
  background:rgba(255,255,255,.85) !important;
  -webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--n-200) !important;
  box-shadow:none !important; color:var(--n-900);
}
.migalha{display:flex;align-items:center;gap:8px;font-size:14px;min-width:0;}
.migalha-grupo{color:var(--n-500);font-weight:500;}
.migalha-sep{color:var(--n-300);}
.migalha-secao{color:var(--n-900);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* Slot que uma seção pode preencher com controles próprios (ex.: as
   sub-abas de Comercialização, js/sections/comercializacao.js) — vazio
   por padrão, sem efeito em nenhuma outra tela; app.js:showSection
   limpa a cada troca de seção pelo menu lateral. O margin-right:auto
   mora AQUI (não em .migalha) de propósito: com o slot vazio, o efeito
   é o mesmo de antes (migalha à esquerda, topbar-acoes à direita);
   quando uma seção o preenche, o conteúdo cola logo depois da migalha,
   à esquerda, e é o slot quem empurra topbar-acoes pro canto direito. */
.topbar-extra{display:flex;align-items:center;min-width:0;margin-right:auto;}
.topbar-acoes{display:flex;align-items:center;gap:12px;}
/* Comercialização não mostra o aviso de sincronização no topo (cada
   estudo do Estruturador salva pelo mecanismo de
   AGRO.estruturadorEstudos), pedido do produtor de 27/09/2026. O seletor
   de Período do topo deixou de existir em 30/09/2026: cada tela tem o
   próprio controle (js/periodo.tela.js, regras .per-tela no fim deste
   arquivo). */
body[data-secao-atual=comercializacao] #topbar #sync-status{display:none;}
.sync-status{font-size:12.5px;color:var(--n-500);}
@media (max-width:640px){
  #topbar{padding:8px 12px;min-height:52px;}
  .migalha-grupo, .migalha-sep{display:none;}
  .sync-status{display:none;}
}

/* ── Área de conteúdo ───────────────────────────────────── */
#conteudo{background:var(--n-50);}
@media (min-width:1024px){ #conteudo{padding:28px 32px !important;} }

/* Título de cada seção: sai o verde, entra o quase preto, mais firme. */
.agro-section > h2,
.agro-section h2.text-2xl,
.agro-section .vs-topo h2{
  color:var(--n-900) !important;font-size:26px;font-weight:700;letter-spacing:-.025em;line-height:1.2;
}
.agro-section h3{letter-spacing:-.015em;}

/* ── Cartões ────────────────────────────────────────────── */
.card,
.aghtml .card,
.aghtml .kpi{
  background:#fff;border:1px solid var(--n-200);border-radius:var(--r-card);box-shadow:var(--sh-1);
}
.card:hover, .aghtml .card:hover, .aghtml .kpi:hover{box-shadow:var(--sh-2);}
.aghtml{--verde:#1f5a2a; --verde-claro:var(--n-100); --borda:var(--n-200); --txt:var(--n-900); --txt2:var(--n-500); --raio:var(--r-card); --sombra:var(--sh-1); --sombra2:var(--sh-2);}
.aghtml .card .head{border-bottom-color:var(--n-100);font-weight:600;letter-spacing:-.01em;}
.aghtml .kpi .lbl, .aghtml .kpi .sub{color:var(--n-500);}
.aghtml .kpi .val{letter-spacing:-.025em;}
.aghtml .ctx h1{font-family:var(--fonte);letter-spacing:-.025em;}
.aghtml .ctx .ctxlabel{background:var(--n-100);color:var(--n-700);}
.kpi{letter-spacing:-.02em;}
main .shadow, main .shadow-sm, main .shadow-md{box-shadow:var(--sh-1) !important;}
main .rounded-lg, main .rounded-xl{border-radius:var(--r-card);}

/* ── Tabelas: cabeçalho discreto, linhas com fio fino ───── */
thead tr[class*="bg-verde-lavoura"]{background:var(--n-50) !important;color:var(--n-500) !important;}
thead tr[class*="bg-verde-lavoura"] th,
.aghtml thead th{
  background:var(--n-50) !important;color:var(--n-500) !important;
  font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  border-bottom:1px solid var(--n-200) !important;
}
.aghtml tbody td{border-bottom-color:var(--n-100);}
.aghtml tbody tr:nth-child(even){background:transparent;}
.aghtml tbody tr:hover{background:var(--n-50);}
.aghtml tfoot td{border-top:1px solid var(--n-200);background:var(--n-50);}
main table tbody tr:hover{background-color:var(--n-50);}

/* ── Botões ─────────────────────────────────────────────── */
main button[class*="bg-verde-lavoura"],
main a[class*="bg-verde-lavoura"]{
  border-radius:var(--r-ctl);font-weight:600;letter-spacing:-.005em;
  background-image:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,0));
  box-shadow:0 1px 2px rgba(15,31,20,.18), inset 0 1px 0 rgba(255,255,255,.12);
}
main button[class*="bg-verde-lavoura"]:hover{filter:brightness(1.08);}
main button[class*="border-verde-lavoura"]:not([class*="bg-verde-lavoura"]),
main button[class*="border-verde-claro"]:not([class*="bg-verde-lavoura"]){
  border-color:var(--n-300) !important;background-color:#fff;color:var(--n-900);border-radius:var(--r-ctl);
  box-shadow:var(--sh-1);font-weight:600;
}
main button[class*="border-verde-lavoura"]:not([class*="bg-verde-lavoura"]):hover,
main button[class*="border-verde-claro"]:not([class*="bg-verde-lavoura"]):hover{background-color:var(--n-50);border-color:var(--n-500) !important;}
main button[class*="bg-dourado-soja"]{border-radius:var(--r-ctl);font-weight:600;}

/* ── Campos ─────────────────────────────────────────────── */
main input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
main select, main textarea{
  border-color:var(--n-300);background-color:#fff;
}
main input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus,
main select:focus, main textarea:focus,
#topbar select:focus{border-color:var(--verde-500) !important;box-shadow:var(--anel) !important;outline:none;}
input[type="checkbox"], input[type="radio"]{accent-color:var(--verde-500);}
:focus-visible{outline:2px solid var(--verde-500);outline-offset:2px;}

/* ── Rolagem ────────────────────────────────────────────── */
::-webkit-scrollbar-thumb{background:var(--n-300);border-color:var(--n-50);}
#sidebar::-webkit-scrollbar-thumb{background:var(--sb-linha);border-color:var(--sb-bg);}

@media (prefers-reduced-motion: reduce){ .menu-usuario{animation:none;} }
@media print{ #sidebar, #topbar{display:none !important;} #conteudo{padding:0 !important;} }

/* ══ Miolo das telas ══════════════════════════════════════════
   O Visual 2026 parou na casca (menu, topo, cartão, tabela,
   botão, campo) e nunca entrou na composição de cada tela. É o
   que este bloco faz, sempre por CSS sobre o que já existe: as
   seções continuam montando o mesmo HTML. */

/* Título da seção: quase preto e com a hierarquia da escala nova,
   no lugar do verde saturado que competia com o conteúdo. O emoji
   decorativo saiu do próprio HTML das seções. */
main h1[class*="text-2xl"], main h2[class*="text-2xl"],
main h1[class*="text-3xl"], main h2[class*="text-3xl"]{
  color:var(--n-900) !important;
  font-weight:650;
  letter-spacing:-.022em;
}
main h2[class*="text-xl"], main h3[class*="text-lg"]{
  color:var(--n-900) !important;
  letter-spacing:-.018em;
}
/* O subtítulo entre parênteses que acompanha vários títulos. */
main h1 span[class*="text-sm"], main h2 span[class*="text-sm"]{
  color:var(--n-500) !important;
  font-weight:450;
}

/* Rótulo de bloco dentro de um cartão: vira etiqueta, não manchete. */
.aghtml .neg-bloco > .rot, .aghtml .rot{
  font-size:.7rem; font-weight:650; letter-spacing:.07em;
  text-transform:uppercase; color:var(--n-500);
}

/* ══ Lançar dinheiro ══════════════════════════════════════════
   O que tirou o ar de faixa publicitária foi o fundo branco e a cor
   SÓ no ícone, não a largura. Largura cheia, metade do cartão para
   cada botão: com um teto estreito os dois encolhem num canto e a
   ação principal parece escondida, que foi exatamente a queixa do
   Rodrigo em 12/09/2026 e que eu reintroduzi sem querer ao
   redesenhar por fora. Registro para não acontecer uma terceira vez.

   Os dois têm o mesmo peso de propósito: entrar e sair dinheiro são
   igualmente frequentes, e eleger um como primário criaria uma
   hierarquia que não existe. O rótulo em texto carrega o sentido
   sozinho, sem depender de distinguir verde de vermelho. */
.cta-lancar .cta-titulo{
  font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:var(--n-500); margin:0 0 10px;
}
.cta-lancar .cta-acoes{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
/* Variante de uma ação só (Registrar operação, em Operação): entrar e
   sair dinheiro são um par simétrico, registrar operação não é —
   um botão largo, sem a metade vazia que sobraria numa grade de 2. */
.cta-lancar .cta-acoes.cta-uma{grid-template-columns:1fr;}
/* Conteúdo centrado: em largura cheia, rótulo encostado à esquerda
   deixaria metade do botão vazia. */
.cta-btn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  min-height:48px; padding:0 14px;
  background:var(--n-0); border:1px solid var(--n-300); border-radius:var(--r-ctl);
  color:var(--n-900); font-size:15px; font-weight:600; letter-spacing:-.005em;
  cursor:pointer; box-shadow:var(--sh-1);
  transition:background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.cta-btn:hover{background:var(--n-50); border-color:var(--n-500); box-shadow:var(--sh-2);}
.cta-btn:active{background:var(--n-100);}
.cta-btn .ico{width:26px; height:26px; flex:none; border-radius:7px; display:grid; place-items:center;}
.cta-btn .ico svg{width:15px; height:15px; fill:none;}
/* A seta da visão Simples carrega cor e espessura como atributo no
   próprio <path>; regra de CSS vence atributo de apresentação, então
   é aqui que os dois cartões ficam idênticos. */
.cta-btn .ico svg path{stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.cta-btn--entrada .ico{background:#e8f2e9; color:var(--pos);}
.cta-btn--saida .ico{background:#fbeae9; color:var(--neg);}
/* No celular a dupla empilha: dois botões lado a lado numa tela
   estreita cortariam o rótulo. */
@media (max-width:520px){ .cta-lancar .cta-acoes{grid-template-columns:1fr;} }

/* Cabeçalho de cartão em quase preto. O verde fica para a AÇÃO (botão,
   link, selo) e para o SINAL (valor positivo); usá-lo também em todo
   título fazia dez manchetes verdes disputarem a mesma tela, e era
   isso que dava a impressão de sistema antigo. Vale para os dois
   sistemas de marcação que convivem no app: o .aghtml e o Tailwind
   das seções mais novas. */
.aghtml .card .head{color:var(--n-900);}
main .card > p:first-child[class*="text-verde-lavoura"],
main .card > h3:first-child[class*="text-verde-lavoura"],
main .card > h4:first-child[class*="text-verde-lavoura"],
main .card > div:first-child > p:first-child[class*="font-bold"][class*="text-verde-lavoura"]{
  color:var(--n-900) !important;
}

/* Barra de ações de um cartão (Tabela, Calendário, + Novo e afins):
   controles pequenos e de mesmo peso, em vez de pílulas verdes
   cheias competindo com o conteúdo do cartão. */
.aghtml .card .head button,
main .card .head button{font-weight:550;}

/* Faixa de indicadores: o número manda, o rótulo serve. */
.aghtml .kpi .lbl{
  font-size:.7rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
}
.aghtml .kpi .val{font-weight:650;}

/* Cartão de aviso (Caixa de Entrada e afins): a borda âmbar de 2px
   gritava mais que o texto. Fio fino e fundo de palha. */
main [style*="border:2px solid var(--dourado"],
main [style*="border: 2px solid var(--dourado"]{
  border-width:1px !important;
  background:#fdfaf1;
}

/* O padrão real de cabeçalho das seções em Tailwind: um <p> ou <span>
   pequeno, semibold, verde, dentro da linha de topo do cartão. A
   regra é estreita de propósito (só text-sm e text-base), porque
   VALOR costuma vir grande (text-lg para cima) e precisa manter a
   cor: verde é sinal de dinheiro positivo, e apagar isso seria
   perder informação em nome de estética. */
main p[class*="text-sm"][class*="text-verde-lavoura"],
main span[class*="text-sm"][class*="text-verde-lavoura"],
main p[class*="text-base"][class*="text-verde-lavoura"],
main span[class*="text-base"][class*="text-verde-lavoura"],
main h3[class*="text-verde-lavoura"],
main h4[class*="text-verde-lavoura"]{
  color:var(--n-900) !important;
}
/* Exceção da exceção: dentro de botão e link o verde é a AÇÃO. */
main button p[class*="text-verde-lavoura"],
main button span[class*="text-verde-lavoura"],
main a[class*="text-verde-lavoura"] span,
main a p[class*="text-verde-lavoura"]{color:inherit !important;}

/* Ícone de ação dentro de botão de tabela (editar, apagar): traço,
   no lugar do emoji, que variava de desenho e de tamanho conforme o
   sistema operacional de quem abria a tela. */
.ic-acao{width:14px; height:14px; display:block;}
main button > .ic-acao{margin:0 auto;}
/* Ícone de linha de lista (pessoa, cargo): mesmo traço do menu. */
.ic-linha{width:16px; height:16px; display:block; color:var(--n-500);}

/* Cartão de destaque: o realce vem do fundo, não de uma moldura de
   2px. A moldura grossa é o recurso de quem não tem escala de
   elevação; aqui existe uma. */
main .card[style*="border:2px solid var(--verde"],
main .card[style*="border: 2px solid var(--verde"]{
  border:1px solid #cfe0cd !important;
  background:#f6faf5;
}
main hr[class*="border-2"][class*="border-verde"]{
  border-top-width:1px !important;
  border-color:var(--n-200) !important;
}
main button[class*="border-2"][class*="border-verde"]{
  border-width:1px !important;
}

/* ══ Cor como sinal, não como fundo ═══════════════════════════
   Bloco preenchido e saturado grita antes do produtor ler o rótulo,
   e quando a tela tem cinco deles nenhum grita mais. A cor passa
   para o ÍCONE, que é onde ela informa. O CTA de lançar dinheiro
   está logo acima; o que segue é o resto da mesma regra. */

/* Dourado cheio: era o fundo mais destoante da paleta, e marcava
   ação SECUNDÁRIA (simular aporte, simular crédito). Vira contorno
   neutro; o dourado fica para o selo e para o gráfico, onde é dado. */
main button[class*="bg-dourado-soja"],
main a[class*="bg-dourado-soja"]{
  background:var(--n-0) !important;
  color:var(--n-900) !important;
  border:1px solid var(--n-200) !important;
  box-shadow:var(--sh-1);
  font-weight:600;
}
main button[class*="bg-dourado-soja"]:hover,
main a[class*="bg-dourado-soja"]:hover{
  background:var(--n-50) !important; border-color:var(--n-300) !important;
  filter:none;
}

/* Controle segmentado: escolha de visão do mesmo dado. Trilho
   neutro, opção ativa em branco elevado. Preencher de verde a opção
   ativa fazia uma ESCOLHA parecer uma AÇÃO em curso. */
.segmentado{
  display:inline-flex; gap:2px; padding:2px;
  background:var(--n-100); border-radius:calc(var(--r-ctl) + 2px);
}
.segmentado button{
  border:0; background:transparent; cursor:pointer;
  padding:5px 12px; border-radius:var(--r-ctl);
  font-size:.78rem; font-weight:600; color:var(--n-500);
  transition:background .15s ease, color .15s ease;
}
.segmentado button:hover{color:var(--n-700);}
.segmentado button.ativo{
  background:var(--n-0); color:var(--n-900); box-shadow:var(--sh-1);
}

/* ══ Barra de ações ao lado das abas de atividade (Operação) ═══
   As abas em si voltaram a ser pílula com borda (estilo oficial do
   sistema inteiro, 16/09/2026 — revertendo o sublinhado de
   13/09/2026 a pedido explícito, para não haver mais de um estilo
   de aba no app); .abas-sep/.abas-acoes seguem valendo, são só o
   separador e os botões de + Atividade/− Atividade ao lado. */
.abas-sep{width:1px; height:18px; background:var(--n-200); margin:0 10px; display:inline-block;}
/* + Atividade e − Atividade: logo depois do seletor de Período, na
   mesma altura dele, com a moldura de sempre (07/10/2026, pedido do
   Rodrigo: o estilo antigo era o certo; o que estava ruim era o lugar,
   sozinhos numa linha e encostados na ponta direita). */
.abas-acoes{display:inline-flex; align-items:center; gap:6px; margin-left:8px; padding-left:12px; border-left:1px solid var(--n-200);}
.abas-acoes button{
  border:1px solid var(--n-200); background:var(--n-0); border-radius:var(--r-ctl);
  min-height:34px; padding:0 12px; font-size:.8rem; font-weight:600; color:var(--n-700); cursor:pointer;
}
.abas-acoes button:hover{background:var(--n-50); border-color:var(--n-300);}
.abas-acoes .acao-remover{color:var(--neg);}
.abas-acoes .acao-remover:hover{background:#fdeceb; border-color:#f0c8c5;}

/* Botão que ocupava a largura inteira do cartão para dizer uma coisa
   só: vira botão de tamanho de botão. Largura cheia é para campo de
   formulário, não para ação. */
main button[class*="w-full"][class*="py-3"]:not(.cta-btn){
  width:auto !important; min-width:200px;
  display:inline-flex; align-items:center; justify-content:center;
}

@media (max-width:640px){
  .abas-acoes{margin-left:0; padding-left:0; border-left:0;} .abas-acoes button{min-height:44px;}
  main button[class*="w-full"][class*="py-3"]{width:100% !important;}
}

/* ══ Links de ação em texto ("underline" cru) ═══════════════════
   Cerca de 30 chamadas em 15 arquivos montam uma ação secundária
   (abrir uma aba, ir para outra tela, limpar filtro, "de onde vem
   esse custo") como <button>/<a> só com a utilidade "underline",
   sem mais nada — metade delas nem tem font-semibold. O resultado é
   sublinhado permanente em peso normal, a cara de link não visitado
   dos anos 2000, bem diferente do padrão que o resto do Visual 2026
   já estabeleceu (pílula com borda, ícone tingido, cor só como
   sinal). Regra única por atributo, no molde de "bg-dourado-soja"/
   "border-verde-lavoura" acima: cobre as ~30 chamadas de uma vez,
   sem editar arquivo nenhum. O sublinhado sai do repouso — a cor
   (verde de ação, vermelho quando é destrutivo) já avisa que é
   clicável — e só volta no hover/foco, como affordance. Quem já usa
   "hover:underline" (Remover, em vermelho) segue a mesma ideia
   desde antes e fica de fora, intacto. */
main button[class*="underline"]:not([class*="hover:underline"]),
main a[class*="underline"]:not([class*="hover:underline"]){
  text-decoration:none;
  font-weight:600;
  cursor:pointer;
}
main button[class*="underline"]:not([class*="hover:underline"]):hover,
main a[class*="underline"]:not([class*="hover:underline"]):hover{
  text-decoration:underline;
  text-underline-offset:2px;
}

/* .chip-filtro removida em 16/09/2026: virou a mesma pílula pequena
   de _barraSubAbas (operacao.js), estilo Tailwind puro, sem CSS
   próprio — um 3º estilo de "aba" que ninguém tinha pedido. */

/* ── Controle de período de cada tela (js/periodo.tela.js, 30/09/2026) ──
   Substitui o seletor global que ficava no topo. Alvo de 44 px e
   fonte de 16 px (evita o zoom automático do iOS). */
.per-tela{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--n-500);}
.per-tela-rotulo{font-weight:500;}
.per-tela-select{min-height:44px;font-size:16px;font-weight:600;color:var(--n-900);border:1px solid var(--n-300);
  border-radius:var(--r-ctl);background-color:#fff;padding:0 30px 0 10px;}
.per-tela-aviso{background:#fff8e1;border:1px solid #e0c46a;color:#5c4a0d;border-radius:var(--r-ctl);padding:10px 12px;margin:0 0 14px;font-size:14px;}
@media (max-width:640px){
  .per-tela{width:100%;}
  .per-tela-select{flex:1 1 auto;min-width:0;}
}
