/********** TEXT INPUT ***********/

/* Base text input styling - exclude number inputs */
.form-control:not([type="number"]) {
    border: 2px solid #e5e7eb !important;
    border-radius: 6px !important;
    padding: 0.625rem 0.875rem !important;
    font-size: clamp(0.8125rem, 1.8vw, 0.875rem) !important;
    line-height: 1.5 !important;
    color: #374151 !important;
    background-color: #ffffff !important;
    transition: all 0.3s ease !important;
}

.form-control:not([type="number"])::placeholder {
    color: #9ca3af !important;
    opacity: 1 !important;
    font-style: italic;
    font-size: clamp(0.8125rem, 1.8vw, 0.875rem) !important;
}

/* Focus state */
.form-control:not([type="number"]):focus {
    outline: none !important;
    border-color: var(--primary-blue) !important;
    box-shadow: 0 0 0 4px rgba(0, 121, 193, 0.1) !important;
    background-color: #ffffff !important;
    color: #374151 !important;
}

/* Hover state */
.form-control:not([type="number"]):hover:not(:focus) {
    border-color: #d1d5db !important;
}

/* Disabled state */
.form-control:not([type="number"]):disabled,
.form-control:not([type="number"])[readonly] {
    background-color: #f3f4f6 !important;
    border-color: #e5e7eb !important;
    color: #9ca3af !important;
    cursor: not-allowed !important;
}

/* Valid state */
.form-control:not([type="number"]).is-valid {
    border-color: var(--green-success) !important;
}

.form-control:not([type="number"]).is-valid:focus {
    border-color: var(--green-success) !important;
    box-shadow: 0 0 0 4px rgba(76, 175, 80, 0.1) !important;
}

/* Invalid state */
.form-control:not([type="number"]).is-invalid {
    border-color: var(--primary-red) !important;
}

.form-control:not([type="number"]).is-invalid:focus {
    border-color: var(--primary-red) !important;
    box-shadow: 0 0 0 4px rgba(238, 28, 37, 0.1) !important;
}

/* Textarea specific */
textarea.form-control:not([type="number"]) {
    resize: vertical !important;
    min-height: 120px !important;
}

/* Large variant */
.form-control:not([type="number"]).form-control-lg {
    padding: 0.75rem 1rem !important;
    font-size: 1rem !important;
}

/* Small variant */
.form-control:not([type="number"]).form-control-sm {
    padding: 0.5rem 0.75rem !important;
    font-size: 0.875rem !important;
}
