/* © 2026 Jose Carvalho. Intel Ceasa. Ver LICENSE. */
/* r38 (27/09/2026): todo `font-size` abaixo de 11px nesta folha subiu para 11px (piso de letra da regua da
   Apple, ordem do Carvalho de 26/09 15:25); nos `clamp()` subiu so o minimo. Ver o bloco "A REGUA DA APPLE NO
   COMPUTADOR" no fim de avarias.css. */
/* ============================================================
   CONTA CORRENTE DE DEVOLUCOES E RECUPERACOES, no celular (tarefa b32). So o que esta tela usa e
   que nao existe em avarias.css nem em avarias-celular.css: os quatro cartoes de numero do topo,
   os tres filtros em caixa propria, o alternador Valor/Volume, a tabela de nove colunas com duas
   colunas fixas ao rolar, o cabecalho da janela de detalhe e os tres cartoes de resumo dela.

   O QUE NAO ESTA AQUI, DE PROPOSITO, PORQUE JA EXISTE: `.av-painel`, `.av-tabela`/`.av-tabela-caixa`
   (cabecalho grudado e rolagem lateral prontos), `.av-periodo`, `.av-abas`/`.av-aba`,
   `.av-chip-tipo` (as tres cores de Bonificacao/Desconto/Verba, ja amostradas da tela de
   computador desta MESMA conta corrente), `.av-vazio`, `.av-painel-apoio`, `destaque-verde`, e as
   classes `avc-*` da casca partilhada (avarias-celular.css). Procurei cada uma antes de escrever
   regra nova (secao 2.1 do contrato); reescrever qualquer uma delas aqui seria a segunda copia da
   mesma regra, que e como elas divergem com o tempo.

   DE ONDE VEM CADA COR NOVA: scratchpad/avarias-extracao-mobile-conta-corrente.md, secao 3, tirada
   por contagem de pixel da fotografia desta tela. NAO sao os tokens `--avarias-*` do arquivo
   principal (esses vem das TRES fotos de computador); sao proprios desta tela, porque foram
   medidos numa foto diferente. Igual a avarias-celular.css ja explica para o topo/faixa/base: sao
   IDENTIDADE (a cor de um cartao "Saldo a Recuperar", pessego claro, e uma escolha do desenho, nao
   um efeito de tema), e por isso NAO trocam com o modo escuro do painel -- so o texto e as bordas
   dos elementos que eu de fato construo do zero (filtro, alternador) seguem o tema, porque esses
   sim sao superficie neutra, nao marca.
   ============================================================ */

/* ============================================================
   UM DEFEITO ACHADO NA CASCA, CONSERTADO SO PELO LADO DE FORA (nao edito avarias-celular-casca.js
   nem avarias-celular.css nesta rodada; escrito no relatorio tambem).

   `faixaTitulo()` poe icone + titulo + caixa de periodo numa UNICA linha flexivel, e a caixa de
   periodo (dois `<input type=date>`) NAO ENCOLHE (o proprio CSS da casca marca o ultimo filho
   `flex: none`). O titulo desta tela e o mais comprido dos quatro que usam periodo ("Conta
   Corrente de Devoluções e Recuperações", 44 caracteres): MEDIDO no palco desta tarefa a 390px, a
   coluna do titulo sobrava com 22px de largura (a caixa de periodo sozinha toma 290px dos 386px
   uteis), e o texto do titulo TRANSBORDAVA por cima da caixa de periodo -- nao um erro de cor, uma
   sobreposicao de verdade, dois textos ilegiveis um em cima do outro.
   O CONSERTO, sem tocar na casca: `flex-wrap` na PROPRIA faixa (a classe e generica,
   `.avc-faixa-titulo`, mas esta regra so vale DENTRO desta tela por causa do seletor
   `[data-tela=...]`) deixa a caixa de periodo cair para a linha de baixo quando nao cabe do lado
   do titulo -- o mesmo principio da secao 9 do contrato ("o par so empilha abaixo da largura em
   que ele para de ser legivel"), so que entre titulo e periodo em vez de duas colunas de grafico. */
[data-tela="avarias-celular-conta-corrente"] .avc-faixa-titulo {
  flex-wrap: wrap;
  row-gap: 10px;
}
[data-tela="avarias-celular-conta-corrente"] .avc-faixa-titulo-texto {
  min-width: 170px; /* medido: da folga para o titulo respirar antes de decidir empilhar o periodo */
}
/* Quando o periodo cai para a linha de baixo, ele fica LARGURA CHEIA (nunca colado na ponta
   esquerda, sozinho): mais facil de tocar, e e como o resto desta tela trata controle empilhado. */
[data-tela="avarias-celular-conta-corrente"] .avc-faixa-titulo > .av-periodo {
  flex-basis: 100%;
}

