input[type=range],
input[type=range]::-webkit-slider-thumb,
input[type=radio],
input[type=checkbox],
select,
option,
optgroup {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

/*
input:focus,
select:focus,
textarea:focus {
	box-shadow: none !important;
}
*/
select::-ms-expand {
	display: none;
}

input {
	cursor: pointer;
}

*:not([class=input-group]) input[type=range] {
	width: 100%;
	outline: none;
	border-radius: 1em;
	padding: 0;
	font-size: 1.25em;
}

*:not([class=input-group]) input[type=range]::-webkit-slider-thumb {
	width: 1em;
	height: 1em;
	border-radius: 50%;
	border: none;
}

*:not([class=input-group]) input[type=range]::-moz-range-thumb {
	width: 1em;
	height: 1em;
	border-radius: 50%;
	border: none;
}

*:not([class=input-group]) input[type=range]::-moz-focus-outer {
	border: none;
}

@supports(-ms-ime-align: auto) {
	input[type=range] {
		background-color: transparent;
		height: 2em;
	}
}

*:not([class=input-group]) input[type=range]::-ms-thumb {
	width: 1em;
	height: 1em;
	border-radius: 50%;
	border: none;
}

*:not([class=input-group]) input[type=range]::-ms-fill-upper,
*:not([class=input-group]) input[type=range]::-ms-fill-lower {
	padding: 0 !important;
	height: .5em !important;
	outline: none;
	border-radius: 50%;
	border: none;
}

*:not([class=input-group]) input[type=range]::-ms-ticks-after,
*:not([class=input-group]) input[type=range]::-ms-ticks-before,
*:not([class=input-group]) input[type=range]::-ms-tooltip {
	display: none;
}

*:not([class=input-group]) fieldset input[type=radio] {
	border-radius: 50% 50% 0 0;
}

*:not([class=input-group]) input[type=radio],
*:not([class=input-group]) input[type=checkbox] {
	position: relative;
	left: 0;
	top: 0;
	float: left;
	margin: 0 0.5em 0 0;
	-webkit-print-color-adjust: exact;
	color-adjust: exact;
	print-color-adjust: exact;
}

*:not([class=input-group]) .form-check-reverse input[type=radio],
*:not([class=input-group]) .form-check-reverse input[type=checkbox] {
	float: right;
	margin-right: -1.5em;
	margin-left: 0;
}

input[type=radio].form-check-input,
input[type=checkbox].form-check-input {
	margin-left: 0;
	--bs-form-check-bg-image: none !important;
}

*:not([class=input-group]) input[type=radio],
*:not([class=input-group]) input[type=checkbox] {
	vertical-align: text-bottom;
	height: 1.5em;
	width: 1.5em;
	cursor: pointer;
	justify-content: center;
	align-items: center;
}

*:not([class=input-group]) input[type=radio] {
	display: inline-flex;
	border-radius: 50%;
}

*:not([class=input-group]) input[type=checkbox] {
	display: block;
	border-radius: 10%;
}

*:not([class=input-group]) input[type=radio]:checked:before,
*:not([class=input-group]) input[type=checkbox]:checked:before {
	content: '';
	display: block;
	position: absolute;
	box-sizing: border-box;
}

*:not([class=input-group]) input[type=radio]:checked:before {
	width: 1em;
	height: 1em;
	border-radius: 50%;
	left: calc(0.15em + .5px);
}

*:not([class=input-group]) input[type=checkbox]:checked:before {
	top: -30%;
	left: 15%;
	width: 75%;
	height: 110%;
	border-style: solid;
	border-width: 0 .3em .3em 0;
	transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
}

*:not([class=input-group]) input[type=radio]:disabled:checked::before {
	left: .25em;
}

*.input-group .input-group-text,
*[data-td-toggle] {
	cursor: pointer;
}

input[type=datetime-local]::-webkit-inner-spin-button,
input[type=datetime-local]::-webkit-calendar-picker-indicator,
input[type=date]::-webkit-inner-spin-button,
input[type=date]::-webkit-calendar-picker-indicator,
input[type=month]::-webkit-inner-spin-button,
input[type=month]::-webkit-calendar-picker-indicator,
input[type=time]::-webkit-inner-spin-button,
input[type=time]::-webkit-calendar-picker-indicator {
	opacity: 0;
	-webkit-appearance: none;
}


/*
input[type=datetime-local]:not([class=form-control]):after {
	content: '\F1F8\F293';
}

input[type=date]:not([class=form-control]):after {
	content: '\F214';
}

input[type=month]:not([class=form-control]):after {
	content: '\F205';
}

input[type=time]:not([class=form-control]):after {
	content: '\F616';
}
*/
optgroup {
	margin: 0;
}

option {
	padding: 0 0 .25em;
}

option:before {
	content: '';
}

/*
select[multiple] {
	padding: 0;
	resize: vertical;
}
*/
select:not([multiple]),
select[multiple][size="1"] {
	background-size: 1.5em 55% !important;
	--bs-form-select-bg-img: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjY0cHgiIGhlaWdodD0iNjRweCIgdmlld0JveD0iMCAwIDQwMS45OTggNDAxLjk5OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDAxLjk5OCA0MDEuOTk4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTczLjA5MiwxNjQuNDUyaDI1NS44MTNjNC45NDksMCw5LjIzMy0xLjgwNywxMi44NDgtNS40MjRjMy42MTMtMy42MTYsNS40MjctNy44OTgsNS40MjctMTIuODQ3ICAgIGMwLTQuOTQ5LTEuODEzLTkuMjI5LTUuNDI3LTEyLjg1TDIxMy44NDYsNS40MjRDMjEwLjIzMiwxLjgxMiwyMDUuOTUxLDAsMjAwLjk5OSwwcy05LjIzMywxLjgxMi0xMi44NSw1LjQyNEw2MC4yNDIsMTMzLjMzMSAgICBjLTMuNjE3LDMuNjE3LTUuNDI0LDcuOTAxLTUuNDI0LDEyLjg1YzAsNC45NDgsMS44MDcsOS4yMzEsNS40MjQsMTIuODQ3QzYzLjg2MywxNjIuNjQ1LDY4LjE0NCwxNjQuNDUyLDczLjA5MiwxNjQuNDUyeiIgZmlsbD0iIzAwMDAwMCIvPgoJCTxwYXRoIGQ9Ik0zMjguOTA1LDIzNy41NDlINzMuMDkyYy00Ljk1MiwwLTkuMjMzLDEuODA4LTEyLjg1LDUuNDIxYy0zLjYxNywzLjYxNy01LjQyNCw3Ljg5OC01LjQyNCwxMi44NDcgICAgYzAsNC45NDksMS44MDcsOS4yMzMsNS40MjQsMTIuODQ4TDE4OC4xNDksMzk2LjU3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI4LDEyLjg1LDUuNDI4czkuMjMzLTEuODExLDEyLjg0Ny01LjQyOGwxMjcuOTA3LTEyNy45MDYgICAgYzMuNjEzLTMuNjE0LDUuNDI3LTcuODk4LDUuNDI3LTEyLjg0OGMwLTQuOTQ4LTEuODEzLTkuMjI5LTUuNDI3LTEyLjg0N0MzMzguMTM5LDIzOS4zNTMsMzMzLjg1NCwyMzcuNTQ5LDMyOC45MDUsMjM3LjU0OXoiIGZpbGw9IiMwMDAwMDAiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);
	background-image: var(--bs-form-select-bg-img) !important;
}

