/* Estilos da aplicação (sobre o Bootstrap local). */
.btn-laranja { --bs-btn-color:#fff; --bs-btn-bg:#c2410c; --bs-btn-border-color:#c2410c;
  --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#9a3412; --bs-btn-hover-border-color:#9a3412;
  --bs-btn-active-color:#fff; --bs-btn-active-bg:#7c2d12; --bs-btn-active-border-color:#7c2d12; }
/* Caixas: fina linha laranja no topo e sombra suave, sobre fundo cinzento claro (estilo da app de ausências). */
body { background-color:#f3f4f6; }
.seccao { border:0; border-top:2px solid #e8912d; border-radius:.6rem; padding:1.1rem 1.25rem; margin-bottom:1.25rem;
  background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.seccao > h2:first-child, .seccao > .cab-seccao h2 { margin-top:0; }
tr[data-href] { cursor:pointer; }
tr[data-href]:hover > * { background-color:var(--bs-tertiary-bg); }
.tabela-compacta td, .tabela-compacta th { padding-top:.2rem; padding-bottom:.2rem; font-size:.875rem; }
.tabela-compacta td.desc { max-width:34rem; }
.ico { text-decoration:none; white-space:nowrap; }
.falta { color:#198754; font-weight:600; }
.excede { color:#dc3545; font-weight:600; }
tr.alvo > * { background-color:#fff3cd !important; }
/* Colunas Medido / Falta: fundo suave e uma linha fina a separá-las das colunas do orçamento. */
.grupo-medido { background-color:#f3f8ff !important; }
.grupo-falta { background-color:#f3faf5 !important; }
.grupo-ini { border-left:1px solid #dee2e6 !important; }
th.grupo-medido, th.grupo-falta { font-weight:500; }

/* Botões de gravar sempre visíveis em ecrãs longos (colam ao fundo da janela). */
.barra-fixa { position:sticky; bottom:0; z-index:5; background:var(--bs-body-bg); border-top:1px solid var(--bs-border-color);
  padding:.6rem 0; margin-top:.5rem; display:flex; gap:.5rem; align-items:center; }
#modal-pdf iframe { width:100%; height:78vh; border:0; }

/* Separador entre blocos dentro da mesma caixa (ex.: orçamentos / autos). */
.sep-bloco { border-top:1px solid var(--bs-border-color); margin:1.25rem 0 .75rem; }

/* Em ecrãs menores a letra das tabelas e o espaçamento das caixas encolhem de forma proporcional. */
@media (max-width: 991.98px) { .seccao { padding:.8rem .8rem; } .tabela-compacta td, .tabela-compacta th { font-size:clamp(.74rem,.55rem + .5vw,.875rem); } }

/* Limite de largura: em monitores muito largos o conteúdo fica centrado e confortável de ler. */
nav > .container-fluid, main.container-fluid, footer.container-fluid { max-width:1680px; margin-left:auto; margin-right:auto; }

/* Tabela das linhas do orçamento: letra um pouco maior, colunas numéricas mais largas e afastadas entre si;
   a designação fica com uma largura própria e as restantes colunas deslocam-se para a esquerda. */
.tabela-compacta.tabela-orc th, .tabela-compacta.tabela-orc td { font-size:.93rem; }
.tabela-orc .col-desc { width:32%; }
.tabela-orc th.text-end, .tabela-orc td.text-end { padding-left:1.75rem; min-width:6.5rem; white-space:nowrap; }
.tabela-orc th.grupo-medido, .tabela-orc th.grupo-falta, .tabela-orc td.grupo-medido, .tabela-orc td.grupo-falta { min-width:7.5rem; }

/* Cabeçalhos ordenáveis. */
a.ordenar, th[data-ord-col] { cursor:pointer; user-select:none; white-space:nowrap; }
a.ordenar .seta, th[data-ord-col] .seta { display:inline-block; min-width:.9em; margin-left:.2em; font-size:.7em; opacity:.8; }
a.ordenar:hover, th[data-ord-col]:hover { text-decoration:underline; }
