.app-form-label {
    display: inline-block;
    margin-bottom: var(--app-space-1);
    color: var(--app-neutral-800);
    font-size: var(--app-font-size-sm);
    font-weight: var(--app-font-weight-semibold);
}
.app-form-control,
.app-form-select,
.app-form-textarea {
    display: block;
    width: 100%;
    padding: var(--app-space-2) var(--app-space-3);
    border: 1px solid var(--app-neutral-300);
    border-radius: var(--app-radius-sm);
    background-color: var(--app-neutral-0);
    color: var(--app-neutral-900);
    font-family: var(--app-font-family-base);
    font-size: var(--app-font-size-base);
}
.app-form-control:focus,
.app-form-select:focus,
.app-form-textarea:focus {
    border-color: var(--app-brand-accent);
    outline: 0;
    box-shadow: 0 0 0 0.15rem rgba(0, 161, 235, 0.16);
}
.app-form-textarea { min-height: 6rem; resize: vertical; }
.app-input-group { display: flex; align-items: stretch; gap: var(--app-space-2); }
.app-field { margin-bottom: var(--app-space-3); }
.app-field-label {
    display: inline-flex;
    align-items: center;
    gap: var(--app-space-1);
    margin-bottom: var(--app-space-1);
    color: var(--app-neutral-700);
    font-size: var(--app-font-size-sm);
    font-weight: var(--app-font-weight-semibold);
}
.app-input-soft {
    border: 1px solid rgba(79, 83, 92, 0.18);
    border-radius: var(--app-radius-md);
    background-color: #fbfbfb;
    transition: border-color var(--app-motion-base) var(--app-motion-ease),
        box-shadow var(--app-motion-base) var(--app-motion-ease),
        background-color var(--app-motion-base) var(--app-motion-ease);
}
.app-input-soft:focus-within {
    border-color: rgba(151, 79, 75, 0.52);
    background-color: var(--app-neutral-0);
    box-shadow: 0 0 0 0.14rem rgba(151, 79, 75, 0.14);
}
.app-validation-text,
.app-field-error {
    margin-top: var(--app-space-1);
    color: var(--app-danger);
    font-size: var(--app-font-size-sm);
}
.app-form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: var(--app-space-3);
}
.app-form-row-compact {
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    gap: var(--app-space-2);
}
.app-form-section {
    padding: var(--app-space-4);
    border: 1px solid rgba(79, 83, 92, 0.12);
    border-radius: var(--app-radius-lg);
    background-color: var(--app-neutral-0);
}
.app-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: var(--app-space-3);
}
.app-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: var(--app-space-2);
    padding-top: var(--app-space-3);
}
.app-native-input-wrap,
.app-native-select-wrap,
.app-native-textarea-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--app-space-1);
}
