/*
 * Checklist ESEN — protótipo (Etapa A)
 * telas/cadastros.css — #/clientes, #/clientes/:id, #/usinas, #/usinas/:id (js/telas/cadastros.js)
 * Prefixo .cadastros-; só tokens de css/base.css e classes de componentes.css/layout.css.
 */

/* =========================================================================
   LISTAS — larguras das colunas (table-layout: fixed; a primeira linha manda)
   ========================================================================= */
/* Notebook (1024–1199) primeiro; a partir de 1200 algumas colunas ganham folga. */
.cadastros-tabela .cadastros-col-codigo { width: 120px; }
.cadastros-tabela .cadastros-col-municipio { width: 148px; }
.cadastros-tabela .cadastros-col-municipio-u { width: 132px; }
.cadastros-tabela .cadastros-col-n { width: 84px; }
.cadastros-tabela .cadastros-col-ultimo { width: 148px; }
.cadastros-tabela .cadastros-col-status { width: 112px; }
.cadastros-tabela .cadastros-col-editar { width: 104px; }
.cadastros-linha-editavel { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border-bottom: var(--borda-largura) solid var(--cor-borda-sutil); }
.cadastros-linha-editavel > .linha { border-bottom: 0; }
.cadastros-linha-editavel > .btn { margin-right: var(--esp-2); }
.lista-toque > li.cadastros-linha-editavel:last-child { border-bottom: 0; }
.cadastros-tabela .cadastros-col-pot { width: 96px; }
.cadastros-tabela .cadastros-col-mod { width: 80px; }
.cadastros-tabela .cadastros-col-inv { width: 96px; }
.cadastros-tabela .cadastros-col-inst { width: 104px; }
.cadastros-tabela .cadastros-col-limpeza { width: 136px; }
.cadastros-tabela .cadastros-col-srv { width: 136px; }
.cadastros-tabela .cadastros-col-tipo { width: 148px; }
.cadastros-tabela .cadastros-col-func { width: 144px; }
.cadastros-tabela .cadastros-col-data { width: 104px; }
.cadastros-tabela .cadastros-col-status-srv { width: 148px; }
.cadastros-tabela .cadastros-col-qtd { width: 56px; }
.cadastros-tabela .cadastros-col-serie { width: 136px; }
@media (min-width: 1200px) {
  .cadastros-tabela .cadastros-col-municipio { width: 168px; }
  .cadastros-tabela .cadastros-col-municipio-u { width: 148px; }
  .cadastros-tabela .cadastros-col-pot { width: 104px; }
  .cadastros-tabela .cadastros-col-mod { width: 88px; }
  .cadastros-tabela .cadastros-col-func { width: 168px; }
}

/* Usinas: Inversores e Instalação só a partir de 1440 (no detalhe da usina e na lista tocável eles continuam visíveis). */
.cadastros-tabela--usinas .cadastros-larga { display: none; }
@media (min-width: 1440px) {
  .cadastros-tabela--usinas .cadastros-larga { display: table-cell; }
}

/* Coluna de texto logo depois de uma coluna numérica (alinhada à direita): mais respiro entre as duas. */
.cadastros-tabela th.cadastros-apos-num, .cadastros-tabela td.cadastros-apos-num { padding-left: var(--esp-6); }

.cadastros-tipo { display: inline-flex; align-items: center; gap: var(--esp-2); max-width: 100%; min-width: 0; vertical-align: middle; }
.cadastros-tipo > .icone { flex: none; color: var(--cor-texto-2); }
.cadastros-tipo > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Ordenação no toque (no desktop os cabeçalhos da tabela ordenam) */
.cadastros-ordem {
  display: flex; align-items: center; justify-content: space-between; gap: var(--esp-3);
  min-height: var(--alvo-minimo); padding: var(--esp-1) var(--esp-2) var(--esp-1) var(--esp-4);
  border-bottom: var(--borda-largura) solid var(--cor-borda-sutil);
}
.cadastros-ordem__texto { display: inline-flex; align-items: center; gap: var(--esp-2); min-width: 0; font-size: var(--fs-legenda-toque); line-height: var(--lh-legenda-toque); color: var(--cor-texto); }
.cadastros-ordem__texto .icone { flex: none; color: var(--cor-destaque); stroke-width: var(--traco-icone-status); }
.cadastros-ordem__texto strong { font-weight: var(--peso-forte); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cadastros-ordem .btn { flex: none; }

/* Linhas tocáveis */
.cadastros-linha-badges { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2) var(--esp-3); min-width: 0; }
.cadastros-linha-data { white-space: nowrap; font-variant-numeric: tabular-nums; }
.cadastros-lado-rotulo { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cadastros-lado-valor { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--cor-texto); font-variant-numeric: tabular-nums; }

/* Modo leitura (responsável) */
.cadastros-leitura {
  display: inline-flex; align-items: center; gap: var(--esp-2); min-height: var(--altura-controle);
  font-size: var(--fs-rotulo); line-height: var(--lh-rotulo); color: var(--cor-texto-2);
}
.cadastros-leitura .icone { flex: none; color: var(--cor-texto-3); stroke-width: var(--traco-icone-status); }