[data-tela="avarias-celular-conta-corrente"] {
  /* Os quatro cartoes do topo: fundo claro + circulo do icone, um par por `tom`
     (negativo/positivo/alerta). Cartoes 2 e 3 tem o MESMO `tom` ("positivo") nos dados, e a ficha
     mediu fundos quase identicos entre eles (#f1f8e1 e #f3f9e4) e icones da "mesma familia"
     (#476403 e #3f5903) -- por isso um par so de variaveis cobre os dois, em vez de inventar uma
     quarta variante para uma diferenca que a propria ficha chama de ruido de JPEG. */
  --acc-kpi-bg-negativo: #fceeee;
  --acc-kpi-icone-negativo: #911424;
  --acc-kpi-bg-positivo: #f1f8e1;
  --acc-kpi-icone-positivo: #476403;
  --acc-kpi-bg-alerta: #fbebde;
  --acc-kpi-icone-alerta: #ae4321;
  /* A pilula ativa do alternador e das abas do detalhe: o mesmo verde quase preto do cartao de
     titulo desta tela (`#243301`, ver avarias-celular.css), repetido aqui porque este arquivo nao
     importa variavel de outro -- CSS nao tem import de token entre arquivos sem duplicar o valor. */
  --acc-pilula-ativa: #243301;
}

/* ============================================================
   OS QUATRO CARTOES DO TOPO (bloco 3 do desenho)
   ============================================================ */
.avcc-kpis {
  display: grid;
  gap: 10px;
  /* DOIS POR LINHA NO CELULAR, quatro quando o recipiente permitir (tablet, ou a mesma tela dentro
     de um contexto mais largo): 4 colunas de 150px exigem ~636px so de cartao, que nenhum iPhone
     entrega. `auto-fit`/`minmax` decide pela LARGURA DE VERDADE, nunca por um numero de tela
     chutado -- a mesma logica da secao 9 do contrato, so que aplicada a cartoes de numero em vez
     de par de grafico. */
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  padding: 12px 16px 4px;
}
.avcc-kpi {
  align-items: center;
  background: var(--acc-kpi-bg-positivo);
  border-radius: 12px; /* medido: ~12px nos cartoes de numero, secao 4 da ficha */
  display: flex;
  gap: 10px;
  min-width: 0;
  padding: 12px;
}
.avcc-kpi--negativo {
  background: var(--acc-kpi-bg-negativo);
}
.avcc-kpi--alerta {
  background: var(--acc-kpi-bg-alerta);
}
.avcc-kpi-icone {
  align-items: center;
  background: var(--acc-kpi-icone-positivo);
  border-radius: 50%;
  color: #fff;
  display: flex;
  flex: none;
  height: 34px;
  justify-content: center;
  width: 34px;
}
.avcc-kpi--negativo .avcc-kpi-icone {
  background: var(--acc-kpi-icone-negativo);
}
.avcc-kpi--alerta .avcc-kpi-icone {
  background: var(--acc-kpi-icone-alerta);
}
.avcc-kpi-icone svg {
  height: 18px;
  width: 18px;
}
/* `min-width: 0` E OBRIGATORIO AQUI: `.avcc-kpi-corpo` e o SEGUNDO filho de um `display: flex`
   (`.avcc-kpi`), e todo item flexivel nasce com `min-width: auto` -- "nunca menor que a palavra
   mais comprida dentro dele" (a mesma armadilha que `.hbarra-rotulo`, em avarias.css, ja documenta
   pelo nome). Sem isto, o rotulo "% Recuperação (Valor)" empurrava o cartao inteiro para fora da
   coluna de 150px do grid, e a pagina ganhava rolagem lateral -- MEDIDO no palco desta tarefa. */
.avcc-kpi-corpo {
  display: grid;
  gap: 2px;
  min-width: 0;
}
/* SEM `nowrap`/ellipsis: MEDIDO no palco desta tarefa que "% Recuperação (Valor)" (o rotulo mais
   comprido dos quatro) cortava em "% Recuperação (…" numa coluna de 150px -- e o rotulo de um
   cartao e informacao, nao decoracao; escondendo a metade dele com reticencias, so sobrava a
   metade que menos importa. Deixar quebrar linha custa uma segunda linha de altura no cartao (o
   grid do cartao ja acomoda isso sozinho) e nunca esconde palavra nenhuma.
   COR FIXA, NUNCA `var(--avarias-texto)`: esse token troca para quase-branco (#ecf0e4) no tema
   escuro do painel, PARA CONTRASTAR COM O FUNDO ESCURO DAS TELAS DE COMPUTADOR -- mas o fundo
   deste cartao e uma identidade fixa (o rosa/menta/pessego da propria ficha, nunca escurece, ver o
   comentario do topo do arquivo). MEDIDO no palco desta tarefa: com a variavel, o rotulo virava
   quase-branco sobre um fundo quase-branco no tema escuro, contraste ~1:1, texto invisivel -- o
   MESMO defeito que o comentario de avarias.css (dark-theme, "1,07:1, texto invisivel") ja
   registra ter acontecido uma vez neste projeto; aqui aconteceu de novo, num cartao novo. */
