@charset "utf-8";
:root{
	--color:#212529;
	--border-color:#dee2e6;
	--primary:#2874c6;
	--secondary:#6c757d;
	--success:#28a745;
	--info:#17a2b8;
	--warning:#ffc107;
	--danger:#dc3545;
	--light:#a9bbcd;
	--dark:#343a40;
	--radius:.5rem;
	--font-family-sans-serif:"Microsoft JhengHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--font-family-monospace:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

	--row-gap:.6rem;
	--gap:1.5rem var(--row-gap);

	--cols-1:  100%;
	--cols-2:  calc(50% - var(--row-gap));
	--cols-3:  calc(33.33% - var(--row-gap));
	--cols-35: calc(30% - var(--row-gap));
	--cols-4:  calc(25% - var(--row-gap));
	--cols-5:  calc(20% - var(--row-gap));
	--cols-6:  calc(16.66% - var(--row-gap));
	--cols-7:  calc(14.28% - var(--row-gap));
	--cols-8:  calc(12.5% - var(--row-gap));
	--cols-9:  calc(11.111% - var(--row-gap));
	--cols-10: calc(10% - var(--row-gap));
	--cols-11: calc(9.09% - var(--row-gap));
	--cols-12: calc(8.33% - var(--row-gap));

	--col-1:  calc(8.33% - var(--row-gap));
	--col-2:  calc(16.66% - var(--row-gap));
	--col-3:  calc(25% - var(--row-gap));
	--col-35: calc(30% - var(--row-gap));
	--col-4:  calc(33.33% - var(--row-gap));
	--col-5:  calc(41.66% - var(--row-gap));
	--col-6:  calc(50% - var(--row-gap));
	--col-7:  calc(58.33% - var(--row-gap));
	--col-8:  calc(66.66% - var(--row-gap));
	--col-9:  calc(75% - var(--row-gap));
	--col-10: calc(83.33% - var(--row-gap));
	--col-11: calc(91.66% - var(--row-gap));
	--col-12: 100%;

	/* --darken-amount: 0.2; 加深的比例 */
}

*, *::before, *::after{box-sizing:border-box}
@media(prefers-reduced-motion:no-preference){
	:root{scroll-behavior:smooth}
}
/* html{font-family:sans-serif; line-height:1.15; -webkit-text-size-adjust:100%; -webkit-tap-highlight-color:rgba(0, 0, 0, 0);} */
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section{display:block}

