.form-control {
            display: block;
            width: 100%;
            padding: 0.75rem 0.75rem;
            font-size: 1rem;
            font-weight: 400;
            line-height: 1.5;
            color: #212529;
            background-color: #fff;
            background-clip: padding-box;
            border: 1px solid #ced4da;
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
            border-radius: 0.25rem;
            transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        }
        @media (prefers-reduced-motion: reduce) {
            .form-control {
                transition: none;
            }
        }
        .form-control[type=file] {
            overflow: hidden;
        }
        .form-control[type=file]:not(:disabled):not([readonly]) {
            cursor: pointer;
        }
        .form-control:focus {
            color: #212529;
            background-color: #fff;
            border-color: #86b7fe;
            outline: 0;
            box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
        }
        .form-control::-webkit-date-and-time-value {
            height: 1.5em;
        }
        .form-control::-moz-placeholder {
            color: #6c757d;
            opacity: 1;
        }
        .form-control::placeholder {
            color: #6c757d;
            opacity: 1;
        }
        .form-control:disabled, .form-control[readonly] {
            background-color: #e9ecef;
            opacity: 1;
        }
        .form-control::file-selector-button {
            padding: 0.375rem 0.75rem;
            margin: -0.375rem -0.75rem;
            -webkit-margin-end: 0.75rem;
            margin-inline-end: 0.75rem;
            color: #212529;
            background-color: #e9ecef;
            pointer-events: none;
            border-color: inherit;
            border-style: solid;
            border-width: 0;
            border-inline-end-width: 1px;
            border-radius: 0;
            transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        }
        @media (prefers-reduced-motion: reduce) {
            .form-control::file-selector-button {
                transition: none;
            }
        }
        .form-control:hover:not(:disabled):not([readonly])::file-selector-button {
            background-color: #dde0e3;
        }
        .form-control::-webkit-file-upload-button {
            padding: 0.375rem 0.75rem;
            margin: -0.375rem -0.75rem;
            -webkit-margin-end: 0.75rem;
            margin-inline-end: 0.75rem;
            color: #212529;
            background-color: #e9ecef;
            pointer-events: none;
            border-color: inherit;
            border-style: solid;
            border-width: 0;
            border-inline-end-width: 1px;
            border-radius: 0;
            -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
            transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        }
        @media (prefers-reduced-motion: reduce) {
            .form-control::-webkit-file-upload-button {
                -webkit-transition: none;
                transition: none;
            }
        }
        .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
            background-color: #dde0e3;
        }
        textarea.form-control {
            min-height: calc(1.5em + 0.75rem + 2px);
        }
        textarea.form-control-sm {
            min-height: calc(1.5em + 0.5rem + 2px);
        }
        textarea.form-control-lg {
            min-height: calc(1.5em + 1rem + 2px);
        }
        .form-input {
            position: relative;
            max-height: 20px;
        }
        .form-input > .form-control,
        .form-input > .form-select {
            max-height: 20px;
            padding: 1rem 0.75rem;
        }
        .form-input > label {
            position: absolute;
            top: 0;
            left: 0;
            height: 100%;
            padding: 1rem 0.75rem;
            pointer-events: none;
            border: 1px solid transparent;
            transform-origin: 0 0;
            transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
        }
        @media (prefers-reduced-motion: reduce) {
            .form-input > label {
                transition: none;
            }
        }
        .form-input > .form-control::-moz-placeholder {
            color: transparent;
        }
        .form-input > .form-control::placeholder {
            color: transparent;
        }
        .form-input > .form-control:not(:-moz-placeholder-shown) {
            padding-top: 1.625rem;
            padding-bottom: 0.625rem;
        }
        .form-input > .form-control:focus, .form-input > .form-control:not(:placeholder-shown) {
            padding-top: 1.625rem;
            padding-bottom: 0.625rem;
        }
        .form-input > .form-control:-webkit-autofill {
            padding-top: 1.625rem;
            padding-bottom: 0.625rem;
        }
        .form-input > .form-select {
            padding-top: 1.625rem;
            padding-bottom: 0.625rem;
        }
        .form-input > .form-control:not(:-moz-placeholder-shown) ~ label {
            opacity: 0.65;
            transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
        }
        .form-input > .form-control:focus ~ label,
        .form-input > .form-control:not(:placeholder-shown) ~ label,
        .form-input > .form-select ~ label {
            opacity: 0.65;
            transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
        }
        .form-input > .form-control:-webkit-autofill ~ label {
            opacity: 0.65;
            transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
        }