.avcc-kpi-rotulo {
  color: #1b230b;
  font-size: clamp(11px, 3.2vw, 12px);
  font-weight: 600;
}
/* PRETO PURO, e nao `--avarias-texto` (um verde bem escuro): a ficha mediu especificamente `#000`
   nos valores destes cartoes, diferente do navy/verde que o resto da tela usa -- e como sao
   cartoes de fundo claro (nunca escuro, nunca trocando com o tema, ver o comentario do topo do
   arquivo), o contraste continua alto nos dois temas do painel. */
.avcc-kpi-valor {
  color: #000;
  font-size: clamp(14px, 4.6vw, 17px);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.avcc-kpi-secundario {
  color: #000;
  font-size: clamp(12px, 3.8vw, 14px);
  font-weight: 700;
}
/* Cor fixa, mesma razao de `.avcc-kpi-rotulo` acima: este texto vive no MESMO cartao de fundo
   fixo, e `var(--avarias-texto)` o apagaria no tema escuro do painel. */
.avcc-kpi-meta {
  color: #1b230b;
  font-size: clamp(11px, 3.4vw, 12px);
  font-weight: 600;
}
/* A LINHA "vs. mes anterior" DO CHIP DE VARIACAO, ACHADA POR UM CRITICO A 1,48:1 DE CONTRASTE (o
   minimo AA para texto de 11px e 4,5:1) -- PRATICAMENTE INVISIVEL, nos dois temas do painel, nos
   tres cartoes que tem chip de variacao. A causa e a MESMA dos quatro consertos acima
   (`.avcc-kpi-rotulo/-valor/-secundario/-meta`), so que faltou fazer no chip: `chipDeVariacao()`
   (grafico.js) poe essa linha em `.chip-base`, e esta folha nao tinha NENHUMA regra para
   `.chip-base` -- entao vale `avarias.css:162` (`color: var(--avarias-apoio-na-faixa)`), escrita
   para o cartao ESCURO do computador (`.av-kpi`), nunca para um cartao de fundo CLARO FIXO como o
   meu. Mesmo remendo: cor fixa, nunca a variavel que troca para quase-branco no escuro. As tres
   telas irmas desta rodada (avarias-celular-devolucoes.css, -inicio.css, -promotor.css) ja tem o
   mesmo remendo para o mesmo defeito nos cartoes delas. */
.avcc-kpi .chip-base {
  color: #1b230b;
}
/* O NUMERO DO CHIP ("12,3%") TINHA O MESMO DEFEITO DA LINHA DE APOIO ACIMA, so que a causa nao
   era falta de regra: `avarias.css` ja escreve `.chip-variacao.ruim{color:var(--avarias-vermelho)}`
   / `.bom{color:var(--avarias-verde-alta)}`, mas `assets/css/fdv-atacado-pedido.css` (outro
   modulo, nao meu nesta rodada) declara um `.chip-variacao.ruim`/`.bom` PROPRIO, MESMA
   especificidade (duas classes), carregado DEPOIS -- e aponta para `--fdv-vermelho`/
   `--fdv-verde-alta`, que so existem dentro de `.tela-fdv`. Um `var()` que nao resolve invalida a
   declaracao inteira, e `color` cai para o herdado (o texto quase-branco do tema escuro do
   painel) sobre o fundo claro fixo do cartao -- medido pelo portao de tema escuro. Escopado por
   `data-tela` (tres selecionadores) pra vencer a colisao sem mexer no arquivo do outro modulo. */
[data-tela="avarias-celular-conta-corrente"] .chip-variacao.ruim {
  color: var(--avarias-vermelho-texto);
}
[data-tela="avarias-celular-conta-corrente"] .chip-variacao.bom {
  color: var(--avarias-verde-texto);
}

/* ============================================================
   OS TRES FILTROS (bloco 4): caixa propria com icone + rotulo/valor em duas linhas + chevron.
   `.av-filtro` (herdada) nao serve de base aqui porque naquela classe o rotulo fica FORA da caixa
   do <select> (duas pecas separadas); a foto desta tela mostra as DUAS dentro da MESMA moldura.
   ============================================================ */
.avcc-filtros {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
  padding: 4px 16px 12px;
}
.avcc-filtro,
.avcc-filtro-botao {
  align-items: center;
  background: var(--avarias-cartao);
  border: 1px solid var(--avarias-borda);
  border-radius: 8px;
  color: var(--avarias-texto);
  cursor: pointer;
  display: flex;
  font-family: inherit;
  gap: 8px;
  min-height: 44px; /* piso da Apple HIG e do WCAG 2.2 AA para alvo de toque (fonte completa no comentario de .avc-topo-botao, avarias-celular.css); ja estava certo, so o comentario antigo tinha ficado com o numero desatualizado */
  /* `min-width: 0`, SENAO A GRADE ESTOURA (achado do portao `testar-telas-contra-cenarios.mjs`,
     19/09/2026, cenario "gigante" a 390px): `.avcc-filtros` usa `grid-template-columns:
     repeat(auto-fit, minmax(104px, 1fr))`, mas item de grid tem `min-width: auto` por padrao, ou
     seja, o navegador nunca encolhe o item abaixo do MIN-CONTENT dele (icone + texto + padding)
     mesmo com `1fr` pedindo para encolher. Isso e diferente de flex-item (onde a mesma armadilha
     e resolvida em `.avcc-filtro-textos`, ao lado -- aquele `min-width: 0` protege o FILHO
     flexivel de DENTRO da caixa, nunca a caixa em si, que e o item de grid). Sem este `min-width:
     0` aqui, a fileira inteira de filtros (4 caixas) forcava mais largura do que a tela tinha,
     e a pagina inteira rolava de lado -- um defeito que sempre existiu, so nenhuma bateria antiga
     testava com dado "gigante" para revelar. */
  min-width: 0;
  padding: 6px 8px;
}
.avcc-filtro svg,
.avcc-filtro-botao svg {
  color: var(--avarias-botao-linha);
  flex: none;
  height: 18px;
  width: 18px;
}
.avcc-filtro-textos {
  display: grid;
  flex: 1 1 0%; /* o filho flexivel que deve encolher primeiro, nunca o icone ou o chevron; base 0% (nao "auto") para o navegador nao voltar a respeitar o min-content do texto por dentro (achado do portao `testar-telas-contra-cenarios.mjs`, 19/09/2026, cenario "gigante": ver `grid-template-columns` abaixo) */
  gap: 1px;
  /* UMA COLUNA DE GRID IMPLICITA (sem isto) E "auto", e "auto" RESPEITA o min-content do filho
     por baixo -- a MESMA armadilha que `min-width: 0` resolve em flex, so que em grid o alvo
     certo e o TRACK, nao so o item. Sem esta linha, um rotulo de filtro muito comprido (que a
     integracao do Zama pode mandar; a UI nao controla o tamanho do texto que outro filtro
     recebe) empurrava a pilula inteira para fora da tela, mesmo com `min-width: 0` em toda a
     cadeia de pais -- medido no cenario "gigante" do portao, 390px, texto "SUPERMERCADO..." */
  grid-template-columns: minmax(0, 1fr);
  min-width: 0; /* mesma armadilha do flexbox de `.avcc-kpi-corpo`, ver o comentario ali */
}
.avcc-filtro-rotulo,
.avcc-filtro-rotulo-unico {
  color: var(--avarias-texto);
  font-size: 11px;
  font-weight: 600;
  opacity: 0.75;
}
/* SEM `nowrap`/ellipsis, mesma razao do rotulo do cartao acima: "Mais filtros" cortava em
   "Mais fil…" numa coluna de ~104px, escondendo metade da propria palavra do botao.
   `flex: 1 1 0%` (nao "auto") + `min-width: 0` + `overflow-wrap: anywhere`: mesmo achado do
   portao `testar-telas-contra-cenarios.mjs` que o comentario de `.avcc-filtro-textos` explica --
   "Mais filtros" (duas palavras curtas) so precisa do `min-width: 0` para poder encolher e
   quebrar na propria dobra; um rotulo muito mais comprido, com uma palavra sem espaco no meio
   (o Zama pode mandar qualquer texto aqui), precisa tambem de `overflow-wrap: anywhere` para
   quebrar DENTRO da palavra quando nao ha outra saida, em vez de estourar a pilula para fora
   da tela. */
.avcc-filtro-rotulo-unico {
  flex: 1 1 0%;
  min-width: 0;
  overflow-wrap: anywhere;
  opacity: 1;
}
/* O <SELECT> DE VERDADE, DESPIDO DA PROPRIA MOLDURA: quem desenha a caixa e o `.avcc-filtro` ao
   redor; o controle nativo continua por baixo, focavel, navegavel por teclado e lendo as MESMAS
   `<option>` de sempre -- so sem borda e sem fundo proprios, para nao desenhar caixa dentro de
   caixa. `font-size: 16px` NUNCA pode descer (regra 4 do portao: input/select abaixo de 16px leva
   o iOS a dar zoom sozinho ao focar), mesmo que a foto mostre um "valor" visualmente menor: aqui a
   regra de acessibilidade do portao vale mais do que o tamanho exato do pixel da foto. */
.avcc-filtro-select {
  appearance: none;
  background: transparent;
  border: 0;
  color: var(--avarias-texto);
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  max-width: 100%;
  /* 44px de largura no minimo (r38, 27/09/2026): a 360px a coluna do filtro deixava o campo com 40;
     e 28px de altura, o piso de clique do computador (tinha 24) */
  min-height: 28px;
  min-width: 44px;
  padding: 0;
  width: 100%;
}
.avcc-filtro-chevron {
  color: var(--avarias-texto);
  flex: none;
  height: 14px;
  opacity: 0.6;
  transform: rotate(90deg); /* "proximo" e um chevron para a direita; girado, aponta para baixo */
  width: 14px;
}
.avcc-filtro:focus-within,
.avcc-filtro-botao:focus-visible {
  outline: 2px solid var(--avarias-botao);
  outline-offset: 1px;
}

/* ============================================================
   O ALTERNADOR Valor (R$) / Volume (kg) (bloco 5, canto direito do cabecalho do painel)
   ============================================================ */
.avcc-alternador {
  background: var(--avarias-cabecalho-coluna);
  border-radius: 7px;
  display: flex;
  flex: none;
  gap: 2px;
  padding: 2px;
}
/* `min-height: 44px`, NUNCA MENOS: 44x44 e o piso da Apple Human Interface Guidelines e do WCAG
   2.2 (criterio 2.5.8, AA) para alvo de toque; o Android/Material Design pede 48x48, um degrau
   acima (fonte completa no comentario de `.avc-topo-botao`, avarias-celular.css). Os 30px de
   antes, e depois os 40px (um numero que so tinha "medido no iPhone 17 Pro Max" como fonte, sem
   citar regra nenhuma), reprovavam esse piso. Nao cresci via pseudo-elemento invisivel (a tecnica
   certa quando ha espaco vazio ao redor) porque as duas pilulas ficam coladas, a 2px uma da outra:
   uma area de toque invisivel que crescesse para fora colidiria com a pilula vizinha, e quem
   mirasse perto da borda acertaria a pilula errada. Aqui o crescimento e REAL, a unica opcao
   seguindo com dois controles adjacentes. */
.avcc-alternador-item {
  background: transparent;
  border: 0;
  border-radius: 5px;
  color: var(--avarias-texto);
  cursor: pointer;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  min-height: 44px;
  padding: 4px 9px;
  white-space: nowrap;
}
.avcc-alternador-item.ativo {
  background: var(--acc-pilula-ativa);
  color: #fff;
}
.avcc-alternador-item:focus-visible {
  outline: 2px solid var(--avarias-botao);
  outline-offset: 1px;
}

/* ============================================================
   A TABELA DE NOVE COLUNAS: duas fixas ao rolar de lado.

   TECNICA (secao 5 de scratchpad/avarias-tecnicas-graficos.md, que cita esta MESMA tabela como
   motivo de existir): `border-collapse: separate` E OBRIGATORIO para `position: sticky` nao
   quebrar borda de celula (a colisao entre os dois e uma issue aberta da propria especificacao do
   CSS, w3c/csswg-drafts#3136, sem solucao padronizada ainda). A caixa que rola e `.av-tabela-caixa`
   (herdada, `overflow-x: auto`); a tabela em si nunca ganha overflow proprio.
   Como `.av-tabela th/td` so declara `border-bottom` (nunca border-top/left/right), trocar de
   `collapse` para `separate` aqui NAO MUDA NADA visualmente nas linhas -- so destrava o sticky. */
.avcc-tabela-resumo,
.avcc-tabela-detalhe {
  border-collapse: separate;
  border-spacing: 0;
}
/* `.avcc-col-fixa` E A BASE COMPARTILHADA por TRES colunas diferentes: `#` e Fornecedor na tabela
   de resumo, e Data na tabela de detalhe -- cada uma delas a UNICA coluna fixa da tabela de
   detalhe, por isso ela usa so esta classe, sem `-1`/`-2`. `left: 0` aqui e o padrao correto para
   quem e a PRIMEIRA coluna fixa da propria tabela (Data e a coluna 1 na tabela de detalhe, exatamente
   como `#` e a coluna 1 na tabela de resumo); so a SEGUNDA coluna fixa (Fornecedor) precisa de um
   deslocamento diferente, abaixo. */
.avcc-col-fixa {
  background: var(--avarias-cartao);
  left: 0;
  position: sticky;
  z-index: 1;
}
/* NAO HA `width` FIXO na coluna `#`: MEDIDO nesta tarefa que, em `table-layout: auto` (que esta
   tabela precisa manter, por causa das outras sete colunas de largura variavel), um `width` na
   celula e so uma SUGESTAO que entra na negociacao do algoritmo de coluna -- o Chromium decidiu
   23px para uma sugestao de 36px, e a coluna 2 (Fornecedor), grudada nesse 36px que ninguem
   cumpriu, cobria as duas ultimas letras de "Comprador" com o proprio fundo opaco. A largura de
   verdade e MEDIDA em JavaScript depois do primeiro quadro pintado (`sincronizarColunaFixa`, no
   modulo desta tela) e escrita em `--acc-col1-largura`; aqui so se le a variavel, nunca um numero
   cravado. O `40px` do `var(..., 40px)` e so o valor do instante antes da primeira medicao. */
.avcc-col-fixa-2 {
  left: var(--acc-col1-largura, 40px);
}
/* O CANTO (cabecalho x coluna fixa) tem de vencer OS DOIS: o sticky vertical do `<thead>` e o
   sticky horizontal da coluna, entao o z-index dele fica acima dos dois. */
.av-tabela thead th.avcc-col-fixa {
  background: var(--avarias-cabecalho-coluna);
  z-index: 3;
}
/* A COLUNA EM DESTAQUE PELO ALTERNADOR: so o CABECALHO ganha o tingimento que a ficha mediu (ele
   nao desce para as linhas, e a propria ficha registra isso: "nao desce pelas linhas"); as linhas
   ganham so negrito, via `.avcc-negrito` em cada celula.
   O SELETOR PRECISA REPETIR `.av-tabela thead th`: MEDIDO que `.avcc-col-ativa` sozinha (uma
   classe so) tem especificidade MENOR que a regra partilhada `.av-tabela thead th` (duas
   marcacoes de elemento), entao o fundo dela nunca vencia -- a coluna "ativa" nunca ficou tingida,
   nem no tema claro nem no escuro, e nenhum erro no console avisou disso.
   `color-mix()` (nao um hexadecimal cravado) para o tingimento SEGUIR O TEMA sozinho: a ficha so
   mediu esta cor na foto CLARA, e travar o hexadecimal dela faria este cabecalho virar um remendo
   claro sobre fundo escuro no tema escuro do painel -- o mesmo defeito de contraste que
   `.avcc-kpi-rotulo`, acima, teve de corrigir, so que ao contrario (claro demais, nao invisivel).
   Misturar 35% de menta em CIMA da propria cor de cabecalho do tema resolve os dois lados: no
   claro fica perto do #eff4e2 medido, no escuro continua escuro, so um tom mais claro que os
   vizinhos -- a MESMA tecnica que `.av-tabela tbody tr:hover td` (avarias.css) ja usa. */
.av-tabela thead th.avcc-col-ativa {
  background: color-mix(in srgb, var(--avarias-cabecalho-coluna), #cddbac 35%);
}
/* O CABECALHO DE COLUNA INTEIRO E O BOTAO DE ORDENAR, nao so o chevron: MEDIDO no painel de
   verdade que o botao, do jeito que estava (`padding: 0`, so a altura da propria linha de texto),
   tinha 16px de alvo de toque, bem abaixo do minimo. `width: 100%` + `min-height: 40px` fazem o
   BOTAO ocupar a celula inteira (que ja tem `<th>` como container), entao a area de toque vira a
   celula toda, de graca, sem esticar nada por fora do proprio layout.
   ESTE BOTAO FICA EM 40px, NAO SOBE PARA 44 (o resto do arquivo sobe, ver `.avcc-abrir` e
   `.avcc-voltar` abaixo): o portao de celular (scripts/medir-tela-comum.mjs) so cobra 44x44 em
   botao de ACAO; cabecalho de coluna de tabela ordenavel segue outra regra (24px, o piso do WCAG
   2.2 para controle dentro de `thead`), e 40px ja folga bem acima dela. Nao ha necessidade nem
   ganho em esticar ainda mais uma linha de cabecalho que ja cabe justo ao lado de outras colunas.
   O `aria-sort` continua no `<th>` (correto: e um atributo de celula, nunca de botao). */
.avcc-botao-ordenar {
  align-items: center;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: flex;
  font: inherit;
  font-weight: 700;
  gap: 4px;
  justify-content: center;
  min-height: 40px;
  padding: 4px;
  width: 100%;
}
.avcc-botao-ordenar svg {
  height: 12px;
  width: 12px;
}
/* O FOCO DO CABECALHO ORDENAVEL (r128, 09/10/2026): sem regra propria ele herdava o anel geral do painel, que sobre o
   tingimento da coluna ativa dava 2,95:1 (scripts/testar-regua-apple.mjs, R4c, abaixo do minimo de 3:1). O anel e a cor
   do proprio texto do cabecalho (`currentColor`), que ja passa de 4,5:1 sobre o tingimento nos dois temas; o verde dos
   outros botoes (`--avarias-botao`) nao serve aqui porque nao muda no escuro, e o cabecalho escurece. Por dentro da
   celula, porque a tabela corta o que sai dela. */
.avcc-botao-ordenar:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -2px;
}
.avcc-negrito {
  color: var(--avarias-texto);
  font-weight: 800;
}
/* O CHEVRON QUE ABRE O DETALHE (coluna Acoes): botao redondo, sem moldura, alvo de toque de 44px
   mesmo com o desenho do icone sendo bem menor -- 44x44 e o piso da Apple HIG e do WCAG 2.2 AA
   para alvo de toque (fonte completa no comentario de `.avc-topo-botao`, avarias-celular.css); a
   MESMA regra que `.avc-painel-atalho` ja usa la, so que esta tela nao pode importar aquela classe
   (e privada ao modulo dela). */
.avcc-abrir {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: var(--avarias-botao-linha);
  cursor: pointer;
  display: inline-flex;
  height: 44px;
  justify-content: center;
  width: 44px;
}
.avcc-abrir:hover {
  background: var(--avarias-cabecalho-coluna);
}
.avcc-abrir:focus-visible {
  outline: 2px solid var(--avarias-botao);
  outline-offset: 1px;
}
.avcc-abrir svg {
  height: 16px;
  width: 16px;
}

/* ============================================================
   A JANELA DE DETALHE (blocos 6 e 7)
   ============================================================ */
.avcc-detalhe-cabeca {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
}
/* 44x44, o mesmo piso de toque do resto do arquivo (ver o comentario de `.avcc-abrir`, acima). */
.avcc-voltar {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: var(--avarias-texto);
  cursor: pointer;
  display: inline-flex;
  flex: none;
  height: 44px;
  justify-content: center;
  width: 44px;
}
.avcc-voltar:hover {
  background: var(--avarias-cabecalho-coluna);
}
.avcc-voltar:focus-visible {
  outline: 2px solid var(--avarias-botao);
  outline-offset: 1px;
}
.avcc-detalhe-cabeca h2 {
  flex: 1 1 auto;
  font-size: clamp(13px, 3.8vw, 15px);
  font-weight: 700;
  margin: 0;
  min-width: 0;
}
.avcc-detalhe-comprador {
  color: var(--muted-foreground);
  flex: none;
  font-size: 12px;
  font-weight: 600;
}

/* Acao de documento na tabela de detalhe: link simples (icone + texto, sem moldura) para
   Bonificacao/Desconto, e com moldura visivel SO para "Abrir Comprovante" (verba financeira) --
   a unica diferenca que a ficha mediu entre as tres, conferida a 6x de zoom.
   `min-height: 44px`: e um botao de ACAO dentro de uma linha de CORPO de tabela (nao cabecalho,
   que segue outra regra -- ver `.avcc-botao-ordenar`, acima), e 44x44 e o piso da Apple HIG e do
   WCAG 2.2 AA para alvo de toque (fonte completa no comentario de `.avc-topo-botao`,
   avarias-celular.css). O link mora dentro de uma linha de tabela, entao crescer o PROPRIO alvo
   ate 44px cresce a linha inteira junto -- o mesmo caminho que a tela de Por Produto ja usa para o
   mesmo tipo de link. */
.avcc-acao-doc {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--avarias-botao-linha);
  cursor: pointer;
  display: inline-flex;
  font-family: inherit;
  font-size: clamp(11px, 0.85vw, 12px);
  font-weight: 600;
  gap: 5px;
  min-height: 44px;
  padding: 4px 2px;
  white-space: nowrap;
}
.avcc-acao-doc.comprovante {
  background: var(--avarias-cartao);
  border: 1px solid var(--avarias-botao-linha);
  border-radius: 6px;
  padding: 4px 10px;
}
/* DEFEITO ACHADO PELO CRITICO, NA RAIZ DE UM ARQUIVO QUE NAO E MEU (avarias.css): a variavel
   `--avarias-botao-linha` (#3e5900, um verde escuro) NAO GANHA valor novo no bloco de tema escuro
   daquele arquivo -- ao contrario de `--avarias-texto` e companhia, que la SAO redefinidas.
   Medido: "Abrir DANFE"/"Abrir Nota"/"Abrir Comprovante" saem a 2,14:1 no escuro (cor #3e5900
   sobre o fundo escuro do painel, #181e0a), bem abaixo do minimo AA de 4,5:1.
   NAO EDITO avarias.css NESTA RODADA (nao e meu), entao o remendo mora aqui, escopado aos MEUS
   proprios elementos, do mesmo jeito que ja fiz para a sobreposicao de `.avc-faixa-titulo`
   (comentario no topo do arquivo) -- e reportado no relatorio para quem e dono daquele arquivo
   conferir se outros lugares que leem esta MESMA variavel tem o mesmo problema no escuro.
   `--avarias-verde-na-faixa` (#8cbb20) e a troca: e uma cor FIXA (identidade, nao redefinida no
   escuro por design, ver avarias.css) ja usada em toda esta casca para dar contraste EM CIMA DE
   FUNDO ESCURO (o anel de foco de `.avc-topo-botao`, por exemplo) -- entao ja e uma cor pensada
   para este exato problema, so que noutro lugar. O padrao de dois blocos (media query + atributo)
   e o MESMO que avarias.css usa para as suas proprias trocas de tema. */
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .avcc-acao-doc {
    color: var(--avarias-verde-na-faixa);
  }
  :root:not([data-tema="claro"]) .avcc-acao-doc.comprovante {
    border-color: var(--avarias-verde-na-faixa);
  }
}
:root[data-tema="escuro"] .avcc-acao-doc {
  color: var(--avarias-verde-na-faixa);
}
:root[data-tema="escuro"] .avcc-acao-doc.comprovante {
  border-color: var(--avarias-verde-na-faixa);
}
.avcc-acao-doc svg {
  flex: none;
  height: 14px;
  width: 14px;
}
.avcc-acao-doc:focus-visible {
  outline: 2px solid var(--avarias-botao);
  outline-offset: 1px;
}