/* =========================================================================
   DETALHES
   ========================================================================= */
.cadastros-sub .link { font-size: inherit; line-height: inherit; }
.cadastros-quebrar { overflow-wrap: anywhere; }
.cadastros-ficha-sec { display: block; font-size: var(--fs-legenda); line-height: var(--lh-legenda); color: var(--cor-texto-2); }
.cadastros-ficha-sec .codigo { font-size: var(--fs-legenda); color: var(--cor-texto-2); }

/* Faixa de fatos da usina (potência, módulos, inversores, instalação, última limpeza) */
.cadastros-fatos {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--esp-4) var(--esp-6);
  margin: 0; padding: var(--esp-4) var(--esp-5);
  background: var(--cor-superficie-1); border: var(--borda-largura) solid var(--cor-borda-sutil); border-radius: var(--raio-3);
}
.cadastros-fatos__item { min-width: 0; }
.cadastros-fatos dt { font-size: var(--fs-legenda); line-height: var(--lh-legenda); font-weight: var(--peso-forte); color: var(--cor-texto-3); }
.cadastros-fatos dd { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; margin: 2px 0 0; min-width: 0; font-size: var(--fs-corpo); line-height: var(--lh-corpo); color: var(--cor-texto); font-variant-numeric: tabular-nums; }
.cadastros-fatos__sec { font-size: var(--fs-legenda); line-height: var(--lh-legenda); color: var(--cor-texto-2); }
.cadastros-fatos__sec .link-codigo { font-size: var(--fs-legenda); line-height: var(--lh-legenda); }

/* Inversores no detalhe (tabela que continua tabela no toque) */
.cadastros-tabela--inv td:first-child { color: var(--cor-texto); }

/* =========================================================================
   FORMULÁRIOS (modal; folha inferior no celular)
   ========================================================================= */
.cadastros-form { max-width: none; }
.cadastros-form .formulario__nota + .formulario__nota { margin-top: calc(-1 * var(--esp-3)); }
.cadastros-lgpd { display: flex; align-items: flex-start; gap: var(--esp-2); }
.cadastros-lgpd .icone { flex: none; margin-top: 0; color: var(--cor-texto-3); stroke-width: var(--traco-icone-status); }
.cadastros-form__secao {
  display: flex; align-items: baseline; gap: var(--esp-2);
  margin: var(--esp-1) 0 calc(-1 * var(--esp-1)); padding-top: var(--esp-4);
  border-top: var(--borda-largura) solid var(--cor-borda-sutil);
  font-size: var(--fs-painel); line-height: var(--lh-painel);
}
.cadastros-form .formulario__nota + .formulario__nota + [data-geral] + .cadastros-form__secao,
.cadastros-form .formulario__nota + [data-geral] + .cadastros-form__secao { border-top: 0; padding-top: 0; }
.cadastros-form .mono { font-family: var(--fonte-mono); font-variant-numeric: normal; }

.cadastros-escolha > legend { margin-bottom: 6px; }
.cadastros-escolha__opcoes { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-1) var(--esp-6); }
.cadastros-escolha > .campo__ajuda { margin-top: 2px; }

/* Duplicidade: lista dentro do aviso de perigo */
.cadastros-form [data-duplicados], .cadastros-form [data-geral] { scroll-margin-top: var(--esp-6); }
.cadastros-dup { display: grid; margin: var(--esp-3) 0 0; padding: 0; list-style: none; border-top: var(--borda-largura) solid var(--cor-borda-sutil); }
.cadastros-dup__item {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--esp-2) var(--esp-4);
  padding: var(--esp-3) 0; border-bottom: var(--borda-largura) solid var(--cor-borda-sutil);
}
.cadastros-dup__dados { display: grid; gap: 2px; min-width: 0; flex: 1 1 260px; }
.cadastros-dup__nome { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--esp-2); font-weight: var(--peso-forte); color: var(--cor-texto); }
.cadastros-dup__meta { font-size: var(--fs-legenda); line-height: var(--lh-legenda); color: var(--cor-texto-2); overflow-wrap: anywhere; }
.cadastros-dup__motivo { font-size: var(--fs-legenda); line-height: var(--lh-legenda); font-weight: var(--peso-forte); color: var(--cor-perigo-texto); }
.cadastros-dup__abrir { flex: none; }
.cadastros-dup__confirmar { display: grid; gap: var(--esp-3); margin-top: var(--esp-4); }
.cadastros-dup__confirmar .campo__rotulo { color: var(--cor-texto); }

