/* form01：动态表单。选择器挂在根 class 与交易钩子上。 */

.form01 {
  color: var(--color-text);
  background: var(--color-bg);
}

.form01__inner {
  width: 100%;
  max-width: 40rem;
  margin-inline: auto;
  padding: var(--space-6) var(--page-pad) var(--section-y);
}

.form01__header {
  margin-bottom: var(--space-5);
  text-align: center;
}

.form01__title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-heading);
  font-size: var(--fs-h1);
  font-weight: 500;
  line-height: 1.2;
}

.form01__subtitle {
  margin: 0;
  color: var(--color-text-muted);
  line-height: var(--lh-body);
}

.form01__pending {
  margin: 0;
  padding: var(--space-6);
  text-align: center;
  color: var(--color-text-muted);
  border: var(--line) solid var(--color-border);
  border-radius: var(--radius);
}

.form01__form {
  display: block;
}

.form01__fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
}

.form01__field {
  min-width: 0;
}

.form01 .dynamic-form-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.form01 .form-field__label {
  font-size: 0.875rem;
  font-weight: 500;
}

.form01 .form-field__req {
  color: var(--color-brand);
}

.form01 .form-field__desc {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.form01 .form-field__control {
  width: 100%;
  box-sizing: border-box;
  padding: 0.75rem 1rem;
  color: var(--color-text);
  background: var(--color-surface);
  border: var(--line) solid var(--color-border);
  border-radius: var(--radius);
  font: inherit;
}

.form01 .form-field__control:focus {
  outline: 2px solid var(--color-brand);
  outline-offset: 1px;
}

.form01 textarea.form-field__control {
  min-height: 7.5rem;
  resize: vertical;
}

.form01 .form-field__check {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  cursor: pointer;
}

.form01 .dynamic-form-field.has-error .form-field__control {
  border-color: var(--color-brand);
}

.form01 .form-field__progress {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.form01 .form-field__preview {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.form01 .form-field__preview-img {
  display: block;
  overflow: hidden;
  width: 6rem;
  height: 6rem;
  border: var(--line) solid var(--color-border);
  border-radius: var(--radius);
}

.form01 .form-field__preview-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.form01 .form-field__preview-link {
  color: var(--color-brand);
}

.form01__message {
  margin: var(--space-4) 0 0;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius);
  border: var(--line) solid var(--color-border);
}

.form01__message[data-type="success"] {
  color: var(--color-text);
  background: var(--color-surface);
}

.form01__message[data-type="error"] {
  color: var(--color-brand);
}

.form01__actions {
  margin-top: var(--space-5);
  text-align: center;
}

.form01__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 10rem;
  padding: var(--btn-pad);
  color: var(--btn-fg);
  background: var(--btn-bg);
  border: 0;
  border-radius: var(--btn-radius);
  font: inherit;
  cursor: pointer;
}

.form01__submit:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

@media (min-width: 768px) {
  .form01__fields {
    grid-template-columns: 1fr 1fr;
  }

  .form01__field.form-field--wide {
    grid-column: 1 / -1;
  }
}