/* Os tres cartoes de resumo do detalhe (bloco 7): mais simples que os do topo -- sem chip, icone
   em contorno (a propria cor do texto), exceto "Valor Total", que a ficha mediu com o MESMO icone
   solido verde do cartao "Total de Creditos" do topo. */
.avcc-resumo-detalhe {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  padding: 10px 0 0;
}
.avcc-resumo-cartao {
  align-items: center;
  display: flex;
  gap: 8px;
  min-width: 0;
}
/* A MESMA ARMADILHA DE `.avcc-kpi-corpo`, MEDIDA DE VERDADE DESTA VEZ: sem este `min-width: 0`, o
   rotulo "% do Total de Créditos" (o mais comprido dos tres) recusava encolher dentro da coluna de
   100px do grid, e a pagina inteira ganhava ~17px de rolagem lateral no palco de teste desta
   tarefa (390 contra 407px de largura real) -- a MESMA causa, so que aqui faltava o remendo. */
.avcc-resumo-textos {
  min-width: 0;
}
.avcc-resumo-icone {
  align-items: center;
  color: var(--avarias-botao-linha);
  display: flex;
  flex: none;
  height: 26px;
  justify-content: center;
  width: 26px;
}
.avcc-resumo-icone svg {
  height: 20px;
  width: 20px;
}
.avcc-resumo-cartao.com-circulo .avcc-resumo-icone {
  background: var(--acc-kpi-icone-positivo);
  border-radius: 50%;
  color: #fff;
}
.avcc-resumo-cartao.com-circulo .avcc-resumo-icone svg {
  height: 14px;
  width: 14px;
}
/* SEM `nowrap`/ellipsis, mesma razao dos outros dois rotulos desta tela: "% do Total de Créditos"
   e o mais comprido dos tres e cortava em "% do Total de Cr…" numa coluna de 100px. */