body{margin:0; font-family:var(--font-family-sans-serif); font-size:1rem; font-weight:400; line-height:1.6; color:var(--color); background-color:#fff; display:flex; flex-direction:column; min-height:calc(100vh)}
@media(max-width:1024px){
	html{font-size:15.5px}
}
@media(max-width:769px){
	html{font-size:15px}
}
@media(max-width:576px){
	html{font-size:14px}
}
@media(max-width:414px){
	html{font-size:13.5px}
}
@media(max-width:320px){
	html{font-size:12.5px}
}
[tabindex="-1"]:focus:not(:focus-visible){outline:0}

hr{box-sizing:content-box; height:0; overflow:visible}
p{margin-top:0}
abbr[title], abbr[data-original-title]{text-decoration:underline; text-decoration:underline dotted; cursor:help; border-bottom:0; text-decoration-skip-ink:none}
address{margin-bottom:1rem; font-style:normal; line-height:inherit}
ol, ul, dl{margin-top:0; margin-bottom:0}
dt{font-weight:700}
dd{margin-bottom:.5rem; margin-left:0}
blockquote{margin:0 0 1rem}
b, strong{font-weight:bolder}

sub, sup{position:relative; font-size:75%; line-height:0; vertical-align:baseline}
/* sub{bottom:-.25em} */
sup{top:-.5em}
a{
	color:var(--primary); text-decoration:none; background-color:transparent; transition:color 0.3s ease;
	&:hover{
		text-decoration:underline;
		& img{filter:brightness(0.8)}
	}
	&:not([href]):not([class]){
		color:inherit; text-decoration:none;
		&:hover{color:inherit; text-decoration:none}
	}
}

u, a:hover{text-underline-offset:.25rem}
pre, code, kbd, samp{font-family:var(--font-family-monospace); font-size:1em}
pre{margin-top:0; margin-bottom:1rem; overflow:auto}
figure{margin:0 0 1rem; position:relative}

img{
	vertical-align:middle; border-style:none;
	&.lazyload, &.lazyloading{background-color:#ddd; image-rendering:pixelated; /* filter:grayscale(100%); */ opacity:.3; transform:scale(0.8)}
	&.lazyloaded{opacity:1; transform:scale(1); transition:all 850ms}
}

svg{overflow:hidden; vertical-align:middle}
time, .time{display:inline-block; font-size:.75rem; color:#888}
.time *{display:inline-block}
table{border-collapse:collapse}
caption{padding-top:.75rem; padding-bottom:.75rem; color:var(--secondary)}
th{text-align:inherit}

label{
	display:inline-block; white-space:nowrap;
	&:not(.disabled):not(:disabled){cursor:pointer}
	&::after{content:'\003A'; padding-left:.5rem; padding-right:.5rem}
	&.btn::after{content:''; padding-right:0}
}

@media(min-width:768px){
	label::after{padding-right:.75rem; padding-left:.75rem}
}
.make-switch label::after, input[type="radio"] + label::after, label.checkbox-inline::after{content:''}
button{
	border-radius:0;
	&:focus:not(:focus-visible){outline:0}
}
input, button, select, optgroup, textarea{margin:0; font-family:inherit; font-size:inherit; line-height:inherit}
button, input{overflow:visible}
button, select{text-transform:none}
[role="button"]{cursor:pointer}
select{word-wrap:normal}
button, [type="button"], [type="reset"], [type="submit"]{-webkit-appearance:button}
button:not(:disabled), [type="button"]:not(:disabled), [type="reset"]:not(:disabled), [type="submit"]:not(:disabled){cursor:pointer}
input[type="radio"], input[type="checkbox"]{box-sizing:border-box; padding:0}
textarea{overflow:auto; resize:vertical}
fieldset{padding:0 1rem .5rem; margin-bottom:.5rem; border:1px solid #ccc; border-radius:1rem}
legend{display:block; width:inherit; max-width:100%; padding:.25rem 1rem; margin-left:2rem; font-size:1.25rem; white-space:normal}
progress{vertical-align:baseline}
[type="search"]{outline-offset:-2px; -webkit-appearance:none}
output{display:inline-block}
summary{display:list-item; cursor:pointer}

template, [hidden], .none:not(.show){display:none}

h1, h2, h3, h4, h5, h6{margin-top:0; margin-bottom:0; line-height:1.2}
h6{font-weight:500}
h1, .h1{font-size:1.25rem}
h2, .h2{font-size:1.225rem}
h3, .h3{font-size:1.2rem}
h4, .h4{font-size:1.175rem}
h5, .h5{font-size:1.125rem}
h6, .h6{font-size:1rem}
@media(min-width:992px){
	h1, .h1{font-size:1.225rem}
	h2, .h2{font-size:1.2rem}
	h3, .h3{font-size:1.175rem}
	h4, .h4{font-size:1.125rem}
	h5, .h5{font-size:1.1rem}
}
@media(min-width:1200px){
	h1, .h1{font-size:1.75rem}
	h2, .h2{font-size:1.5rem}
	h3, .h3{font-size:1.25rem}
	h4, .h4{font-size:1.2rem}
	h5, .h5{font-size:1.15rem}
}
@media(min-width:1400px){
	h1, .h1{font-size:2rem}
	h2, .h2{font-size:1.75rem}
	h3, .h3{font-size:1.5rem}
	h4, .h4{font-size:1.25rem}
	h5, .h5{font-size:1.2rem}
}

ul{list-style-type:square/* ; list-style-position:inside */}
ul, ol{padding-left:1.5rem}
ul ul, ol ul{padding-left:1.5rem}
ul li::marker, ol li::marker{color:#c5c5c5}
ul.row, ul.form-row{padding-left:0; list-style:none}

ul.inside{list-style-position:inside}
@media(min-width:576px){
	ul, ol{padding-left:1.75rem}
}
@media(min-width:768px){
	ul, ol{padding-left:2rem}
}
@media(min-width:992px){
	ul, ol{padding-left:2.5rem}
}
/*
.outside{list-style-position:outside}
*/

hr{margin-top:1rem; margin-bottom:1rem; border:0; border-top:1px solid rgba(0, 0, 0, .1)}
small, .small{font-size:80%; font-weight:400}
mark, .mark{padding:.2em; background-color:#fcf8e3}

.list-unstyled{padding-left:0; list-style:none}
.list-inline{padding-left:0; list-style:none}
.list-inline-item{
	display:inline-block;
	&:not(:last-child){margin-right:.5rem}
}

/* 縮略語 */
.initialism{font-size:90%; text-transform:uppercase}

/* 塊引用 */
.blockquote{font-size:1.15rem}
.blockquote-footer{
	display:block; font-size:80%; color:var(--secondary);
	&::before{content:"\2014\00A0"}
}

img:not(.getcode), .img-fluid{max-width:100%; min-width:1rem; height:auto}
.img-thumbnail{padding:.25rem; background-color:#fff; border:1px solid var(--border-color); border-radius:var(--radius); max-width:100%; height:auto}

.figure{display:inline-block}
.figure-img{margin-bottom:.5rem; line-height:1}
.figure-caption{font-size:.875em; color:var(--secondary)}

code{font-size:87.5%; color:#e83e8c; word-wrap:break-word}
a > code{color:inherit}
kbd{
	padding:.2rem .4rem; font-size:87.5%; color:#fff; background-color:var(--color); border-radius:var(--radius);
	& kbd{padding:0; font-size:100%; font-weight:700}
}
pre{
	display:block; font-size:87.5%; color:var(--color);
	& code{font-size:inherit; color:inherit; word-break:normal}
}

.pre-scrollable{max-height:340px; overflow-y:scroll}
.container, .container-fluid, .container-xxl, .container-xl, .container-lg, .container-md, .container-sm{width:100%; padding-right:.75rem; padding-left:.75rem; margin-right:auto; margin-left:auto}

@media(min-width:576px){
	.container, .container-sm{max-width:540px}
}
@media(min-width:768px){
	.container, .container-md, .container-sm{max-width:760px}
}
@media(min-width:992px){
	.container, .container-lg, .container-md, .container-sm{max-width:960px}
}
@media(min-width:1200px){
	.container, .container-xl, .container-lg, .container-md, .container-sm{max-width:1140px}
}
@media(min-width:1400px){
	.container, .container-xxl, .container-xl, .container-lg, .container-md, .container-sm{max-width:1320px}
}

.row, .form-row{display:flex; flex-wrap:wrap; gap:var(--gap)}
.row{margin-left:var(--row-gap)}
.form-row{row-gap:var(--row-gap)}

/* .no-gutters{margin-right:0; margin-left:0}
.no-gutters > .col, .no-gutters > [class*="col-"]{padding-right:0; padding-left:0} */

.col-form-label{padding-top:calc(.375rem + 1px); padding-bottom:calc(.375rem + 1px); /* margin-bottom:0; */ font-size:inherit; line-height:1.5; width:auto; text-align:right}
.col-form-label-lg{padding-top:calc(.5rem + 1px); padding-bottom:calc(.5rem + 1px); font-size:1.25rem; line-height:1.5}
.col-form-label-sm{padding-top:calc(.25rem + 1px); padding-bottom:calc(.25rem + 1px); font-size:.875rem; line-height:1.5}

.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xxl-1, .col-xxl-2, .col-xxl-3 , .col-xxl-4, .col-xxl-5, .col-xxl-6, .col-xxl-7, .col-xxl-8, .col-xxl-9, .col-xxl-10, .col-xxl-11, .col-xxl-12{position:relative; width:100%}

/* [class^="col-"], [class*=" col-"]{position:relative;} */
.col{flex:1 0 0}
.col-auto, .col-sm-auto, .col-md-auto, .col-lg-auto, .col-xl-auto, .col-xxl-auto{flex:0 0 auto; width:auto; max-width:100%}

.row-cols-1 > *{max-width:var(--cols-1); flex:0 0 var(--cols-1)}
.row-cols-2 > *{max-width:var(--cols-2); flex:0 0 var(--cols-2)}
.row-cols-3 > *{max-width:var(--cols-3); flex:0 0 var(--cols-3)}
.row-cols-35 > *{max-width:var(--cols-35); flex:0 0 var(--cols-35)}
.row-cols-4 > *{max-width:var(--cols-4); flex:0 0 var(--cols-4)}
.row-cols-5 > *{max-width:var(--cols-5); flex:0 0 var(--cols-5)}
.row-cols-6 > *{ max-width:var(--cols-6); flex:0 0 var(--cols-6)}

	
.col-1{max-width:var(--col-1); width:var(--col-1)}
.col-2{max-width:var(--col-2); width:var(--col-2)}
.col-3{max-width:var(--col-3); width:var(--col-3)}
.col-4{max-width:var(--col-4); width:var(--col-4)}
.col-5{max-width:var(--col-5); width:var(--col-5)}
.col-6{max-width:var(--col-6); width:var(--col-6)}
.col-7{max-width:var(--col-7); width:var(--col-7)}
.col-8{max-width:var(--col-8); width:var(--col-8)}
.col-9{max-width:var(--col-9); width:var(--col-9)}
.col-10{max-width:var(--col-10); width:var(--col-10)}
.col-11{max-width:var(--col-11); width:var(--col-11)}
.col-12{max-width:var(--col-12); width:var(--col-12)}

.offset-1{margin-left:var(--col-1)}
.offset-2{margin-left:var(--col-2)}
.offset-3{margin-left:var(--col-3)}
.offset-4{margin-left:var(--col-4)}
.offset-5{margin-left:var(--col-5)}
.offset-6{margin-left:var(--col-6)}

@media(min-width:576px){
	.col-sm{flex:1 0 0}
	.row-cols-sm-1 > *{max-width:var(--cols-1)}
	.row-cols-sm-2 > *{max-width:var(--cols-2)}
	.row-cols-sm-3 > *{max-width:var(--cols-3)}
	.row-cols-sm-35 > *{max-width:var(--cols-35)}
	.row-cols-sm-4 > *{max-width:var(--cols-4)}
	.row-cols-sm-5 > *{max-width:var(--cols-5)}
	.row-cols-sm-6 > *{max-width:var(--cols-6)}
	.row-cols-sm-7 > *{max-width:var(--cols-7)}
	.row-cols-sm-8 > *{max-width:var(--cols-8)}
	.row-cols-sm-9 > *{max-width:var(--cols-9)}
	.row-cols-sm-10 > *{max-width:var(--cols-10)}
	.row-cols-sm-11 > *{max-width:var(--cols-11)}
	.row-cols-sm-12 > *{max-width:var(--cols-12)}

	.col-sm-1 {max-width:var(--col-1); width:var(--col-1)}
	.col-sm-2 {max-width:var(--col-2); width:var(--col-2)}
	.col-sm-3 {max-width:var(--col-3); width:var(--col-3)}
	.col-sm-35{max-width:var(--col-35); width:var(--col-35)}
	.col-sm-4 {max-width:var(--col-4); width:var(--col-4)}
	.col-sm-5 {max-width:var(--col-5); width:var(--col-5)}
	.col-sm-6 {max-width:var(--col-6); width:var(--col-6)}
	.col-sm-7 {max-width:var(--col-7); width:var(--col-7)}
	.col-sm-8 {max-width:var(--col-8); width:var(--col-8)}
	.col-sm-9 {max-width:var(--col-9); width:var(--col-9)}
	.col-sm-10{max-width:var(--col-10); width:var(--col-10)}
	.col-sm-11{max-width:var(--col-11); width:var(--col-11)}
	.col-sm-12{max-width:var(--col-12); width:var(--col-12)}

	.offset-sm-0{margin-left:0}
	.offset-sm-1{margin-left:var(--col-1)}
	.offset-sm-2{margin-left:var(--col-2)}
	.offset-sm-3{margin-left:var(--col-3)}
	.offset-sm-4{margin-left:var(--col-4)}
	.offset-sm-5{margin-left:var(--col-5)}
	.offset-sm-6{margin-left:var(--col-6)}
}

@media(min-width:768px){
	.col-md{flex:1 0 0}
	.row-cols-md-1 > *{width:100%; max-width:var(--cols-1)}
	.row-cols-md-2 > *{width:100%; max-width:var(--cols-2)}
	.row-cols-md-3 > *{width:100%; max-width:var(--cols-3)}
	.row-cols-md-4 > *{width:100%; max-width:var(--cols-4)}
	.row-cols-md-5 > *{width:100%; max-width:var(--cols-5)}
	.row-cols-md-6 > *{width:100%; max-width:var(--cols-6)}
	.row-cols-md-7 > *{width:100%; max-width:var(--cols-7)}
	.row-cols-md-8 > *{width:100%; max-width:var(--cols-8)}
	.row-cols-md-9 > *{width:100%; max-width:var(--cols-9)}
	.row-cols-md-10 > *{width:100%; max-width:var(--cols-10)}
	.row-cols-md-11 > *{width:100%; max-width:var(--cols-11)}
	.row-cols-md-12 > *{width:100%; max-width:var(--cols-12)}

	.col-md-1{width:var(--col-1); max-width:var(--col-1)}
	.col-md-2{width:var(--col-2); max-width:var(--col-2)}
	.col-md-3{width:var(--col-3); max-width:var(--col-3)}
	.col-md-4{width:var(--col-4); max-width:var(--col-4)}
	.col-md-5{width:var(--col-5); max-width:var(--col-5)}
	.col-md-6{width:var(--col-6); max-width:var(--col-6)}
	.col-md-7{width:var(--col-7); max-width:var(--col-7)}
	.col-md-8{width:var(--col-8); max-width:var(--col-8)}
	.col-md-9{width:var(--col-9); max-width:var(--col-9)}
	.col-md-10{width:var(--col-10); max-width:var(--col-10)}
	.col-md-11{width:var(--col-11); max-width:var(--col-11)}
	.col-md-12{width:var(--col-12); max-width:var(--col-12)}

	.offset-md-0{margin-left:0}
	.offset-md-1{margin-left:var(--col-1)}
	.offset-md-2{margin-left:var(--col-2)}
	.offset-md-3{margin-left:var(--col-3)}
	.offset-md-4{margin-left:var(--col-4)}
	.offset-md-5{margin-left:var(--col-5)}
	.offset-md-6{margin-left:var(--col-6)}
	.offset-md-7{margin-left:var(--col-7)}
}

@media(min-width:992px){
	.col-lg{flex:1 0 0}
	.row-cols-lg-1 > *{width:100%; max-width:var(--cols-1)}
	.row-cols-lg-2 > *{width:100%; max-width:var(--cols-2)}
	.row-cols-lg-3 > *{width:100%; max-width:var(--cols-3)}
	.row-cols-lg-4 > *{width:100%; max-width:var(--cols-4)}
	.row-cols-lg-5 > *{width:100%; max-width:var(--cols-5)}
	.row-cols-lg-6 > *{width:100%; max-width:var(--cols-6)}
	.row-cols-lg-7 > *{width:100%; max-width:var(--cols-7)}
	.row-cols-lg-8 > *{width:100%; max-width:var(--cols-8)}
	.row-cols-lg-9 > *{width:100%; max-width:var(--cols-9)}
	.row-cols-lg-10 > *{width:100%; max-width:var(--cols-10)}
	.row-cols-lg-11 > *{width:100%; max-width:var(--cols-11)}

	.col-lg-1{max-width:var(--col-1); width:var(--col-1)}
	.col-lg-2{max-width:var(--col-2); width:var(--col-2)}
	.col-lg-3{max-width:var(--col-3); width:var(--col-3)}
	.col-lg-4{max-width:var(--col-4); width:var(--col-4)}
	.col-lg-5{max-width:var(--col-5); width:var(--col-5)}
	.col-lg-6{max-width:var(--col-6); width:var(--col-6)}
	.col-lg-7{max-width:var(--col-7); width:var(--col-7)}
	.col-lg-8{max-width:var(--col-8); width:var(--col-8)}
	.col-lg-9{max-width:var(--col-9); width:var(--col-9)}
	.col-lg-10{max-width:var(--col-10); width:var(--col-10)}
	.col-lg-11{max-width:var(--col-11); width:var(--col-11)}
	.col-lg-12{max-width:var(--col-12); width:var(--col-12)}

	.offset-lg-0{margin-left:0}
	.offset-lg-1{margin-left:var(--col-1)}
	.offset-lg-2{margin-left:var(--col-2)}
	.offset-lg-3{margin-left:var(--col-3)}
	.offset-lg-4{margin-left:var(--col-4)}
	.offset-lg-5{margin-left:var(--col-5)}
	.offset-lg-6{margin-left:var(--col-6)}
	.offset-lg-7{margin-left:var(--col-7)}
	.offset-lg-8{margin-left:var(--col-8)}
}

@media(min-width:1200px){
	.col-xl{flex:1 0 0}
	.row-cols-xl-1 > *{width:100%; max-width:var(--cols-1)}
	.row-cols-xl-2 > *{width:100%; max-width:var(--cols-2)}
	.row-cols-xl-3 > *{width:100%; max-width:var(--cols-3)}
	.row-cols-xl-4 > *{width:100%; max-width:var(--cols-4)}
	.row-cols-xl-5 > *{width:100%; max-width:var(--cols-5)}
	.row-cols-xl-6 > *{width:100%; max-width:var(--cols-6)}
	.row-cols-xl-7 > *{width:100%; max-width:var(--cols-7)}
	.row-cols-xl-8 > *{width:100%; max-width:var(--cols-8)}
	.row-cols-xl-9 > *{width:100%; max-width:var(--cols-9)}
	.row-cols-xl-10 > *{width:100%; max-width:var(--cols-10)}
	.row-cols-xl-11 > *{width:100%; max-width:var(--cols-11)}

	.col-xl-1{max-width:var(--col-1); width:var(--col-1)}
	.col-xl-2{max-width:var(--col-2); width:var(--col-2)}
	.col-xl-3{max-width:var(--col-3); width:var(--col-3)}
	.col-xl-4{max-width:var(--col-4); width:var(--col-4)}
	.col-xl-5{max-width:var(--col-5); width:var(--col-5)}
	.col-xl-6{max-width:var(--col-6); width:var(--col-6)}
	.col-xl-7{max-width:var(--col-7); width:var(--col-7)}
	.col-xl-8{max-width:var(--col-8); width:var(--col-8)}
	.col-xl-9{max-width:var(--col-9); width:var(--col-9)}
	.col-xl-10{max-width:var(--col-10); width:var(--col-10)}
	.col-xl-11{max-width:var(--col-11); width:var(--col-11)}
	.col-xl-12{max-width:var(--col-12); width:var(--col-12)}

	.offset-xl-0{margin-left:0}
	.offset-xl-1{margin-left:var(--col-1)}
	.offset-xl-2{margin-left:var(--col-2)}
	.offset-xl-3{margin-left:var(--col-3)}
	.offset-xl-4{margin-left:var(--col-4)}
	.offset-xl-5{margin-left:var(--col-5)}
	.offset-xl-6{margin-left:var(--col-6)}
	.offset-xl-7{margin-left:var(--col-7)}
	.offset-xl-8{margin-left:var(--col-8)}
}

@media(min-width:1400px){
	.col-xxl{flex:1 0 0}
	.row-cols-xxl-1 > *{width:100%; max-width:var(--cols-1)}
	.row-cols-xxl-2 > *{width:100%; max-width:var(--cols-2)}
	.row-cols-xxl-3 > *{width:100%; max-width:var(--cols-3)}
	.row-cols-xxl-4 > *{width:100%; max-width:var(--cols-4)}
	.row-cols-xxl-5 > *{width:100%; max-width:var(--cols-5)}
	.row-cols-xxl-6 > *{width:100%; max-width:var(--cols-6)}
	.row-cols-xxl-7 > *{width:100%; max-width:var(--cols-7)}
	.row-cols-xxl-8 > *{width:100%; max-width:var(--cols-8)}
	.row-cols-xxl-9 > *{width:100%; max-width:var(--cols-9)}
	.row-cols-xxl-10 > *{width:100%; max-width:var(--cols-10)}
	.row-cols-xxl-11 > *{width:100%; max-width:var(--cols-11)}
	.row-cols-xxl-12 > *{width:100%; max-width:var(--cols-12)}

	.col-xxl-1{max-width:var(--col-1); width:var(--col-1)}
	.col-xxl-2{max-width:var(--col-2); width:var(--col-2)}
	.col-xxl-3{max-width:var(--col-3); width:var(--col-3)}
	.col-xxl-4{max-width:var(--col-4); width:var(--col-4)}
	.col-xxl-5{max-width:var(--col-5); width:var(--col-5)}
	.col-xxl-6{max-width:var(--col-6); width:var(--col-6)}
	.col-xxl-7{max-width:var(--col-7); width:var(--col-7)}
	.col-xxl-8{max-width:var(--col-8); width:var(--col-8)}
	.col-xxl-9{max-width:var(--col-9); width:var(--col-9)}
	.col-xxl-10{max-width:var(--col-10); width:var(--col-10)}
	.col-xxl-11{max-width:var(--col-11); width:var(--col-11)}
	.col-xxl-12{max-width:var(--col-12); width:var(--col-12)}

	.offset-xxl-0{margin-left:0}
	.offset-xxl-1{margin-left:var(--col-1)}
	.offset-xxl-2{margin-left:var(--col-2)}
	.offset-xxl-3{margin-left:var(--col-3)}
	.offset-xxl-4{margin-left:var(--col-4)}
	.offset-xxl-5{margin-left:var(--col-5)}
	.offset-xxl-6{margin-left:var(--col-6)}
}

.table{
	width:100%; color:var(--color); min-height:5rem; /* table-layout:fixed; */
	& th, & td:not(:empty){padding:.5rem .75rem; border-top:1px solid var(--border-color)}
	& thead th{vertical-align:bottom; border-bottom:2px solid var(--border-color); text-align:center; white-space:nowrap}
	& tbody + tbody{border-top:2px solid var(--border-color)}
	& .thead-dark th{color:#fff; background-color:var(--dark); border-color:#454d55}
	& .thead-light th{color:#495057; background-color:#e9ecef; border-color:var(--border-color)}
	&.align-middle td{vertical-align:middle}
}
.table-sm{
	& th, & td:not(:empty){padding:.3rem}
}

.table-bordered{
	border:1px solid var(--border-color);
	& th, & td{border:1px solid var(--border-color)}
	& thead{
		& th, & td{border-bottom-width:2px}
	}
}

.table-borderless{
	& th, & td, & thead th, & tbody + tbody{border:0}
}

.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0, 0, 0, .03)}
.table-hover tbody tr:hover{color:var(--color); background-color:rgba(0, 0, 0, .075)}

.table-primary {
	background-color: #b8daff; border-color: #7abaff;
	& > th, & > td {
		background-color: #b8daff;
	}
	& th, & td {
		border-color: #7abaff;
	}
}

.table-hover .table-primary:hover{background-color:#9fcdff}
.table-hover .table-primary:hover > td, 
.table-hover .table-primary:hover > th{background-color:#9fcdff}

.table-secondary {
	background-color: #d6d8db; border-color: #b3b7bb;
	& > th, & > td {
		background-color: #d6d8db;
	}
	& th, & td {
		border-color: #b3b7bb;
	}
}

.table-hover .table-secondary:hover{background-color:#c8cbcf}
.table-hover .table-secondary:hover > td, 
.table-hover .table-secondary:hover > th{
	background-color:#c8cbcf
}
.table-success, .table-success > th, 
.table-success > td{
	background-color:#c3e6cb
}
.table-success th, 
.table-success td, .table-success thead th, 
.table-success tbody + tbody{
	border-color:#8fd19e
}
.table-hover .table-success:hover{background-color:#b1dfbb}
.table-hover .table-success:hover > td, 
.table-hover .table-success:hover > th{
	background-color:#b1dfbb
}

.table-info, 
.table-info > th, 
.table-info > td{
	background-color:#bee5eb
}
.table-info th, 
.table-info td, 
.table-info thead th, 
.table-info tbody + tbody{
	border-color:#86cfda
}
.table-hover .table-info:hover{background-color:#abdde5}
.table-hover .table-info:hover > td, 
.table-hover .table-info:hover > th{background-color:#abdde5}

.table-warning{
	background-color:hsl(from var(--warning) h s calc(l + 40)); border-color:hsl(from var(--warning) h s calc(l - 10));
	& > th, & > td {
		background-color:hsl(from var(--warning) h s calc(l + 35));
	}
	& th, & td {
		border-color:hsl(from var(--warning) h s calc(l - 10));
	}
}

.table-hover .table-warning:hover{background-color:hsl(from var(--warning) h s calc(l - 10))}
.table-hover .table-warning:hover > td, 
.table-hover .table-warning:hover > th{
	background-color:hsl(from var(--warning) h s calc(l - 20))
}

.table-danger{
	background-color: hsl(from var(--danger) h s calc(l + 40));
	& > th, & > td{}
}

.table-danger th, 
.table-danger td, 
.table-danger thead th, 
.table-danger tbody + tbody{
	border-color:hsl(from var(--danger) h s calc(l + 0))
}
.table-hover .table-danger:hover{
	background-color:hsl(from var(--danger) h s calc(l + 30))
}
.table-hover .table-danger:hover > td, 
.table-hover .table-danger:hover > th{background-color:hsl(from var(--danger) h s calc(l + 25))}

.table-light, 
.table-light > th, 
.table-light > td{background-color:#fdfdfe}
.table-light th, 
.table-light td, 
.table-light thead th, 
.table-light tbody + tbody{border-color:#fbfcfc}
.table-hover .table-light:hover{background-color:#ececf6}
.table-hover .table-light:hover > td, 
.table-hover .table-light:hover > th{background-color:#ececf6}

.table-dark, 
.table-dark > th, 
.table-dark > td{background-color:#c6c8ca}
.table-dark th, 
.table-dark td, .table-dark thead th, 
.table-dark tbody + tbody{border-color:#95999c}
.table-hover .table-dark:hover{background-color:#b9bbbe}
.table-hover .table-dark:hover > td, 
.table-hover .table-dark:hover > th{background-color:#b9bbbe}

.table-active, 
.table-active > th, 
.table-active > td{background-color:rgba(0, 0, 0, .075)}
.table-hover .table-active:hover{background-color:rgba(0, 0, 0, .075)}
.table-hover .table-active:hover > td, 
.table-hover .table-active:hover > th{background-color:rgba(0, 0, 0, .075)}

.table-dark{
	color:#fff; background-color:var(--dark);
	& th, & td, & thead th{border-color:#454d55}
	&.table-bordered{border:0}
	&.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255, 255, 255, .03)}
	&.table-hover tbody tr:hover{color:#fff; background-color:rgba(255, 255, 255, .075)}
}

@media(max-width:575.98px){
	.table-responsive-sm{
		display:block; width:100%; overflow-x:auto; overflow-scrolling:touch;
		& > .table-bordered{border:0}
	}
}

@media(max-width:767.98px){
	.table-responsive-md{
		display:block; width:100%; overflow-x:auto; overflow-scrolling:touch;
		& > .table-bordered{border:0}
	}
}

@media(max-width:991.98px){
	.table-responsive-lg{
		display:block; width:100%; overflow-x:auto; overflow-scrolling:touch;
		& > .table-bordered{border:0}
	}
}

@media(max-width:1199.98px){
	.table-responsive-xl{
		display:block; width:100%; overflow-x:auto; overflow-scrolling:touch;
		& > .table-bordered{border:0}
	}
}

.table-responsive{
	display:block; width:100%; overflow-x:auto; overflow-scrolling:touch;
	& > .table-bordered{border:0}
}

@media(max-width:575px){
	.table-rwd{
		border:none;
		& thead{display:none}
		& tr{margin-bottom:1rem}
		& td{
			&:last-child{border-bottom:2px dotted #ddd}
			&[data-th]::before{font-weight:bold; content:attr(data-th) " \003A "; padding-right:.5rem; white-space:nowrap; word-break:keep-all}
		}
	}

	.table-rwd, .table-rwd tbody, .table-rwd tr, .table-rwd td{
		display: block; width: 100%;
	}

	.table-rwd > tbody > tr > td{border:none; padding:2px 10px; text-align:left}
	.table-rwd td{
		& .checkbox{float:left; margin-right:5px}
		&.thum-image{float:left; margin-right:3px; max-width:60px}
		&.product_name{line-height:1.3; font-size:1.2rem}
		&.inline-block{display:inline-block}
	}

	/* .table-rwd th.action{width:1px; padding:0; border-bottom:none} */
}

/* 表單控件 */
.form-group{margin-bottom:1rem; display:flex; align-items:center; position:relative; column-gap:.5rem;}

.form-control{
	display:block; width:100%; height:calc(1.5em + .75rem + 2px); padding:.375rem .75rem; line-height:1.5; color:#212529; background-color:#fff; background-clip:padding-box; border:1px solid #ced4da; border-radius:var(--radius); transition:border-color .25s ease-in-out, box-shadow .25s ease-in-out;
	&:focus, &:hover{color:#495057; background-color:#fff; border-color:#80bdff; outline:0; box-shadow:0 0 0 .2rem rgba(0, 123, 255, .25)}
	&::placeholder{font-size:.85rem; line-height:1.8; color:rgb(200, 200, 200)}
	&:disabled, &[readonly]{background-color:#e9ecef; opacity:1}
}

@media(prefers-reduced-motion:reduce){
	.form-control{transition:none}
}

input[type="date"].form-control, 
input[type="time"].form-control, 
input[type="datetime-local"].form-control, 
input[type="month"].form-control{appearance:none}
.form-control-file, .form-control-range{display:block; width:100%}

.form-control-plaintext{display:block; width:100%; padding:.375rem 0; margin-bottom:0; font-size:1rem; line-height:1.5; color:var(--color); background-color:transparent; border:solid transparent; border-width:1px 0}
.form-control-plaintext.form-control-sm, 
.form-control-plaintext.form-control-lg{padding-right:0; padding-left:0}
.form-control-sm{height:calc(1.5em + .5rem + 2px); padding:.25rem .5rem; font-size:.875rem; line-height:1.5}
.form-control-lg{height:calc(1.5em + 1rem + 2px); font-size:1.25rem; font-weight:bold}
select.form-control[size], select.form-control[multiple]{height:auto}
textarea.form-control{height:auto}

.form-text{display:block; margin-top:.35rem}
.form-check{position:relative; display:block; padding-left:1.25rem}
.form-check-input{position:absolute; margin-top:.3rem; margin-left:-1.25rem}
.form-check-input[disabled] ~ .form-check-label, 
.form-check-input:disabled ~ .form-check-label{color:var(--secondary)}
.form-check-label{margin-bottom:0}
.form-check-inline{display:inline-flex; align-items:center; padding-left:0; margin-right:.75rem}
.form-check-inline .form-check-input{position:static; margin-top:0; margin-right:.3125rem; margin-left:0}

/* .form-row > .col, .form-row > [class*="col-"], .form-group > [class*="col-form-label"], .form-group > [class*="col"]{padding-left:5px; padding-right:5px} */

/* .valid-feedback{display:none; width:100%; margin-top:.25rem; font-size:80%; color:var(--success)}
.valid-tooltip{position:absolute; top:100%; left:0; z-index:5; display:none; max-width:100%; padding:.25rem .5rem; margin-top:.1rem; font-size:.875rem; line-height:1.5; color:#fff; background-color:rgba(40, 167, 69, .9); border-radius:.25rem}
.form-row > .col > .valid-tooltip, .form-row > [class*="col-"] > .valid-tooltip{left:5px}
.was-validated :valid ~ .valid-feedback, .was-validated :valid ~ .valid-tooltip, .is-valid ~ .valid-feedback, .is-valid ~ .valid-tooltip{display:block}
.was-validated .form-control:valid, .form-control.is-valid{border-color:var(--success); padding-right:calc(1.5em + .75rem); background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.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-repeat:no-repeat; background-position:right calc(.375em + .1875rem) center; background-size:calc(.75em + .375rem) calc(.75em + .375rem)}
.was-validated .form-control:valid:focus, .form-control.is-valid:focus{border-color:var(--success); box-shadow:0 0 0 .2rem rgba(40, 167, 69, .25)}
.was-validated textarea.form-control:valid, textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem); background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}
.was-validated .custom-select:valid, .custom-select.is-valid{border-color:var(--success); padding-right:calc(.75em + 2.3125rem); background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.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") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}
.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus{border-color:var(--success); box-shadow:0 0 0 .2rem rgba(40, 167, 69, .25)}
.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label{color:var(--success)}
.was-validated .form-check-input:valid ~ .valid-feedback, .was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, .form-check-input.is-valid ~ .valid-tooltip{display:block}
.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label{color:var(--success)}
.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before{border-color:var(--success)}
.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before{border-color:#34ce57; background-color:#34ce57}
.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40, 167, 69, .25)}
.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before{border-color:var(--success)}
.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label{border-color:var(--success)}
.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label{border-color:var(--success); box-shadow:0 0 0 .2rem rgba(40, 167, 69, .25)}
.invalid-feedback{display:none; width:100%; margin-top:.25rem; font-size:80%; color:var(--danger)}
.invalid-tooltip{position:absolute; top:100%; left:0; z-index:5; display:none; max-width:100%; padding:.25rem .5rem; margin-top:.1rem; font-size:.875rem; line-height:1.5; color:#fff; background-color:rgba(220, 53, 69, .9); border-radius:.25rem}
.form-row > .col > .invalid-tooltip, .form-row > [class*="col-"] > .invalid-tooltip{left:5px}
.was-validated :invalid ~ .invalid-feedback, .was-validated :invalid ~ .invalid-tooltip, .is-invalid ~ .invalid-feedback, .is-invalid ~ .invalid-tooltip{display:block}
.was-validated .form-control:invalid, .form-control.is-invalid{border-color:var(--danger); padding-right:calc(1.5em + .75rem); background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); background-repeat:no-repeat; background-position:right calc(.375em + .1875rem) center; background-size:calc(.75em + .375rem) calc(.75em + .375rem)}
.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus{border-color:var(--danger); box-shadow:0 0 0 .2rem rgba(220, 53, 69, .25)}
.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem); background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}
.was-validated .custom-select:invalid, .custom-select.is-invalid{border-color:var(--danger); padding-right:calc(.75em + 2.3125rem); background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}
.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus{border-color:var(--danger); box-shadow:0 0 0 .2rem rgba(220, 53, 69, .25)}
.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label{color:var(--danger)}
.was-validated .form-check-input:invalid ~ .invalid-feedback, .was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, .form-check-input.is-invalid ~ .invalid-tooltip{display:block}
.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label{color:var(--danger)}
.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before{border-color:var(--danger)}
.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before{border-color:#e4606d; background-color:#e4606d}
.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220, 53, 69, .25)}
.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before{border-color:var(--danger)}
.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label{border-color:var(--danger)}
.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label{border-color:var(--danger); box-shadow:0 0 0 .2rem rgba(220, 53, 69, .25)} */

/* .form-inline{display:flex; flex-flow:row wrap; align-items:center}
.form-inline .form-check{width:100%}

@media(min-width:576px){
 .form-inline label{display:flex; align-items:center; justify-content:center; margin-bottom:0}
 .form-inline .form-group{display:flex; flex:0 0 auto; flex-flow:row wrap; align-items:center; margin-bottom:0}
 .form-inline .form-control{display:inline-block; width:auto; vertical-align:middle}
 .form-inline .form-control-plaintext{display:inline-block}
 .form-inline .input-group, .form-inline .custom-select{width:auto}
 .form-inline .form-check{display:flex; align-items:center; justify-content:center; width:auto; padding-left:0}
 .form-inline .form-check-input{position:relative; flex-shrink:0; margin-top:0; margin-right:.25rem; margin-left:0}
 .form-inline .custom-control{place-content:center}
 .form-inline .custom-control-label{margin-bottom:0}
} */

.form-inline{
	display:flex; flex-flow:row wrap; align-items:center;
	&.form-check{width:100%}
	@media(min-width:576px){
		&label{display:flex; align-items:center; justify-content:center; margin-bottom:0}
		&.form-group{display:flex; flex:0 0 auto; flex-flow:row wrap; align-items:center; margin-bottom:0}
		&.form-control{display:inline-block; width:auto; vertical-align:middle}
		&.form-control-plaintext{display:inline-block}
		&.input-group, &.custom-select{width:auto}
		&.form-check{display:flex; align-items:center; justify-content:center; width:auto; padding-left:0}
		&.form-check-input{position:relative; flex-shrink:0; margin-top:0; margin-right:0.25rem; margin-left:0}
		&.custom-control{place-content:center}
		&.custom-control-label{margin-bottom:0}
	}
}

/* 按鈕 */
.btn{
	display:inline-block; font-weight:400; color:var(--color); text-align:center; vertical-align:middle; user-select:none; background-color:transparent; border:1px solid transparent; padding:.375rem .75rem; font-size:1rem; line-height:1.5; border-radius:.25rem; white-space:nowrap; transition:color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
	&:hover{color:hsl(from var(--color) h s calc(l - 15)); text-decoration:none}
	&:focus, &.focus{outline:0; box-shadow:0 0 0 .2rem hsl(from var(--color) h s calc(l + 30))}
	&.disabled, &:disabled{opacity:.65}
}

@media(prefers-reduced-motion:reduce){
	.btn{transition:none}
}

.btn:not(:disabled):not(.disabled), .label:not(.disabled){cursor:pointer}
a.btn.disabled, fieldset:disabled a.btn{pointer-events:none}
.show > .dropdown-toggle{color:var(--primary)}

.btn-primary{
	color:#fff; background-color:var(--primary);
	&:hover{color:#fff; background-color:hsl(from var(--primary) h s calc(l - 15)); border-color:hsl(from var(--primary) h s calc(l - 20))}
	&:focus, &.focus{background-color:hsl(from var(--primary) h s calc(l - 10)); border-color:hsl(from var(--primary) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--primary) h s calc(l + 30))}
	/* &.disabled, &:disabled{color:#fff; background-color:var(--primary); border-color:var(--primary); opacity:.65} */
}

.btn-primary:not(:disabled):not(.disabled):active, 
.btn-primary:not(:disabled):not(.disabled).active, 
.show > .btn-primary.dropdown-toggle{
	/* color:#fff;  */background-color:var(--primary); border-color:hsl(from var(--primary) h s calc(l - 15))
}
.btn-primary:not(:disabled):not(.disabled):active:focus, 
.btn-primary:not(:disabled):not(.disabled).active:focus, 
.show > .btn-primary.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--primary) h s calc(l + 30))
}

.btn-secondary{
	color:#fff; background-color:var(--secondary);
	&:hover{color:#fff; background-color:hsl(from var(--secondary) h s calc(l - 15)); border-color:var(--secondary)}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--secondary) h s calc(l - 10)); border-color:hsl(from var(--secondary) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--secondary) h s calc(l + 30))}
	/* &:focus, &.focus{color:#fff; background-color:#5a6268; border-color:#545b62; box-shadow:0 0 0 .2rem rgba(130, 138, 145, .5)}
	&.disabled, &:disabled{color:#fff; background-color:var(--secondary); border-color:var(--secondary)} */
}

.btn-secondary:not(:disabled):not(.disabled):active, 
.btn-secondary:not(:disabled):not(.disabled).active, 
.show > .btn-secondary.dropdown-toggle{
	/* color:#fff;  */background-color:var(--secondary); border-color:hsl(from var(--secondary) h s calc(l - 15))
}
.btn-secondary:not(:disabled):not(.disabled):active:focus, 
.btn-secondary:not(:disabled):not(.disabled).active:focus, 
.show > .btn-secondary.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--secondary) h s calc(l + 30))
}

.btn-success{
	color:#fff; background-color:var(--success); 
	&:hover{color:#fff; background-color:hsl(from var(--success) h s calc(l - 15)); border-color:var(--success)}
	&:focus, &.focus{background-color:hsl(from var(--success) h s calc(l - 10)); border-color:hsl(from var(--success) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--success) h s calc(l + 30))}
	/* &:focus, &.focus{color:#fff; background-color:#218838; border-color:#1e7e34; box-shadow:0 0 0 .2rem rgba(72, 180, 97, .5)}
	&.disabled, &:disabled{color:#fff; background-color:var(--success); border-color:var(--success)} */
}

.btn-success:not(:disabled):not(.disabled):active, 
.btn-success:not(:disabled):not(.disabled).active, 
.show > .btn-success.dropdown-toggle{
	/* color:#fff;  */background-color:var(--success); border-color:hsl(from var(--success) h s calc(l - 15))
}
.btn-success:not(:disabled):not(.disabled):active:focus, 
.btn-success:not(:disabled):not(.disabled).active:focus, 
.show > .btn-success.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--success) h s calc(l + 30))
}

.btn-info{
	color:#fff; background-color:var(--info);
	&:hover{color:#fff; background-color:hsl(from var(--info) h s calc(l - 15)); border-color:hsl(from var(--info) h s calc(l - 20))}
	&:focus, &.focus{background-color:hsl(from var(--info) h s calc(l - 10)); border-color:hsl(from var(--info) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--info) h s calc(l + 30))}
	/* &:focus, &.focus{color:#fff; background-color:#138496; border-color:#117a8b; box-shadow:0 0 0 .2rem rgba(58, 176, 195, .5)}
	&.disabled, &:disabled{color:#fff; background-color:var(--info); border-color:var(--info)} */
}

.btn-info:not(:disabled):not(.disabled):active, 
.btn-info:not(:disabled):not(.disabled).active, 
.show > .btn-info.dropdown-toggle{
	/* color:#fff;  */background-color:hsl(from var(--info) h s calc(l - 10)); border-color:var(--info)
}
.btn-info:not(:disabled):not(.disabled):active:focus, 
.btn-info:not(:disabled):not(.disabled).active:focus, 
.show > .btn-info.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--info) h s calc(l + 30))
}

.btn-warning{
	color:var(--color); background-color:var(--warning);
	&:hover{color:var(--color); background-color:hsl(from var(--warning) h s calc(l - 15)); border-color:var(--warning)}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--warning) h s calc(l - 10)); border-color:hsl(from var(--warning) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--warning) h s calc(l + 30))}
	/* &:focus, &.focus{color:var(--color); background-color:#e0a800; border-color:#d39e00; box-shadow:0 0 0 .2rem rgba(222, 170, 12, .5)}
	&.disabled, .&:disabled{color:var(--color); background-color:var(--warning); border-color:var(--warning)} */
}

.btn-warning:not(:disabled):not(.disabled):active, 
.btn-warning:not(:disabled):not(.disabled).active, 
.show > .btn-warning.dropdown-toggle{
	/* color:var(--color);  */background-color:hsl(from var(--warning) h s calc(l - 15)); border-color:hsl(from var(--warning) h s calc(l - 15))
}
.btn-warning:not(:disabled):not(.disabled):active:focus, 
.btn-warning:not(:disabled):not(.disabled).active:focus, 
.show > .btn-warning.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--warning) h s calc(l + 30))
}

.btn-danger{
	color:#fff; background-color:var(--danger);
	&:hover{color:#fff; background-color:hsl(from var(--danger) h s calc(l - 15)); border-color:var(--danger)}
	&:focus, &.focus{background-color:hsl(from var(--danger) h s calc(l - 10)); border-color:hsl(from var(--danger) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--danger) h s calc(l + 30))}
	/* &:focus, &.focus{color:#fff; background-color:#c8233; border-color:#bd2130; box-shadow:0 0 0 .2rem rgba(225, 83, 97, .5)}
	&.disabled, &:disabled{color:#fff; background-color:var(--danger); border-color:var(--danger)} */
}

.btn-danger:not(:disabled):not(.disabled):active, 
.btn-danger:not(:disabled):not(.disabled).active, 
.show > .btn-danger.dropdown-toggle{
	/* color:#fff;  */background-color:hsl(from var(--danger) h s calc(l - 15)); border-color:hsl(from var(--danger) h s calc(l - 15))
}
.btn-danger:not(:disabled):not(.disabled):active:focus, 
.btn-danger:not(:disabled):not(.disabled).active:focus, 
.show > .btn-danger.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--danger) h s calc(l + 30))
}

.btn-light{
	color:var(--color); background-color:var(--light);
	&:hover{color:var(--color); background-color:hsl(from var(--light) h s calc(l - 15)); border-color:#dae0e5}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--light) h s calc(l - 10)); border-color:hsl(from var(--light) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--light) h s calc(l + 30))}
	/* &:focus, &.focus{color:var(--color); background-color:#e2e6ea; border-color:#dae0e5; box-shadow:0 0 0 .2rem rgba(216, 217, 219, .5)}
	&.disabled, &:disabled{color:var(--color); background-color:var(--light); border-color:var(--light)} */
}

.btn-light:not(:disabled):not(.disabled):active, 
.btn-light:not(:disabled):not(.disabled).active, 
.show > .btn-light.dropdown-toggle{
	color:var(--color); background-color:hsl(from var(--light) h s calc(l - 15)); border-color:hsl(from var(--light) h s calc(l - 15))
}
.btn-light:not(:disabled):not(.disabled):active:focus, 
.btn-light:not(:disabled):not(.disabled).active:focus, 
.show > .btn-light.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--light) h s calc(l + 30))
}

.btn-dark{
	color:#fff; background-color:var(--dark);
	&:hover{color:#fff; background-color:hsl(from var(--dark) h s calc(l + 20)); border-color:var(--dark)}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--dark) h s calc(l - 10)); border-color:hsl(from var(--dark) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--dark) h s calc(l + 30))}
	/*&:focus, &.focus{color:#fff; background-color:#23272b; border-color:#1d2124; box-shadow:0 0 0 .2rem rgba(82, 88, 93, .5)}
	&.disabled, &:disabled{ color:#fff; background-color:var(--dark); border-color:var(--dark)hsl(from var(--dark) h s calc(l + 20))} */
}

.btn-dark:not(:disabled):not(.disabled):active, 
.btn-dark:not(:disabled):not(.disabled).active, 
.show > .btn-dark.dropdown-toggle{
	/* color:#fff;  */background-color:hsl(from var(--dark) h s calc(l - 15)); border-color:hsl(from var(--dark) h s calc(l - 15))
}
.btn-dark:not(:disabled):not(.disabled):active:focus, 
.btn-dark:not(:disabled):not(.disabled).active:focus, 
.show > .btn-dark.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--dark) h s calc(l + 30))
}