@media only screen and (max-width: 1025px) and (orientation: landscape) {
	select[multiple] {
		background-size: 1.5em 55% !important;
		--bs-form-select-bg-img: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjY0cHgiIGhlaWdodD0iNjRweCIgdmlld0JveD0iMCAwIDQwMS45OTggNDAxLjk5OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDAxLjk5OCA0MDEuOTk4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTczLjA5MiwxNjQuNDUyaDI1NS44MTNjNC45NDksMCw5LjIzMy0xLjgwNywxMi44NDgtNS40MjRjMy42MTMtMy42MTYsNS40MjctNy44OTgsNS40MjctMTIuODQ3ICAgIGMwLTQuOTQ5LTEuODEzLTkuMjI5LTUuNDI3LTEyLjg1TDIxMy44NDYsNS40MjRDMjEwLjIzMiwxLjgxMiwyMDUuOTUxLDAsMjAwLjk5OSwwcy05LjIzMywxLjgxMi0xMi44NSw1LjQyNEw2MC4yNDIsMTMzLjMzMSAgICBjLTMuNjE3LDMuNjE3LTUuNDI0LDcuOTAxLTUuNDI0LDEyLjg1YzAsNC45NDgsMS44MDcsOS4yMzEsNS40MjQsMTIuODQ3QzYzLjg2MywxNjIuNjQ1LDY4LjE0NCwxNjQuNDUyLDczLjA5MiwxNjQuNDUyeiIgZmlsbD0iIzAwMDAwMCIvPgoJCTxwYXRoIGQ9Ik0zMjguOTA1LDIzNy41NDlINzMuMDkyYy00Ljk1MiwwLTkuMjMzLDEuODA4LTEyLjg1LDUuNDIxYy0zLjYxNywzLjYxNy01LjQyNCw3Ljg5OC01LjQyNCwxMi44NDcgICAgYzAsNC45NDksMS44MDcsOS4yMzMsNS40MjQsMTIuODQ4TDE4OC4xNDksMzk2LjU3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI4LDEyLjg1LDUuNDI4czkuMjMzLTEuODExLDEyLjg0Ny01LjQyOGwxMjcuOTA3LTEyNy45MDYgICAgYzMuNjEzLTMuNjE0LDUuNDI3LTcuODk4LDUuNDI3LTEyLjg0OGMwLTQuOTQ4LTEuODEzLTkuMjI5LTUuNDI3LTEyLjg0N0MzMzguMTM5LDIzOS4zNTMsMzMzLjg1NCwyMzcuNTQ5LDMyOC45MDUsMjM3LjU0OXoiIGZpbGw9IiMwMDAwMDAiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);
		background-image: var(--bs-form-select-bg-img) !important;
	}
}

