/* Formulários do Stratechna Suite.

   As cores vêm de variáveis definidas no elemento pelo PHP, a partir das
   definições de Aspecto de cada formulário. O que não for configurado cai
   nos valores daqui — e o valor daqui é herdar do tema.

   Porque é que a omissão é herdar: cores de texto fixas geraram legendas
   brancas sobre fundo branco no stratechna.pt (22-09-2026). "Não
   configurado" tem de ser seguro; forçar uma cor é uma decisão, e o
   construtor mostra o contraste antes de a deixar gravar. */
.ss-form {
  --ss-form-borda: rgba(128,128,128,.4);
  --ss-form-texto: inherit;
  --ss-form-campo-fundo: #ffffff;
  --ss-form-campo-texto: #1a1c1e;
  color: var(--ss-form-texto);
}
.ss-form-grelha { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ss-form-campo.ss-inteira { grid-column: 1 / -1; }
.ss-form-etiqueta { display: block; font-weight: 600; margin-bottom: 6px; font-size: .95em; color: inherit; }
.ss-form-obrig { color: var(--ss-form-cor, #b20009); }
.ss-form input[type="text"], .ss-form input[type="email"], .ss-form input[type="tel"],
.ss-form input[type="number"], .ss-form input[type="date"], .ss-form select, .ss-form textarea {
  width: 100%; box-sizing: border-box; padding: 9px 11px; font: inherit;
  color: var(--ss-form-campo-texto); background: var(--ss-form-campo-fundo);
  border: 1px solid var(--ss-form-borda); border-radius: 6px;
}
.ss-form textarea { min-height: 130px; resize: vertical; }
.ss-form input:focus, .ss-form select:focus, .ss-form textarea:focus {
  outline: 2px solid var(--ss-form-cor, #b20009); outline-offset: 1px; border-color: transparent;
}
.ss-form-caixa, .ss-form-opcao { display: flex; align-items: flex-start; gap: 8px; line-height: 1.4; color: inherit; }
.ss-form-opcoes { display: flex; flex-direction: column; gap: 6px; }
.ss-form-ajuda { display: block; margin-top: 4px; opacity: .75; font-size: .85em; }
.ss-form-botao {
  margin-top: 18px; padding: 11px 24px; font: inherit; font-weight: 600; cursor: pointer;
  color: #fff; background: var(--ss-form-cor, #b20009); border: 0; border-radius: 6px;
}
.ss-form-botao[disabled] { opacity: .55; cursor: default; }
/* Erro e sucesso não herdam: têm de ser legíveis em qualquer fundo, e um
   aviso que não se lê é pior do que aviso nenhum. */
.ss-form-erro { margin-top: 14px; padding: 10px 12px; border-left: 3px solid #b32d2e; background: rgba(179,45,46,.10); }
.ss-form-sucesso { margin-top: 14px; padding: 10px 12px; border-left: 3px solid #2d7d46; background: rgba(45,125,70,.10); }
.ss-form-turnstile { margin-top: 16px; }
/* Fora do ecrã em vez de display:none — há bots que ignoram o que está
   escondido dessa maneira, e o objectivo é precisamente que o preencham. */
.ss-form-armadilha { position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 600px) { .ss-form-grelha { grid-template-columns: 1fr; } }
