/* t72: folha do Custeio mensal. Nasceu da folha da t68 (Despesas), que já
   resolveu densidade, altura e tabela compacta, e aqui ganha o que é próprio:
   a rosca com três componentes, a série do custo/hora com lacunas, as duas
   faixas de horas e o par formulário + memória de cálculo.
   Tudo prefixado com .ct-. ⚠️ Nada de <header> nesta tela: a folha base cobra
   altura do TIPO (`header{height:76px}`, 48px abaixo de 760px), e isso já
   escondeu um botão atrás do título seguinte na t67. O cabeçalho usa a classe
   `pagina-topo`, que é do sistema e tem dono. */
.ct-pagina{display:flex;flex-direction:column;gap:14px;min-width:0;position:relative}
.ct-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ct-topo h1{margin:0}
.ct-apoio{color:var(--muted);font-size:.85rem;margin:2px 0 0;max-width:86ch}
.ct-topo-acoes{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ct-mes{display:flex;align-items:center;gap:6px}
.ct-mes input{inline-size:auto;min-inline-size:148px;margin-top:0}
.ct-mes button{padding:8px 10px}

.ct-cartoes{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(196px,1fr))}
.ct-cartao{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);min-width:0}
.ct-cartao-rotulo{margin:0;font-size:.8rem;color:var(--muted);font-weight:600}
.ct-cartao-valor{margin:4px 0 0;font-size:1.4rem;font-weight:700;line-height:1.15;overflow-wrap:anywhere}
.ct-definicao{margin-top:6px}
.ct-definicao summary{font-size:.76rem;color:var(--muted);cursor:pointer}
.ct-definicao p{margin:4px 0 0;font-size:.78rem;color:var(--muted)}
.ct-escopo{grid-column:1/-1;margin:0;font-size:.8rem;color:var(--muted)}

.ct-analise-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
 height:auto;min-height:0;padding:0;border:0;background:none}