.btn-outline-primary{
	color:var(--primary); border-color:var(--primary);
	&:hover{color:#fff; background-color:hsl(from var(--primary) h s calc(l - 30)); border-color:var(--primary)}
	&:focus, &.focus{background-color:hsl(from var(--primary) h s calc(l - 10)); border-color:hsl(from var(--primary) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--primary) h s calc(l + 30))}
	/* &:focus, &.focus{box-shadow:0 0 0 .2rem rgba(0, 123, 255, .5)}
	&.disabled, &:disabled{color:var(--primary); background-color:transparent} */
}

.btn-outline-primary:not(:disabled):not(.disabled):active, 
.btn-outline-primary:not(:disabled):not(.disabled).active, 
.show > .btn-outline-primary.dropdown-toggle{
	/* color:#fff;  */background-color:hsl(from var(--primary) h s calc(l - 15)); border-color:hsl(from var(--primary) h s calc(l - 15))
}
.btn-outline-primary:not(:disabled):not(.disabled):active:focus, 
.btn-outline-primary:not(:disabled):not(.disabled).active:focus, 
.show > .btn-outline-primary.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--primary) h s calc(l + 30))
}

.btn-outline-secondary{
	color:var(--secondary); border-color:var(--secondary);
	&:hover{color:#fff; background-color:hsl(from var(--secondary) h s calc(l + 20)); border-color:var(--secondary)}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--secondary) h s calc(l - 10)); border-color:hsl(from var(--secondary) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--secondary) h s calc(l + 30))}
	/* &:focus, &.focus{box-shadow:0 0 0 .2rem hsl(from var(--secondary) h s calc(l + 30))}
	&.disabled, &:disabled{background-color:hsl(from var(--secondary) h s calc(l + 20))} */
}

.btn-outline-secondary:not(:disabled):not(.disabled):active, 
.btn-outline-secondary:not(:disabled):not(.disabled).active, 
.show > .btn-outline-secondary.dropdown-toggle{
	/* color:#fff;  */background-color:hsl(from var(--secondary) h s calc(l - 15)); border-color:hsl(from var(--secondary) h s calc(l - 15))
}
.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, 
.btn-outline-secondary:not(:disabled):not(.disabled).active:focus, 
.show > .btn-outline-secondary.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--secondary) h s calc(l + 30))
}

.btn-outline-success{
	color:var(--success); border-color:var(--success);
	&:hover{color:#fff; background-color:hsl(from var(--success) h s calc(l + 30)); border-color:var(--success)}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--success) h s calc(l - 10)); border-color:hsl(from var(--success) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--success) h s calc(l + 30))}
	/* &:focus, &.focus{box-shadow:0 0 0 .2rem rgba(40, 167, 69, .5)}
	&.disabled, &:disabled{color:var(--success); background-color:transparent} */
}

.btn-outline-success:not(:disabled):not(.disabled):active, 
.btn-outline-success:not(:disabled):not(.disabled).active, 
.show > .btn-outline-success.dropdown-toggle{
	/* color:#fff;  */background-color:hsl(from var(--success) h s calc(l - 15)); border-color:hsl(from var(--success) h s calc(l - 15))
}
.btn-outline-success:not(:disabled):not(.disabled):active:focus, 
.btn-outline-success:not(:disabled):not(.disabled).active:focus, 
.show > .btn-outline-success.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--success) h s calc(l + 30))
}

.btn-outline-info{
	color:var(--info); border-color:var(--info);
	&:hover{color:#fff; background-color:hsl(from var(--info) h s calc(l + 30)); border-color:var(--info)}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--info) h s calc(l - 10)); border-color:hsl(from var(--info) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--info) h s calc(l + 30))}
	/* &:focus, &.focus{box-shadow:0 0 0 .2rem rgba(23, 162, 184, .5)}
	&.disabled, &:disabled{color:var(--info); background-color:transparent} */
}

.btn-outline-info:not(:disabled):not(.disabled):active, 
.btn-outline-info:not(:disabled):not(.disabled).active,
.show > .btn-outline-info.dropdown-toggle{
	/* color:#fff;  */background-color:hsl(from var(--info) h s calc(l - 15)); border-color:hsl(from var(--info) h s calc(l - 15))
}

.btn-outline-info:not(:disabled):not(.disabled):active:focus, 
.btn-outline-info:not(:disabled):not(.disabled).active:focus, 
.show > .btn-outline-info.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--info) h s calc(l + 30))
}

.btn-outline-warning{
	color:var(--warning); border-color:var(--warning);
	&:hover{color:var(--color); background-color:hsl(from var(--warning) h s calc(l + 30)); border-color:var(--warning)}
	&:focus, &.focus{background-color:hsl(from var(--warning) h s calc(l - 10)); border-color:hsl(from var(--warning) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--warning) h s calc(l + 30))}
	/* &:focus, &.focus{box-shadow:0 0 0 .2rem rgba(255, 193, 7, .5)}
	&.disabled, &:disabled{color:var(--warning); background-color:transparent} */
}

.btn-outline-warning:not(:disabled):not(.disabled):active, 
.btn-outline-warning:not(:disabled):not(.disabled).active,
.show > .btn-outline-warning.dropdown-toggle{
	color:var(--warning); background-color:hsl(from var(--warning) h s calc(l - 15)); border-color:hsl(from var(--warning) h s calc(l - 15))
}
.btn-outline-warning:not(:disabled):not(.disabled):active:focus, 
.btn-outline-warning:not(:disabled):not(.disabled).active:focus, 
.show > .btn-outline-warning.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--warning) h s calc(l + 30))
}

.btn-outline-danger{
	color:var(--danger); border-color:var(--danger);
	&:hover{color:#fff; background-color:hsl(from var(--danger) h s calc(l + 30)); border-color:var(--danger)}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--danger) h s calc(l - 10)); border-color:hsl(from var(--danger) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--danger) h s calc(l + 30))}
	/* &:focus, &.focus{box-shadow:0 0 0 .2rem rgba(220, 53, 69, .5)}
	&.disabled, &:disabled{color:var(--danger); background-color:transparent} */
}

.btn-outline-danger:not(:disabled):not(.disabled):active, 
.btn-outline-danger:not(:disabled):not(.disabled).active,
.show > .btn-outline-danger.dropdown-toggle{
	/* color:#fff; */ background-color:hsl(from var(--danger) h s calc(l - 15)); border-color:hsl(from var(--danger) h s calc(l - 15))
}
.btn-outline-danger:not(:disabled):not(.disabled):active:focus, 
.btn-outline-danger:not(:disabled):not(.disabled).active:focus, 
.show > .btn-outline-danger.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--danger) h s calc(l + 30))
}

.btn-outline-light{
	color:var(--light); border-color:var(--light);
	&:hover{color:var(--color); background-color:hsl(from var(--light) h s calc(l + 30)); border-color:var(--light)}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--light) h s calc(l - 10)); border-color:hsl(from var(--light) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--light) h s calc(l + 30))}
	/* &:focus, &.focus{box-shadow:0 0 0 .2rem rgba(248, 249, 250, .5)}
	&.disabled, &:disabled{color:var(--light); background-color:transparent} */
}

.btn-outline-light:not(:disabled):not(.disabled):active, 
.btn-outline-light:not(:disabled):not(.disabled).active,
.show > .btn-outline-light.dropdown-toggle{
	color:var(--color); background-color:hsl(from var(--light) h s calc(l - 15)); border-color:hsl(from var(--light) h s calc(l - 15))
}
.btn-outline-light:not(:disabled):not(.disabled):active:focus, 
.btn-outline-light:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-light.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--light) h s calc(l + 30))
}

