.field{gap:var(--space-1);flex-direction:column;display:flex}.field__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);line-height:var(--lh-normal)}.field__required{color:var(--accent-secondary);margin-left:2px}.field__control{flex-direction:column;display:flex}.field__control input,.field__control textarea,.field__control select{width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-body);font-size:var(--fs-base);color:var(--text-primary);background:var(--surface-elevated);border:1px solid var(--border-card);border-radius:var(--radius-md);transition:border-color var(--dur-fast) var(--ease-out-soft), box-shadow var(--dur-fast) var(--ease-out-soft);min-height:var(--touch-min)}.field__control input::placeholder,.field__control textarea::placeholder{color:var(--neutral-500)}.field__control input:focus,.field__control textarea:focus,.field__control select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--glow-violet);outline:none}.field--error .field__control input,.field--error .field__control textarea,.field--error .field__control select{border-color:var(--accent-secondary);box-shadow:0 0 0 3px var(--glow-crimson)}.field__control textarea{resize:vertical;min-height:100px;line-height:var(--lh-relaxed)}.field__footer{justify-content:space-between;align-items:baseline;min-height:20px;display:flex}.field__error{font-size:var(--fs-xs);color:var(--accent-secondary);line-height:var(--lh-normal);margin:0}.field__helper{font-size:var(--fs-xs);color:var(--text-secondary);line-height:var(--lh-normal);margin:0}.field__char-count{font-size:var(--fs-xs);font-family:var(--font-mono);flex-shrink:0;margin-left:auto}.field__char-count--normal{color:var(--text-secondary)}.field__char-count--warning{color:#eab308}.field__char-count--danger{color:var(--accent-secondary)}.field__control input:disabled,.field__control textarea:disabled,.field__control select:disabled{opacity:.4;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.field__control input,.field__control textarea,.field__control select{transition:none}}
