/* Gabster · formulário nativo do Opa! (/diagnostico, /demonstracao, /vega). Só tokens de styles.css. */
.opa-form {margin-top:40px;max-width:860px}
/* Na /vega o quadro é o da região de contato (vega.css): o formulário não repete a moldura. */
.vg-contact-form .opa-form {margin-top:0;max-width:none}
.vg-contact-form .opa-form-campos {padding:0;border:0;background:none;box-shadow:none}
.opa-form-campos {display:grid;gap:22px;padding:28px;background:var(--card);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow)}
.opa-grade {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.opa-campo {display:grid;gap:6px;min-width:0}
.opa-campo--largo, .opa-grupo {grid-column:1 / -1}
.opa-campo label, .opa-grupo legend {font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--ink)}
.opa-campo-opcional {font-weight:400;color:var(--muted)}
.opa-campo-dica {font-size:12px;color:var(--muted)}
.opa-campo input, .opa-campo select, .opa-campo textarea {width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;font-size:16px;line-height:1.4}
.opa-campo textarea {resize:vertical;min-height:112px}
.opa-campo input:focus-visible, .opa-campo select:focus-visible, .opa-campo textarea:focus-visible {outline:3px solid var(--terra);outline-offset:2px}
.opa-grupo {margin:0;padding:0;border:0;min-width:0}
.opa-grupo:focus {outline:none}
.opa-grupo legend {padding:0;margin-bottom:10px}
.opa-opcoes {display:flex;flex-wrap:wrap;gap:10px}
.opa-opcao {display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:9px 16px 9px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:15px;cursor:pointer}
.opa-opcao input {margin:0;width:18px;height:18px;accent-color:var(--ink);cursor:pointer}
.opa-opcao:has(input:checked) {border-color:var(--ink);background:var(--mint-tone)}
.opa-opcao:has(input:focus-visible) {outline:3px solid var(--terra);outline-offset:3px}
.opa-consentimento {display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;font-size:14px;line-height:1.55;cursor:pointer}
.opa-consentimento input {margin:3px 0 0;width:20px;height:20px;accent-color:var(--ink);cursor:pointer}
.opa-acao {margin:0}
.opa-form-nota {margin:0;font-size:13px;line-height:1.55;color:var(--muted)}
.opa-form-nota a {border-bottom:1px solid currentColor;font-weight:600}
.opa-form-status {margin:0;font-size:15px;line-height:1.55}
.opa-form-status:empty {display:none}
.opa-form-status--erro {color:var(--terra);font-weight:600}
.opa-form-status--ok {font-size:19px;font-weight:600;color:var(--ink)}
.opa-form-status:focus {outline:none}
@media (max-width:719px) {
  .opa-form-campos {padding:20px}
  .opa-grade {grid-template-columns:minmax(0,1fr)}
}