.btn-outline-dark{
	color:var(--dark); border-color:var(--dark);
	&:hover{color:#fff; background-color:hsl(from var(--dark) h s calc(l + 30));; border-color:var(--dark)}
	&:focus, &.focus{/* color:#fff; */ background-color:hsl(from var(--dark) h s calc(l - 10)); border-color:hsl(from var(--dark) h s calc(l - 20)); box-shadow:0 0 0 .2rem hsl(from var(--dark) h s calc(l + 30))}
	/* &:focus, &.focus{box-shadow:0 0 0 .2rem rgba(52, 58, 64, .5)}
	&.disabled, &:disabled{color:var(--dark); background-color:transparent} */
}

.btn-outline-dark:not(:disabled):not(.disabled):active, 
.btn-outline-dark:not(:disabled):not(.disabled).active, 
.show > .btn-outline-dark.dropdown-toggle{
	/* color:#fff;  */background-color:hsl(from var(--dark) h s calc(l - 15)); border-color:hsl(from var(--dark) h s calc(l - 15))
}
.btn-outline-dark:not(:disabled):not(.disabled):active:focus, 
.btn-outline-dark:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-dark.dropdown-toggle:focus{
	box-shadow:0 0 0 .2rem hsl(from var(--dark) h s calc(l + 30))
}

.btn-link{
	color:var(--primary); text-decoration:none;
	&:hover{color:hsl(from var(--primary) h s calc(l - 15)); text-decoration:underline}
	&:focus, &.focus{text-decoration:underline}
	/* &:disabled, &.disabled{color:var(--secondary); pointer-events:none} */
}

.btn-lg, .btn-group-lg > .btn{padding:.5rem 1rem; font-size:1.25rem; line-height:1.5; border-radius:calc(var(--radius) * 1.5)}
.btn-sm, .btn-group-sm > .btn{padding:.25rem .5rem; font-size:.875rem; line-height:1.5; border-radius:var(--radius)}
.btn-block{display:block; width:100%}
.btn + .btn, select + select{margin-left:.15rem}
.btn-group[data-toggle="buttons"] label{color:hsl(from var(--primary) h s calc(l + 40))}
.btn-group[data-toggle="buttons"] label.active{color:#fff/* ; background-color:#0086ae */}

input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block{width:100%}
@media(min-width:992px){
	.btn + .btn, select + select{margin-left:.25rem}
}

.fade{transition:opacity .15s linear}
@media(prefers-reduced-motion:reduce){
	.fade{transition:none}
}
.fade:not(.show){opacity:0}

/* 切換內容 */
.collapse:not(.show){display:none}
.collapsing{position:relative; height:0; overflow:hidden; transition:height .35s ease}

@media(prefers-reduced-motion:reduce){
	.collapsing{transition:none}
}

/* 下拉選單 */
.dropup, .dropright, .dropdown, .dropleft{position:relative}
.dropdown-toggle{
	white-space:nowrap;
	&::after{display:inline-block; margin-left:.255em; vertical-align:.255em; content:''; border-top:.3em solid; border-right:.3em solid transparent; border-bottom:0; border-left:.3em solid transparent}
	&:empty::after{margin-left:0}
}

.dropdown-menu{position:absolute; top:100%; left:0; z-index:1000; display:none; float:left; min-width:10rem; padding:.5rem 0; margin:.125rem 0 0; font-size:1rem; color:var(--color); text-align:left; list-style:none; background-color:#fff; background-clip:padding-box; border:1px solid rgba(0, 0, 0, .15); border-radius:.25rem}
.dropdown-menu-left{right:auto; left:0}
.dropdown-menu-right{right:0; left:auto}

@media(min-width:576px){
	.dropdown-menu-sm-left{right:auto; left:0}
	.dropdown-menu-sm-right{right:0;left:auto}
}

@media(min-width:768px){
	.dropdown-menu-md-left{right:auto; left:0}
	.dropdown-menu-md-right{right:0; left:auto}
}

@media(min-width:992px){
	.dropdown-menu-lg-left{right:auto; left:0}
	.dropdown-menu-lg-right{right:0; left:auto}
}

@media(min-width:1200px){
	.dropdown-menu-xl-left{right:auto; left:0}
	.dropdown-menu-xl-right{right:0; left:auto}
}

.dropup .dropdown-menu{top:auto; bottom:100%; margin-top:0; margin-bottom:.125rem}
/* .dropup .dropdown-toggle::after{display:inline-block; margin-left:.255em; vertical-align:.255em; content:''; border-top:0; border-right:.3em solid transparent; border-bottom:.3em solid; border-left:.3em solid transparent} */
.dropup .dropdown-toggle:empty::after{margin-left:0}
.dropright{
	& .dropdown-menu{top:0; right:auto; left:100%; margin-top:0; margin-left:.125rem}
	& .dropdown-toggle{
		&::after{display:inline-block; margin-left:.255em; vertical-align:.255em; content:''; border-top:.3em solid transparent; border-right:0; border-bottom:.3em solid transparent; border-left:.3em solid}
		&:empty::after{margin-left:0}
		&::after{vertical-align:0}
	}
}

.dropleft{
	& .dropdown-menu{top:0; right:100%; left:auto; margin-top:0; margin-right:.125rem}
	& .dropdown-toggle{
		&::after{display:inline-block; margin-left:.255em; vertical-align:.255em; content:''}
		/* & .dropdown-toggle::after{display:none}
		&::before{display:inline-block; margin-right:.255em; vertical-align:.255em; content:''; border-top:.3em solid transparent; border-right:.3em solid; border-bottom:.3em solid transparent} */
		&:empty::after{margin-left:0}
		&::before{vertical-align:0}
	}
}

.dropdown-menu[x-placement^="top"],
.dropdown-menu[x-placement^="right"],
.dropdown-menu[x-placement^="bottom"],
.dropdown-menu[x-placement^="left"]{right:auto; bottom:auto}

.dropdown-divider{height:0; margin:.5rem 0; overflow:hidden; border-top:1px solid #e9ecef}
.dropdown-item{display:block; width:100%; padding:.25rem 1.5rem; clear:both; font-weight:400; color:var(--color); text-align:inherit; white-space:nowrap; background-color:transparent; border:0}
.dropdown-item:hover, .dropdown-item:focus{color:#16181b; text-decoration:none; background-color:#e9ecef}
.dropdown-item.active, .dropdown-item:active{color:#fff; text-decoration:none; background-color:var(--primary)}
.dropdown-item.disabled, .dropdown-item:disabled{color:#adb5bd; pointer-events:none; background-color:transparent}
.dropdown-menu.show{display:block}
.dropdown-header{display:block; padding:.5rem 1.5rem; margin-bottom:0; font-size:.875rem; color:var(--secondary); white-space:nowrap}
.dropdown-item-text{display:block; padding:.25rem 1.5rem; color:var(--color)}

.btn-group, .btn-group-vertical{position:relative; display:inline-flex; vertical-align:middle}
.btn-group > .btn, 
.btn-group-vertical > .btn{
	position:relative; flex:1 1 auto}
.btn-group > .btn:hover, .btn-group-vertical > .btn:hover{z-index:1}
.btn-group > .btn:focus, 
.btn-group > .btn:active, 
.btn-group > .btn.active, 
.btn-group-vertical > .btn:focus, 
.btn-group-vertical > .btn:active, 
.btn-group-vertical > .btn.active{z-index:1}

.btn-toolbar{display:flex; flex-wrap:wrap; justify-content:flex-start}
.btn-toolbar .input-group{width:auto}

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child)
{margin-left:-1px}

.btn-group > .btn:not(:last-child):not(.dropdown-toggle), 
.btn-group > .btn-group:not(:last-child) > .btn
{border-top-right-radius:0; border-bottom-right-radius:0}

.btn-group > .btn:not(:first-child), 
.btn-group > .btn-group:not(:first-child) > .btn{
	border-top-left-radius:0; border-bottom-left-radius:0}
.dropdown-toggle-split{padding-right:.5625rem; padding-left:.5625rem}
.dropdown-toggle-split::after, 
.dropup .dropdown-toggle-split::after, 
.dropright .dropdown-toggle-split::after{margin-left:0}
.dropleft .dropdown-toggle-split::before{margin-right:0}

.btn-sm + .dropdown-toggle-split, 
.btn-group-sm > .btn + .dropdown-toggle-split{padding-right:.375rem; padding-left:.375rem}
.btn-lg + .dropdown-toggle-split, 
.btn-group-lg > .btn + .dropdown-toggle-split{padding-right:.75rem; padding-left:.75rem}
.btn-group-vertical{
	flex-direction:column; align-items:flex-start; justify-content:center;
	& > .btn, & > .btn-group{width:100%}
	& > .btn:not(:first-child), & > .btn-group:not(:first-child){margin-top:-1px}
	& > .btn:not(:last-child):not(.dropdown-toggle),
	& > .btn-group:not(:last-child) > .btn{border-bottom-right-radius:0; border-bottom-left-radius:0}
}

.btn-group-vertical > .btn:not(:first-child), 
.btn-group-vertical > .btn-group:not(:first-child) > .btn{border-top-left-radius:0; border-top-right-radius:0}
.btn-group-toggle > .btn, .btn-group-toggle > .btn-group > .btn{margin-bottom:0}
.btn-group-toggle > .btn input[type="radio"], 
.btn-group-toggle > .btn input[type="checkbox"], 
.btn-group-toggle > .btn-group > .btn input[type="radio"], 
.btn-group-toggle > .btn-group > .btn input[type="checkbox"]{
	position:absolute; clip:rect(0, 0, 0, 0); pointer-events:none
}

.input-group{
	position:relative; display:flex; align-items:stretch; width:100%;

	& > .form-control, 
	& > .form-control-plaintext, 
	& > .custom-select, 
	& > .custom-file{
		position:relative; flex:1 1 auto; width:1%; min-width:0; margin-bottom:0
	}
	& > .form-control + .form-control, 
	& > .form-control + .custom-select, 
	& > .form-control + .custom-file, 
	& > .form-control-plaintext + .form-control, 
	& > .form-control-plaintext + .custom-select, 
	& > .form-control-plaintext + .custom-file, 
	& > .custom-select + .form-control, 
	& > .custom-select + .custom-select, 
	& > .custom-select + .custom-file, 
	& > .custom-file + .form-control, 
	& > .custom-file + .custom-select, 
	& > .custom-file + .custom-file{
		margin-left:-1px
	}
	& > .form-control:focus, 
	& > .custom-select:focus, 
	& > .custom-file .custom-file-input:focus ~ .custom-file-label
	{z-index:3}
}



.input-group > .custom-file .custom-file-input:focus{z-index:4}
.input-group > .form-control:not(:first-child), 
.input-group > .custom-select:not(:first-child){border-top-left-radius:0; border-bottom-left-radius:0}
.input-group > .custom-file{display:flex; align-items:center}
.input-group > .custom-file:not(:last-child) .custom-file-label, 
.input-group > .custom-file:not(:first-child) .custom-file-label{
	border-top-left-radius:0; border-bottom-left-radius:0
}

.input-group:not(.has-validation){
	& > .form-control:not(:last-child),
	& > .custom-select:not(:last-child),
	& > .custom-file:not(:last-child) .custom-file-label::after{
		border-top-right-radius:0; border-bottom-right-radius:0
	}
}

.input-group.has-validation{
	& > .form-control:nth-last-child(n + 3),
	& > .custom-select:nth-last-child(n + 3),
	& > .custom-file:nth-last-child(n + 3) .custom-file-label::after{
		border-top-right-radius:0; border-bottom-right-radius:0
	}
}

.input-group-prepend, .input-group-append{display:flex}
.input-group-prepend .btn, 
.input-group-append .btn{position:relative; z-index:2}
.input-group-prepend .btn:focus, 
.input-group-append .btn:focus{
	z-index:3
}

.input-group-prepend .btn + .btn, 
.input-group-prepend .btn + .input-group-text, 
.input-group-prepend .input-group-text + .input-group-text, 
.input-group-prepend .input-group-text + .btn, 
.input-group-append .btn + .btn, 
.input-group-append .btn + .input-group-text, 
.input-group-append .input-group-text + .input-group-text, 
.input-group-append .input-group-text + .btn{
	margin-left:-1px
}

.input-group-prepend{margin-right:-1px}
.input-group-append{margin-left:-1px}

.input-group-text{display:flex; align-items:center; padding:.375rem .5rem; margin-bottom:0; font-size:.85rem; line-height:1.5; color:#495057; text-align:center; white-space:nowrap; background-color:#e9ecef; border:1px solid #ced4da; border-radius:var(--radius)}
.input-group-text input[type="radio"], 
.input-group-text input[type="checkbox"]{
	margin-top:0
}

.input-group-lg{
	& > .form-control:not(textarea), 
	& > .custom-select{
		height:calc(1.5em + 1rem + 2px)
	}
	& > .form-control, & > .custom-select, & > .input-group-prepend > .input-group-text, & > .input-group-append > .input-group-text, & > .input-group-prepend > .btn, & > .input-group-append > .btn{padding:.5rem 1rem; font-size:1.25rem; line-height:1.5; border-radius:calc(var(--radius) * 1.5)}
}


.input-group-sm{
	& > .form-control:not(textarea), & > .custom-select{height:calc(1.5em + .5rem + 2px)}
	& > .form-control, & > .custom-select, & > .input-group-prepend > .input-group-text, & > .input-group-append > .input-group-text, & > .input-group-prepend > .btn, & > .input-group-append > .btn{padding:.25rem .5rem; font-size:.875rem; line-height:1.5; border-radius:.2rem}
}

.input-group-lg > .custom-select, 
.input-group-sm > .custom-select{
	padding-right:1.75rem
}

.input-group{
	& > .input-group-prepend > .btn, 
	& > .input-group-prepend > .input-group-text, 
	&:not(.has-validation) > .input-group-append:not(:last-child) > .btn, 
	&:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text, 
	&.has-validation > .input-group-append:nth-last-child(n + 3) > .btn, 
	&.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), 
	& > .input-group-append:last-child > .input-group-text:not(:last-child){
		border-top-right-radius:0; border-bottom-right-radius:0
	}
	& > .input-group-append > .btn, 
	& > .input-group-append > .input-group-text, 
	& > .input-group-prepend:not(:first-child) > .btn, 
	& > .input-group-prepend:not(:first-child) > .input-group-text, 
	& > .input-group-prepend:first-child > .btn:not(:first-child), 
	& > .input-group-prepend:first-child > .input-group-text:not(:first-child){
		border-top-left-radius:0; border-bottom-left-radius:0
	}
}

/* 自定義表單控件 */
.custom-control{position:relative; z-index:1; display:block; min-height:1.5rem; padding-left:2.5rem; color-adjust:exact}
.custom-control-inline{display:inline-flex; margin-right:1rem}

.custom-control-input{
	position:absolute; left:0; z-index:-1; width:1rem; height:1.25rem; opacity:0;
	&:checked ~ .custom-control-label::before{color:#fff; border-color:var(--primary); background-color:var(--primary); /*border-radius:1rem*/}
	&:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0, 123, 255, .25)}
	&:focus:not(:checked) ~ .custom-control-label::before{border-color:#80bdff}
	&:not(:disabled):active ~ .custom-control-label::before{color:#fff; background-color:#b3d7ff; border-color:#b3d7ff}
	&[disabled] ~ .custom-control-label, 
	&:disabled ~ .custom-control-label{
		color:var(--secondary)
	}
	&[disabled] ~ .custom-control-label::before, 
	&:disabled ~ .custom-control-label::before{
		background-color:#e9ecef
	}
}

.custom-control-label{
	position:relative; margin-bottom:0; vertical-align:top; width:100%; padding-left:.5rem;
	&:hover{color:var(--danger); background-color:var(--light)}
	&::before{position:absolute; top:.25rem; left:-1.8rem; display:block; width:1.25rem; height:1.25rem; pointer-events:none; content:''; background-color:#fff; border:#adb5bd solid 1px}
	&::after{position:absolute; top:.2rem; left:-2rem; display:block; width:1.25rem; height:1.25rem; content:''; background:50% / 50% 50% no-repeat}
}

.custom-checkbox{
	& .custom-control-label::before{border-radius:var(--radius)}
	& .custom-control-input:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}
	& .custom-control-input:indeterminate ~ .custom-control-label::before{border-color:var(--primary); background-color:var(--primary)}
	& .custom-control-input:indeterminate ~ .custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}
	& .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(0, 123, 255, .5)}
	& .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(0, 123, 255, .5)}
}

.custom-radio .custom-control-label::before{border-radius:50%}
.custom-radio .custom-control-input{
	&:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}
	&:disabled:checked ~ .custom-control-label::before{background-color:rgba(0, 123, 255, .5)} 
}

/* .custom-switch{padding-left:2.25rem} */
.custom-switch{
	& .custom-control-label::before{left:-2rem; width:2rem; pointer-events:all; border-radius:calc(var(--radius) * 2)}
	& .custom-control-label::after{top:calc(.25rem + 2px); left:calc(-2rem + 2px); width:calc(1.2rem - 4px); height:calc(1.2rem - 4px); background-color:#adb5bd; border-radius:calc(var(--radius) * 2); transition:transform .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; padding-right:.5rem; padding-left:.5rem;}
	& .custom-control-input{
		&:checked ~ .custom-control-label::after{background-color:#fff; transform:translateX(.75rem)}
		&:disabled:checked ~ .custom-control-label::before{background-color:rgba(0, 123, 255, .5)}
	}
}

@media(max-width:575.99px){
 input.form-control, textarea.form-control{font-size:initial}
}

/* for sm */
/*
.custom-switch.custom-switch-sm .custom-control-label{padding-left:1rem; padding-bottom:1rem}
.custom-switch.custom-switch-sm .custom-control-label::before{height:1rem; width:calc(1rem + 0.75rem); border-radius:var(--radius)}
.custom-switch.custom-switch-sm .custom-control-label::after{width:calc(1rem - 4px); height:calc(1rem - 4px); border-radius:calc(1rem - (1rem / 2))}
.custom-switch.custom-switch-sm .custom-control-input:checked ~ .custom-control-label::after{transform:translateX(calc(1rem - 0.25rem))}
*/

/* for md */
.custom-switch.custom-switch-md{
	& .custom-control-label{padding-left:2rem}
	& .custom-control-label{
		&::before{height:1.5rem; width:calc(2rem + 0.75rem); border-radius:calc(var(--radius) * 3)}
		&::after{width:calc(1.5rem - 4px); height:calc(1.5rem - 4px); border-radius:calc(2rem - (1.5rem / 2));transition:background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out}
	}
}

.custom-switch.custom-switch-md .custom-control-input:checked ~ .custom-control-label::after{transform:translateX(calc(1.5rem - 0.25rem))}

/* for lg */
.custom-switch.custom-switch-lg{
	& .custom-control-label{
		padding-left:3rem;
		&::before{height:2rem; width:calc(3rem + 0.75rem); border-radius:calc(var(--radius) * 4)}
		&::after{width:calc(2rem - 4px); height:calc(2rem - 4px); border-radius:calc(3rem - (2rem / 2))}
	}

	& .custom-control-input:checked ~ .custom-control-label::after{transform:translateX(calc(2rem - 0.25rem))}
}

/* for xl */
/* .custom-switch.custom-switch-xl .custom-control-label{padding-left:calc(var(--radius) * 4)}
.custom-switch.custom-switch-xl .custom-control-label::before{height:2.5rem; width:calc(4rem + 0.75rem); border-radius:5rem}
.custom-switch.custom-switch-xl .custom-control-label::after{width:calc(2.5rem - 4px); height:calc(2.5rem - 4px); border-radius:calc(4rem - (2.5rem / 2))}
.custom-switch.custom-switch-xl .custom-control-input:checked ~ .custom-control-label::after{transform:translateX(calc(2.5rem - 0.25rem))} */

@media(prefers-reduced-motion:reduce){
 .custom-switch .custom-control-label::after{transition:none}
}

.custom-select{display:inline-block; width:100%; height:calc(1.5em + .75rem + 2px); padding:.375rem 1.75rem .375rem .75rem; font-size:1rem; font-weight:400; line-height:1.5; color:#495057; vertical-align:middle; background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat; border:1px solid #ced4da; border-radius:.25rem; /* -webkit-appearance:none; -moz-appearance:none;  */appearance:none}
.custom-select:focus{border-color:#80bdff; outline:0; box-shadow:0 0 0 .2rem rgba(0, 123, 255, .25)}
.custom-select[multiple], 
.custom-select[size]:not([size="1"]){
	height:auto; padding-right:.75rem; background-image:none}
.custom-select:disabled{color:var(--secondary); background-color:#e9ecef}
.custom-select:-moz-focusring{color:transparent; text-shadow:0 0 0 #495057}
.custom-select-sm{height:calc(1.5em + .5rem + 2px); padding-top:.25rem; padding-bottom:.25rem; padding-left:.5rem; font-size:.875rem}
.custom-select-lg{height:calc(1.5em + 1rem + 2px); padding-top:.5rem; padding-bottom:.5rem; padding-left:1rem; font-size:1.25rem}

.custom-file{position:relative; display:inline-block; width:100%; height:calc(1.5em + .75rem + 2px); margin-bottom:0}
.custom-file-input{position:relative; z-index:2; width:100%; height:calc(1.5em + .75rem + 2px); margin:0; overflow:hidden; opacity:0}
.custom-file-input:focus ~ .custom-file-label{border-color:#80bdff; box-shadow:0 0 0 .2rem rgba(0, 123, 255, .25)}
.custom-file-input[disabled] ~ .custom-file-label, 
.custom-file-input:disabled ~ .custom-file-label{
	background-color:#e9ecef
}
.custom-file-input:lang(en) ~ .custom-file-label::after{content:'Browse'}
.custom-file-input ~ .custom-file-label[data-browse]::after{content:attr(data-browse)}

.custom-file-label{
	position:absolute; top:0; right:0; left:0; z-index:1; height:calc(1.5em + .75rem + 2px); padding:.375rem .75rem; overflow:hidden; font-weight:400; line-height:1.5; color:#495057; background-color:#fff; border:1px solid #ced4da; border-radius:.25rem;
	&::after{position:absolute; top:0; right:0; bottom:0; z-index:3; display:block; height:calc(1.5em + .75rem); padding:.375rem .75rem; line-height:1.5; color:#495057; content:"Browse"; background-color:#e9ecef; border-left:inherit; border-radius:0 .25rem .25rem 0}
}


.custom-range{width:100%; height:1.4rem; padding:0; background-color:transparent; /* -webkit-appearance:none; -moz-appearance:none;  */appearance:none}
.custom-range:focus{outline:0}
/* .custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 123, 255, .25)}
.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 123, 255, .25)}
.custom-range::-moz-focus-outer{border:0} */
.custom-range::-webkit-slider-thumb{width:1rem; height:1rem; margin-top:-.25rem; background-color:var(--primary); border:0; border-radius:1rem; /* -webkit-transition:background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; */ transition:background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;/*  -webkit-appearance:none; appearance:none */}

@media(prefers-reduced-motion:reduce){
 .custom-range::-webkit-slider-thumb{/* -webkit-transition:none;  */transition:none}
}

.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}
.custom-range::-webkit-slider-runnable-track{width:100%; height:.5rem; color:transparent; cursor:pointer; background-color:var(--border-color); border-color:transparent; border-radius:var(--radius)}

.custom-range::-moz-range-thumb{width:1rem; height:1rem; background-color:var(--primary); border:0; border-radius:1rem; -moz-transition:background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; transition:background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; -moz-appearance:none; appearance:none}

@media(prefers-reduced-motion:reduce){
 .custom-range::-moz-range-thumb{-moz-transition:none; transition:none}
}

.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}
.custom-range::-moz-range-track{width:100%; height:.5rem; color:transparent; cursor:pointer; background-color:var(--border-color); border-color:transparent; border-radius:1rem}
.custom-control-label::before, .custom-file-label, .custom-select{transition:background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out}

@media(prefers-reduced-motion:reduce){
 .custom-control-label::before, .custom-file-label, .custom-select{transition:none}
}

/* 基礎導航 */
.nav{display:flex; flex-wrap:nowrap; padding-left:0; list-style:none}
.nav-link{
	display:block; white-space:nowrap; padding:.5rem 1rem;
	&:hover, &:focus{text-decoration:none}
	&.disabled{color:var(--secondary); pointer-events:none; cursor:default}
}

.nav-tabs{
	/* border-bottom:1px solid var(--border-color); */
	& .nav-link{
		margin-bottom:-4px; border-top-left-radius:.25rem; border-top-right-radius:var(--radius); /* color:#fff; */
		&:hover, &:focus{border-color:#e9ecef #e9ecef var(--border-color)}
		&.disabled{color:var(--secondary); background-color:transparent; border-color:transparent}
	}
	& .nav-link.active, & .nav-item.show .nav-link{color:#495057; background-color:#fff; border-color:var(--border-color) var(--border-color) #fff}
	& .dropdown-menu{margin-top:-1px; border-top-left-radius:0; border-top-right-radius:0}
}

.nav-pills{
	& .nav-link{border-radius:1rem}
	& .nav-link.active, & .show > .nav-link{color:#fff; background-color:var(--primary)}
}

.nav-fill{
	& > .nav-link, & .nav-item{flex:1 1 auto; text-align:center}
}

.nav-justified{
	& > .nav-link, & .nav-item{flex-basis:0; flex-grow:1; text-align:center}
}

/* =========================================
   Base Navbar Styles (Native CSS Nesting)
   ========================================= */
.navbar {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: .5rem 1rem;

  /* 原生 Nesting 支援 & 符號 */
  & .container,
  & .container-fluid,
  & .container-sm,
  & .container-md,
  & .container-lg,
  & .container-xl {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
  }
}

.navbar-brand {
  display: inline-block;
  padding-top: .3125rem;
  padding-bottom: .3125rem;
  margin-right: 1rem;
  font-size: 1.25rem;
  line-height: inherit;
  white-space: nowrap;

  &:hover, &:focus {
    text-decoration: none;
  }
}

.navbar-nav {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;

  & .nav-link {
    padding-right: .5rem;
    padding-left: .5rem;
  }

  & .dropdown-menu {
    position: static;
    float: none;
  }
}

.navbar-text {
  display: inline-block;
  padding-top: .5rem;
  padding-bottom: .5rem;
}

.navbar-collapse {
  flex-basis: 100%;
  flex-grow: 1;
}

.navbar-toggler {
  padding: .25rem .75rem;
  font-size: 1.25rem;
  line-height: 1;
  background-color: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius);

  &:hover, &:focus {
    text-decoration: none;
  }
}

.navbar-toggler-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  vertical-align: middle;
  content: '';
  background: 50% / 100% 100% no-repeat;
}

.navbar-nav-scroll {
  max-height: 75vh;
  overflow-y: auto;
}

/* =========================================
   Responsive Behaviors (Media Queries + Nesting)
   ========================================= */

/* --- SM (Small) --- */
@media (max-width: 575.98px) {
  .navbar-expand-sm {
    & > .container, & > .container-fluid, & > .container-sm,
    & > .container-md, & > .container-lg, & > .container-xl {
      padding-right: 0;
      padding-left: 0;
    }
  }
}

@media (min-width: 576px) {
  .navbar-expand-sm {
    flex-flow: row nowrap;
    justify-content: flex-start;

    & .navbar-nav {
      flex-direction: row;

      & .dropdown-menu { position: absolute; }
      & .nav-link { padding-right: .5rem; padding-left: .5rem; }
    }

    & > .container, & > .container-fluid, & > .container-sm,
    & > .container-md, & > .container-lg, & > .container-xl {
      flex-wrap: nowrap;
    }

    & .navbar-nav-scroll { overflow: visible; }
    & .navbar-collapse { display: flex; flex-basis: auto; }
    & .navbar-toggler { display: none; }
  }
}

/* --- MD (Medium) - 保留您的特殊設定 --- */
@media (max-width: 767.98px) {
  .navbar-expand-md {
    & > .container, & > .container-fluid, & > .container-sm,
    & > .container-md, & > .container-lg, & > .container-xl {
      padding-right: 0;
      padding-left: 0;
    }
  }
}

@media (min-width: 768px) {
  .navbar-expand-md {
    flex-flow: row nowrap;
    justify-content: flex-start;

    & .navbar-nav {
      flex-direction: row;
      flex-wrap: wrap; /* 保留特殊設定 */

      & .dropdown-menu { position: absolute; }
      /* 這裡沒有設定 nav-link padding，依您的原代碼保留為空 */
    }

    /* 原代碼此處沒有設定 container nowrap，保留差異 */

    & .navbar-nav-scroll { overflow: visible; }
    & .navbar-collapse { display: flex; flex-basis: auto; }
    & .navbar-toggler { display: none; }
  }
}

/* --- LG (Large) --- */
@media (max-width: 991.98px) {
  .navbar-expand-lg {
    & > .container, & > .container-fluid, & > .container-sm,
    & > .container-md, & > .container-lg, & > .container-xl {
      padding-right: 0;
      padding-left: 0;
    }
  }
}

@media (min-width: 992px) {
  .navbar-expand-lg {
    flex-flow: row nowrap;
    justify-content: flex-start;

    & .navbar-nav {
      flex-direction: row;

      & .dropdown-menu { position: absolute; }
      & .nav-link { padding-right: .5rem; padding-left: .5rem; }
    }

    & > .container, & > .container-fluid, & > .container-sm,
    & > .container-md, & > .container-lg, & > .container-xl {
      flex-wrap: nowrap;
    }

    & .navbar-nav-scroll { overflow: visible; }
    & .navbar-collapse { display: flex; flex-basis: auto; }
    & .navbar-toggler { display: none; }
  }
}

/* --- XL (Extra Large) --- */
@media (max-width: 1199.98px) {
  .navbar-expand-xl {
    & > .container, & > .container-fluid, & > .container-sm,
    & > .container-md, & > .container-lg, & > .container-xl {
      padding-right: 0;
      padding-left: 0;
    }
  }
}

@media (min-width: 1200px) {
  .navbar-expand-xl {
    flex-flow: row nowrap;
    justify-content: flex-start;

    & .navbar-nav {
      flex-direction: row;

      & .dropdown-menu { position: absolute; }
      & .nav-link { padding-right: .5rem; padding-left: .5rem; }
    }

    & > .container, & > .container-fluid, & > .container-sm,
    & > .container-md, & > .container-lg, & > .container-xl {
      flex-wrap: nowrap;
    }

    & .navbar-nav-scroll { overflow: visible; }
    & .navbar-collapse { display: flex; flex-basis: auto; }
    & .navbar-toggler { display: none; }
  }
}

.navbar-expand{
	flex-flow:row nowrap; justify-content:flex-start;
	& > .container, & > .container-fluid, & > .container-sm, & > .container-md, & > .container-lg, & > .container-xl{padding-right:0; padding-left:0}
	& .navbar-nav{
		flex-direction:row;
		& .dropdown-menu{position:absolute}
		& .nav-link{padding-right:.5rem; padding-left:.5rem}
	}
	& > .container, & > .container-fluid, & > .container-sm, & > .container-md, & > .container-lg, & > .container-xl{flex-wrap:nowrap}
	& .navbar-nav-scroll{overflow:visible}
	& .navbar-collapse{display:flex; flex-basis:auto}
	& .navbar-toggler{display:none}
}

.navbar-light{
	& .navbar-brand{color:rgba(0, 0, 0, .9)}
	& .navbar-brand{
		&:hover, &:focus{color:rgba(0, 0, 0, .9)}
	}
	& .navbar-nav{
		& .navbar-nav .nav-link{color:rgba(0, 0, 0, .5)}
		& .nav-link{
			&:hover, &:focus{color:rgba(0, 0, 0, .7)}
			&.disabled{color:rgba(0, 0, 0, .3)}
		}
		& .show > .nav-link, & .active > .nav-link, & .nav-link.show, & .nav-link.active{color:rgba(0, 0, 0, .9)}
	}

	& .navbar-toggler{color:rgba(0, 0, 0, .5); border-color:rgba(0, 0, 0, .1)}
	& .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}
	& .navbar-text{
		color:rgba(0, 0, 0, .5);
		& a{
			color:rgba(0, 0, 0, .9);
			&:hover, &:focus{color:rgba(0, 0, 0, .9)}
		}
	}
}

.navbar-dark{
	& .navbar-brand{
		color:#fff;
		&:hover, &:focus{color:#fff}
	}
	& .navbar-nav{
		& .nav-link{
			color:rgba(255, 255, 255, .5);
			&:hover, &:focus{color:rgba(255, 255, 255, .75)}
			&.disabled{color:rgba(255, 255, 255, .25)}
		}
	}
	& .navbar-nav .show > .nav-link, & .navbar-nav .active > .nav-link, & .navbar-nav .nav-link.show, & .navbar-nav .nav-link.active{color:#fff}
	& .navbar-toggler{color:rgba(255, 255, 255, .5); border-color:rgba(255, 255, 255, .1)}
	& .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}
	& .navbar-text{
		color:rgba(255, 255, 255, .5);
		& a{
			color:#fff;
			&:hover, &:focus{color:#fff}
		}
	}
}


/* 卡片 */
.card{
	position:relative; display:flex; flex-direction:column; row-gap:.25rem; min-width:0; word-wrap:break-word; background-color:#fff; background-clip:border-box; border:1px solid rgba(0, 0, 0, .125); border-radius:.75rem;
	& > hr{margin-right:0; margin-left:0}
	& > .list-group{
		border-top:inherit; border-bottom:inherit;
		&:first-child{border-top-width:0; border-top-left-radius:calc(.25rem - 1px); border-top-right-radius:calc(.25rem - 1px)}
		&:last-child{border-bottom-width:0; border-bottom-right-radius:calc(.25rem - 1px); border-bottom-left-radius:calc(.25rem - 1px)}
	}

	& > .card-header + .list-group, & > .list-group + .card-footer{border-top:0}
}

.card-body{flex:1 1 auto; min-height:1px; padding:.5rem 1rem}
.card-title{margin-bottom:.25rem; display:block}
.card-subtitle{margin-top:-.375rem; margin-bottom:0}
.card-text:last-child{margin-bottom:0}
.card-link:hover{text-decoration:none}
.card-link + .card-link{margin-left:1.25rem}
.card-header{
	padding:.75rem 1.25rem; margin-bottom:0; background-color:rgba(0, 0, 0, .03); border-bottom:1px solid rgba(0, 0, 0, .125);
	&:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}
}
.card-footer{
	padding:.75rem 1.25rem; background-color:rgba(0, 0, 0, .03); border-top:1px solid rgba(0, 0, 0, .125);
	&:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}
}

.card-header-tabs{margin-right:-.625rem; margin-bottom:-.75rem; margin-left:-.625rem; border-bottom:0}
.card-header-pills{margin-right:-.625rem; margin-left:-.625rem}
.card-img-overlay{position:absolute; top:0; right:0; bottom:0; left:0; padding:1.25rem; border-radius:calc(.25rem - 1px)}
.card-img, 
.card-img-top, 
.card-img-bottom{
	flex-shrink:0; width:100%}
.card-img, 
.card-img-top{
	border-top-left-radius:calc(.25rem - 1px); border-top-right-radius:calc(.25rem - 1px)}
.card-img, 
.card-img-bottom{
	border-bottom-right-radius:calc(.25rem - 1px); border-bottom-left-radius:calc(.25rem - 1px)}
.card-deck .card{margin-bottom:1rem}

@media(min-width:1200px){
	.card-body{padding:.75rem 1.25rem}
	.card-deck{
		display:flex; flex-flow:row wrap; margin-right:-1rem; margin-left:-1rem;
		& .card{flex:1 0 0%; margin-right:1rem; margin-bottom:0; margin-left:1rem}
	}
}

.card-group > .card{margin-bottom:1rem}

@media(min-width:576px){
	.card-group{
		display:flex; flex-flow:row wrap;
		& > .card{flex:1 0 0%; margin-bottom:0}
		& > .card + .card{margin-left:0; border-left:0}
		& > .card:not(:last-child){border-top-right-radius:0; border-bottom-right-radius:0}
		& > .card:not(:last-child) .card-img-top, 
		& > .card:not(:last-child) .card-header{border-top-right-radius:0}
		& > .card:not(:last-child) .card-img-bottom, 
		& > .card:not(:last-child) .card-footer{border-bottom-right-radius:0}
		& > .card:not(:first-child){border-top-left-radius:0; border-bottom-left-radius:0}
		& > .card:not(:first-child) .card-img-top, 
		& > .card:not(:first-child) .card-header{border-top-left-radius:0}
		& > .card:not(:first-child) .card-img-bottom, 
		& > .card:not(:first-child) .card-footer{
			border-bottom-left-radius:0
		}
	}

}

.card-columns .card{margin-bottom:.75rem}

@media(min-width:576px){
	.card-columns{
		/* -webkit-column-count:3; -moz-column-count:3;  */column-count:3; /* -webkit-column-gap:1.25rem; -moz-column-gap:1.25rem;  */column-gap:1.25rem; orphans:1; widows:1;
		& .card{display:inline-block; width:100%}
	}
}

.accordion{
	overflow-anchor:none;
	& > .card{
		overflow:hidden;
		&:not(:last-of-type){border-bottom:0; border-bottom-right-radius:0; border-bottom-left-radius:0}
		&:not(:first-of-type){border-top-left-radius:0; border-top-right-radius:0}
		& > .card-header{border-radius:0; margin-bottom:-1px}
	}
}


/* 麵包屑 */
.breadcrumb{display:flex; white-space:nowrap; overflow-x:auto; padding:.75rem .5rem; list-style:none}
.breadcrumb-item + .breadcrumb-item{
	padding-left:.25rem;
	&::before{padding-right:.25rem; color:var(--secondary); content:'/'}
	&:hover::before{text-decoration:none}
}

.breadcrumb-item.active{color:var(--secondary)}

/* 分頁 */
.pagination{display:flex; padding-left:0; list-style:none; border-radius:var(--radius)}
.page-link{
	position:relative; display:block; padding:.5rem .75rem; margin-left:-1px; line-height:1.25; color:var(--primary); background-color:#fff; border:1px solid var(--border-color);
	&:hover{z-index:2; color:#0056b3; text-decoration:none; background-color:#e9ecef; border-color:var(--border-color)}
	&:focus{z-index:3; outline:0; box-shadow:0 0 0 .2rem rgba(0, 123, 255, .25)}
}

.page-item{
	&:first-child .page-link{margin-left:0; border-top-left-radius:.5rem; border-bottom-left-radius:.5rem}
	&:last-child .page-link{border-top-right-radius:.5rem; border-bottom-right-radius:.5rem}
	&.active .page-link{z-index:3; color:#fff; background-color:var(--primary); border-color:var(--primary)}
	&.disabled .page-link{display:none /* color:var(--light-color); pointer-events:none; cursor:auto; background-color:#fff; border-color:var(--border-color) */}
}

.pagination-lg{
	& .page-link{padding:.75rem 1.5rem; font-size:1.25rem; line-height:1.5}
	& .page-item{
		&:first-child .page-link{border-top-left-radius:.75rem; border-bottom-left-radius:.75rem}
		&:last-child .page-link{border-top-right-radius:.75rem; border-bottom-right-radius:.75rem}
	}
}

.pagination-sm{
	& .page-link{padding:.25rem .5rem; font-size:.875rem; line-height:1.5}
	& .page-item{
		&:first-child .page-link{border-top-left-radius:.25rem; border-bottom-left-radius:.25rem}
		&:last-child .page-link{border-top-right-radius:.25rem; border-bottom-right-radius:.25rem}
	}
}

@media(max-width:576px){
	.page-item.disabled .page-link{display:none}
}


/* 徽章 */
.badge{display:inline-block; color:#fff; padding:.25em .4em; font-size:75%; line-height:1; white-space:nowrap; border-radius:var(--radius); transition:color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out}

@media(prefers-reduced-motion:reduce){
	.badge{transition:none}
}

a.badge:hover, a.badge:focus{text-decoration:none}
.badge:empty{display:none}

.btn .badge{position:relative; top:-1px}
.badge-pill{padding-right:.6em; padding-left:.6em; border-radius:calc(var(--radius) * 4)}
.badge.outline{background-color: rgba(255,255,255,.5)/* background-color:transparent */}

.badge-primary{
	background-color:var(--primary);
	&.outline{color:var(--primary); border:1px solid var(--primary)}
}
a.badge-primary{
	&:hover, &:focus{background-color:hsl(from var(--primary) h s calc(l - 20))}
	&:focus, &.focus{outline:0; box-shadow:0 0 0 .2rem hsl(from var(--primary) h s calc(l + 30))}
}

.badge-secondary{
	background-color:var(--secondary);
	&.outline{color:var(--secondary); border:1px solid var(--secondary)}
}
a.badge-secondary{
	&:hover, &:focus{background-color:hsl(from var(--secondary) h s calc(l - 20))}
	&:focus, &.focus{outline:0; box-shadow:0 0 0 .2rem hsl(from var(--secondary) h s calc(l + 30))}
}

.badge-success{
	background-color:var(--success);
	&.outline{color:var(--success); border:1px solid var(--success)}
}
a.badge-success{
	&:hover, &:focus{background-color:hsl(from var(--success) h s calc(l - 20))}
	&:focus, &.focus{outline:0; box-shadow:0 0 0 .2rem hsl(from var(--success) h s calc(l + 30))}
}

.badge-info{
	background-color:var(--info);
	&.outline{color:var(--info); border:1px solid var(--info)}
}
a.badge-info{
	&:hover, &:focus{background-color:hsl(from var(--info) h s calc(l - 20))}
	&:focus, &.focus{outline:0; box-shadow:0 0 0 .2rem hsl(from var(--info) h s calc(l + 30))}
}

.badge-warning{
	background-color:var(--warning);
	&.outline{color:var(--warning); border:1px solid var(--warning)}
}
a.badge-warning{
	&:hover, &:focus{background-color:hsl(from var(--warning) h s calc(l - 20))}
	&:focus, &.focus{outline:0; box-shadow:0 0 0 .2rem hsl(from var(--warning) h s calc(l + 30))}
}

.badge-danger{
	background-color:var(--danger);
	&.outline{color:var(--danger); border:1px solid var(--danger)}
}
a.badge-danger{
	&:hover, &:focus{background-color:hsl(from var(--danger) h s calc(l - 20))}
	&:focus, &.focus{outline:0; box-shadow:0 0 0 .2rem hsl(from var(--danger) h s calc(l + 30))}
}

.badge-light{
	color:var(--color); background-color:var(--light);
	&.outline{color:var(--color); border:1px solid var(--light)}
}
a.badge-light{
	&:hover, &:focus{color:var(--color); background-color:hsl(from var(--color) h s calc(l - 20))}
	&:focus, &.focus{outline:0; box-shadow:0 0 0 .2rem hsl(from var(--color) h s calc(l + 30))}
}

.badge-dark{
	background-color:var(--dark);
	&.outline{color:var(--dark); border:1px solid var(--dark)}
}
a.badge-dark{
	&:hover, &:focus{background-color:hsl(from var(--dark) h s calc(l - 20))}
	&:focus, &.focus{outline:0; box-shadow:0 0 0 .2rem hsl(from var(--dark) h s calc(l + 30))}
}

/* 警報 */
.alert{position:relative; padding:.75rem 1.25rem; margin-bottom:1rem; border:3px solid transparent; border-radius:var(--radius)}
.alert-heading{color:inherit}
.alert-link{font-weight:700}
.alert-dismissible{
	padding-right:4rem;
	& .close{position:absolute; top:0; right:0; z-index:2; padding:.75rem 1.25rem; color:inherit}
}

.alert-primary{
	color:var(--primary); background-color:hsl(from var(--primary) h s calc(l + 40)); border-color:hsl(from var(--primary) h s calc(l + 30));
	& hr{border-top-color:hsl(from var(--primary) h s calc(l + 10))}
	& .alert-link{color:hsl(from var(--primary) h s calc(l - 10))}
}

.alert-secondary{
	color:var(--secondary); background-color:hsl(from var(--secondary) h s calc(l + 40)); border-color:hsl(from var(--secondary) h s calc(l + 30));
	& hr{border-top-color:hsl(from var(--secondary) h s calc(l + 10))}
	& .alert-link{color:hsl(from var(--secondary) h s calc(l - 10))}
}

.alert-success{
	color:var(--success); background-color:hsl(from var(--success) h s calc(l + 40)); border-color:hsl(from var(--success) h s calc(l + 30));
	& hr{border-top-color:hsl(from var(--success) h s calc(l + 10))}
	& .alert-link{color:hsl(from var(--success) h s calc(l - 10))}
}

.alert-info{
	color:var(--info); background-color:hsl(from var(--info) h s calc(l + 40)); border-color:hsl(from var(--info) h s calc(l + 30));
	& hr{border-top-color:hsl(from var(--info) h s calc(l + 10))}
	& .alert-link{color:hsl(from var(--info) h s calc(l - 10))}
}

.alert-warning{
	color:var(--warning); background-color:hsl(from var(--warning) h s calc(l + 40)); border-color:hsl(from var(--warning) h s calc(l + 30));
	& hr{border-top-color:hsl(from var(--warning) h s calc(l + 10))}
	& .alert-link{color:hsl(from var(--warning) h s calc(l - 10))}
}

.alert-danger{
	color:var(--danger); background-color:hsl(from var(--danger) h s calc(l + 60)); border-color:hsl(from var(--danger) h s calc(l + 30));
	& hr{border-top-color:hsl(from var(--danger) h s calc(l + 10))}
	& .alert-link{color:hsl(from var(--danger) h s calc(l - 10))}

}

/*
.alert-light{
	color:var(--light); background-color:hsl(from var(--light) h s calc(l + 40)); border-color:hsl(from var(--light) h s calc(l + 30));
	& hr{border-top-color:hsl(from var(--light) h s calc(l + 10))}
	& .alert-link{color:hsl(from var(--light) h s calc(l - 10))}
}

 .alert-dark{
	color:var(--dark); background-color:hsl(from var(--dark) h s calc(l + 40)); border-color:var(--dark);
	& hr{border-top-color:hsl(from var(--dark) h s calc(l + 10))}
	& .alert-link{color:hsl(from var(--dark) h s calc(l - 10))}
} */

@-webkit-keyframes progress-bar-stripes{
	from{background-position:1rem 0}
	to{background-position:0 0}
}

@keyframes progress-bar-stripes{
	from{background-position:1rem 0}
	to{background-position:0 0}
}

.progress{display:flex; height:1rem; overflow:hidden; line-height:0; font-size:.75rem; background-color:#e9ecef; border-radius:var(--radius)}
.progress-bar{display:flex; flex-direction:column; justify-content:center; overflow:hidden; color:#fff; text-align:center; white-space:nowrap; background-color:var(--primary); transition:width .6s ease}

@media(prefers-reduced-motion:reduce){
	.progress-bar{transition:none}
}

.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-size:1rem 1rem}
.progress-bar-animated{/* -webkit-animation:1s linear infinite progress-bar-stripes;  */animation:1s linear infinite progress-bar-stripes}

@media(prefers-reduced-motion:reduce){
	.progress-bar-animated{animation:none}
}

.media{display:flex; column-gap:1rem}
.media-body{flex:1}

.list-group{display:flex; flex-direction:column; padding-left:0; margin-bottom:0; border-radius:var(--radius)}
.list-group-item-action{
	width:100%; color:var(--color); text-align:inherit;
	&:hover, &:focus{z-index:1; color:#495057; text-decoration:none; background-color:var(--light)}
	&:active{color:var(--color); background-color:#e9ecef}
}

.list-group-item{
	position:relative; display:block; padding:.5rem .85rem; background-color:#fff; border:1px solid rgba(0, 0, 0, .125);
	&:first-child{border-top-left-radius:inherit; border-top-right-radius:inherit}
	&:last-child{border-bottom-right-radius:inherit; border-bottom-left-radius:inherit}
	&.disabled, &:disabled{color:var(--secondary); pointer-events:none; background-color:#fff}
	&.active{z-index:2; color:#fff; background-color:var(--primary); border-color:var(--primary)}
	& + .list-group-item{
		border-top-width:0;
		&.active{margin-top:-1px; border-top-width:1px}
	}
}

.list-group-horizontal{
	flex-direction:row;
	& > .list-group-item{
		&:first-child{border-bottom-left-radius:.25rem; border-top-right-radius:0}
		&:last-child{border-top-right-radius:.25rem; border-bottom-left-radius:0}
		&.active{margin-top:0}
		& + .list-group-item{
			border-top-width:1px; border-left-width:0;
			&.active{margin-left:-1px; border-left-width:1px}
		}
	}
}

@media(min-width:576px){
	.list-group-horizontal-sm{
		flex-direction:row;
		& > .list-group-item{
			&:first-child{border-bottom-left-radius:.25rem; border-top-right-radius:0}
			&:last-child{border-top-right-radius:.25rem; border-bottom-left-radius:0}
			&.active{margin-top:0}
			& + .list-group-item{
				border-top-width:1px; border-left-width:0;
				&.active{margin-left:-1px; border-left-width:1px}
			}
		}
	}
}

@media(min-width:768px){
	.list-group-horizontal-md{
		flex-direction:row;
		& > .list-group-item{
			&:first-child{border-bottom-left-radius:.25rem; border-top-right-radius:0}
			&:last-child{border-top-right-radius:.25rem; border-bottom-left-radius:0}
			&.active{margin-top:0}
			& + .list-group-item{
				border-top-width:1px; border-left-width:0;
				&.active{margin-left:-1px; border-left-width:1px}
			}
		}
	}
}

@media(min-width:992px){
	.list-group-horizontal-lg{
		flex-direction:row;
		& > .list-group-item{
			&:first-child{border-bottom-left-radius:.25rem; border-top-right-radius:0}
			&:last-child{border-top-right-radius:.25rem; border-bottom-left-radius:0}
			&.active{margin-top:0}
			& + .list-group-item{
				border-top-width:1px; border-left-width:0;
				&.active{margin-left:-1px; border-left-width:1px}
			}
		}
	}
}

@media(min-width:1200px){
	.list-group-horizontal-xl{
		flex-direction:row;
		& > .list-group-item{
			&:first-child{border-bottom-left-radius:.25rem; border-top-right-radius:0}
			&:last-child{border-top-right-radius:.25rem; border-bottom-left-radius:0}
			&.active{margin-top:0}
			& + .list-group-item{
				border-top-width:1px; border-left-width:0;
				&.active{margin-left:-1px; border-left-width:1px}
			}
		}
	}
}

.list-group-flush{
	border-radius:0;
	& > .list-group-item{
		display:flex; align-items:center; border-width:0 0 1px;
		&:last-child{border-bottom-width:0}
	}
}

/* .list-group-item-primary{
	color:#004085; background-color:#b8daff;
	&.list-group-item-action{
		&:hover, &:focus{color:#004085; background-color:#9fcdff}
		&.active{color:#fff; background-color:#004085; border-color:#004085}
	}
}

.list-group-item-secondary{
	color:#383d41; background-color:#d6d8db;
	&.list-group-item-action{
		&:hover, &:focus{color:#383d41; background-color:#c8cbcf}
		&.active{color:#fff; background-color:#383d41; border-color:#383d41}
	}
}

.list-group-item-success{
	color:#155724; background-color:#c3e6cb;
	&.list-group-item-action{
		&:hover, &:focus{color:#155724; background-color:#b1dfbb}
		&.active{color:#fff; background-color:#155724; border-color:#155724}
	}
}

.list-group-item-info{
	color:#0c5460; background-color:#bee5eb;
	&.list-group-item-action{
		&:hover, &:focus{color:#0c5460; background-color:#abdde5}
		&.active{color:#fff; background-color:#0c5460; border-color:#0c5460}
	}
}

.list-group-item-warning{
	color:#856404; background-color:#ffeeba;
	&.list-group-item-action{
		&:hover, &:focus{color:#856404; background-color:#ffe8a1}
		&.active{color:#fff; background-color:#856404; border-color:#856404}
	}
}

.list-group-item-danger{
	color:#721c24; background-color:#f5c6cb;
	&.list-group-item-action{
		&:hover, &:focus{color:#721c24; background-color:#f1b0b7}
		&.active{color:#fff; background-color:#721c24; border-color:#721c24}
	}
}

.list-group-item-light{
	color:#818182; background-color:#fdfdfe;
	&.list-group-item-action{
		&:hover, &:focus{color:#818182; background-color:#ececf6}
		&.active{color:#fff; background-color:#818182; border-color:#818182}
	}
}

.list-group-item-dark{
	color:#1b1e21; background-color:#c6c8ca;
	&.list-group-item-action{
		&:hover, &:focus{color:#1b1e21; background-color:#b9bbbe}
		&.active{color:#fff; background-color:#1b1e21; border-color:#1b1e21}
	}
} */

.close{
	float:right; font-size:1.5rem; font-weight:700; line-height:1; color:#000; text-shadow:0 1px 0 #fff; opacity:.5;
	&:hover{color:#000; text-decoration:none}
	&:not(:disabled):not(.disabled){
		&:hover, &:focus{opacity:.75}
	}
}

button.close{padding:0; background-color:transparent; border:0}
a.close.disabled{pointer-events:none}

/* 推送通知 */
.toast{
	flex-basis:350px; max-width:350px; font-size:.875rem; background-color:rgba(255, 255, 255, .85); background-clip:padding-box; border:1px solid rgba(0, 0, 0, .1); box-shadow:0 .25rem .75rem rgba(0, 0, 0, .1); opacity:0; border-radius:.25rem;
	&:not(:last-child){margin-bottom:.75rem}
	&.showing{opacity:1}
	&.show{display:block; opacity:1}
	&.hide{display:none}
}

.toast-header{display:flex; align-items:center; padding:.25rem .75rem; color:var(--secondary); background-color:rgba(255, 255, 255, .85); background-clip:padding-box; border-bottom:1px solid rgba(0, 0, 0, .05) border-top-left-radius:calc(.25rem - 1px); border-top-right-radius:calc(.25rem - 1px)}
.toast-body{padding:.75rem}

.modal-open{
	overflow:hidden;
	& .modal{overflow-x:hidden; overflow-y:auto; backdrop-filter: blur(5px)}
}

.modal{position:fixed; top:0; left:0; z-index:1050; display:none; width:100%; height:100%; overflow:hidden; outline:0}
.modal-dialog{position:relative; width:auto; margin:.5rem; pointer-events:none}

.modal.fade .modal-dialog{transition:transform .3s ease-out; transition:transform .3s ease-out, transform:translate(0, -50px)}

@media(prefers-reduced-motion:reduce){
	.modal.fade .modal-dialog{transition:none}
}

.modal.show .modal-dialog{transform:none}
.modal.modal-static .modal-dialog{transform:scale(1.02)}
.modal-dialog-scrollable{
	display:flex; max-height:calc(100% - 1rem);
	& .modal-content{max-height:calc(100vh - 1rem)}
	& .modal-header, & .modal-footer{flex-shrink:0}
	& .modal-body{overflow-y:auto; max-height:calc(100vh - 15rem)}
}

.modal-dialog-centered{
	display:flex; align-items:center; min-height:calc(100% - 1rem);
	&::before{display:block; height:calc(100vh - 1rem); height:min-content; content:''}
	&.modal-dialog-scrollable{flex-direction:column; height:100%; justify-content:center}
}

@media(min-width:768px){
	.modal-dialog-scrollable .modal-body{max-height:calc(100vh - 12rem)}
}

.modal-content{position:relative; display:flex; flex-direction:column; width:100%; pointer-events:auto; background-color:#fff; background-clip:padding-box; border:1px solid rgba(0, 0, 0, .2); border-radius:.75rem; outline:0; container-type: inline-size;}

.modal-backdrop{
	position:fixed; top:0; left:0; z-index:1040; width:100vw; height:100vh; background-color:#000;
	&.fade{opacity:0}
	&.show{opacity:.5}
}

.modal-header{
	color:#fff; text-shadow:2px 2px 3px rgba(0,0,0,.7); display:flex; align-items:flex-start; column-gap:.5rem; padding:.75rem 1rem; border-bottom:1px solid var(--border-color); border-radius:var(--radius); margin:-1.5rem .5rem 0;
	& .close{padding:1rem 1rem; margin:-1rem -1rem -1rem auto}
}

.modal-title{
	line-height:1.5; flex-grow:1;
	& .fas, & .fal{
		opacity:.5;
	}
}
.modal-body{position:relative; flex:1 1 auto; padding:1rem .75rem}
.modal-footer{
	display:flex; align-items:center; justify-content:center; padding:.25rem 1rem; border-top:1px solid var(--border-color);
	&> *{margin:.25rem}
}

.modal-scrollbar-measure{position:absolute; top:-9999px; width:50px; height:50px; overflow:scroll}

@media(min-width:576px){
	.modal-dialog{max-width:570px; margin:1.75rem auto}
	.modal-dialog-scrollable{
		max-height:calc(100% - 3.5rem);
		& .modal-content{max-height:calc(100vh - 3.5rem)}
	}
	.modal-dialog-centered{
		min-height:calc(100% - 3.5rem);
		&::before{height:calc(100vh - 3.5rem); height:min-content}
	}
}

@media(min-width:768px){
	.modal-md, .modal-lg, .modal-xl{max-width:720px}
}

@media(min-width:992px){
	.modal-sm{max-width:600px}
	.modal-md{max-width:760px}
	.modal-lg, .modal-xl{max-width:860px}
}

@media(min-width:1200px){
	.modal-md{max-width:860px}
	.modal-lg{max-width:1000px}
	.modal-xl{max-width:1140px}
}

@media(min-width:1366px){
	.modal-md{max-width:990px}
	.modal-lg{max-width:1200px}
	.modal-xl{max-width:1260px}
}

@container(min-width:576px){
	.modal-body{padding:1rem 2rem}
}
@container(min-width:768px){
	.modal-body{padding:1rem 3rem}
}
@container(min-width:992px){
	.modal-body{padding:1rem 4rem}
}
@container(min-width:1200px){
	.modal-body{padding:1rem 4.5rem}
}
@container(min-width:1366px){
	.modal-body{padding:1rem 5rem}
}

/* 全屏模式 */
/* .modal-fullscreen{width:100vw; max-width:none; height:100%; margin:0}
.modal-fullscreen .modal-content{height:100%; border:0; border-radius:0}
.modal-fullscreen .modal-header, .modal-fullscreen .modal-footer{border-radius:0}
.modal-fullscreen .modal-body{overflow-y:auto}

@media(max-width:575.98px){
	.modal-fullscreen-sm-down{width:100vw; max-width:none; height:100%; margin:0}
	.modal-fullscreen-sm-down .modal-content{height:100%; border:0; border-radius:0}
	.modal-fullscreen-sm-down .modal-header, .modal-fullscreen-sm-down .modal-footer{border-radius:0}
	.modal-fullscreen-sm-down .modal-body{overflow-y:auto}
}
@media(max-width:767.98px){
	.modal-fullscreen-md-down{width:100vw; max-width:none; height:100%; margin:0}
	.modal-fullscreen-md-down .modal-content{height:100%; border:0; border-radius:0}
	.modal-fullscreen-md-down .modal-header, .modal-fullscreen-md-down .modal-footer{border-radius:0}
	.modal-fullscreen-md-down .modal-body{overflow-y:auto}
}
@media(max-width: 991.98px){
	.modal-fullscreen-lg-down{width:100vw; max-width:none; height:100%; margin:0}
	.modal-fullscreen-lg-down .modal-content{height:100%; border:0; border-radius:0}
	.modal-fullscreen-lg-down .modal-header, .modal-fullscreen-lg-down .modal-footer{border-radius:0}
	.modal-fullscreen-lg-down .modal-body{overflow-y:auto}
}
@media(max-width: 1199.98px){
	.modal-fullscreen-xl-down{width:100vw; max-width:none; height:100%; margin:0}
	.modal-fullscreen-xl-down .modal-content{height:100%; border:0; border-radius:0}
	.modal-fullscreen-xl-down .modal-header, .modal-fullscreen-xl-down .modal-footer{border-radius:0}
	.modal-fullscreen-xl-down .modal-body{overflow-y:auto}
}
@media(max-width: 1399.98px){
	.modal-fullscreen-xxl-down{width:100vw; max-width:none; height:100%; margin:0}
	.modal-fullscreen-xxl-down .modal-content{height:100%; border:0; border-radius:0}
	.modal-fullscreen-xxl-down .modal-header, .modal-fullscreen-xxl-down .modal-footer{border-radius:0}
	.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}
} */

.tooltip{
	position:absolute; z-index:1031; display:block; margin:0; line-height:1.5; text-align:left; text-align:start; text-decoration:none; text-shadow:none; text-transform:none; letter-spacing:normal; word-break:normal; word-spacing:normal; white-space:normal; line-break:auto; font-size:.875rem; word-wrap:break-word; opacity:0;
	&.show{opacity:.9}
	& .arrow{
		position:absolute; display:block; width:.8rem; height:.4rem;
		&::before{position:absolute; content:''; border-color:transparent; border-style:solid}
	}
}

.bs-tooltip-top, 
.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}
.bs-tooltip-top .arrow, 
.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}
.bs-tooltip-top .arrow::before, 
.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0; border-width:.4rem .4rem 0; border-top-color:#000}
.bs-tooltip-right, 
.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}
.bs-tooltip-right .arrow, 
.bs-tooltip-auto[x-placement^="right"] .arrow{left:0; width:.4rem; height:.8rem}
.bs-tooltip-right .arrow::before, 
.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0; border-width:.4rem .4rem .4rem 0; border-right-color:#000}
.bs-tooltip-bottom, 
.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}
.bs-tooltip-bottom .arrow, 
.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}
.bs-tooltip-bottom .arrow::before, 
.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0; border-width:0 .4rem .4rem; border-bottom-color:#000}
.bs-tooltip-left, 
.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}
.bs-tooltip-left .arrow, 
.bs-tooltip-auto[x-placement^="left"] .arrow{right:0; width:.4rem; height:.8rem}
.bs-tooltip-left .arrow::before, 
.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0; border-width:.4rem 0 .4rem .4rem; border-left-color:#000}
.tooltip-inner{max-width:200px; padding:.25rem .5rem; color:#fff; text-align:center; background-color:#000; border-radius:var(--radius)}

.popover{
	position:absolute; top:0; left:0; z-index:1060; display:block; /* max-width:276px; */ font-family:var(--font-family-sans-serif); font-style:normal; font-weight:400; line-height:1.5; text-align:left; text-align:start; text-decoration:none; text-shadow:none; text-transform:none; letter-spacing:normal; word-break:normal; word-spacing:normal; white-space:normal; line-break:auto; font-size:.875rem; word-wrap:break-word; background-color:#fff; background-clip:padding-box; border:1px solid rgba(0, 0, 0, .2); border-radius:.3rem;
	& .arrow{
		position:absolute; display:block; width:1rem; height:.5rem; margin:0 .3rem;
		&::before, &::after{position:absolute; display:block; content:''; border-color:transparent; border-style:solid}
	}
	
}
.bs-popover-top, 
.bs-popover-auto[x-placement^="top"] {
  margin-bottom: .5rem;
  
  & > .arrow {
    bottom: calc(-.5rem - 1px);
    
    &::before {
      bottom: 0;
      border-width: .5rem .5rem 0;
      border-top-color: rgba(0, 0, 0, .25);
    }
    
    &::after {
      bottom: 1px;
      border-width: .5rem .5rem 0;
      border-top-color: #fff;
    }
  }
}

.bs-popover-right, 
.bs-popover-auto[x-placement^="right"] {
  margin-left: .5rem;
  
  & > .arrow {
    left: calc(-.5rem - 1px);
    width: .5rem;
    height: 1rem;
    margin: .3rem 0;
    
    &::before {
      left: 0;
      border-width: .5rem .5rem .5rem 0;
      border-right-color: rgba(0, 0, 0, .25);
    }
    
    &::after {
      left: 1px;
      border-width: .5rem .5rem .5rem 0;
      border-right-color: #fff;
    }
  }
}

.bs-popover-bottom, 
.bs-popover-auto[x-placement^="bottom"] {
  margin-top: .5rem;
  
  & > .arrow {
    top: calc(-.5rem - 1px);
    
    &::before {
      top: 0;
      border-width: 0 .5rem .5rem .5rem;
      border-bottom-color: rgba(0, 0, 0, .25);
    }
    
    &::after {
      top: 1px;
      border-width: 0 .5rem .5rem .5rem;
      border-bottom-color: #fff;
    }
  }
  
  & .popover-header::before {
    position: absolute;
    top: 0;
    left: 50%;
    display: block;
    width: 1rem;
    margin-left: -.5rem;
    content: '';
    border-bottom: 1px solid #f7f7f7;
  }
}

.bs-popover-left, 
.bs-popover-auto[x-placement^="left"] {
  margin-right: .5rem;
  
  & > .arrow {
    right: calc(-.5rem - 1px);
    width: .5rem;
    height: 1rem;
    margin: .3rem 0;
    
    &::before {
      right: 0;
      border-width: .5rem 0 .5rem .5rem;
      border-left-color: rgba(0, 0, 0, .25);
    }
    
    &::after {
      right: 1px;
      border-width: .5rem 0 .5rem .5rem;
      border-left-color: #fff;
    }
  }
}

.popover-header {
  padding: .5rem .75rem;
  margin-bottom: 0;
  font-size: 1rem;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-top-left-radius: calc(.3rem - 1px);
  border-top-right-radius: calc(.3rem - 1px);
  
  &:empty {
    display: none;
  }
}

.popover-body{padding:.5rem .75rem; color:var(--color)}

.carousel{position:relative}
.carousel.pointer-event{touch-action:pan-y}
.carousel-inner{
	position:relative; width:100%; overflow:hidden;
	&::after{display:block; clear:both; content:''}
}

.carousel-item{position:relative; display:none; float:left; width:100%; margin-right:-100%; transition:transform .6s ease-in-out; transition:transform .6s ease-in-out}

@media(prefers-reduced-motion:reduce){
	.carousel-item{transition:none}
}

.carousel-item.active, 
.carousel-item-next, 
.carousel-item-prev{display:block}
.carousel-item-next:not(.carousel-item-left), 
.active.carousel-item-right{transform:translateX(100%)}
.carousel-item-prev:not(.carousel-item-right), 
.active.carousel-item-left{transform:translateX(-100%)}

.carousel-fade{
	& .carousel-item{opacity:0; transition-property:opacity; transform:none}
	& .carousel-item.active, 
	& .carousel-item-next.carousel-item-left, 
	& .carousel-item-prev.carousel-item-right{z-index:1; opacity:1}
	& .active{
		&.carousel-item-left, &.carousel-item-right{z-index:0; opacity:0; transition:opacity 0s .6s}
	}
}

@media(prefers-reduced-motion:reduce){
	.carousel-fade{
		& .active.carousel-item-left, & .active.carousel-item-right{transition:none}
	}
}

.carousel-control-prev, 
.carousel-control-next{position:absolute; top:0; bottom:0; z-index:1; display:flex; align-items: center; justify-content: center; width:15%; color:#fff; text-align:center; opacity:.5; transition:opacity .15s ease}

@media(prefers-reduced-motion:reduce){
	.carousel-control-prev, .carousel-control-next{transition:none}
}

.carousel-control-prev:hover, 
.carousel-control-prev:focus, 
.carousel-control-next:hover, 
.carousel-control-next:focus{
	color:#fff; text-decoration:none; outline:0; opacity:.9}
.carousel-control-prev{left:0}
.carousel-control-next{right:0}
.carousel-control-prev-icon, 
.carousel-control-next-icon{display:inline-block; width:20px; height:20px; background:50% / 100% 100% no-repeat}
.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}
.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}

.carousel-indicators{
	position:absolute; right:0; bottom:0; left:0; z-index:15; display:flex; justify-content:center; padding-left:0; margin-right:15%; margin-left:15%; list-style:none;
	& li{box-sizing:content-box; flex:0 1 auto; width:30px; height:3px; margin-right:3px; margin-left:3px; text-indent:-999px; cursor:pointer; background-color:#fff; background-clip:padding-box; border-top:10px solid transparent; border-bottom:10px solid transparent; opacity:.5; transition:opacity .6s ease}
}

@media(prefers-reduced-motion:reduce){
	.carousel-indicators li{transition:none}
}

.carousel-indicators .active{opacity:1}
.carousel-caption{position:absolute; right:15%; bottom:20px; left:15%; z-index:10; padding-top:20px; padding-bottom:20px; color:#fff; text-align:center}

@-webkit-keyframes spinner-border{
	to{transform:rotate(360deg)}
}

@keyframes spinner-border{
	to{transform:rotate(360deg)}
}

.spinner-border{display:inline-block; width:2rem; height:2rem; vertical-align:text-bottom; border:.25em solid currentColor; border-right-color:transparent; border-radius:50%; animation:.75s linear infinite spinner-border}
.spinner-border-sm{width:1rem; height:1rem; border-width:.2em}

/* @-webkit-keyframes spinner-grow{
	0%{transform:scale(0)}
	50%{opacity:1; transform:none}
} */

@keyframes spinner-grow{
	0%{transform:scale(0)}
	50%{opacity:1; transform:none}
}

.spinner-grow{display:inline-block; width:2rem; height:2rem; vertical-align:text-bottom; background-color:currentColor; border-radius:50%; opacity:0; animation:.75s linear infinite spinner-grow}
.spinner-grow-sm{width:1rem; height:1rem}

@media(prefers-reduced-motion:reduce){
	.spinner-border, .spinner-grow{animation-duration:1.5s}
}

.align-baseline{vertical-align:baseline !important}
.align-top{vertical-align:top !important}
.align-middle{vertical-align:middle !important}
.align-bottom{vertical-align:bottom !important}
.align-text-bottom{vertical-align:text-bottom !important}
.align-text-top{vertical-align:text-top !important}

[class^="bg-"]{color:#fff}
.bg-primary{background-color:var(--primary) !important}
a.bg-primary:hover, 
a.bg-primary:focus, 
button.bg-primary:hover, 
button.bg-primary:focus{background-color:#0062cc}

.bg-secondary{background-color:var(--secondary)}
/* a.bg-secondary:hover, a.bg-secondary:focus, button.bg-secondary:hover, button.bg-secondary:focus{background-color:#545b62} */

.bg-success{background-color:var(--success)}
/* a.bg-success:hover, a.bg-success:focus, button.bg-success:hover, button.bg-success:focus{background-color:#1e7e34} */

.bg-info{background-color:var(--info)}
/* a.bg-info:hover, a.bg-info:focus, button.bg-info:hover, button.bg-info:focus{background-color:#117a8b} */

.bg-warning{background-color:var(--warning)}
/* a.bg-warning:hover, a.bg-warning:focus, button.bg-warning:hover, button.bg-warning:focus{background-color:#d39e00} */

.bg-danger{background-color:var(--danger)}
/* a.bg-danger:hover, a.bg-danger:focus, button.bg-danger:hover, button.bg-danger:focus{background-color:#bd2130} */

.bg-dark{background-color:var(--dark)}
/* a.bg-dark:hover, a.bg-dark:focus, button.bg-dark:hover, button.bg-dark:focus{background-color:#1d2124} */

.bg-light{color:var(--color); background-color:var(--light)}
/* a.bg-light:hover, a.bg-light:focus, button.bg-light:hover, button.bg-light:focus{background-color:#dae0e5} */

.bg-white{color:var(--color); background-color:#fff}
.bg-transparent{color:var(--color); background-color:transparent !important}

/* 邊框 */
.border{border:1px solid var(--border-color)}
.border-top{border-width:0; border-style:none; border-top:1px solid var(--border-color)}
.border-right{border:0; border-right:1px solid var(--border-color)}
.border-bottom{border-width:0; border-style:none; border-bottom:1px solid var(--border-color)}
.border-left{border:0; border-left:1px solid var(--border-color)}

.border-0{border:0 !important}
.border-2{border-width:2px !important}
.border-3{border-width:3px !important}
.border-4{border-width:4px !important}
.border-5{border-width:5px !important}

.border.dashed{border-style:dashed !important}
.border-top.dashed{border-top-style:dashed !important}
.border-right.dashed{border-right-style:dashed !important}
.border-bottom.dashed{border-bottom-style:dashed !important}
.border-left.dashed{border-left-style:dashed !important}

.border.dotted{border-style:dotted !important}
.border-top.dotted{border-top-style:dotted !important}
.border-right.dotted{border-right-style:dotted !important}
.border-bottom.dotted{border-bottom-style:dotted !important}
.border-left.dotted{border-left-style:dotted !important}

.border-top-0{border-top:0 !important}
.border-right-0{border-right:0 !important}
.border-bottom-0{border-bottom:0 !important}
.border-left-0{border-left:0 !important}

.border-primary{border-color:var(--primary) !important}
.border-secondary{border-color:var(--secondary) !important}
.border-success{border-color:var(--success) !important}
.border-info{border-color:var(--info) !important}
.border-warning{border-color:var(--warning) !important}
.border-danger{border-color:var(--danger) !important}
.border-light{border-color:var(--light) !important}
.border-dark{border-color:var(--dark) !important}
.border-white{border-color:#fff !important}

.rounded{border-radius:var(--radius) !important}
.rounded-0{border-radius:0 !important}
.rounded-1{border-radius:var(--radius) !important}
.rounded-2{border-radius:calc(var(--radius) * 1.5) !important}
.rounded-3{border-radius:calc(var(--radius) * 2) !important}
.rounded-4{border-radius:calc(var(--radius) * 3) !important}
.rounded-5{border-radius:calc(var(--radius) * 4) !important}
.rounded-circle{border-radius:50% !important}
.rounded-pill{border-radius:50rem !important}

.clearfix::after{display:block; clear:both; content:''}

.d-none{display:none !important}
.d-inline{display:inline !important}
.d-inline-block{display:inline-block !important}
.d-block{display:block !important}
.d-table{display:table !important}
.d-table-row{display:table-row !important}
.d-table-cell{display:table-cell !important}
.d-flex{display:flex !important}
.d-inline-flex{display:inline-flex !important}

@media(min-width:576px){
	.d-sm-none{display:none !important}
	.d-sm-inline{display:inline !important}
	.d-sm-inline-block{display:inline-block !important}
	.d-sm-block{display:block !important}
	.d-sm-table{display:table !important}
	.d-sm-table-row{display:table-row !important}
	.d-sm-table-cell{display:table-cell !important}
	.d-sm-flex{display:flex !important}
	.d-sm-inline-flex{display:inline-flex !important}
}

@media(min-width:768px){
	.d-md-none{display:none !important}
	.d-md-inline{display:inline !important}
	.d-md-inline-block{display:inline-block !important}
	.d-md-block{display:block !important}
	.d-md-table{display:table !important}
	.d-md-table-row{display:table-row !important}
	.d-md-table-cell{display:table-cell !important}
	.d-md-flex{display:flex !important}
	.d-md-inline-flex{display:inline-flex !important}
}

@media(min-width:992px){
	.d-lg-none{display:none !important}
	.d-lg-inline{display:inline !important}
	.d-lg-inline-block{display:inline-block !important}
	.d-lg-block{display:block !important}
	.d-lg-table{display:table !important}
	.d-lg-table-row{display:table-row !important}
	.d-lg-table-cell{display:table-cell !important}
	.d-lg-flex{display:flex !important}
	.d-lg-inline-flex{display:inline-flex !important}
}

@media(min-width:1200px){
	.d-xl-none{display:none !important}
	.d-xl-inline{display:inline !important}
	.d-xl-inline-block{display:inline-block !important}
	.d-xl-block{display:block !important}
	.d-xl-table{display:table !important}
	.d-xl-table-row{display:table-row !important}
	.d-xl-table-cell{display:table-cell !important}
	.d-xl-flex{display:flex !important}
	.d-xl-inline-flex{display:inline-flex !important}
}

@mediaprint{
	.d-print-none{display:none}
	.d-print-inline{display:inline}
	.d-print-inline-block{display:inline-block}
	.d-print-block{display:block}
	.d-print-table{display:table}
	.d-print-table-row{display:table-row}
	.d-print-table-cell{display:table-cell}
	.d-print-flex{display:flex}
	.d-print-inline-flex{display:inline-flex}
}

.embed-responsive{
	position:relative; display:block; width:100%; padding:0; overflow:hidden; margin-bottom:1rem;
	&::before{display:block; content:''}
	& .embed-responsive-item, & iframe, & embed, & object, & video{position:absolute; top:0; bottom:0; left:0; width:100%; height:100%; border:0}
}

.embed-responsive-21by9::before{padding-top:42.857143%}
.embed-responsive-16by9::before{padding-top:56.25%}
.embed-responsive-4by3::before{padding-top:75%}
.embed-responsive-1by1::before{padding-top:100%}

.flex-row{flex-direction:row !important}
.flex-column{flex-direction:column !important; row-gap:var(--row-gap)}
.flex-row-reverse{flex-direction:row-reverse !important}
.flex-column-reverse{flex-direction:column-reverse !important}
.flex-wrap{flex-wrap:wrap !important}

.flex-nowrap{flex-wrap:nowrap !important}
.flex-wrap-reverse{flex-wrap:wrap-reverse !important}
.flex-fill{flex:1 1 auto !important}
.flex-grow-0{flex-grow:0 !important}
.flex-grow-1{flex-grow:1 !important}
.flex-shrink-0{flex-shrink:0 !important}
.flex-shrink-1{flex-shrink:1 !important}

.justify-content-start{justify-content:flex-start !important}
.justify-content-end{justify-content:flex-end !important}
.justify-content-center{justify-content:center !important}
.justify-content-between{justify-content:space-between !important}
.justify-content-around{justify-content:space-around !important}

.align-items-start{align-items:flex-start !important}
.align-items-end{align-items:flex-end !important}
.align-items-center{align-items:center !important}
.align-items-baseline{align-items:baseline !important}
.align-items-stretch{align-items:stretch !important}

.align-content-start{align-content:flex-start !important}
.align-content-end{align-content:flex-end !important}
.align-content-center{align-content:center !important}
.align-content-between{align-content:space-between !important}
.align-content-around{align-content:space-around !important}
.align-content-stretch{align-content:stretch !important}

.align-self-auto{align-self:auto !important}
.align-self-start{align-self:flex-start !important}
.align-self-end{align-self:flex-end !important}
.align-self-center{align-self:center !important}
.align-self-baseline{align-self:baseline !important}
.align-self-stretch{align-self:stretch !important}

@media(min-width:576px){
	.flex-sm-row{flex-direction:row !important}
	.flex-sm-column{flex-direction:column !important}
	.flex-sm-row-reverse{flex-direction:row-reverse !important}
	.flex-sm-column-reverse{flex-direction:column-reverse !important}
	.flex-sm-wrap{flex-wrap:wrap !important}
	.flex-sm-nowrap{flex-wrap:nowrap !important}
	.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}
	.flex-sm-fill{flex:1 1 auto !important}
	.flex-sm-grow-0{flex-grow:0 !important}
	.flex-sm-grow-1{flex-grow:1 !important}
	.flex-sm-shrink-0{flex-shrink:0 !important}
	.flex-sm-shrink-1{flex-shrink:1 !important}

	.justify-content-sm-start{justify-content:flex-start !important}
	.justify-content-sm-end{justify-content:flex-end !important}
	.justify-content-sm-center{justify-content:center !important}
	.justify-content-sm-between{justify-content:space-between !important}
	.justify-content-sm-around{justify-content:space-around !important}

	.align-items-sm-start{align-items:flex-start !important}
	.align-items-sm-end{align-items:flex-end !important}
	.align-items-sm-center{align-items:center !important}
	.align-items-sm-baseline{align-items:baseline !important}
	.align-items-sm-stretch{align-items:stretch !important}

	.align-content-sm-start{align-content:flex-start !important}
	.align-content-sm-end{align-content:flex-end !important}
	.align-content-sm-center{align-content:center !important}
	.align-content-sm-between{align-content:space-between !important}
	.align-content-sm-around{align-content:space-around !important}
	.align-content-sm-stretch{align-content:stretch !important}

	.align-self-sm-auto{align-self:auto !important}
	.align-self-sm-start{align-self:flex-start !important}
	.align-self-sm-end{align-self:flex-end !important}
	.align-self-sm-center{align-self:center !important}
	.align-self-sm-baseline{align-self:baseline !important}
	.align-self-sm-stretch{align-self:stretch !important}
}

@media(min-width:768px){
	.flex-md-row{flex-direction:row !important}
	.flex-md-column{flex-direction:column !important}
	.flex-md-row-reverse{flex-direction:row-reverse !important}
	.flex-md-column-reverse{flex-direction:column-reverse !important}
	.flex-md-wrap{flex-wrap:wrap !important}
	.flex-md-nowrap{flex-wrap:nowrap !important}
	.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}
	.flex-md-fill{flex:1 1 auto !important}
	.flex-md-grow-0{flex-grow:0 !important}
	.flex-md-grow-1{flex-grow:1 !important}
	.flex-md-shrink-0{flex-shrink:0 !important}
	.flex-md-shrink-1{flex-shrink:1 !important}

	.justify-content-md-start{justify-content:flex-start !important}
	.justify-content-md-end{justify-content:flex-end !important}
	.justify-content-md-center{justify-content:center !important}
	.justify-content-md-between{justify-content:space-between !important}
	.justify-content-md-around{justify-content:space-around !important}

	.align-items-md-start{align-items:flex-start !important}
	.align-items-md-end{align-items:flex-end !important}
	.align-items-md-center{align-items:center !important}
	.align-items-md-baseline{align-items:baseline !important}
	.align-items-md-stretch{align-items:stretch !important}

	.align-content-md-start{align-content:flex-start !important}
	.align-content-md-end{align-content:flex-end !important}
	.align-content-md-center{align-content:center !important}
	.align-content-md-between{align-content:space-between !important}
	.align-content-md-around{align-content:space-around !important}
	.align-content-md-stretch{align-content:stretch !important}

	.align-self-md-auto{align-self:auto !important}
	.align-self-md-start{align-self:flex-start !important}
	.align-self-md-end{align-self:flex-end !important}
	.align-self-md-center{align-self:center !important}
	.align-self-md-baseline{align-self:baseline !important}
	.align-self-md-stretch{align-self:stretch !important}
}

@media(min-width:992px){
	.flex-lg-row{flex-direction:row !important}
	.flex-lg-column{flex-direction:column !important}
	.flex-lg-row-reverse{flex-direction:row-reverse !important}
	.flex-lg-column-reverse{flex-direction:column-reverse !important}
	.flex-lg-wrap{flex-wrap:wrap !important}
	.flex-lg-nowrap{flex-wrap:nowrap !important}
	.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}
	.flex-lg-fill{flex:1 1 auto !important}
	.flex-lg-grow-0{flex-grow:0 !important}
	.flex-lg-grow-1{flex-grow:1 !important}
	.flex-lg-shrink-0{flex-shrink:0 !important}
	.flex-lg-shrink-1{flex-shrink:1 !important}

	.justify-content-lg-start{justify-content:flex-start !important}
	.justify-content-lg-end{justify-content:flex-end !important}
	.justify-content-lg-center{justify-content:center !important}
	.justify-content-lg-between{justify-content:space-between !important}
	.justify-content-lg-around{justify-content:space-around !important}

	.align-items-lg-start{align-items:flex-start !important}
	.align-items-lg-end{align-items:flex-end !important}
	.align-items-lg-center{align-items:center !important}
	.align-items-lg-baseline{align-items:baseline !important}
	.align-items-lg-stretch{align-items:stretch !important}

	.align-content-lg-start{align-content:flex-start !important}
	.align-content-lg-end{align-content:flex-end !important}
	.align-content-lg-center{align-content:center !important}
	.align-content-lg-between{align-content:space-between !important}
	.align-content-lg-around{align-content:space-around !important}
	.align-content-lg-stretch{align-content:stretch !important}

	.align-self-lg-auto{align-self:auto !important}
	.align-self-lg-start{align-self:flex-start !important}
	.align-self-lg-end{align-self:flex-end !important}
	.align-self-lg-center{align-self:center !important}
	.align-self-lg-baseline{align-self:baseline !important}
	.align-self-lg-stretch{align-self:stretch !important}
}

@media(min-width:1200px){
	.flex-xl-row{flex-direction:row !important}
	.flex-xl-column{flex-direction:column !important}
	.flex-xl-row-reverse{flex-direction:row-reverse !important}
	.flex-xl-column-reverse{flex-direction:column-reverse !important}
	.flex-xl-wrap{flex-wrap:wrap !important}
	.flex-xl-nowrap{flex-wrap:nowrap !important}
	.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}
	.flex-xl-fill{flex:1 1 auto !important}
	.flex-xl-grow-0{flex-grow:0 !important}
	.flex-xl-grow-1{flex-grow:1 !important}
	.flex-xl-shrink-0{flex-shrink:0 !important}
	.flex-xl-shrink-1{flex-shrink:1 !important}

	.justify-content-xl-start{justify-content:flex-start !important}
	.justify-content-xl-end{justify-content:flex-end !important}
	.justify-content-xl-center{justify-content:center !important}
	.justify-content-xl-between{justify-content:space-between !important}
	.justify-content-xl-around{justify-content:space-around !important}

	.align-items-xl-start{align-items:flex-start !important}
	.align-items-xl-end{align-items:flex-end !important}
	.align-items-xl-center{align-items:center !important}
	.align-items-xl-baseline{align-items:baseline !important}
	.align-items-xl-stretch{align-items:stretch !important}

	.align-content-xl-start{align-content:flex-start !important}
	.align-content-xl-end{align-content:flex-end !important}
	.align-content-xl-center{align-content:center !important}
	.align-content-xl-between{align-content:space-between !important}
	.align-content-xl-around{align-content:space-around !important}
	.align-content-xl-stretch{align-content:stretch !important}

	.align-self-xl-auto{align-self:auto !important}
	.align-self-xl-start{align-self:flex-start !important}
	.align-self-xl-end{align-self:flex-end !important}
	.align-self-xl-center{align-self:center !important}
	.align-self-xl-baseline{align-self:baseline !important}
	.align-self-xl-stretch{align-self:stretch !important}
}

/* 浮動 */
.float-left{float:left !important}
.float-right{float:right !important}
.float-none{float:none !important}

@media(min-width:576px){
	.float-sm-left{float:left !important}
	.float-sm-right{float:right !important}
	.float-sm-none{float:none !important}
}

@media(min-width:768px){
	.float-md-left{float:left !important}
	.float-md-right{float:right !important}
	.float-md-none{float:none !important}
}

@media(min-width:992px){
	.float-lg-left{float:left !important}
	.float-lg-right{float:right !important}
	.float-lg-none{float:none !important}
}

@media(min-width:1200px){
	.float-xl-left{float:left !important}
	.float-xl-right{float:right !important}
	.float-xl-none{float:none !important}
}

.user-select-all{user-select:all}
.user-select-auto{user-select:auto}
.user-select-none{user-select:none}

.overflow-auto{overflow:auto !important}
.overflow-hidden{overflow:hidden !important}

.position-static{position:static !important}
.position-relative{position:relative !important}
.position-absolute{position:absolute !important; z-index:1}
.position-fixed{position:fixed !important}
.position-sticky{position:sticky !important}

.fixed-top{position:fixed; top:0; right:0; left:0; z-index:1030}
.fixed-bottom{position:fixed; right:0; bottom:0; left:0; z-index:1030}

@supports((position:-webkit-sticky) or (position:sticky)){
 .sticky-top{position:-webkit-sticky; position:sticky; top:0; z-index:1020}
}

.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); white-space:nowrap; border:0}
.sr-only-focusable{
	&:active, &:focus{position:static; width:auto; height:auto; overflow:visible; clip:auto; white-space:normal}
}

.shadow-sm{box-shadow:0 .125rem .25rem rgba(0, 0, 0, .075)}
.shadow{box-shadow:0 .5rem 1rem rgba(0, 0, 0, .15)}
.shadow-lg{box-shadow:0 1rem 3rem rgba(0, 0, 0, .175)}
.shadow-none{box-shadow:none}

.w-25{width:25% !important}
.w-50{width:50% !important}
.w-75{width:75% !important}
.w-100{width:100% !important}
.w-auto{width:auto !important}

.h-25{height:25% !important}
.h-50{height:50% !important}
.h-75{height:75% !important}
.h-100{height:100% !important}
.h-auto{height:auto !important}

.mw-100{max-width:100% !important}
.mh-100{max-height:100% !important}

.min-vw-100{min-width:100vw !important}
.min-vh-100{min-height:100vh !important}

.vw-100{width:100vw !important}
.vh-100{height:100vh !important}

.m-0{margin:0 !important}
.m-1{margin:.25rem !important}
.m-2{margin:.5rem !important}
.m-3{margin:1rem !important}
.m-4{margin:1.5rem !important}
.m-5{margin:3rem !important}

.mt-0, .my-0{margin-top:0 !important}
.mr-0, .mx-0{margin-right:0 !important}
.mb-0, .my-0{margin-bottom:0 !important}
.ml-0, .mx-0{margin-left:0 !important}
.mt-1, .my-1{margin-top:.25rem !important}
.mr-1, .mx-1{margin-right:.25rem !important}
.mb-1, .my-1{margin-bottom:.25rem !important}
.ml-1, .mx-1{margin-left:.25rem !important}
.mt-2, .my-2{margin-top:.5rem !important}
.mr-2, .mx-2{margin-right:.5rem !important}
.mb-2, .my-2{margin-bottom:.5rem !important}
.ml-2, .mx-2{margin-left:.5rem !important}
.mt-3, .my-3{margin-top:1rem !important}
.mr-3, .mx-3{margin-right:1rem !important}
.mb-3, .my-3{margin-bottom:1rem !important}
.ml-3, .mx-3{margin-left:1rem !important}
.mt-4, .my-4{margin-top:1.5rem !important}
.mr-4, .mx-4{margin-right:1.5rem !important}
.mb-4, .my-4{margin-bottom:1.5rem !important}
.ml-4, .mx-4{margin-left:1.5rem !important}
.mt-5, .my-5{margin-top:3rem !important}
.mr-5, .mx-5{margin-right:3rem !important}
.mb-5, .my-5{margin-bottom:3rem !important}
.ml-5, .mx-5{margin-left:3rem !important}

.p-0{padding:0 !important}
.p-1{padding:.25rem !important}
.p-2{padding:.5rem !important}
.p-3{padding:1rem !important}
.p-4{padding:1.5rem !important}
.p-5{padding:3rem !important}

.pt-0, .py-0{padding-top:0 !important}
.pr-0, .px-0{padding-right:0 !important}
.pb-0, .py-0{padding-bottom:0 !important}
.pl-0, .px-0{padding-left:0 !important}
.pt-1, .py-1{padding-top:.25rem !important}
.pr-1, .px-1{padding-right:.25rem !important}
.pb-1, .py-1{padding-bottom:.25rem !important}
.pl-1, .px-1{padding-left:.25rem !important}
.pt-2, .py-2{padding-top:.5rem !important}
.pr-2, .px-2{padding-right:.5rem !important}
.pb-2, .py-2{padding-bottom:.5rem !important}
.pl-2, .px-2{padding-left:.5rem !important}
.pt-3, .py-3{padding-top:1rem !important}
.pr-3, .px-3{padding-right:1rem !important}
.pb-3, .py-3{padding-bottom:1rem !important}
.pl-3, .px-3{padding-left:1rem !important}
.pt-4, .py-4{padding-top:1.5rem !important}
.pr-4, .px-4{padding-right:1.5rem !important}
.pb-4, .py-4{padding-bottom:1.5rem !important}
.pl-4, .px-4{padding-left:1.5rem !important}
.pt-5, .py-5{padding-top:3rem !important}
.pr-5, .px-5{padding-right:3rem !important}
.pb-5, .py-5{padding-bottom:3rem !important}
.pl-5, .px-5{padding-left:3rem !important}

.m-auto{margin:auto !important}
.mt-auto, .my-auto{margin-top:auto !important}
.mr-auto, .mx-auto{margin-right:auto !important}
.mb-auto, .my-auto{margin-bottom:auto !important}
.ml-auto, .mx-auto{margin-left:auto !important}

@media(min-width:576px){
	.m-sm-0{margin:0 !important}
	.m-sm-1{margin:.25rem !important}
	.m-sm-2{margin:.5rem !important}
	.m-sm-3{margin:1rem !important}
	.m-sm-4{margin:1.5rem !important}
	.m-sm-5{margin:3rem !important}

	.mt-sm-0, .my-sm-0{margin-top:0 !important}
	.mr-sm-0, .mx-sm-0{margin-right:0 !important}
	.mb-sm-0, .my-sm-0{margin-bottom:0 !important}
	.ml-sm-0, .mx-sm-0{margin-left:0 !important}
	.mt-sm-1, .my-sm-1{margin-top:.25rem !important}
	.mr-sm-1, .mx-sm-1{margin-right:.25rem !important}
	.mb-sm-1, .my-sm-1{margin-bottom:.25rem !important}
	.ml-sm-1, .mx-sm-1{margin-left:.25rem !important}
	.mt-sm-2, .my-sm-2{margin-top:.5rem !important}
	.mr-sm-2, .mx-sm-2{margin-right:.5rem !important}
	.mb-sm-2, .my-sm-2{margin-bottom:.5rem !important}
	.ml-sm-2, .mx-sm-2{margin-left:.5rem !important}
	.mt-sm-3, .my-sm-3{margin-top:1rem !important}
	.mr-sm-3, .mx-sm-3{margin-right:1rem !important}
	.mb-sm-3, .my-sm-3{margin-bottom:1rem !important}
	.ml-sm-3, .mx-sm-3{margin-left:1rem !important}
	.mt-sm-4, .my-sm-4{margin-top:1.5rem !important}
	.mr-sm-4, .mx-sm-4{margin-right:1.5rem !important}
	.mb-sm-4, .my-sm-4{margin-bottom:1.5rem !important}
	.ml-sm-4, .mx-sm-4{margin-left:1.5rem !important}
	.mt-sm-5, .my-sm-5{margin-top:3rem !important}
	.mr-sm-5, .mx-sm-5{margin-right:3rem !important}
	.mb-sm-5, .my-sm-5{margin-bottom:3rem !important}
	.ml-sm-5, .mx-sm-5{margin-left:3rem !important}

	.p-sm-0{padding:0 !important}
	.p-sm-1{padding:.25rem !important}
	.p-sm-2{padding:.5rem !important}
	.p-sm-3{padding:1rem !important}
	.p-sm-4{padding:1.5rem !important}
	.p-sm-5{padding:3rem !important}

	.pt-sm-0, .py-sm-0{padding-top:0 !important}
	.pr-sm-0, .px-sm-0{padding-right:0 !important}
	.pb-sm-0, .py-sm-0{padding-bottom:0 !important}
	.pl-sm-0, .px-sm-0{padding-left:0 !important}
	.pt-sm-1, .py-sm-1{padding-top:.25rem !important}
	.pr-sm-1, .px-sm-1{padding-right:.25rem !important}
	.pb-sm-1, .py-sm-1{padding-bottom:.25rem !important}
	.pl-sm-1, .px-sm-1{padding-left:.25rem !important}
	.pt-sm-2, .py-sm-2{padding-top:.5rem !important}
	.pr-sm-2, .px-sm-2{padding-right:.5rem !important}
	.pb-sm-2, .py-sm-2{padding-bottom:.5rem !important}
	.pl-sm-2, .px-sm-2{padding-left:.5rem !important}
	.pt-sm-3, .py-sm-3{padding-top:1rem !important}
	.pr-sm-3, .px-sm-3{padding-right:1rem !important}
	.pb-sm-3, .py-sm-3{padding-bottom:1rem !important}
	.pl-sm-3, .px-sm-3{padding-left:1rem !important}
	.pt-sm-4, .py-sm-4{padding-top:1.5rem !important}
	.pr-sm-4, .px-sm-4{padding-right:1.5rem !important}
	.pb-sm-4, .py-sm-4{padding-bottom:1.5rem !important}
	.pl-sm-4, .px-sm-4{padding-left:1.5rem !important}
	.pt-sm-5, .py-sm-5{padding-top:3rem !important}
	.pr-sm-5, .px-sm-5{padding-right:3rem !important}
	.pb-sm-5, .py-sm-5{padding-bottom:3rem !important}
	.pl-sm-5, .px-sm-5{padding-left:3rem !important}

	.m-sm-auto{margin:auto !important}
	.mt-sm-auto, .my-sm-auto{margin-top:auto !important}
	.mr-sm-auto, .mx-sm-auto{margin-right:auto !important}
	.mb-sm-auto, .my-sm-auto{margin-bottom:auto !important}
	.ml-sm-auto, .mx-sm-auto{margin-left:auto !important}
}

@media(min-width:768px){
	.m-md-0{margin:0 !important}
	.m-md-1{margin:.25rem !important}
	.m-md-2{margin:.5rem !important}
	.m-md-3{margin:1rem !important}
	.m-md-4{margin:1.5rem !important}
	.m-md-5{margin:3rem !important}

	.mt-md-0, .my-md-0{margin-top:0 !important}
	.mr-md-0, .mx-md-0{margin-right:0 !important}
	.mb-md-0, .my-md-0{margin-bottom:0 !important}
	.ml-md-0, .mx-md-0{margin-left:0 !important}
	.mt-md-1, .my-md-1{margin-top:.25rem !important}
	.mr-md-1, .mx-md-1{margin-right:.25rem !important}
	.mb-md-1, .my-md-1{margin-bottom:.25rem !important}
	.ml-md-1, .mx-md-1{margin-left:.25rem !important}
	.mt-md-2, .my-md-2{margin-top:.5rem !important}
	.mr-md-2, .mx-md-2{margin-right:.5rem !important}
	.mb-md-2, .my-md-2{margin-bottom:.5rem !important}
	.ml-md-2, .mx-md-2{margin-left:.5rem !important}
	.mt-md-3, .my-md-3{margin-top:1rem !important}
	.mr-md-3, .mx-md-3{margin-right:1rem !important}
	.mb-md-3, .my-md-3{margin-bottom:1rem !important}
	.ml-md-3, .mx-md-3{margin-left:1rem !important}
	.mt-md-4, .my-md-4{margin-top:1.5rem !important}
	.mr-md-4, .mx-md-4{margin-right:1.5rem !important}
	.mb-md-4, .my-md-4{margin-bottom:1.5rem !important}
	.ml-md-4, .mx-md-4{margin-left:1.5rem !important}
	.mt-md-5, .my-md-5{margin-top:3rem !important}
	.mr-md-5, .mx-md-5{margin-right:3rem !important}
	.mb-md-5, .my-md-5{margin-bottom:3rem !important}
	.ml-md-5, .mx-md-5{margin-left:3rem !important}

	.p-md-0{padding:0 !important}
	.p-md-1{padding:.25rem !important}
	.p-md-2{padding:.5rem !important}
	.p-md-3{padding:1rem !important}
	.p-md-4{padding:1.5rem !important}
	.p-md-5{padding:3rem !important}

	.pt-md-0, .py-md-0{padding-top:0 !important}
	.pr-md-0, .px-md-0{padding-right:0 !important}
	.pb-md-0, .py-md-0{padding-bottom:0 !important}
	.pl-md-0, .px-md-0{padding-left:0 !important}
	.pt-md-1, .py-md-1{padding-top:.25rem !important}
	.pr-md-1, .px-md-1{padding-right:.25rem !important}
	.pb-md-1, .py-md-1{padding-bottom:.25rem !important}
	.pl-md-1, .px-md-1{padding-left:.25rem !important}
	.pt-md-2, .py-md-2{padding-top:.5rem !important}
	.pr-md-2, .px-md-2{padding-right:.5rem !important}
	.pb-md-2, .py-md-2{padding-bottom:.5rem !important}
	.pl-md-2, .px-md-2{padding-left:.5rem !important}
	.pt-md-3, .py-md-3{padding-top:1rem !important}
	.pr-md-3, .px-md-3{padding-right:1rem !important}
	.pb-md-3, .py-md-3{padding-bottom:1rem !important}
	.pl-md-3, .px-md-3{padding-left:1rem !important}
	.pt-md-4, .py-md-4{padding-top:1.5rem !important}
	.pr-md-4, .px-md-4{padding-right:1.5rem !important}
	.pb-md-4, .py-md-4{padding-bottom:1.5rem !important}
	.pl-md-4, .px-md-4{padding-left:1.5rem !important}
	.pt-md-5, .py-md-5{padding-top:3rem !important}
	.pr-md-5, .px-md-5{padding-right:3rem !important}
	.pb-md-5, .py-md-5{padding-bottom:3rem !important}
	.pl-md-5, .px-md-5{padding-left:3rem !important}

	.m-md-auto{margin:auto !important}
	.mt-md-auto, .my-md-auto{margin-top:auto !important}
	.mr-md-auto, .mx-md-auto{margin-right:auto !important}
	.mb-md-auto, .my-md-auto{margin-bottom:auto !important}
	.ml-md-auto, .mx-md-auto{margin-left:auto !important}
}

@media(min-width:992px){
	.m-lg-0{margin:0 !important}
	.m-lg-1{margin:.25rem !important}
	.m-lg-2{margin:.5rem !important}
	.m-lg-3{margin:1rem !important}
	.m-lg-4{margin:1.5rem !important}
	.m-lg-5{margin:3rem !important}

	.mt-lg-0, .my-lg-0{margin-top:0 !important}
	.mr-lg-0, .mx-lg-0{margin-right:0 !important}
	.mb-lg-0, .my-lg-0{margin-bottom:0 !important}
	.ml-lg-0, .mx-lg-0{margin-left:0 !important}
	.mt-lg-1, .my-lg-1{margin-top:.25rem !important}
	.mr-lg-1, .mx-lg-1{margin-right:.25rem !important}
	.mb-lg-1, .my-lg-1{margin-bottom:.25rem !important}
	.ml-lg-1, .mx-lg-1{margin-left:.25rem !important}
	.mt-lg-2, .my-lg-2{margin-top:.5rem !important}
	.mr-lg-2, .mx-lg-2{margin-right:.5rem !important}
	.mb-lg-2, .my-lg-2{margin-bottom:.5rem !important}
	.ml-lg-2, .mx-lg-2{margin-left:.5rem !important}
	.mt-lg-3, .my-lg-3{margin-top:1rem !important}
	.mr-lg-3, .mx-lg-3{margin-right:1rem !important}
	.mb-lg-3, .my-lg-3{margin-bottom:1rem !important}
	.ml-lg-3, .mx-lg-3{margin-left:1rem !important}
	.mt-lg-4, .my-lg-4{margin-top:1.5rem !important}
	.mr-lg-4, .mx-lg-4{margin-right:1.5rem !important}
	.mb-lg-4, .my-lg-4{margin-bottom:1.5rem !important}
	.ml-lg-4, .mx-lg-4{margin-left:1.5rem !important}
	.mt-lg-5, .my-lg-5{margin-top:3rem !important}
	.mr-lg-5, .mx-lg-5{margin-right:3rem !important}
	.mb-lg-5, .my-lg-5{margin-bottom:3rem !important}
	.ml-lg-5, .mx-lg-5{margin-left:3rem !important}

	.p-lg-0{padding:0 !important}
	.p-lg-1{padding:.25rem !important}
	.p-lg-2{padding:.5rem !important}
	.p-lg-3{padding:1rem !important}
	.p-lg-4{padding:1.5rem !important}
	.p-lg-5{padding:3rem !important}

	.pt-lg-0, .py-lg-0{padding-top:0 !important}
	.pr-lg-0, .px-lg-0{padding-right:0 !important}
	.pb-lg-0, .py-lg-0{padding-bottom:0 !important}
	.pl-lg-0, .px-lg-0{padding-left:0 !important}
	.pt-lg-1, .py-lg-1{padding-top:.25rem !important}
	.pr-lg-1, .px-lg-1{padding-right:.25rem !important}
	.pb-lg-1, .py-lg-1{padding-bottom:.25rem !important}
	.pl-lg-1, .px-lg-1{padding-left:.25rem !important}
	.pt-lg-2, .py-lg-2{padding-top:.5rem !important}
	.pr-lg-2, .px-lg-2{padding-right:.5rem !important}
	.pb-lg-2, .py-lg-2{padding-bottom:.5rem !important}
	.pl-lg-2, .px-lg-2{padding-left:.5rem !important}
	.pt-lg-3, .py-lg-3{padding-top:1rem !important}
	.pr-lg-3, .px-lg-3{padding-right:1rem !important}
	.pb-lg-3, .py-lg-3{padding-bottom:1rem !important}
	.pl-lg-3, .px-lg-3{padding-left:1rem !important}
	.pt-lg-4, .py-lg-4{padding-top:1.5rem !important}
	.pr-lg-4, .px-lg-4{padding-right:1.5rem !important}
	.pb-lg-4, .py-lg-4{padding-bottom:1.5rem !important}
	.pl-lg-4, .px-lg-4{padding-left:1.5rem !important}
	.pt-lg-5, .py-lg-5{padding-top:3rem !important}
	.pr-lg-5, .px-lg-5{padding-right:3rem !important}
	.pb-lg-5, .py-lg-5{padding-bottom:3rem !important}
	.pl-lg-5, .px-lg-5{padding-left:3rem !important}

	.m-lg-auto{margin:auto !important}
	.mt-lg-auto, .my-lg-auto{margin-top:auto !important}
	.mr-lg-auto, .mx-lg-auto{margin-right:auto !important}
	.mb-lg-auto, .my-lg-auto{margin-bottom:auto !important}
	.ml-lg-auto, .mx-lg-auto{margin-left:auto !important}
}

@media(min-width:1200px){
	.m-xl-0{margin:0 !important}
	.m-xl-1{margin:.25rem !important}
	.m-xl-2{margin:.5rem !important}
	.m-xl-3{margin:1rem !important}
	.m-xl-4{margin:1.5rem !important}
	.m-xl-5{margin:3rem !important}

	.mt-xl-0, .my-xl-0{margin-top:0 !important}
	.mr-xl-0, .mx-xl-0{margin-right:0 !important}
	.mb-xl-0, .my-xl-0{margin-bottom:0 !important}
	.ml-xl-0, .mx-xl-0{margin-left:0 !important}
	.mt-xl-1, .my-xl-1{margin-top:.25rem !important}
	.mr-xl-1, .mx-xl-1{margin-right:.25rem !important}
	.mb-xl-1, .my-xl-1{margin-bottom:.25rem !important}
	.ml-xl-1, .mx-xl-1{margin-left:.25rem !important}
	.mt-xl-2, .my-xl-2{margin-top:.5rem !important}
	.mr-xl-2, .mx-xl-2{margin-right:.5rem !important}
	.mb-xl-2, .my-xl-2{margin-bottom:.5rem !important}
	.ml-xl-2, .mx-xl-2{margin-left:.5rem !important}
	.mt-xl-3, .my-xl-3{margin-top:1rem !important}
	.mr-xl-3, .mx-xl-3{margin-right:1rem !important}
	.mb-xl-3, .my-xl-3{margin-bottom:1rem !important}
	.ml-xl-3, .mx-xl-3{margin-left:1rem !important}
	.mt-xl-4, .my-xl-4{margin-top:1.5rem !important}
	.mr-xl-4, .mx-xl-4{margin-right:1.5rem !important}
	.mb-xl-4, .my-xl-4{margin-bottom:1.5rem !important}
	.ml-xl-4, .mx-xl-4{margin-left:1.5rem !important}
	.mt-xl-5, .my-xl-5{margin-top:3rem !important}
	.mr-xl-5, .mx-xl-5{margin-right:3rem !important}
	.mb-xl-5, .my-xl-5{margin-bottom:3rem !important}
	.ml-xl-5, .mx-xl-5{margin-left:3rem !important}

	.p-xl-0{padding:0 !important}
	.p-xl-1{padding:.25rem !important}
	.p-xl-2{padding:.5rem !important}
	.p-xl-3{padding:1rem !important}
	.p-xl-4{padding:1.5rem !important}
	.p-xl-5{padding:3rem !important}

	.pt-xl-0, .py-xl-0{padding-top:0 !important}
	.pr-xl-0, .px-xl-0{padding-right:0 !important}
	.pb-xl-0, .py-xl-0{padding-bottom:0 !important}
	.pl-xl-0, .px-xl-0{padding-left:0 !important}
	.pt-xl-1, .py-xl-1{padding-top:.25rem !important}
	.pr-xl-1, .px-xl-1{padding-right:.25rem !important}
	.pb-xl-1, .py-xl-1{padding-bottom:.25rem !important}
	.pl-xl-1, .px-xl-1{padding-left:.25rem !important}
	.pt-xl-2, .py-xl-2{padding-top:.5rem !important}
	.pr-xl-2, .px-xl-2{padding-right:.5rem !important}
	.pb-xl-2, .py-xl-2{padding-bottom:.5rem !important}
	.pl-xl-2, .px-xl-2{padding-left:.5rem !important}
	.pt-xl-3, .py-xl-3{padding-top:1rem !important}
	.pr-xl-3, .px-xl-3{padding-right:1rem !important}
	.pb-xl-3, .py-xl-3{padding-bottom:1rem !important}
	.pl-xl-3, .px-xl-3{padding-left:1rem !important}
	.pt-xl-4, .py-xl-4{padding-top:1.5rem !important}
	.pr-xl-4, .px-xl-4{padding-right:1.5rem !important}
	.pb-xl-4, .py-xl-4{padding-bottom:1.5rem !important}
	.pl-xl-4, .px-xl-4{padding-left:1.5rem !important}
	.pt-xl-5, .py-xl-5{padding-top:3rem !important}
	.pr-xl-5, .px-xl-5{padding-right:3rem !important}
	.pb-xl-5, .py-xl-5{padding-bottom:3rem !important}
	.pl-xl-5, .px-xl-5{padding-left:3rem !important}

	.m-xl-auto{margin:auto !important}
	.mt-xl-auto, .my-xl-auto{margin-top:auto !important}
	.mr-xl-auto, .mx-xl-auto{margin-right:auto !important}
	.mb-xl-auto, .my-xl-auto{margin-bottom:auto !important}
	.ml-xl-auto, .mx-xl-auto{margin-left:auto !important}
}

.stretched-link::after{position:absolute; top:0; right:0; bottom:0; left:0; z-index:1; pointer-events:auto; content:''; background-color:rgba(0, 0, 0, 0)}

.text-monospace{font-family:var(--font-family-monospace)}
.text-justify{text-align:justify}
.text-wrap{white-space:normal}
.text-nowrap{white-space:nowrap}
.text-truncate, .text-truncate2{overflow:hidden; text-overflow:ellipsis}
.text-truncate{white-space:nowrap}
.text-truncate2{text-align:left; word-wrap:break-word; word-break:break-all; display: -webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2}
.text-left{text-align:left !important}
.text-right{text-align:right !important}
.text-center{text-align:center !important}

@media(min-width:576px){
	.text-sm-left{text-align:left !important}
	.text-sm-right{text-align:right !important}
	.text-sm-center{text-align:center !important}
}

@media(min-width:768px){
	.text-md-left{text-align:left !important}
	.text-md-right{text-align:right !important}
	.text-md-center{text-align:center !important}
}

@media(min-width:992px){
	.text-lg-left{text-align:left !important}
	.text-lg-right{text-align:right !important}
	.text-lg-center{text-align:center !important}
}

@media(min-width:1200px){
	.text-xl-left{text-align:left !important}
	.text-xl-right{text-align:right !important}
	.text-xl-center{text-align:center !important}
}

.text-lowercase{text-transform:lowercase !important}
.text-uppercase{text-transform:uppercase !important}
.text-capitalize{text-transform:capitalize !important}
.font-weight-light{font-weight:300 !important}
.font-weight-lighter{font-weight:lighter !important}
.font-weight-normal{font-weight:400 !important}
.font-weight-bold{font-weight:700 !important}
.font-weight-bolder{font-weight:bolder !important}
.font-italic{font-style:italic !important}

/* .text-white{color:#fff}
a.text-white{&:hover, &:focus{color:rgba(255,255,255,0.7)}}

.text-primary{color:var(--primary)}
a.text-primary{&:hover, &:focus{color:hsl(from var(--primary) h s calc(l - 15))}}

.text-secondary{color:var(--secondary)}
a.text-secondary{&:hover, &:focus{color:hsl(from var(--secondary) h s calc(l - 15))}}

.text-success{color:var(--success)}
a.text-success{&:hover, &:focus{color:hsl(from var(--success) h s calc(l - 15))}}

.text-info{color:var(--info)}
a.text-info{&:hover, &:focus{color:hsl(from var(--info) h s calc(l - 15))}}

.text-warning{color:var(--warning)}
a.text-warning{&:hover, &:focus{color:hsl(from var(--warning) h s calc(l - 15))}}

.text-danger{color:var(--danger)}
a.text-danger{&:hover, &:focus{color:hsl(from var(--danger) h s calc(l - 15))}}

.text-light{color:var(--light)}
a.text-light{&:hover, &:focus{color:hsl(from var(--light) h s calc(l - 15))}}

.text-dark{color:var(--dark)}
a.text-dark{&:hover, &:focus{color:hsl(from var(--dark) h s calc(l + 15))}} */

.text-white{color:#fff}
.text-primary{color:var(--primary)}
.text-secondary{color:var(--secondary)}
.text-success{color:var(--success)}
.text-info{color:var(--info)}
.text-warning{color:var(--warning)}
.text-danger{color:var(--danger)}
.text-light{color:var(--light)}
.text-dark{color:var(--dark)}

/* 統一懸停效果 */
a[class^="text-"]:is(:hover, :focus){
	color: light-dark(
		hsl(from currentColor h s calc(l - 15%)),
		hsl(from currentColor h s calc(l + 15%))
	);
}

/* 特殊情況 */
a.text-white:is(:hover, :focus){
	color: rgba(255, 255, 255, 0.7);
}

a.text-dark:is(:hover, :focus){
	color: hsl(from var(--dark) h s calc(l + 15%));
}

.text-body{color:var(--color) !important}
.text-muted{color:var(--secondary) !important}
.text-black-50{color:rgba(0, 0, 0, .5) !important}
.text-white-50{color:rgba(255, 255, 255, .5) !important}
.text-hide{font:0/0 a; color:transparent; text-shadow:none; background-color:transparent; border:0}

.text-decoration-none{text-decoration:none !important}
.text-decoration-wavy{text-decoration-style:wavy !important}

.text-break{word-break:break-word; word-wrap:break-word !important}
.text-break-all{word-break:break-all !important}
.text-reset{color:inherit !important}
.visible{visibility:visible !important}
.invisible{visibility:hidden !important}

@mediaprint{
	*, *::before, *::after{text-shadow:none; box-shadow:none}
	a:not(.btn){text-decoration:underline}
	abbr[title]::after{content:" (" attr(title) ")"}
	pre{white-space:pre-wrap}
	pre, blockquote{border:1px solid #adb5bd; page-break-inside:avoid}
	thead{display:table-header-group}
	tr, img{page-break-inside:avoid}
	p, h2, h3{orphans:3; widows:3}
	h2, h3{page-break-after:avoid}
	@page{size:a4}
	body{min-width:992px}
	.container{min-width:992px}
	.navbar{display:none}
	.badge{border:1px solid #000}
	.table{
		border-collapse:collapse;
		& td, & th{background-color:#fff}
		&.table-bordered{
			& th, & td{border:1px solid var(--border-color)}
		}
		&.table-dark{
			color:inherit;
			& th, & td, & thead th, & tbody + tbody{border-color:var(--border-color)}
		}
		& .thead-dark th{color:inherit; border-color:var(--border-color)}
	}
}

.make-switch label:after, input[type="radio"] + label:after, label.checkbox-inline:after{content:normal}

/* .custom-control-input:checked~.custom-control-label::before{background-color:#488db9}
.custom-switch .custom-control-label::before{width:2rem} */

select.form-control{display:inline-block; width:auto; max-width:90%}

.form-horizontal{padding-left:0;
	& > .form-group{list-style:none; align-items:start; margin-bottom:.75rem}
}
@media(max-width:576px){
	.form-horizontal > .form-group{margin-bottom:.35rem}
}

figure em{color:#f30}

*[class*="del"]:hover{cursor:pointer}

.card-header{
	& .accordion-toggle{
		&:before /*展開時*/{content: "－"}
		&.collapsed::before /*合起來*/{content: "＋"}
	}
	& h4{
		margin-bottom:0;
		&:hover{cursor:pointer; color:#00468C}
	}
}

.ui-draggable .ui-dialog-titlebar{cursor:move}
.ui-draggable-handle{touch-action:none}

.swal2-container.swal2-shown{z-index:2000}

.photo_card{
	position:relative; border:1px dashed #ccc; padding:2px 4px;
	& .xorder{position:absolute;top:-2px; left:-2px; display:inline-block; padding:2px 4px; border-radius:0 0 8px 0; background-color:#ccc; font-size:12px}
	& .del, & .del_xsell{position:absolute; right:-5px; top:-5px}
}

.model{font-size:.75rem; color:#f60}

.addXsell{padding:10px; border:4px dashed #eee}
.panel-body > ul{
	list-style:none;
	& > li{text-align:center; border-bottom:1px dotted #ddd; padding:4px}
}

/*推薦上市等級*/
/* .webwidget_rating_sex{padding:0px 10px; margin:0px; float:left}
.webwidget_rating_sex li{line-height:0px; width:28px; height:28px; padding:0px; margin:0px; margin-left:4px; list-style:none; float:left; cursor:pointer}
.webwidget_rating_sex li span{display:none}
.rating-featured, .rating-isnew{width:50px} */

.row-gap-0{row-gap:normal}
.row-gap-1{row-gap:1rem}
.row-gap-15{row-gap:1.5rem}
.column-gap-0{column-gap:normal}
.column-gap-1{column-gap:1rem}
.column-gap-15{column-gap:1.5rem}
.column-gap-2{column-gap:2rem}

/* 切換頁籤 */
.tab-content{
	padding:1rem .25rem;
	& > .tab-pane{display:none}
	& > .active{display:block}
}

@media(max-width:767px){
	.tab-content{padding:.5rem 0}
}

/* figure > figcaption{color:var(--secondary)} */
figure > div{position:relative; border:1px solid #999; padding:2px; box-shadow:2px 2px 2px #999; min-height:10rem}
figure #imgDiv > img{position:absolute; left:0; top:0; right:0; bottom:0; margin:auto}
.upload, .uploads{position:absolute; top:50%; left:50%; margin-top:-2.25rem; margin-left:-2.25rem; border-radius:50%; width:4.5rem; height:4.5rem; text-align:center; line-height:4.5rem; color:#fff; font-size:2.5rem; background:rgba(255,0,204,.2); cursor:pointer}

.upload-area {
	border: 2px dashed #6c757d;
	background-color: #f8f9fa;
	transition: all 0.2s;
	cursor: pointer;
	min-height: 150px;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative; /* 關鍵：讓絕對定位的 input 參考此處 */
	overflow: hidden;
}
.upload-area:hover, .upload-area.drag-over {
	background-color: #e2e6ea;
	border-color: #007bff;
	color: #007bff;
}

/* 修正：不使用 d-none，改用透明度隱藏，確保點擊有效 */
.file-input-hidden {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 10; /* 確保 input 蓋在最上面，直接接收點擊/拖曳 */
}

.preview-img {
	max-height: 200px;
	padding: 5px;
	margin-top: 10px;
}


.attributes_mini_img{position:relative}
.attributes_upload{position:absolute; z-index:10; top:50%; left:50%; margin-top:-25px; margin-left:-25px; width:50px; height:50px; line-height:50px; color:#F0C; font-size:1.5rem; opacity:.5; cursor:pointer}

.attributes_upload::after{content:''; padding-right:0}
input[type="file"].upload_file, input[type="file"].upload_files, input[type="file"].upload_attributest{display:none}

.nav-link img{display:inline-block; padding-right:4px}

/*滑鼠拖曳排序*/
.handle{
	&::before{font-family:"Font Awesome 7 Free", "Font Awesome 5 Pro"; font-weight:900; color:var(--secondary); content:'\f0dc'; cursor:grab; padding:4px; transition:all .5s ease}
	&:hover{color:#f60; transform:scale(2)}
}

.ghost{opacity:.4; border:2px solid var(--primary)}

@keyframes hover-color{
	from{border-color:#c0c0c0}
	to{border-color:#3e97eb}
}

/* 規格訊息彈出 */
.attr_popup{position:fixed; top:1.5rem; z-index:9999; background-color:rgba(255,255,255,.95); padding:1rem; border:10px solid rgba(0,0,0,.2); border-radius:calc(var(--radius) * 4)}

/* https://css-loaders.com/spinner/ */
.loader{
	width:5.5rem; aspect-ratio:1; display:grid; border:5px solid #0000; border-radius:50%; border-color:#fff #0000; animation:l16 1s infinite linear;
	&::before, &::after{content:''; grid-area:1/1; margin:3px; border:inherit; border-radius:50%}
	&::before{border-color:#f03355 #0000; animation:inherit; animation-duration:.5s; animation-direction:reverse}
	&::after{margin:20px}
}

@keyframes l16{
	100%{transform:rotate(1turn)}
}

/* 進度時間軸 */
.timeline{border-left:3px solid #dee2e6; margin-left:1.25rem; padding-left:1.25rem/* ; container-type:inline-size */}
.timeline-event{
	display:flex; flex-direction:column; row-gap:.25rem; position:relative; margin-bottom:1rem;
	&::before{content:''; position:absolute; left:-1.75rem; top:.35rem; width:.85rem; height:.85rem; background:#fff; border:2px solid #6c757d; border-radius:50%; z-index:1}
	& .ml-auto{font-size:.85rem; color:#999}
	& .timeline-date{color:#6c757d; font-size:.9rem; margin-left:.5rem}
	& .timeline-content{padding-left:2rem; /* text-indent:2rem; */ font-size:.9rem}
}

@media(max-width:576px){
	.timeline{margin-left:.25rem}
	.timeline-event{
		margin-bottom:1rem;
		& .ml-auto{font-size:12px}
	}
}

/* input[type="checkbox"], input[type="radio"] {
  accent-color: #7c3aed;
} */