/**
 * Taskora Group LLC - Form Styles & Validation UX
 * 
 * Form inputs, floating labels, validation states, and alert banners.
 */

.taskora-form-wrap {
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: clamp(1.75rem, 3vw + 1rem, 3rem);
    box-shadow: var(--shadow-sm);
}

.form-label {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--color-dark);
    margin-bottom: 0.4rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.form-label .req {
    color: var(--color-danger);
}

.form-control,
.form-select {
    font-family: var(--font-primary);
    font-size: 0.95rem;
    color: var(--color-dark);
    background-color: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 0.75rem 1rem;
    min-height: 48px;
    transition: border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.22s ease;
}

textarea.form-control {
    min-height: 120px;
    resize: vertical;
}

.form-control,
.form-select,
input,
select,
textarea {
    outline: none !important;
    box-shadow: none !important;
}

.form-control:focus,
.form-select:focus,
.form-control:focus-visible,
.form-select:focus-visible,
input:focus,
select:focus,
textarea:focus,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    color: var(--color-dark);
    background-color: var(--color-white);
    border-color: var(--color-secondary) !important;
    box-shadow: none !important;
    outline: none !important;
}

.form-control::placeholder {
    color: var(--color-muted);
    opacity: 0.75;
}

/* Validation Feedback States */
.form-control.is-invalid,
.form-select.is-invalid {
    border-color: var(--color-danger) !important;
    background-image: none; /* Clean corporate aesthetic */
    box-shadow: none !important;
    outline: none !important;
}

.form-control.is-invalid:focus,
.form-select.is-invalid:focus,
.form-control.is-invalid:focus-visible,
.form-select.is-invalid:focus-visible {
    border-color: var(--color-danger) !important;
    box-shadow: none !important;
    outline: none !important;
}

.form-control.is-valid:focus,
.form-select.is-valid:focus,
.form-control.is-valid:focus-visible,
.form-select.is-valid:focus-visible {
    border-color: var(--color-success) !important;
    box-shadow: none !important;
    outline: none !important;
}

.invalid-feedback {
    font-size: 0.825rem;
    font-weight: 500;
    color: var(--color-danger);
    margin-top: 0.35rem;
    display: block;
}

.valid-feedback {
    font-size: 0.825rem;
    font-weight: 500;
    color: var(--color-success);
    margin-top: 0.35rem;
}

/* Honeypot field (hidden from real users, caught by spam bots) */
.hp-field {
    position: absolute !important;
    left: -9999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Form Alert Banners */
.alert-custom {
    border-radius: var(--radius-sm);
    padding: 1.25rem 1.5rem;
    margin-bottom: 2rem;
    border: 1px solid transparent;
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    font-size: 0.95rem;
    line-height: 1.5;
}

.alert-custom i {
    font-size: 1.3rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.alert-custom-success {
    background-color: var(--color-success-subtle);
    border-color: rgba(5, 150, 105, 0.3);
    color: #065f46;
}

.alert-custom-danger {
    background-color: var(--color-danger-subtle);
    border-color: rgba(220, 38, 38, 0.3);
    color: #991b1b;
}
