/* --- Input Fields Redesign --- */
.form-group {
    margin-bottom: 20px !important;
}

    .form-group label {
        font-family: var(--font-display);
        font-size: 13px;
        font-weight: 500;
        color: var(--text-secondary);
        margin-bottom: 6px;
        display: inline-block;
    }

.form-control,
input[type="text"]:not(.select2-search__field):not(.ss-search input),
input[type="number"],
input[type="password"],
input[type="email"],
input[type="date"],
select,
textarea {
    font-family: var(--font-sans) !important;
    /*height: 42px !important;*/
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border-color) !important;
    background-color: #ffffff !important;
    color: var(--text-primary) !important;
    padding: 8px 14px !important;
    font-size: 14px !important;
    box-shadow: var(--shadow-sm);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast) !important;
    width: 100%;
}

    .form-control:focus,
    input[type="text"]:not(.select2-search__field):not(.ss-search input):focus,
    input[type="number"]:focus,
    input[type="password"]:focus,
    input[type="email"]:focus,
    input[type="date"]:focus,
    select:focus,
    textarea:focus {
        border-color: var(--primary-accent) !important;
        box-shadow: 0 0 0 4px rgba(9, 105, 250, 0.12) !important;
        outline: none !important;
    }

    .form-control::placeholder {
        color: var(--text-muted);
    }

    .form-control:disabled,
    input[type="text"]:disabled,
    input[type="number"]:disabled,
    input[type="password"]:disabled,
    input[type="email"]:disabled,
    input[type="date"]:disabled,
    select:disabled,
    textarea:disabled {
        background-color: var(--bg-gray) !important;
        color: var(--text-muted) !important;
        cursor: not-allowed;
        border-color: var(--border-color) !important;
    }


/* Validation Styles */
.validation-summary-errors {
    border-radius: var(--radius-md);
    background-color: var(--danger-light);
    border: 1px solid rgba(239, 68, 68, 0.2);
    padding: 12px 16px;
    margin-bottom: 20px;
    color: var(--danger);
    font-family: var(--font-sans);
    font-size: 13px;
}

    .validation-summary-errors ul {
        margin: 0;
        padding-left: 20px;
    }

.text-danger, .field-validation-error {
    color: var(--danger) !important;
    font-size: 12px;
    font-weight: 500;
    margin-top: 4px;
    display: block;
}

/* --- Select2 & SlimSelect Custom Styling Overrides --- */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    height: 42px !important;
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-sm);
    background-color: #ffffff !important;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast) !important;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--primary-accent) !important;
    box-shadow: 0 0 0 4px rgba(9, 105, 250, 0.12) !important;
    outline: none !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 40px !important;
    padding-left: 14px !important;
    color: var(--text-primary) !important;
    font-size: 14px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 40px !important;
    width: 32px !important;
    background: transparent !important;
    border-left: 0 !important;
}

    .select2-container--default .select2-selection--single .select2-selection__arrow b {
        border-color: var(--text-secondary) transparent transparent transparent !important;
        border-width: 5px 4px 0 4px !important;
    }

.select2-dropdown {
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-overlay) !important;
    z-index: 9999;
    overflow: hidden;
}

.select2-results__option {
    font-family: var(--font-sans);
    font-size: 13px;
    padding: 8px 14px !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--primary-accent) !important;
    color: #ffffff;
}

/* SlimSelect Overrides */
.ss-main .ss-single-selected {
    height: 42px !important;
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-sm);
}

.ss-content {
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-overlay) !important;
}

/* --- Captcha Layout Modernization --- */
.Captcha {
    display: flex;
    align-items: center;
    border-radius: var(--radius-sm);
    overflow: hidden;
    border: 1px solid var(--border-color);
    box-shadow: var(--shadow-sm);
    margin-bottom: 20px;
    height: 50px;
}

    .Captcha img {
        height: 100% !important;
        border: 0 !important;
        border-right: 1px solid var(--border-color) !important;
        background-color: #ffffff;
    }

    .Captcha a {
        display: flex !important;
        align-items: center;
        justify-content: center;
        background-color: var(--bg-gray);
        width: 45px;
        height: 100%;
        color: var(--text-secondary);
        border-right: 1px solid var(--border-color);
        transition: all var(--transition-fast);
    }

        .Captcha a:hover {
            background-color: #edf2f7;
            color: var(--primary-accent);
        }

        .Captcha a::after {
            content: "\f021";
            font-family: 'FontAwesome';
            font-size: 16px;
            position: static !important;
        }

    .Captcha input {
        flex: 1;
        height: 100% !important;
        border: 0 !important;
        padding: 0 14px !important;
        font-size: 14px;
        text-transform: uppercase;
    }

        .Captcha input:focus {
            outline: none !important;
        }

/* --- Image Upload Container --- */
.image-upload-submit {
    border: 1px dashed var(--border-color) !important;
    background-color: var(--bg-gray) !important;
    border-radius: var(--radius-md) !important;
    padding: 16px !important;
    text-align: center;
    display: block;
    width: 100%;
    cursor: pointer;
    transition: all var(--transition-smooth);
}

    .image-upload-submit:hover {
        border-color: var(--primary-accent) !important;
        background-color: var(--primary-accent-light) !important;
    }

    .image-upload-submit label {
        cursor: pointer;
        margin: 0 !important;
        font-family: var(--font-display);
        font-size: 13px;
        font-weight: 500;
        color: var(--text-secondary);
    }

        .image-upload-submit label i {
            font-size: 20px;
            margin-bottom: 4px;
            display: block;
            color: var(--text-muted);
        }

.datepicker-days .table-condensed tfoot tr {
    background-color: var(--primary-accent) !important;
}

/* Dim labels of disabled form elements */
.form-group:has(.form-control:disabled) label,
.form-group:has(input:disabled) label,
.form-group:has(select:disabled) label,
.form-group:has(textarea:disabled) label {
    opacity: 0.65;
    transition: opacity var(--transition-fast) !important;
}
