/* C-02 Campos. Label always visible above; error = 2px red border + message below. */
.campo { display: flex; flex-direction: column; gap: var(--sp-2); }
.campo__rotulo { font-size: 14px; font-weight: 600; }
.painel .campo__rotulo { font-size: var(--fs-small); }
.campo__entrada {
  height: var(--btn-panel); padding: 0 var(--sp-5);
  border: 1px solid var(--border); border-radius: var(--r-field-panel);
  background: var(--surface); color: var(--ink); font: inherit; font-size: var(--fs-body-panel);
}
.app .campo__entrada { height: var(--btn-app); padding: 0 var(--sp-6); border-radius: var(--r-button-app); font-size: var(--fs-body-app); }
.campo__entrada::placeholder { color: var(--muted); opacity: 0.8; }
.campo__entrada:disabled { opacity: 0.35; cursor: not-allowed; }
.campo--erro .campo__entrada { border: 2px solid var(--danger); }
.campo__ajuda, .campo__erro { margin: 0; }
.campo__ajuda { font-size: var(--fs-label); color: var(--muted); }
.campo__erro { font-size: var(--fs-label); font-weight: 600; color: var(--danger-text); }
.app .campo__ajuda, .app .campo__erro { font-size: 14px; }
.campo__texto { height: auto; min-height: 96px; padding-block: var(--sp-4); line-height: var(--lh-panel); resize: vertical; }
.campo__entrada--erro { border: 2px solid var(--danger); }
