﻿input {
    border: 1px solid;
    border-radius: 4px;
    padding: .25rem;
}

    input[type='checkbox'] {
        text-align: center;
        display: table-cell;
        vertical-align: middle;
        width: 20px !important;
        height: 20px !important;
        appearance: none;
        border-radius: 10%;
        box-shadow: none;
        font-size: 1em;
        border-radius: 3px;
        margin-right: 10px;
        top: 26px;
    }

    input[type='radio'] {
        text-align: center;
        display: table-cell;
        vertical-align: middle;
        width: 20px !important;
        height: 20px !important;
        appearance: none;
        border-radius: 10%;
        box-shadow: none;
        font-size: 1em;
        border-radius: 3px;
        margin-right: 10px;
        top: 26px;
        margin-left: 1rem;
    }

        input[type='radio']::after {
            content: '';
            position: absolute;
            top: 14px;
            left: 5px;
            width: 11px;
            height: 11px;
            border-radius: 50%;
            transform: scale(0);
        }

    input:active[type='radio']::after {
        top: 3px;
        left: 3px;
    }

    input:checked[type='radio'] {
        border: 2px solid;
    }

        input:checked[type='radio']::after {
            transform: scale(1);
        }

    input:checked:disabled[type='radio'] {
        border: 2px solid;
    }

.custom-switch {
    padding-left: 2.5rem;
}

    .custom-switch .custom-control-label,
    label:not(.form-check-label):not(.custom-file-label) {
        font-weight: 500;
        padding-left: 4px;
    }

        .custom-switch .custom-control-label::before {
            width: 2.5rem;
            left: -2.75rem;
        }

        .custom-switch .custom-control-label::after {
            left: -3rem;
            width: 1.5rem;
            height: 1.5rem;
            border-radius: 50%;
            top: -1px;
        }

    .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
        -webkit-transform: translateX(1.5rem);
        transform: translateX(1.5rem);
    }

/* FORM FLOATING */
.form-floating,
.w-100 {
    margin-bottom: 16px;
    /*width: 100%;*/
}

    .form-floating > .form-control,
    .form-floating > .form-select {
        height: 40px;
    }

    .form-floating input.form-control,
    .form-floating textarea.form-control,
    .w-100 select.form-control:not(:first-child) {
        min-height: 40px;
        font-weight: 400;
        border-radius: 4px !important; 
    }

    .form-floating > input.form-control,
    .form-floating > .form-control:focus,
    .form-floating > .form-control:not(:placeholder-shown) {
        max-height: 1.75rem;
        position: relative;
        top: 1.75rem;
        padding-top: 0px !important;
        padding-bottom: 0px !important;
    }

    .form-floating:has(textarea) {
        margin: 0;
        margin-top: -.7rem;
        width: 100%;
    }

    .form-floating > textarea.form-control,
    .form-floating > textarea.form-control:not(:placeholder-shown) {
        max-height: unset;
        padding-top: .5rem !important;
    }

    .form-floating label.control-label,
    .w-100 label.control-label {
        height: 20px;
        font-size: 12px;
        font-weight: 700;
        padding: 0 .25rem 0 .25rem;
        margin-top: 1rem;
        margin-left: 10px;
        z-index: 99;
    }

        .form-floating label.control-label:has(+ div.input-group) {
            margin-top: -.75rem;
        }

        .w-100 label.control-label:has(+ select.select2-hidden-accessible:not([multiple])),
        .w-100 label.control-label:has(+ select.select2-hidden-accessible) {
            padding: 0;
        }

    .w-100 .select2-selection.select2-selection--multiple {
        max-height: 40px;
        padding: 0;
    }

    .w-100 .select2-search.select2-search--inline {
        margin: 0;
    }

    .w-100 ul.select2-selection__rendered {
        margin: 0;
        padding: 0;
        padding-left: 12px;
        padding-right: 12px;
    }

    .w-100 .select2-selection__choice {
        border-radius: 100px !important;
        min-height: 20px;
        max-height: 20px;
        margin-top: 10px;
        margin-right: 8px;
        padding: 3px 21px 4px 4px;
        font-size: 12px;
    }

    .w-100 .select2-selection__choice__remove {
        display: inline-block;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        position: relative;
        top: 3px;
        text-align: center;
        line-height: 11px;
    }

    .w-100 .select2-selection.select2-selection--multiple input {
        min-height: 24px;
        margin-bottom: 8px;
        margin-top: 8px !important;
    }

    .w-100 .select2-container--default .select2-selection--multiple .select2-selection__rendered:after {
        content: "\25BC"; /* Unicode for downward triangle */
        position: absolute;
        right: 10.5px;
        top: 50%;
        transform: translateY(-50%) scaleX(.7) scaleY(.47);
        pointer-events: none;
    }

    .form-floating .input-group > input.form-control {
        border-left: transparent !important;
        padding-left: .5rem;
    }

    .form-floating > .form-control:focus ~ label,
    .form-floating > .form-control:not(:placeholder-shown) ~ label,
    .form-floating > .form-select ~ label,
    .form-check ~ label {
        transform: none !important;
        padding: 0 .25rem 0 .25rem !important;
        opacity: 1;
    }

    .form-floating .input-group > .input-group-prepend {
        border: 1px solid;
        border-radius: 4px 0 0 4px;
        border-right: transparent !important;
    }

        .form-floating .input-group > .input-group-prepend > span {
            border: none;
            padding: 0;
            padding-left: .25rem;
        }

    .w-100 span.select2-selection {
        min-height: 40px;
        padding-top: 1rem;
        border-radius: 4px;
    }

    .w-100 span.select2-selection__arrow {
        margin-top: .5rem;
    }

.select2-results__option[aria-selected="true"] {
    font-weight: 600;
}

.w-100 > label:first-child {
    position: relative;
    margin-top: 0;
    top: 1rem;
}

.form-floating ~ .w-100 {
    margin-top: -20px;
}

.incore-row .w-100:first-child {
    margin-top: -20px;
}

.w-100 ~ .w-100 {
    /*margin-top: -29px;*/
    margin-top: -20px;
}

.form-control:focus {
    box-shadow: none;
}

.form-check.form-switch.form-control {
    border: 1px solid;
}

.form-check.form-floating .form-check-label {
    margin-left: 20px;
    top: -1px;
}

.form-check .form-check-input {
    margin-left: -1.25em;
}
