.jc-field label, .jc-field legend { display: block; margin-bottom: var(--jc-space-8); font-weight: 600; }
.jc-input, .jc-select, .jc-textarea, .jc-field input, .jc-field select, .jc-field textarea { min-height: var(--jc-input-h); width: 100%; padding: 0 var(--jc-space-16); border: var(--jc-rule-control); border-radius: var(--jc-radius); background: var(--jc-surface); color: var(--jc-text); font: 400 var(--jc-fs-input)/1.4 var(--jc-font-body); }
.jc-textarea, .jc-field textarea { padding-block: var(--jc-space-12); }
.jc-input:focus-visible, .jc-select:focus-visible, .jc-textarea:focus-visible, .jc-field :is(input,select,textarea):focus-visible { outline: none; border-color: var(--jc-accent); box-shadow: 0 0 0 1px var(--jc-accent); }
.jc-input[aria-invalid='true'], .jc-field [aria-invalid='true'] { border-color: var(--jc-error); box-shadow: 0 0 0 1px var(--jc-error); }
.jc-choice { display: inline-flex; align-items: center; min-height: var(--jc-touch-min); gap: var(--jc-space-8); }
.jc-choice input { width: 20px; height: 20px; accent-color: var(--jc-accent); }
.jc-notice { padding: var(--jc-space-16); border: var(--jc-rule); border-top: 2px solid var(--jc-ink); background: var(--jc-surface); }
.jc-notice--success { border-top-color: var(--jc-success); }
.jc-notice--error { border-top-color: var(--jc-error); }
