/*
PuntVault Enterprise UI Framework
Phase 4.3 - Form System V2

Purpose:
- Standardize inputs, labels, selects, textareas, validation states and form layouts.
- Additive only. Existing form classes remain untouched until templates are migrated.
*/

.pv-form-v2 {
    display: grid;
    gap: var(--pv-space-md);
}

.pv-form-group-v2 {
    display: grid;
    gap: 8px;
}

.pv-label-v2 {
    color: var(--pv-text-soft);
    font-size: var(--pv-text-sm);
    font-weight: 800;
}

.pv-input-v2,
.pv-select-v2,
.pv-textarea-v2 {
    width: 100%;
    min-height: 48px;
    border-radius: var(--pv-radius-md);
    border: 1px solid var(--pv-border);
    background: rgba(255, 255, 255, 0.06);
    color: var(--pv-text);
    padding: 0.9rem 1rem;
    font-family: var(--pv-font-main);
    font-size: var(--pv-text-md);
    outline: none;
    transition:
        border-color var(--pv-transition),
        box-shadow var(--pv-transition),
        background var(--pv-transition);
}

.pv-textarea-v2 {
    min-height: 130px;
    resize: vertical;
}

.pv-input-v2::placeholder,
.pv-textarea-v2::placeholder {
    color: var(--pv-faint);
}

.pv-input-v2:focus,
.pv-select-v2:focus,
.pv-textarea-v2:focus {
    border-color: var(--pv-border-green);
    background: rgba(255, 255, 255, 0.085);
    box-shadow: 0 0 0 4px rgba(0, 224, 131, 0.12);
}

.pv-input-v2[aria-invalid="true"],
.pv-select-v2[aria-invalid="true"],
.pv-textarea-v2[aria-invalid="true"] {
    border-color: rgba(255, 77, 79, 0.55);
    box-shadow: 0 0 0 4px rgba(255, 77, 79, 0.10);
}

.pv-field-help-v2 {
    color: var(--pv-muted);
    font-size: var(--pv-text-xs);
    line-height: 1.5;
}

.pv-field-error-v2 {
    color: #ff9b9d;
    font-size: var(--pv-text-xs);
    font-weight: 700;
}

.pv-form-actions-v2 {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--pv-space-md);
    margin-top: var(--pv-space-sm);
}

.pv-form-card-v2 {
    background: var(--pv-surface-glass);
    border: 1px solid var(--pv-border-soft);
    border-radius: var(--pv-radius-lg);
    box-shadow: var(--pv-shadow-card);
    padding: var(--pv-space-lg);
}

@media (max-width: 640px) {
    .pv-form-actions-v2 {
        flex-direction: column;
        align-items: stretch;
    }

    .pv-form-card-v2 {
        padding: var(--pv-space-md);
    }
}
