/* Análise estrutural — pórtico plano.
 *
 * Herda a folha da família e as compartilhadas, e não redeclara a geometria de
 * página: largura, margem e as duas colunas do `.workspace` são da folha-base,
 * que mantém a escada de breakpoints inteira.
 *
 * O que é DESTE produto: a altura do canvas, a barra de camadas, as listas de
 * nós e barras — que são MUITAS linhas curtas, e não poucas linhas longas —, e
 * a marcação das conferências, que não são verificações de projeto.
 */
@import url("../shared/ep-hidrologia.css");
@import url("../shared/ep-como-usar.css");

/*
 * O CANVAS DE UM PÓRTICO PEDE ALTURA, e mais que o de uma peça.
 *
 * O modelo do exemplo tem 6 × 4 m, razão 1,5 — mas o que ele carrega em volta é
 * muito: apoios embaixo, cargas em cima, cotas nos dois lados, e o diagrama
 * sobreposto saindo perpendicular a cada barra, que num pilar cresce na
 * horizontal. Com 420 px o diagrama de momento do pilar encostava na cota
 * vertical; 470 acomodam.
 */
.portico-workspace .canvas-superficie { height: 470px; }
.portico-workspace .figuras-card { grid-column: 1 / -1; }
.portico-workspace > .results-panel { grid-column: 1 / -1; }

/*
 * A BARRA DE CAMADAS É UMA SEGUNDA FILA DE BOTÕES, e ela não é ferramenta.
 *
 * As ferramentas mudam o MODELO; as camadas mudam o que se VÊ. Misturá-las na
 * mesma fila faria "momento" parecer uma coisa que se lança no desenho.
 */
.canvas-camadas {
  display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 8px;
  padding-top: 8px; border-top: 1px solid #eef4f1;
}
.canvas-camadas button {
  border: 1px solid #dfe8e4; background: #fff; color: #46655a; border-radius: 999px;
  padding: 4px 11px; font-size: .72rem; font-family: inherit; cursor: pointer;
}
.canvas-camadas button.ativa {
  background: #0e6b4f; border-color: #0e6b4f; color: #fff; font-weight: 600;
}
.canvas-camadas button:hover:not(.ativa) { background: #f2f8f5; }

/* O inspetor do elemento selecionado é a PRIMEIRA seção do painel, porque num
 * produto com canvas é ele que se mexe a todo clique — e o canvas fica no topo
 * da coluna ao lado. Sem seleção, ele instrui o que clicar. */
#bloco-selecao .instrucao { font-size: .74rem; color: #62766e; line-height: 1.45; }
#bloco-selecao .alvo {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
  font-size: .72rem; color: #0e6b4f; font-weight: 600;
}
#bloco-selecao .alvo .marca {
  display: inline-block; width: 10px; height: 10px; border-radius: 3px;
}

.portico-workspace [hidden] { display: none !important; }

.pilula-confira {
  display: inline-block; padding: 1px 7px; border-radius: 999px; margin-left: 6px;
  font-size: .64rem; font-weight: 700; color: #fff6db; background: #8a6a10;
  letter-spacing: .03em; justify-self: start; width: fit-content;
}

/*
 * AS LISTAS DE MODELO SÃO MUITAS LINHAS CURTAS.
 *
 * Um pórtico tem quatro nós e três barras; um galpão tem trinta e quarenta. O
 * cartão de ação dos outros produtos — moldura, título e três campos empilhados
 * — daria uma coluna de dois metros. Aqui cada item é UMA linha, com os campos
 * lado a lado e o rótulo só no cabeçalho da lista.
 */