.avcc-resumo-rotulo {
  color: var(--muted-foreground);
  display: block;
  font-size: 11px;
  font-weight: 600;
}
.avcc-resumo-valor {
  color: var(--avarias-texto);
  display: block;
  font-size: clamp(12px, 3.6vw, 14px);
  font-weight: 800;
}

/* As abas do detalhe usam `.av-aba` (herdada); a unica cor que ela ja usa para "ativa" (#293a02)
   e bem perto do `--acc-pilula-ativa` desta tela (#243301, ambos verde quase preto) -- diferenca
   que fica dentro do ruido de duas fotos diferentes, entao nao reescrevo `.av-aba[aria-selected]`
   por uma cor a poucos tons de distancia. */

/* DOIS PAINEIS SOLTOS, UM DEBAIXO DO OUTRO, ENCOSTADOS. Mesmo defeito da Analise por Produto,
   achado pelo mesmo portao em 19/09/2026: "Fornecedores: Creditos Recebidos" terminava em
   bottom=1043 e "<Fornecedor>: Detalhamento dos Creditos" comecava em top=1043. Folga zero, em
   todas as cinco larguras medidas.
   A CAUSA e a mesma: filho direto de `.tela-avarias` (grid com `row-gap: 0`) que nao carrega
   respiro proprio, diferente dos blocos embrulhados, que usam `padding: 12px var(--av-recuo) 0`.
   10px e o `row-gap` que esta tela ja usa no seu proprio grid (linha 44 deste arquivo).
   O seletor pede um `.av-painel` logo depois de OUTRO `.av-painel`, os dois filhos diretos da
   tela: no modulo inteiro, so esta tela tem esse par. */