select[multiple] {
	padding: 0.375rem 4rem 0.375rem .5rem !important;
}

@media only screen and (min-width: 1025px) and (orientation: landscape) {
	select[multiple]:not([size="1"]) {
		background-image: none !important;
		overflow-y: auto;
		padding: 0.5em !important;
	}
}

select:not([multiple]):disabled, select[multiple][size="1"]:disabled {
	background-image: none !important;
}

/*
	select[multiple]:valid {
		--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
		background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none) !important;
		padding-right: 4.125rem !important;
		background-position: right 0.75rem center, center right 2.25rem;
		background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
	}
*/
input:focus,
textarea,
select {
	outline: 0;
}

/******   Switch CHECKBOX   ******/
input[type=checkbox][role=switch]:before {
	content: "\F5D5";
	transition: color .15s ease-out;
	position: relative;
	left: -0.5em;
	top: -0.5em;
	font-size: 2em;
}

input[type=checkbox][role=switch]:checked:before {
	content: "\F5D6";
	border-style: none;
	-webkit-transform: none;
	transform: none;
	position: relative;
	left: -0.5em;
	top: -0.5em;
	font-size: 2em;
}

input[type=checkbox][role=switch] {
	font-family: bootstrap-icons !important;
	display: inline-block;
	border-style: none;
	text-align: center;
}

input[type=checkbox][role=switch]:focus {
	box-shadow: none !important;
}

.form-check-reverse input[type=checkbox][role=switch] {
	left: -0.3em;
}

.form-check-reverse input[type=checkbox][role=switch]:checked {
	margin-right: -0.5em;
}


/**
 * Form Color
 */
/*
input:focus,
select:focus,
textarea:focus {
	border-color: var(--bs-border-color) !important;
}
*/

input[type=range]:disabled,
*:not([class=input-group]) input[type=radio],
*:not([class=input-group]) input[type=checkbox] {
	background-color: hsl(0, 0%, 50%) !important;
}

input[type=range]:disabled,
input[type=radio]:disabled,
input[type=checkbox]:disabled {
	background-color: var(--bs-secondary-bg) !important;
}

input[type=range] {
	background-color: hsl(28, 87%, 80%);
	border-color: hsl(28, 87%, 80%);
	height: 1em;
}

input[type=range]::-webkit-slider-thumb {
	background-color: hsl(0, 0%, 30%);
}

input[type=range]::-moz-range-thumb {
	background-color: hsl(0, 0%, 30%);
}

input[type=range]::-ms-thumb {
	background-color: hsl(0, 0%, 30%);
}

input[type=range]::-ms-fill-upper {
	background-color: hsl(0, 0%, 30%);
}

input[type=range]::-ms-fill-lower {
	background-color: hsl(0, 0%, 30%);
}

*:not([class=input-group]) input[type=radio]:checked:before {
	background-color: sandybrown;
}

*:not([class=input-group]) input[type=radio]:disabled:checked:before {
	border-color: hsl(28, 87%, 80%);
}

*:not([class=input-group]) input[type=checkbox]:checked:before {
	border-color: sandybrown;
}

*:not([class=input-group]) input[type=checkbox]:disabled:checked:before {
	border-color: hsl(28, 87%, 80%);
}

input[type=checkbox][role=switch] {
	background-color: transparent !important;
}

input[type=checkbox][role=switch]:before {
	color: hsl(0, 0%, 30%);
}

input[type=checkbox][role=switch]:disabled:before {
	color: var(--bs-secondary-bg);
}

input[type=checkbox][role=switch]:disabled:checked:before {
	color: hsl(28, 87%, 90%);
}

input[type=checkbox][role=switch]:checked:before {
	color: hsl(28, 87%, 67%);
}


input[type=checkbox][required]:not([role=switch]).form-control:valid,
input[type=radio][required].form-control:valid {
	background-color: #198754 !important;
}

input[type=checkbox][required]:not([role=switch]).form-control:invalid,
input[type=radio][required].form-control:invalid {
	background-color: #dc3545 !important;
}

input[type=checkbox][role=switch][required].form-control:valid:before {
	color: #198754 !important;
}

input[type=checkbox][role=switch][required].form-control:invalid:before {
	color: #dc3545 !important;
}

input[type=checkbox].form-control:valid,
input[type=checkbox].form-control:invalid,
input[type=radio].form-control:valid,
input[type=radio].form-control:invalid {
	background-image: none;
	padding-right: 0;
}

form label[required]:after {
	font-family: "bootstrap-icons";
	content: '\F151 必須';
	color: #dc3545;
	font-size: .75em;
	line-height: 0;
	position: relative;
	top: -.5em;
	left: 0;
}

/** Input Error **/
.input-group.error,
:not(.input-group) input.error,
.input-group:not(.error) input.error,
select.error,
textarea.error {
	border: red solid 2px;
	border-radius: .5em;
}

.input-group.error input.error {
	border: 1px solid rgb(222, 226, 230);
}
