/* Complemento do estilo.css (base Viga/Virtus) para as telas do AJ Orçamentos.
   Só traduz as classes já usadas nos modelos; cores e medidas vêm de estilo.css. */

.conteudo { gap: 20px; }
.conteudo > h1 { margin-top: 2px; }
h2 { margin-top: 8px; }
code { font-family: 'IBM Plex Mono', ui-monospace, Consolas, monospace; font-size: 12px; }
.pequeno { color: var(--suave); }

/* Tabelas soltas na página ganham aparência de cartão. */
.conteudo table { background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.conteudo th { background: #fafbfc; }
.conteudo tr:last-child td { border-bottom: 0; }
/* Em estilo.css, .n é o círculo numerado das seções; nas células, é só coluna numérica. */
td.n, th.n { display: table-cell; width: auto; height: auto; border-radius: 0; background: none; color: inherit;
             font-size: inherit; font-weight: inherit; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
th.n { font-size: 12px; font-weight: 500; color: var(--suave); }

/* Entrada: centraliza sem cortar o topo quando o conteúdo é mais alto que a janela. */
.entrada { align-items: flex-start; }
.entrada-caixa { margin: auto 0; }
tr.total td { font-weight: 600; background: var(--destaque-suave); color: var(--texto); }
.rolagem { overflow-x: auto; }

/* Formulários. */
.grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px 16px; }
.grade .largo { grid-column: span 2; }
label { display: block; font-size: 13px; font-weight: 500; color: var(--texto-2); margin-bottom: 4px; }
input, select, textarea {
  width: 100%; font: inherit; font-size: 14px; color: var(--texto); min-height: 40px; padding: 0 12px;
  border: 1px solid var(--borda-forte); border-radius: 8px; background: #fff;
}
textarea { padding: 8px 12px; min-height: 96px; resize: vertical; }
input[type='checkbox'] { width: 18px; height: 18px; min-height: 0; padding: 0; vertical-align: middle; margin-right: 6px; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--destaque); outline-offset: 1px; }
input[readonly], textarea[readonly] { background: var(--fundo); color: var(--texto-2); }
.acoes { align-items: flex-end; margin-top: 14px; }
.acoes > div { min-width: 160px; }

/* Botões: principal por padrão; .secundario e .perigo como na base. */
button, .botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 0 16px;
  border-radius: 8px; font: inherit; font-weight: 500; cursor: pointer; text-decoration: none;
  background: var(--destaque); color: #fff; border: 1px solid transparent;
}
button:hover, .botao:hover { filter: brightness(.92); color: #fff; }
button.secundario, .botao.secundario { background: #fff; color: var(--texto); border-color: var(--borda-forte); }
button.secundario:hover, .botao.secundario:hover { background: var(--hover); filter: none; color: var(--texto); }
button.perigo { background: #fff; color: var(--erro); border-color: var(--borda-forte); }
button.perigo:hover { background: var(--erro-fundo); filter: none; color: var(--erro); }
button:disabled { opacity: .55; cursor: not-allowed; filter: none; }

/* Mensagens. */
.aviso, .bloqueio, .ok { border-radius: 8px; padding: 12px 14px; font-size: 13px; }
.aviso { background: var(--aviso-fundo); color: #6b4a00; }
.bloqueio { background: var(--erro-fundo); color: var(--erro); }
.ok { background: #e6f2eb; color: #1e5a3d; }
.mensagens { display: flex; flex-direction: column; gap: 8px; }

/* Etiquetas de status. */
.selo { display: inline-block; font-size: 12px; font-weight: 500; padding: 2px 10px; border-radius: 999px; background: #eef1f4; color: var(--texto-2); vertical-align: middle; }
.selo.enviado { background: #e3eef6; color: #163f5c; }
.selo.aprovado { background: #e6f2eb; color: #1e5a3d; }
.selo.perdido { background: var(--erro-fundo); color: var(--erro); }

/* Blocos recolhíveis e colunas. */
details.cartao { padding: 14px 20px; }
details > summary { cursor: pointer; font-weight: 500; color: var(--texto); }
details[open] > summary { margin-bottom: 14px; color: var(--destaque); }
.duas { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 24px; align-items: start; }
.duas > div { display: flex; flex-direction: column; gap: 12px; }
.cartao > .grade + .acoes { margin-top: 16px; }

/* Menu: logotipo e subtítulo. */
.marca .logotipo { width: 180px; }
.marca .produto { font-size: 12px; color: var(--suave); padding-left: 2px; }
.entrada-marca .logotipo { width: 240px; }
@media (max-width: 720px) { .grade .largo { grid-column: auto; } }

/* Tabela de resultado do orçamento (14 colunas). */
table.compacta th, table.compacta td { padding: 8px 5px; font-size: 12.5px; }
table.compacta th:first-child, table.compacta td:first-child { padding-left: 12px; }
table.compacta th:last-child, table.compacta td:last-child { padding-right: 12px; }
table.compacta td:first-child { min-width: 165px; }

/* Formulário por menus ("+ incluir novo"). */
.menu-campo select { width: 100%; }
.novo-campos { display: grid; gap: 6px; margin-top: 6px; padding: 10px; border: 1px dashed var(--destaque, #003068); border-radius: 8px; }
.novo-campos[hidden], [data-quando][hidden] { display: none; }
.passos { display: flex; gap: 6px; align-items: center; }
.passos button { min-width: 38px; }

/* Construção reversa: cores aprovadas em 03/11/2026 (sempre com texto, não só cor). */
.tres { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.indicador { background: #fff; border: 1px solid var(--borda); border-radius: 10px; padding: 14px; }
.indicador .rotulo { font-size: 12px; color: var(--suave); }
.indicador .valor { font-size: 20px; font-weight: 600; margin-top: 2px; font-variant-numeric: tabular-nums; }
.indicador.verde { border-left: 6px solid #2e7d4f; } .indicador.amarelo { border-left: 6px solid #d9a400; }
.indicador.vermelho { border-left: 6px solid #b42318; }
.etiqueta { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 10px; border-radius: 999px; white-space: nowrap; }
.etiqueta.verde { background: #e6f2eb; color: #1e5a3d; }
.etiqueta.amarelo { background: #fff3cc; color: #6b4a00; }
.etiqueta.vermelho { background: #fbe4e4; color: #9b1c1c; }
.etiqueta.neutro { background: #eef1f4; color: var(--texto-2); }
td.ruim { color: #9b1c1c; font-weight: 600; } td.bom { color: #1e5a3d; font-weight: 600; }
.cabeca-reversa { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
@media print {
  .menu, .nao-imprimir, form, details, [role=alert] { display: none !important; }
  .app { display: block; } .conteudo { padding: 0; }
  body { background: #fff; }
  .indicador, table { break-inside: avoid; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