.lista-itens { display: grid; gap: 7px; }
.lista-itens .item {
  display: grid; gap: 6px; padding: 9px 10px; border: 1px solid #dfe8e4;
  border-radius: 10px; background: #fbfdfc;
}
.lista-itens .item.selecionado { border-color: #0e6b4f; background: #f4faf7; }
.lista-itens .item .topo {
  display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center;
}
.lista-itens .item .topo b { font-size: .74rem; color: #0b2b21; font-weight: 600; }
.lista-itens .item .campos { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.lista-itens .item .campos.tres { grid-template-columns: 1fr 1fr 1fr; }
.lista-itens .item .campos label.wide { grid-column: 1 / -1; }
.lista-itens .item label {
  display: grid; gap: 3px; font-size: .67rem; color: #46655a;
}
.lista-itens .item input[type="text"],
.lista-itens .item select {
  width: 100%; padding: 5px 7px; border: 1px solid #cfe0d8; border-radius: 7px;
  font-size: .73rem; font-family: inherit; color: #0b2b21; background: #fff;
}
.lista-itens .item label.checkbox {
  display: flex; align-items: center; gap: 6px; font-size: .68rem;
}
.lista-itens .item label.checkbox input { width: auto; }
.lista-itens .item .remover {
  border: 1px solid #e8d2d2; background: #fdf5f5; color: #9b3232; border-radius: 7px;
  width: 24px; height: 24px; padding: 0; font-size: .85rem; line-height: 1;
  cursor: pointer; font-family: inherit;
}
.lista-itens .item .remover:hover { background: #fbe6e6; }
/* A lista compacta — nós e barras — não tem moldura por item: seriam quarenta
 * molduras. O que separa um item do outro é a linha fina. */
.lista-itens.compacta .item {
  border: none; border-bottom: 1px solid #eef4f1; border-radius: 0;
  background: transparent; padding: 6px 2px;
}
.lista-itens.compacta .item.selecionado { background: #f4faf7; border-radius: 6px; }
.adicionar-item {
  border: 1px dashed #bcd3c9; background: transparent; color: #0e6b4f; border-radius: 9px;
  padding: 7px 12px; font-size: .74rem; cursor: pointer; font-family: inherit; width: 100%;
}
.adicionar-item:hover { background: #f2f8f5; }

/*
 * A CONFERÊNCIA NÃO É UMA VERIFICAÇÃO DE PROJETO, e não usa o mesmo selo.
 *
 * Uma verificação compara demanda com capacidade e sobra margem; uma
 * conferência mede se a ARITMÉTICA fechou. Dar-lhe a mesma pílula faria um
 * resíduo de 10⁻¹⁵ aparecer como "utilização 0,0000001" ao lado de uma flecha a
 * 20 %, e as duas coisas não se comparam.
 */
.conferencia {
  border: 1px solid #cfe0d8; border-left: 4px solid #2f7d5d; border-radius: 10px;
  background: #f6fbf8; padding: 11px 13px; margin: 10px 0; display: grid; gap: 5px;
}
.conferencia.falhou { border-color: #e8d2d2; border-left-color: #b5432a; background: #fdf7f5; }
.conferencia h4 {
  margin: 0; font-size: .8rem; font-weight: 600; color: #0b2b21;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.conferencia .valor {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .74rem;
  color: #0e6b4f; background: #eaf4ef; padding: 1px 7px; border-radius: 5px;
}
.conferencia.falhou .valor { color: #9b3232; background: #fbe6e6; }
.conferencia p { margin: 0; font-size: .75rem; line-height: 1.5; color: #46655a; }

@media (max-width: 1100px) {
  .portico-workspace .canvas-superficie { height: 400px; }
  .lista-itens .item .campos.tres { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 820px) {
  .lista-itens .item .campos,
  .lista-itens .item .campos.tres { grid-template-columns: minmax(0, 1fr); }
}

/*
 * AS OITO ABAS QUEBRAM EM LINHA, E NÃO ROLAM.
 *
 * A folha-base dá `flex-wrap: nowrap` com `overflow-x: auto`, que é a escolha
 * certa para cinco. Com oito, a 1024 px a última fica 10 px fora da tela —
 * medido pelo auditor —, e uma aba que só aparece rolando é uma aba que ninguém
 * sabe que existe.
 */
.portico-workspace .tab-strip { flex-wrap: wrap; overflow-x: visible; }
