/* Estilos compartidos (formulario público, consulta, registro) */
.field {
  width: 100%; border: 1px solid #d1d5db; border-radius: .75rem; padding: .75rem 1rem;
  background: #f9fafb; font-size: .95rem; transition: border-color .15s, box-shadow .15s, background .15s;
}
.field:focus { outline: none; background: #fff; border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 25%, transparent); }
.field.is-invalid { border-color: #ef4444; }
.label { display: block; font-size: .85rem; font-weight: 500; margin-bottom: .3rem; color: #374151; }
.section-title { font-size: 1.15rem; font-weight: 600; color: #1f2937; border-left: 4px solid var(--brand); padding-left: .75rem; margin-bottom: 1.25rem; }
.btn-brand { background: var(--brand); color: var(--on-brand); font-weight: 600; border-radius: .75rem; padding: 1rem 1.5rem; transition: filter .15s, transform .15s; }
.btn-brand:hover { filter: brightness(.92); transform: translateY(-1px); }
.btn-brand:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.card { background: #fff; border-radius: 1.25rem; box-shadow: 0 10px 30px -10px rgba(0,0,0,.15); }
.code { font-family: 'Courier New', monospace; letter-spacing: 2px; }
.badge { display: inline-block; padding: .2rem .7rem; border-radius: 999px; font-size: .75rem; font-weight: 600; color: #fff; }
input[type="radio"], input[type="checkbox"] { accent-color: var(--brand); }