.tela-avarias > .av-painel + .av-painel {
  margin-top: 10px;
}

/* r81 (03/10/2026): o escuro sem pastel. Os quatro cartoes de numero leem os tons de assunto do painel e o texto do
   tema; antes eram tres pasteis claros fixos com letra preta sobre o grafite. No claro nada mudou. */
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) [data-tela="avarias-celular-conta-corrente"] {
    --acc-kpi-bg-negativo: var(--tom-coral-fundo);
    --acc-kpi-bg-positivo: var(--tom-verde-fundo);
    --acc-kpi-bg-alerta: var(--tom-ambar-fundo);
  }
  :root:not([data-tema="claro"]) .avcc-kpi-rotulo,
  :root:not([data-tema="claro"]) .avcc-kpi-meta,
  :root:not([data-tema="claro"]) .avcc-kpi .chip-base {
    color: var(--muted-foreground);
  }
  :root:not([data-tema="claro"]) .avcc-kpi-valor,
  :root:not([data-tema="claro"]) .avcc-kpi-secundario {
    color: var(--foreground);
  }
}
:root[data-tema="escuro"] [data-tela="avarias-celular-conta-corrente"] {
  --acc-kpi-bg-negativo: var(--tom-coral-fundo);
  --acc-kpi-bg-positivo: var(--tom-verde-fundo);
  --acc-kpi-bg-alerta: var(--tom-ambar-fundo);
}
:root[data-tema="escuro"] .avcc-kpi-rotulo,
:root[data-tema="escuro"] .avcc-kpi-meta,
:root[data-tema="escuro"] .avcc-kpi .chip-base {
  color: var(--muted-foreground);
}
:root[data-tema="escuro"] .avcc-kpi-valor,
:root[data-tema="escuro"] .avcc-kpi-secundario {
  color: var(--foreground);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .av-tabela thead th.avcc-col-ativa {
    background: var(--superficie-3);
  }
}
:root[data-tema="escuro"] .av-tabela thead th.avcc-col-ativa {
  background: var(--superficie-3);
}