.ct-analise-topo h2{margin:0;font-size:1.05rem}
.ct-analise-acoes{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ct-analise-acoes label{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--muted)}
.ct-grade{display:grid;gap:14px;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);margin-top:12px;align-items:start}
.ct-painel{min-width:0;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.ct-painel h3{margin:0 0 8px;font-size:.92rem}

.ct-barras{display:flex;align-items:flex-end;gap:6px;block-size:170px}
.ct-barra-coluna{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;block-size:100%}
.ct-barra{border:0;padding:0;inline-size:100%;background:var(--grafico-despesa,#b4601f);border-radius:3px 3px 0 0;min-block-size:2px;cursor:pointer}
.ct-barra:hover{filter:brightness(1.08)}
/* Competência futura é IDENTIFICADA, não escondida nem tratada como passado. */
.ct-barra.ct-futuro{background:repeating-linear-gradient(45deg,var(--grafico-despesa,#b4601f),var(--grafico-despesa,#b4601f) 3px,transparent 3px,transparent 6px)}
.ct-barra-valor{font-size:.66rem;text-align:center;color:var(--muted);white-space:nowrap;overflow:hidden}
.ct-barra-rotulo{font-size:.7rem;text-align:center;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-tabela-grafico{inline-size:100%;border-collapse:collapse;margin-top:10px;font-size:.8rem}
.ct-tabela-grafico th,.ct-tabela-grafico td{text-align:left;padding:3px 6px;border-bottom:1px solid var(--line)}
.ct-marca{font-size:.68rem;padding:0 5px;border-radius:999px;border:1px solid var(--line)}

.ct-rosca-area{display:flex;flex-direction:column;align-items:center;gap:4px}
.ct-rosca{inline-size:150px;block-size:150px}
.ct-rosca-numero{font-size:19px;font-weight:700;fill:var(--ink)}
.ct-rosca-unidade{font-size:9px;fill:var(--muted)}
.ct-legenda{list-style:none;margin:6px 0 0;padding:0;inline-size:100%;display:flex;flex-direction:column;gap:4px;font-size:.8rem}
.ct-legenda li{display:flex;align-items:center;gap:6px}
.ct-legenda-valor{margin-inline-start:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
.ct-chave{inline-size:10px;block-size:10px;border-radius:2px;display:inline-block}
.ct-nota{margin:8px 0 0;font-size:.78rem;color:var(--muted)}
.ct-fatia-0,.ct-chave.ct-fatia-0{stroke:#b4601f;background:#b4601f}
.ct-fatia-1,.ct-chave.ct-fatia-1{stroke:#3f6ea8;background:#3f6ea8}
.ct-fatia-2,.ct-chave.ct-fatia-2{stroke:#2f7d5a;background:#2f7d5a}
.ct-fatia-3,.ct-chave.ct-fatia-3{stroke:#8a5fbf;background:#8a5fbf}
.ct-fatia-4,.ct-chave.ct-fatia-4{stroke:#a3803a;background:#a3803a}
.ct-fatia-5,.ct-chave.ct-fatia-5{stroke:#6b6b6b;background:#6b6b6b}

.ct-filtros{display:grid;gap:8px;align-items:end;
 grid-template-columns:minmax(180px,2fr) repeat(4,minmax(130px,1fr))}
.ct-filtros label{display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:var(--muted);min-width:0;margin:0}
.ct-filtros select,.ct-filtros input{inline-size:100%;min-inline-size:0;margin-top:0}
.ct-atalhos{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}
.ct-atalho{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:.82rem}
.ct-atalho-ativo{border-color:var(--accent,#ec7014);background:color-mix(in srgb,var(--accent,#ec7014) 10%,transparent);font-weight:600}
.ct-contagem{font-variant-numeric:tabular-nums;color:var(--muted)}
.ct-atalhos-nota{flex-basis:100%;margin:2px 0 0}

/* ⚠️ position:relative porque overflow não recorta descendente absoluto
   quando quem recorta é estático: os rótulos de leitor de tela escapavam e
   criavam rolagem fantasma. */
.ct-corpo{max-block-size:min(58vh,560px);overflow:auto;position:relative;contain:paint}
.ct-tabela{inline-size:100%;border-collapse:collapse;table-layout:fixed}
.ct-tabela th,.ct-tabela td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.ct-tabela thead th{position:sticky;top:0;background:var(--surface);z-index:2;font-size:.78rem;color:var(--muted)}
/* Larguras em PORCENTAGEM somando 100: misturar px e % sob table-layout:fixed
   já espremeu uma coluna de ações para 12px em outra tela deste sistema. */
.ct-tabela th:nth-child(1),.ct-tabela td:nth-child(1){width:22%}
.ct-tabela th:nth-child(2),.ct-tabela td:nth-child(2){width:12%}
.ct-tabela th:nth-child(3),.ct-tabela td:nth-child(3){width:10%}
.ct-tabela th:nth-child(4),.ct-tabela td:nth-child(4){width:8%}
.ct-tabela th:nth-child(5),.ct-tabela td:nth-child(5){width:8%}
.ct-tabela th:nth-child(6),.ct-tabela td:nth-child(6){width:9%}
.ct-tabela th:nth-child(7),.ct-tabela td:nth-child(7){width:9%}
.ct-tabela th:nth-child(8),.ct-tabela td:nth-child(8){width:9%}
.ct-tabela th:nth-child(9),.ct-tabela td:nth-child(9){width:8%}
.ct-tabela th:nth-child(10),.ct-tabela td:nth-child(10){width:5%}
.ct-celula-dupla{display:flex;flex-direction:column;gap:1px;min-width:0;align-items:flex-start}
/* O título é um <button> para abrir a gaveta, mas não pode PARECER um botão:
   com a moldura padrão, cada linha da tabela virava uma fileira de caixas. */
.ct-celula-dupla .link-forte{border:0;background:none;padding:0;text-align:left;
 font-weight:600;color:var(--ink,inherit);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.ct-celula-dupla .link-forte:hover{color:var(--accent,#ec7014)}
.ct-item .link-forte{border:0;background:none;padding:0;text-align:left;font-weight:600;
 text-decoration:underline;text-underline-offset:2px}
/* ⚠️ A REFERÊNCIA da Vobi é um UUID longo. Ela fica secundária e truncada; o
   título é a informação principal, e a referência completa vive na gaveta. */
.ct-referencia{font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-numero{text-align:right;font-variant-numeric:tabular-nums}
.ct-acoes{text-align:right}
.ct-linha-aberta{background:var(--paper))}
.ct-selo{display:inline-block;padding:1px 7px;border-radius:999px;font-size:.74rem;border:1px solid var(--line);white-space:nowrap}
.ct-aberta{background:rgba(120,120,120,.12)}
.ct-parcial{background:rgba(63,110,168,.14)}
.ct-paga{background:rgba(40,150,90,.14)}
.ct-anulada{background:rgba(120,120,120,.2);text-decoration:line-through}
.ct-vencida{background:rgba(190,60,40,.14)}
.ct-hoje{background:rgba(200,140,0,.16)}

.ct-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ct-item{border:1px solid var(--line);border-radius:10px;padding:10px}
.ct-item p{margin:3px 0}
.ct-vazio{border:1px dashed var(--line);border-radius:10px;padding:22px;text-align:center}
.ct-vazio h3{margin:0 0 6px}
.ct-erro{border:1px solid var(--line);border-radius:10px;padding:16px}

.ct-gaveta{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--surface);
 max-block-size:min(84vh,860px);overflow:auto}
.ct-gaveta-sobreposta.ct-com-gaveta .ct-gaveta{position:fixed;inset-block:12px;inset-inline-end:12px;
 inline-size:min(460px,94vw);box-shadow:-10px 0 28px rgba(0,0,0,.2);z-index:40}
.ct-gaveta-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.ct-gaveta-topo h2{margin:4px 0 2px;font-size:1.1rem}
.ct-selos{margin:0;display:flex;gap:5px;flex-wrap:wrap}
.ct-referencia-completa{margin:2px 0 0;font-size:.76rem;color:var(--muted);overflow-wrap:anywhere}
.ct-gaveta-acoes{margin-top:12px}
.ct-gaveta h3{margin:14px 0 6px;font-size:.92rem}
.ct-ficha{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;margin:0;font-size:.85rem}
.ct-ficha dt{color:var(--muted)}
.ct-ficha dd{margin:0;overflow-wrap:anywhere}
.ct-pagamentos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.85rem}
.ct-pagamentos li{border:1px solid var(--line);border-radius:8px;padding:8px}
.ct-pagamentos p{margin:0}
.ct-estornado{opacity:.75}
.ct-alerta{margin:10px 0;padding:8px 10px;border-radius:8px;background:rgba(200,140,0,.12);font-size:.85rem}
.ct-gaveta-rodape{margin-top:16px;border-top:1px solid var(--line);padding-top:10px}
.ct-perigo{background:#a8362a;color:#fff;border:1px solid #a8362a;border-radius:6px;padding:9px 14px;font-size:.82rem;font-weight:600}
.ct-perigo:disabled{opacity:.5}

.ct-form{display:flex;flex-direction:column;gap:8px;margin-top:14px;
 border:1px solid var(--line);border-radius:10px;padding:12px}
.ct-form h3{margin:0}
.ct-form label{display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:var(--muted);margin:0}
.ct-form input,.ct-form select,.ct-form textarea{margin-top:0}
.ct-form-acoes{display:flex;gap:8px;flex-wrap:wrap}
.ct-form-grade{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.ct-cadastro{max-inline-size:800px}

@media (max-width:1180px){
 .ct-grade{grid-template-columns:minmax(0,1fr)}
 .ct-filtros{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:760px){
 .ct-filtros{grid-template-columns:minmax(0,1fr)}
 .ct-corpo{max-block-size:none;overflow:visible;contain:none}
 .ct-gaveta-sobreposta.ct-com-gaveta .ct-gaveta{position:static;inline-size:auto;box-shadow:none;max-block-size:none}
 .ct-topo-acoes{inline-size:100%}
 .ct-mes{flex:1 1 100%}
}

/* ── t72: o que é próprio do Custeio ───────────────────────────────────── */
.ct-pessoa{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}
.ct-pessoa select{min-inline-size:200px}
.ct-ajuda{margin-block-start:8px;font-size:12px}
.ct-ajuda summary{cursor:pointer;color:var(--accent-ink)}
.ct-ajuda p{margin:6px 0 0;color:var(--muted);max-inline-size:90ch}

/* Formulário e memória lado a lado; empilham quando não cabem. */
.ct-duas-colunas{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;align-items:start}
.ct-memoria-previa{border-color:var(--accent);background:var(--accent-soft)}
.ct-selo-previa{display:inline-block;font-size:11px;font-weight:600;color:var(--accent-ink);
 background:var(--surface);border:1px solid var(--accent);border-radius:999px;padding:2px 10px;margin:0 0 8px}
.ct-ficha{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:0}
.ct-ficha dt{font-size:11px;color:var(--muted)}
.ct-ficha dd{margin:2px 0 0;font-size:14px;font-variant-numeric:tabular-nums}
.ct-formula{margin:10px 0 0;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}

/* Série do custo/hora: barra por competência, e LACUNA quando não há fonte. */
.ct-serie{display:flex;align-items:flex-end;gap:6px;block-size:150px}
.ct-ponto-coluna{flex:1 1 0;min-inline-size:0;display:flex;flex-direction:column;align-items:center;gap:2px;block-size:100%}
.ct-ponto-valor{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.ct-haste{flex:1 1 0;display:flex;align-items:flex-end;justify-content:center;inline-size:100%}
.ct-barra{inline-size:70%;border-radius:4px 4px 0 0;background:var(--accent);transition:block-size 300ms ease}
.ct-barra.ct-fonte-manual{background:var(--grafico-areceber,var(--muted))}
.ct-lacuna{color:var(--muted);font-size:14px;padding-block-end:4px}
.ct-ponto-rotulo{font-size:10px;color:var(--muted)}

/* Duas faixas SEPARADAS: plano e horas aprovadas não somam um todo. */
.ct-faixa{margin-block-end:10px}
.ct-faixa-rotulo{margin:0 0 4px;font-size:12px;color:var(--muted)}
.ct-faixa-barra{display:flex;block-size:20px;border-radius:6px;overflow:hidden;background:var(--paper);border:1px solid var(--line)}
.ct-parte{display:block}
.ct-parte-base{background:var(--accent)}
.ct-parte-fora{background:var(--accent-soft)}
.ct-parte-aprovadas{background:var(--green)}
.ct-diferenca{margin:6px 0 0;font-size:14px;font-variant-numeric:tabular-nums}
.ct-legenda-tabela{inline-size:100%;border-collapse:collapse;font-size:13px}
.ct-legenda-tabela th,.ct-legenda-tabela td{padding:4px 6px;text-align:start}
.ct-legenda-tabela tfoot th,.ct-legenda-tabela tfoot td{border-top:1px solid var(--line);font-weight:600}
.ct-linha-aplicada{background:var(--accent-soft)}

@media (max-width:1100px){.ct-duas-colunas{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){
 .ct-pessoa select{min-inline-size:0;inline-size:100%}
 .ct-serie{block-size:120px}
}
