/* forms.css - 表单(文档02 3.5.2) */
.form-group { margin-bottom: var(--space-lg); }
.form-label { display: block; margin-bottom: var(--space-sm); font-size: var(--font-size-body); color: var(--color-text-regular); }
.form-label .required { color: var(--color-danger); margin-right: 2px; }
.form-input {
  width: 100%; height: 44px; padding: 0 12px;
  font-size: var(--font-size-body);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-card); color: var(--color-text-primary);
  -webkit-appearance: none;
}
.form-input:focus { border-color: var(--color-primary); }
.form-input::placeholder { color: var(--color-text-placeholder); }
.form-input.error { border-color: var(--color-danger); }
.form-error { color: var(--color-danger); font-size: var(--font-size-caption); margin-top: var(--space-xs); }
.form-textarea { min-height: 96px; padding: 10px 12px; resize: vertical; }
.form-input-wrap { position: relative; }
.form-suffix {
  position: absolute; right: 0; top: 0; height: 44px;
  display: inline-flex; align-items: center; padding: 0 12px;
  font-size: var(--font-size-body); color: var(--color-accent); cursor: pointer;
}
.form-input.suffix { padding-right: 110px; }
.radio-group { display: flex; gap: var(--space-md); }
.radio-item {
  flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px;
  height: 44px; border: 1px solid var(--color-border); border-radius: var(--radius-md);
  font-size: var(--font-size-body); color: var(--color-text-regular); cursor: pointer;
}
.radio-item.active { border-color: var(--color-primary); color: var(--color-primary); background: var(--color-primary-bg); }
.radio-item input { display: none; }
/* 上传框 */
.upload-box {
  width: 100%; min-height: 120px; border: 1px dashed var(--color-border);
  border-radius: var(--radius-md); background: var(--color-bg-card);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: var(--space-sm); color: var(--color-text-secondary); cursor: pointer; overflow: hidden;
  font-size: var(--font-size-caption); position: relative;
}
.upload-box img { width: 100%; max-height: 220px; object-fit: cover; display: block; cursor: zoom-in; }
.upload-box i { font-size: 26px; color: var(--color-text-placeholder); }
.upload-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-sm); }
.upload-grid .upload-box { min-height: 90px; }
/* 省市区三列联动 */
.region-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--space-sm); }
.region-row .form-input { padding: 0 8px; font-size: var(--font-size-caption); }

/* 双列上传(身份证正反面等) */
.upload-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-sm); }
.upload-grid-2 .upload-box { min-height: 118px; }
.upload-grid-2 .upload-box img { max-height: 150px; }