/* Inversores repetíveis */
.cadastros-inversores { display: grid; gap: var(--esp-3); }
.cadastros-inversores__cab { display: grid; gap: var(--esp-1); }
.cadastros-inversores__cab .cadastros-form__secao { margin-bottom: 0; }
.cadastros-inversores__lista { display: grid; gap: var(--esp-3); }
.cadastros-inversores__lista:empty { display: none; }
.cadastros-inversores__vazio { font-size: var(--fs-rotulo); line-height: var(--lh-rotulo); color: var(--cor-texto-3); }
.cadastros-inv {
  display: grid; gap: var(--esp-2); padding: var(--esp-2) var(--esp-3) var(--esp-3);
  border: var(--borda-largura) solid var(--cor-borda-sutil); border-radius: var(--raio-2); background: var(--cor-superficie-1);
}
.cadastros-inv__cab { display: flex; align-items: center; justify-content: space-between; gap: var(--esp-3); }
.cadastros-inv__titulo { font-size: var(--fs-rotulo); line-height: var(--lh-rotulo); font-weight: var(--peso-forte); color: var(--cor-texto-2); }
/* Tablet: descrição em linha própria, quantidade e série lado a lado; celular: uma coluna; desktop: três colunas. */
.cadastros-inv__campos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--esp-3); }
.cadastros-inv__desc { grid-column: 1 / -1; }
@media (max-width: 767px) {
  .cadastros-inv__campos { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 1024px) {
  .cadastros-inv__campos { grid-template-columns: minmax(0, 2fr) 112px minmax(0, 1.4fr); }
  .cadastros-inv__desc { grid-column: auto; }
}

/* =========================================================================
   TOQUE (< 1024) e CELULAR (< 768)
   ========================================================================= */
@media (max-width: 1023px) {
  .cadastros-leitura { font-size: var(--fs-legenda-toque); line-height: var(--lh-legenda-toque); min-height: var(--alvo-minimo); }
  .cadastros-fatos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cadastros-fatos dt { font-size: var(--fs-legenda-toque); line-height: var(--lh-legenda-toque); font-weight: var(--peso-normal); }
  .cadastros-fatos dd { font-size: var(--fs-corpo-toque); line-height: var(--lh-corpo-toque); }
  .cadastros-fatos__sec, .cadastros-fatos__sec .link-codigo, .cadastros-ficha-sec, .cadastros-ficha-sec .codigo { font-size: var(--fs-legenda-toque); line-height: var(--lh-legenda-toque); }
  .cadastros-form__secao { font-size: var(--fs-secao-toque); line-height: var(--lh-secao-toque); }
  .cadastros-inversores__vazio, .cadastros-inv__titulo { font-size: var(--fs-rotulo-toque); line-height: var(--lh-rotulo-toque); }
  .cadastros-dup__meta, .cadastros-dup__motivo { font-size: var(--fs-legenda-toque); line-height: var(--lh-legenda-toque); }
  .cadastros-escolha__opcoes { gap: 0 var(--esp-6); }
}

@media (max-width: 767px) {
  .cadastros-leitura { justify-content: center; width: 100%; padding: var(--esp-2) var(--esp-3); border: var(--borda-largura) solid var(--cor-borda-sutil); border-radius: var(--raio-2); background: var(--cor-superficie-1); }
  .cadastros-fatos { grid-template-columns: minmax(0, 1fr); gap: var(--esp-3); padding: var(--esp-3) var(--esp-4); }
  .cadastros-fatos__item { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: var(--esp-3); }
  .cadastros-fatos dd { margin: 0; }
  /* Ações empilhadas (a fundação inverte a ordem): primária no topo, Editar em seguida, Inativar/Reativar por último. */
  .cadastros-detalhe .pagina-cab__acoes > [data-acao="alternar"] { order: -1; }
  .cadastros-dup__abrir { width: 100%; min-height: var(--alvo-minimo); }
  .cadastros-dup__confirmar .btn { width: 100%; }
  .cadastros-inv__remover { margin-right: calc(-1 * var(--esp-2)); }
}

/* Lista de clientes no formato da plataforma de monitoramento: "código - nome", potência, cliente, município. */
.cad-titulo { color: var(--cor-texto); font-weight: var(--peso-medio); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cad-titulo:hover { color: var(--cor-destaque-texto); text-decoration: underline; text-underline-offset: 3px; }
.cad-titulo:focus-visible { outline: var(--borda-foco) solid var(--cor-foco); outline-offset: 2px; border-radius: var(--raio-1); }
.cad-sinais { display: inline-flex; align-items: center; gap: 6px; }
.cad-kwp { display: inline-flex; align-items: center; height: 22px; padding: 0 10px; border-radius: 999px; background: var(--cor-superficie-3); color: var(--cor-texto-2);
  font-size: var(--fs-legenda); line-height: var(--lh-legenda); font-weight: var(--peso-medio); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cad-clientes .cad-col-usina { width: 34%; }
.cad-clientes .cad-col-kwp { width: 120px; text-align: center; }
.cad-clientes .cad-col-cliente { width: 30%; }
.cad-clientes .cad-col-local { width: 180px; white-space: nowrap; }
.cad-clientes th.cad-col-kwp .tabela__ordenar, .cad-clientes th.cad-col-kwp button { justify-content: center; }
