/* Form Input Borders Fix - High Priority */

/* Bootstrap/Tabler form controls */
.form-control,
.form-select {
    border: 1px solid #dadcde !important;
    border-radius: 4px !important;
    background-color: #ffffff !important;
    padding: 0.4375rem 0.75rem !important;
    font-size: 0.875rem !important;
    line-height: 1.4285714 !important;
    color: #232e3c !important;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out !important;
}

.form-control:focus,
.form-select:focus {
    border-color: #0054a6 !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 84, 166, 0.25) !important;
    outline: 0 !important;
}

/* Tailwind CSS inputs for frontend */
input[type="text"],
input[type="email"], 
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="color"],
textarea {
    border: 1px solid #dadcde !important;
    background-color: #ffffff !important;
    border-radius: 4px !important;
    padding: 0.5rem 0.75rem !important;
}

input[type="text"]:focus,
input[type="email"]:focus, 
input[type="password"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
input[type="datetime-local"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="color"]:focus,
textarea:focus {
    border-color: #0054a6 !important;
    box-shadow: 0 0 0 2px rgba(0, 84, 166, 0.25) !important;
    outline: none !important;
}

/* Override Tailwind reset that might remove borders */
input,
textarea,
select {
    border: 1px solid #dadcde !important;
}

/* Specific targeting for common Tailwind patterns */
.w-full.px-6.py-4,
.w-full.px-4.py-3,
.w-full.px-3.py-2 {
    border: 1px solid #dadcde !important;
    background-color: #ffffff !important;
}

.w-full.px-6.py-4:focus,
.w-full.px-4.py-3:focus,
.w-full.px-3.py-2:focus {
    border-color: #0054a6 !important;
    box-shadow: 0 0 0 2px rgba(0, 84, 166, 0.25) !important;
}

/* Ensure gradient backgrounds don't hide borders */
.bg-gradient-to-r input,
.bg-gradient-to-l input,
.bg-gradient-to-t input,
.bg-gradient-to-b input {
    border: 1px solid #dadcde !important;
    background-color: #ffffff !important;
    margin: 1px !important;
}

.bg-gradient-to-r input:focus,
.bg-gradient-to-l input:focus,
.bg-gradient-to-t input:focus,
.bg-gradient-to-b input:focus {
    border-color: #0054a6 !important;
    box-shadow: 0 0 0 2px rgba(0, 84, 166, 0.25) !important;
}

/* Tom Select (if used) */
.ts-control,
.ts-dropdown {
    border: 1px solid #dadcde !important;
}

.ts-control:focus {
    border-color: #0054a6 !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 84, 166, 0.25) !important;
}

/* File inputs */
input[type="file"] {
    border: 1px solid #dadcde !important;
    background-color: #ffffff !important;
    padding: 0.375rem 0.75rem !important;
}

/* Select elements */
select {
    border: 1px solid #dadcde !important;
    background-color: #ffffff !important;
    padding: 0.375rem 0.75rem !important;
}

select:focus {
    border-color: #0054a6 !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 84, 166, 0.25) !important;
    outline: 0 !important;
}

/* Dark theme overrides */
.theme-dark .form-control,
.theme-dark .form-select,
.theme-dark input,
.theme-dark textarea,
.theme-dark select {
    background-color: #1b2434 !important;
    border-color: #384350 !important;
    color: #fafbfc !important;
}

.theme-dark .form-control:focus,
.theme-dark .form-select:focus,
.theme-dark input:focus,
.theme-dark textarea:focus,
.theme-dark select:focus {
    border-color: #4f9eed !important;
    background-color: #1b2434 !important;
}

/* Invalid states */
.is-invalid .form-control,
.is-invalid .form-select,
input:invalid,
textarea:invalid,
select:invalid {
    border-color: #dc3545 !important;
}

/* Valid states */
.is-valid .form-control,
.is-valid .form-select,
input:valid,
textarea:valid,
select:valid {
    border-color: #28a745 !important;
}

/* Make sure no CSS resets remove borders */
* {
    box-sizing: border-box;
}

/* Override any normalize.css or reset.css that removes borders */
input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="radio"]):not([type="checkbox"]),
textarea,
select {
    border: 1px solid #dadcde !important;
    background-color: #ffffff !important;
}
